这是indexloc提供的服务,不要输入任何密码
Skip to content

Conversation

@simonseyock
Copy link
Collaborator

This prints some additional information about where the exception occured. The handled exception ex will be set as cause for the new exception and both stack traces will be printed:

Traceback (most recent call last):
  File "./mapproxy/mapproxy/seed/config.py", line 159, in coverage
    coverage = load_coverage(coverage_conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/config/coverage.py", line 73, in load_coverage
    geom = load_polygons(abspath(conf['polygons'], base_path=base_path))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/util/geom.py", line 121, in load_polygons
    polygons.extend(load_polygon_lines(f, source=geom_files))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/util/geom.py", line 164, in load_polygon_lines
    for line in line_iter:
                ^^^^^^^^^
  File "<frozen codecs>", line 720, in __next__
  File "<frozen codecs>", line 648, in __next__
  File "<frozen codecs>", line 561, in readline
  File "<frozen codecs>", line 507, in read
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 0: invalid continuation byte

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "./venv/bin/mapproxy-seed", line 33, in <module>
    sys.exit(load_entry_point('MapProxy', 'console_scripts', 'mapproxy-seed')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/script.py", line 366, in main
    return SeedScript()()
           ^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/script.py", line 224, in __call__
    seed_tasks = seed_conf.seeds(seed_names)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 209, in seeds
    seed_conf = SeedConfiguration(seed_name, seed_conf, self)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 290, in __init__
    ConfigurationBase.__init__(self, name, conf, seeding_conf)
  File "./mapproxy/mapproxy/seed/config.py", line 236, in __init__
    self.coverage = self._coverages()
                    ^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 245, in _coverages
    coverages = [self.seeding_conf.coverage(c) for c in self.conf.get('coverages', {})]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/util/py.py", line 73, in wrapper
    cache[key] = func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 167, in coverage
    raise Exception(f"can't load coverage '{name}'")
Exception: can't load coverage 'dop2011'

instead of just:

Traceback (most recent call last):
  File "./venv/bin/mapproxy-seed", line 33, in <module>
    sys.exit(load_entry_point('MapProxy', 'console_scripts', 'mapproxy-seed')())
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/script.py", line 366, in main
    return SeedScript()()
           ^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/script.py", line 224, in __call__
    seed_tasks = seed_conf.seeds(seed_names)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 209, in seeds
    seed_conf = SeedConfiguration(seed_name, seed_conf, self)
                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 290, in __init__
    ConfigurationBase.__init__(self, name, conf, seeding_conf)
  File "./mapproxy/mapproxy/seed/config.py", line 236, in __init__
    self.coverage = self._coverages()
                    ^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 245, in _coverages
    coverages = [self.seeding_conf.coverage(c) for c in self.conf.get('coverages', {})]
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/util/py.py", line 73, in wrapper
    cache[key] = func(self, *args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/seed/config.py", line 159, in coverage
    coverage = load_coverage(coverage_conf)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/config/coverage.py", line 73, in load_coverage
    geom = load_polygons(abspath(conf['polygons'], base_path=base_path))
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/util/geom.py", line 121, in load_polygons
    polygons.extend(load_polygon_lines(f, source=geom_files))
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "./mapproxy/mapproxy/util/geom.py", line 164, in load_polygon_lines
    for line in line_iter:
                ^^^^^^^^^
  File "<frozen codecs>", line 720, in __next__
  File "<frozen codecs>", line 648, in __next__
  File "<frozen codecs>", line 561, in readline
  File "<frozen codecs>", line 507, in read
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 0: invalid continuation byte

@simonseyock simonseyock force-pushed the better-exception-logging-for-seeding branch from 627bad5 to 7c9bbde Compare November 14, 2024 13:25
@simonseyock simonseyock force-pushed the better-exception-logging-for-seeding branch from 7c9bbde to c77ad99 Compare November 14, 2024 13:30
@simonseyock simonseyock merged commit 247ae05 into mapproxy:master Nov 14, 2024
6 checks passed
@simonseyock simonseyock deleted the better-exception-logging-for-seeding branch November 14, 2024 14:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants