#139677 Report by node gh-actions covering 200 tests from 61 modules resulted into 6 errors

Report

ObsPy version
1.0.3.post0+5629.gb166b03f65.…
GitHub Pull Request
-
Report file
JSON document
Total runtime
199.0 sec
Report date/time
May 22, 2024, 5:26 a.m.

System / Python

Architecture
64bit
Machine
x86_64
Node
gh-actions
Processor
x86_64
Python Compiler
GCC 12.3.0
Python Implementation
CPython
Python Version
3.12.3
Release
6.5.0-1021-azure
System
Linux
Version
#22~22.04.1-Ubuntu SMP Tue Apr 30 16:08:18 UTC 2024

Dependencies

cartopy
0.23.0
decorator
5.1.1
flake8
---
geographiclib
2.0
lxml
5.2.2
matplotlib
3.8.4
numpy
1.26.4
obspy
1.0.3.post0+5629.gb166b03f65.rizac.master
pyproj
3.6.1
pytest
8.2.1
pytest-json-report
1.5.0
requests
2.32.2
scipy
1.13.0
setuptools
70.0.0
shapefile
---
sqlalchemy
1.4.49

Modules (61)

Module Errors / Failures Tracebacks
obspy.clients.earthworm 1 1
obspy.clients.fdsn 3 2 3 4
obspy.clients.filesystem Not tested -
obspy.clients.iris 2 5 6
obspy.clients.neic - -
obspy.clients.nrl - -
obspy.clients.seedlink - -
obspy.clients.syngine - -
obspy.core - -
obspy.core.event Not tested -
obspy.core.inventory Not tested -
obspy.core.util Not tested -
obspy.geodetics Not tested -
obspy.imaging Not tested -
obspy.io.ah Not tested -
obspy.io.alsep Not tested -
obspy.io.arclink Not tested -
obspy.io.ascii Not tested -
obspy.io.cmtsolution Not tested -
obspy.io.cnv Not tested -
obspy.io.css Not tested -
obspy.io.csv Not tested -
obspy.io.cybershake Not tested -
obspy.io.dmx Not tested -
obspy.io.focmec Not tested -
obspy.io.gcf Not tested -
obspy.io.gse2 Not tested -
obspy.io.hypodd Not tested -
obspy.io.iaspei Not tested -
obspy.io.json Not tested -
obspy.io.kinemetrics Not tested -
obspy.io.kml Not tested -
obspy.io.mseed Not tested -
obspy.io.ndk Not tested -
obspy.io.nied Not tested -
obspy.io.nlloc Not tested -
obspy.io.nordic Not tested -
obspy.io.pdas Not tested -
obspy.io.pde Not tested -
obspy.io.quakeml Not tested -
obspy.io.reftek Not tested -
obspy.io.rg16 Not tested -
obspy.io.sac Not tested -
obspy.io.scardec Not tested -
obspy.io.seg2 Not tested -
obspy.io.segy Not tested -
obspy.io.seisan Not tested -
obspy.io.seiscomp Not tested -
obspy.io.sh Not tested -
obspy.io.shapefile Not tested -
obspy.io.stationtxt Not tested -
obspy.io.stationxml Not tested -
obspy.io.wav Not tested -
obspy.io.win Not tested -
obspy.io.xseed Not tested -
obspy.io.y Not tested -
obspy.io.zmap Not tested -
obspy.realtime Not tested -
obspy.scripts Not tested -
obspy.signal Not tested -
obspy.taup Not tested -
Summary 6 6

Tracebacks (6)

Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call
result: Optional[TResult] = func()
^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 241, in <lambda>
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 182, in _multicall
return outcome.get_result()
^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_result.py", line 100, in get_result
raise exc.with_traceback(exc.__traceback__)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 87, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 63, in thread_exception_runtest_hook
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 90, in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 65, in unraisable_exception_runtest_hook
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
yield from self._runtest_for(item, "call")
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/logging.py", line 833, in _runtest_for
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/capture.py", line 878, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 183, in pytest_runtest_call
raise e
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 173, in pytest_runtest_call
item.runtest()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/python.py", line 1632, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/python.py", line 162, in pytest_pyfunc_call
result = testfunction(**testargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/decorator.py", line 119, in skip_on_network_error
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/earthworm/tests/test_client.py", line 111, in test_get_waveform_no_cleanup
assert len(ew_stream) >= 2
AssertionError: assert 1 >= 2
+ where 1 = len(<obspy.core.stream.Stream object at 0x7f4a5546a270>)
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 63, in thread_exception_runtest_hook
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 90, in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 65, in unraisable_exception_runtest_hook
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
yield from self._runtest_for(item, "call")
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/logging.py", line 833, in _runtest_for
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/capture.py", line 878, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 183, in pytest_runtest_call
raise e
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 173, in pytest_runtest_call
item.runtest()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/python.py", line 1632, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/python.py", line 162, in pytest_pyfunc_call
result = testfunction(**testargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/unittest/mock.py", line 1390, in patched
return func(*newargs, **newkeywargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/tests/test_client.py", line 1451, in test_authentication_exceptions
Client(eida_token="TEST")
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/client.py", line 277, in __init__
self._discover_services()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/client.py", line 1650, in _discover_services
raise FDSNNoServiceException(msg)
obspy.clients.fdsn.header.FDSNNoServiceException: No FDSN services could be discovered at 'http://service.iris.edu'. This could be due to a temporary service outage or an invalid FDSN service address.
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call
result: Optional[TResult] = func()
^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 241, in <lambda>
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 182, in _multicall
return outcome.get_result()
^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_result.py", line 100, in get_result
raise exc.with_traceback(exc.__traceback__)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 87, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 77, in thread_exception_runtest_hook
warnings.warn(pytest.PytestUnhandledThreadExceptionWarning(msg))
pytest.PytestUnhandledThreadExceptionWarning: Exception in thread Thread-103
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/threading.py", line 1073, in _bootstrap_inner
self.run()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/client.py", line 1543, in run
code, data = download_url(
^^^^^^^^^^
ValueError: not enough values to unpack (expected 2, got 0)
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 96, in _try_download_bulk
return _download_bulk(r)
^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 139, in _download_bulk
return fct(bulk_str + r["bulk_str"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/client.py", line 1259, in get_stations_bulk
inv = read_inventory(data_stream, format='STATIONXML')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/decorator.py", line 298, in _map_example_filename
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/inventory/inventory.py", line 91, in read_inventory
return _generic_reader(path_or_file_object, _read, format=format,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/base.py", line 625, in _generic_reader
return callback_func(pathname_or_url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/decorator.py", line 143, in uncompress_file
return func(filename, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/inventory/inventory.py", line 100, in _read
inventory, format = _read_from_plugin('inventory', filename, format=format,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/base.py", line 426, in _read_from_plugin
list_obj = read_format(filename, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/io/stationxml/core.py", line 152, in _read_stationxml
root = etree.parse(path_or_file_object).getroot()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "src/lxml/etree.pyx", line 3590, in lxml.etree.parse
File "src/lxml/parser.pxi", line 1969, in lxml.etree._parseDocument
File "src/lxml/parser.pxi", line 1989, in lxml.etree._parseMemoryDocument
File "src/lxml/parser.pxi", line 1876, in lxml.etree._parseDoc
File "src/lxml/parser.pxi", line 1164, in lxml.etree._BaseParser._parseDoc
File "src/lxml/parser.pxi", line 633, in lxml.etree._ParserContext._handleParseResultDoc
File "src/lxml/parser.pxi", line 743, in lxml.etree._handleParseResult
File "src/lxml/parser.pxi", line 672, in lxml.etree._raiseParseError
File "<string>", line 1
lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call
result: Optional[TResult] = func()
^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 241, in <lambda>
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 182, in _multicall
return outcome.get_result()
^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_result.py", line 100, in get_result
raise exc.with_traceback(exc.__traceback__)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 87, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 63, in thread_exception_runtest_hook
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 90, in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 65, in unraisable_exception_runtest_hook
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/logging.py", line 850, in pytest_runtest_call
yield from self._runtest_for(item, "call")
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/logging.py", line 833, in _runtest_for
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/capture.py", line 878, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/skipping.py", line 257, in pytest_runtest_call
return (yield)
^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 183, in pytest_runtest_call
raise e
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 173, in pytest_runtest_call
item.runtest()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/python.py", line 1632, in runtest
self.ihook.pytest_pyfunc_call(pyfuncitem=self)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 139, in _multicall
raise exception.with_traceback(exception.__traceback__)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 103, in _multicall
res = hook_impl.function(*args)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/python.py", line 162, in pytest_pyfunc_call
result = testfunction(**testargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/tests/test_federator_routing_client.py", line 332, in test_get_stations_integration_test
inv2 = self.client.get_stations_bulk(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 84, in _assert_filename_not_in_kwargs
return f(*args, **kwargs)
^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/federator_routing_client.py", line 144, in get_stations_bulk
return self._download_stations(split, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 244, in _download_stations
return self._download_parallel(split, data_type="station", **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 270, in _download_parallel
results = pool.map(_try_download_bulk, dl_requests)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/multiprocessing/pool.py", line 367, in map
return self._map_async(func, iterable, mapstar, chunksize).get()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/multiprocessing/pool.py", line 774, in get
raise self._value
File "/home/runner/miniconda3/envs/test/lib/python3.12/multiprocessing/pool.py", line 125, in worker
result = (True, func(*args, **kwds))
^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/multiprocessing/pool.py", line 48, in mapstar
return list(map(*args))
^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 99, in _try_download_bulk
warnings.warn(
UserWarning: Failed to download data of type 'station' from 'http://service.iris.edu' due to:
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 96, in _try_download_bulk
return _download_bulk(r)
^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/routing/routing_client.py", line 139, in _download_bulk
return fct(bulk_str + r["bulk_str"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/fdsn/client.py", line 1259, in get_stations_bulk
inv = read_inventory(data_stream, format='STATIONXML')
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/decorator.py", line 298, in _map_example_filename
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/inventory/inventory.py", line 91, in read_inventory
return _generic_reader(path_or_file_object, _read, format=format,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/base.py", line 625, in _generic_reader
return callback_func(pathname_or_url, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/decorator.py", line 232, in fun
return caller(func, *(extras + args), **kw)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/decorator.py", line 143, in uncompress_file
return func(filename, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/inventory/inventory.py", line 100, in _read
inventory, format = _read_from_plugin('inventory', filename, format=format,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/core/util/base.py", line 426, in _read_from_plugin
list_obj = read_format(filename, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/io/stationxml/core.py", line 152, in _read_stationxml
root = etree.parse(path_or_file_object).getroot()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "src/lxml/etree.pyx", line 3590, in lxml.etree.parse
File "src/lxml/parser.pxi", line 1969, in lxml.etree._parseDocument
File "src/lxml/parser.pxi", line 1989, in lxml.etree._parseMemoryDocument
File "src/lxml/parser.pxi", line 1876, in lxml.etree._parseDoc
File "src/lxml/parser.pxi", line 1164, in lxml.etree._BaseParser._parseDoc
File "src/lxml/parser.pxi", line 633, in lxml.etree._ParserContext._handleParseResultDoc
File "src/lxml/parser.pxi", line 743, in lxml.etree._handleParseResult
File "src/lxml/parser.pxi", line 672, in lxml.etree._raiseParseError
File "<string>", line 1
lxml.etree.XMLSyntaxError: Start tag expected, '<' not found, line 1, column 1
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 341, in from_call
result: Optional[TResult] = func()
^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/runner.py", line 241, in <lambda>
lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_hooks.py", line 513, in __call__
return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_manager.py", line 120, in _hookexec
return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 182, in _multicall
return outcome.get_result()
^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_result.py", line 100, in get_result
raise exc.with_traceback(exc.__traceback__)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 167, in _multicall
teardown.throw(outcome._exception)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 87, in pytest_runtest_call
yield from thread_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/threadexception.py", line 63, in thread_exception_runtest_hook
yield
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/pluggy/_callers.py", line 169, in _multicall
teardown.send(outcome._result)
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 90, in pytest_runtest_call
yield from unraisable_exception_runtest_hook()
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/_pytest/unraisableexception.py", line 80, in unraisable_exception_runtest_hook
warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
pytest.PytestUnraisableExceptionWarning: Exception ignored in: <function Pool.__del__ at 0x7f4a55854400>
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/multiprocessing/pool.py", line 268, in __del__
_warn(f"unclosed running multiprocessing pool {self!r}",
ResourceWarning: unclosed running multiprocessing pool <multiprocessing.pool.ThreadPool state=RUN pool_size=1>
913 or nothing, depending on the ``output`` parameter.
914
915 .. rubric:: Examples
916
917 (1) Returning frequency, amplitude, phase of first point.
918
919 >>> from obspy.clients.iris import Client
920 >>> client = Client()
921 >>> dt = UTCDateTime("2005-01-01")
922 >>> data = client.evalresp("IU", "ANMO", "00", "BHZ", dt,
UNEXPECTED EXCEPTION: <HTTPError 500: ''>
Traceback (most recent call last):
File "/home/runner/miniconda3/envs/test/lib/python3.12/doctest.py", line 1361, in __run
exec(compile(example.source, filename, "single",
File "<doctest obspy.clients.iris.client.Client.evalresp[3]>", line 1, in <module>
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/iris/client.py", line 970, in evalresp
data = self._fetch("evalresp", **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/iris/client.py", line 124, in _fetch
response = urllib_request.urlopen(req, timeout=self.timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/urllib/request.py", line 215, in urlopen
return opener.open(url, data, timeout)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/urllib/request.py", line 521, in open
response = meth(req, response)
^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/urllib/request.py", line 630, in http_response
response = self.parent.error(
^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/urllib/request.py", line 559, in error
return self._call_chain(*args)
^^^^^^^^^^^^^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/urllib/request.py", line 492, in _call_chain
result = func(*args)
^^^^^^^^^^^
File "/home/runner/miniconda3/envs/test/lib/python3.12/urllib/request.py", line 639, in http_error_default
raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 500:
/home/runner/miniconda3/envs/test/lib/python3.12/site-packages/obspy/clients/iris/client.py:922: UnexpectedException
cls = <class '_pytest.runner.CallInfo'>
func = <function call_and_report.<locals>.<lambda> at 0x7f4a54c4cfe0>
when = 'call'
reraise = (<class '_pytest.outcomes.Exit'>, <class 'KeyboardInterrupt'>)
@classmethod
def from_call(
cls,
func: Callable[[], TResult],
when: Literal["collect", "setup", "call", "teardown"],
reraise: Optional[
Union[Type[BaseException], Tuple[Type[BaseException], ...]]
] = None,
) -> "CallInfo[TResult]":
"""Call func, wrapping the result in a CallInfo.
:param func:
The function to call. Called without arguments.
:param when:
The phase in which the function is called.
:param reraise:
Exception or exceptions that shall propagate if raised by the
function, instead of being wrapped in the CallInfo.
"""
excinfo = None
start = timing.time()
precise_start = timing.perf_counter()
try:
> result: Optional[TResult] = func()
../_pytest/runner.py:341:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> lambda: runtest_hook(item=item, **kwds), when=when, reraise=reraise
)
../_pytest/runner.py:241:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <HookCaller 'pytest_runtest_call'>
kwargs = {'item': <DoctestItem obspy.clients.iris.client.Client.sacpz>}
firstresult = False
def __call__(self, **kwargs: object) -> Any:
"""Call the hook.
Only accepts keyword arguments, which should match the hook
specification.
Returns the result(s) of calling all registered plugins, see
:ref:`calling`.
"""
assert (
not self.is_historic()
), "Cannot directly call a historic hook - use call_historic instead."
self._verify_all_args_are_provided(kwargs)
firstresult = self.spec.opts.get("firstresult", False) if self.spec else False
# Copy because plugins may register other plugins during iteration (#438).
> return self._hookexec(self.name, self._hookimpls.copy(), kwargs, firstresult)
../pluggy/_hooks.py:513:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <_pytest.config.PytestPluginManager object at 0x7f4a62692c60>
hook_name = 'pytest_runtest_call'
methods = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/home/runner/miniconda3/envs/test/lib/python3.1...945c0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f4a55fbe8d0>>, ...]
kwargs = {'item': <DoctestItem obspy.clients.iris.client.Client.sacpz>}
firstresult = False
def _hookexec(
self,
hook_name: str,
methods: Sequence[HookImpl],
kwargs: Mapping[str, object],
firstresult: bool,
) -> object | list[object]:
# called from all hookcaller instances.
# enable_tracing will set its own wrapping function at self._inner_hookexec
> return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
../pluggy/_manager.py:120:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook_name = 'pytest_runtest_call'
hook_impls = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/home/runner/miniconda3/envs/test/lib/python3.1...945c0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f4a55fbe8d0>>, ...]
caller_kwargs = {'item': <DoctestItem obspy.clients.iris.client.Client.sacpz>}
firstresult = False
def _multicall(
hook_name: str,
hook_impls: Sequence[HookImpl],
caller_kwargs: Mapping[str, object],
firstresult: bool,
) -> object | list[object]:
"""Execute a call into multiple python functions/methods and return the
result(s).
``caller_kwargs`` comes from HookCaller.__call__().
"""
__tracebackhide__ = True
results: list[object] = []
exception = None
only_new_style_wrappers = True
try: # run impl and wrapper setup functions in a loop
teardowns: list[Teardown] = []
try:
for hook_impl in reversed(hook_impls):
try:
args = [caller_kwargs[argname] for argname in hook_impl.argnames]
except KeyError:
for argname in hook_impl.argnames:
if argname not in caller_kwargs:
raise HookCallError(
f"hook call must provide argument {argname!r}"
)
if hook_impl.hookwrapper:
only_new_style_wrappers = False
try:
# If this cast is not valid, a type error is raised below,
# which is the desired response.
res = hook_impl.function(*args)
wrapper_gen = cast(Generator[None, Result[object], None], res)
next(wrapper_gen) # first yield
teardowns.append((wrapper_gen, hook_impl))
except StopIteration:
_raise_wrapfail(wrapper_gen, "did not yield")
elif hook_impl.wrapper:
try:
# If this cast is not valid, a type error is raised below,
# which is the desired response.
res = hook_impl.function(*args)
function_gen = cast(Generator[None, object, object], res)
next(function_gen) # first yield
teardowns.append(function_gen)
except StopIteration:
_raise_wrapfail(function_gen, "did not yield")
else:
res = hook_impl.function(*args)
if res is not None:
results.append(res)
if firstresult: # halt further impl calls
break
except BaseException as exc:
exception = exc
finally:
# Fast path - only new-style wrappers, no Result.
if only_new_style_wrappers:
if firstresult: # first result hooks return a single value
result = results[0] if results else None
else:
result = results
# run all wrapper post-yield blocks
for teardown in reversed(teardowns):
try:
if exception is not None:
teardown.throw(exception) # type: ignore[union-attr]
else:
teardown.send(result) # type: ignore[union-attr]
# Following is unreachable for a well behaved hook wrapper.
# Try to force finalizers otherwise postponed till GC action.
# Note: close() may raise if generator handles GeneratorExit.
teardown.close() # type: ignore[union-attr]
except StopIteration as si:
result = si.value
exception = None
continue
except BaseException as e:
exception = e
continue
_raise_wrapfail(teardown, "has second yield") # type: ignore[arg-type]
if exception is not None:
raise exception.with_traceback(exception.__traceback__)
else:
return result
# Slow path - need to support old-style wrappers.
else:
if firstresult: # first result hooks return a single value
outcome: Result[object | list[object]] = Result(
results[0] if results else None, exception
)
else:
outcome = Result(results, exception)
# run all wrapper post-yield blocks
for teardown in reversed(teardowns):
if isinstance(teardown, tuple):
try:
teardown[0].send(outcome)
except StopIteration:
pass
except BaseException as e:
_warn_teardown_exception(hook_name, teardown[1], e)
raise
else:
_raise_wrapfail(teardown[0], "has second yield")
else:
try:
if outcome._exception is not None:
teardown.throw(outcome._exception)
else:
teardown.send(outcome._result)
# Following is unreachable for a well behaved hook wrapper.
# Try to force finalizers otherwise postponed till GC action.
# Note: close() may raise if generator handles GeneratorExit.
teardown.close()
except StopIteration as si:
outcome.force_result(si.value)
continue
except BaseException as e:
outcome.force_exception(e)
continue
_raise_wrapfail(teardown, "has second yield")
> return outcome.get_result()
../pluggy/_callers.py:182:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <pluggy._result.Result object at 0x7f4a5334fc70>
def get_result(self) -> ResultType:
"""Get the result(s) for this hook call.
If the hook was marked as a ``firstresult`` only a single value
will be returned, otherwise a list of results.
"""
__tracebackhide__ = True
exc = self._exception
if exc is None:
return cast(ResultType, self._result)
else:
> raise exc.with_traceback(exc.__traceback__)
../pluggy/_result.py:100:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook_name = 'pytest_runtest_call'
hook_impls = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/home/runner/miniconda3/envs/test/lib/python3.1...945c0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f4a55fbe8d0>>, ...]
caller_kwargs = {'item': <DoctestItem obspy.clients.iris.client.Client.sacpz>}
firstresult = False
def _multicall(
hook_name: str,
hook_impls: Sequence[HookImpl],
caller_kwargs: Mapping[str, object],
firstresult: bool,
) -> object | list[object]:
"""Execute a call into multiple python functions/methods and return the
result(s).
``caller_kwargs`` comes from HookCaller.__call__().
"""
__tracebackhide__ = True
results: list[object] = []
exception = None
only_new_style_wrappers = True
try: # run impl and wrapper setup functions in a loop
teardowns: list[Teardown] = []
try:
for hook_impl in reversed(hook_impls):
try:
args = [caller_kwargs[argname] for argname in hook_impl.argnames]
except KeyError:
for argname in hook_impl.argnames:
if argname not in caller_kwargs:
raise HookCallError(
f"hook call must provide argument {argname!r}"
)
if hook_impl.hookwrapper:
only_new_style_wrappers = False
try:
# If this cast is not valid, a type error is raised below,
# which is the desired response.
res = hook_impl.function(*args)
wrapper_gen = cast(Generator[None, Result[object], None], res)
next(wrapper_gen) # first yield
teardowns.append((wrapper_gen, hook_impl))
except StopIteration:
_raise_wrapfail(wrapper_gen, "did not yield")
elif hook_impl.wrapper:
try:
# If this cast is not valid, a type error is raised below,
# which is the desired response.
res = hook_impl.function(*args)
function_gen = cast(Generator[None, object, object], res)
next(function_gen) # first yield
teardowns.append(function_gen)
except StopIteration:
_raise_wrapfail(function_gen, "did not yield")
else:
res = hook_impl.function(*args)
if res is not None:
results.append(res)
if firstresult: # halt further impl calls
break
except BaseException as exc:
exception = exc
finally:
# Fast path - only new-style wrappers, no Result.
if only_new_style_wrappers:
if firstresult: # first result hooks return a single value
result = results[0] if results else None
else:
result = results
# run all wrapper post-yield blocks
for teardown in reversed(teardowns):
try:
if exception is not None:
teardown.throw(exception) # type: ignore[union-attr]
else:
teardown.send(result) # type: ignore[union-attr]
# Following is unreachable for a well behaved hook wrapper.
# Try to force finalizers otherwise postponed till GC action.
# Note: close() may raise if generator handles GeneratorExit.
teardown.close() # type: ignore[union-attr]
except StopIteration as si:
result = si.value
exception = None
continue
except BaseException as e:
exception = e
continue
_raise_wrapfail(teardown, "has second yield") # type: ignore[arg-type]
if exception is not None:
raise exception.with_traceback(exception.__traceback__)
else:
return result
# Slow path - need to support old-style wrappers.
else:
if firstresult: # first result hooks return a single value
outcome: Result[object | list[object]] = Result(
results[0] if results else None, exception
)
else:
outcome = Result(results, exception)
# run all wrapper post-yield blocks
for teardown in reversed(teardowns):
if isinstance(teardown, tuple):
try:
teardown[0].send(outcome)
except StopIteration:
pass
except BaseException as e:
_warn_teardown_exception(hook_name, teardown[1], e)
raise
else:
_raise_wrapfail(teardown[0], "has second yield")
else:
try:
if outcome._exception is not None:
> teardown.throw(outcome._exception)
../pluggy/_callers.py:167:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@pytest.hookimpl(wrapper=True, tryfirst=True)
def pytest_runtest_call() -> Generator[None, None, None]:
> yield from thread_exception_runtest_hook()
../_pytest/threadexception.py:87:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def thread_exception_runtest_hook() -> Generator[None, None, None]:
with catch_threading_exception() as cm:
try:
> yield
../_pytest/threadexception.py:63:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
hook_name = 'pytest_runtest_call'
hook_impls = [<HookImpl plugin_name='runner', plugin=<module '_pytest.runner' from '/home/runner/miniconda3/envs/test/lib/python3.1...945c0>>, <HookImpl plugin_name='logging-plugin', plugin=<_pytest.logging.LoggingPlugin object at 0x7f4a55fbe8d0>>, ...]
caller_kwargs = {'item': <DoctestItem obspy.clients.iris.client.Client.sacpz>}
firstresult = False
def _multicall(
hook_name: str,
hook_impls: Sequence[HookImpl],
caller_kwargs: Mapping[str, object],
firstresult: bool,
) -> object | list[object]:
"""Execute a call into multiple python functions/methods and return the
result(s).
``caller_kwargs`` comes from HookCaller.__call__().
"""
__tracebackhide__ = True
results: list[object] = []
exception = None
only_new_style_wrappers = True
try: # run impl and wrapper setup functions in a loop
teardowns: list[Teardown] = []
try:
for hook_impl in reversed(hook_impls):
try:
args = [caller_kwargs[argname] for argname in hook_impl.argnames]
except KeyError:
for argname in hook_impl.argnames:
if argname not in caller_kwargs:
raise HookCallError(
f"hook call must provide argument {argname!r}"
)
if hook_impl.hookwrapper:
only_new_style_wrappers = False
try:
# If this cast is not valid, a type error is raised below,
# which is the desired response.
res = hook_impl.function(*args)
wrapper_gen = cast(Generator[None, Result[object], None], res)
next(wrapper_gen) # first yield
teardowns.append((wrapper_gen, hook_impl))
except StopIteration:
_raise_wrapfail(wrapper_gen, "did not yield")
elif hook_impl.wrapper:
try:
# If this cast is not valid, a type error is raised below,
# which is the desired response.
res = hook_impl.function(*args)
function_gen = cast(Generator[None, object, object], res)
next(function_gen) # first yield
teardowns.append(function_gen)
except StopIteration:
_raise_wrapfail(function_gen, "did not yield")
else:
res = hook_impl.function(*args)
if res is not None:
results.append(res)
if firstresult: # halt further impl calls
break
except BaseException as exc:
exception = exc
finally:
# Fast path - only new-style wrappers, no Result.
if only_new_style_wrappers:
if firstresult: # first result hooks return a single value
result = results[0] if results else None
else:
result = results
# run all wrapper post-yield blocks
for teardown in reversed(teardowns):
try:
if exception is not None:
teardown.throw(exception) # type: ignore[union-attr]
else:
teardown.send(result) # type: ignore[union-attr]
# Following is unreachable for a well behaved hook wrapper.
# Try to force finalizers otherwise postponed till GC action.
# Note: close() may raise if generator handles GeneratorExit.
teardown.close() # type: ignore[union-attr]
except StopIteration as si:
result = si.value
exception = None
continue
except BaseException as e:
exception = e
continue
_raise_wrapfail(teardown, "has second yield") # type: ignore[arg-type]
if exception is not None:
raise exception.with_traceback(exception.__traceback__)
else:
return result
# Slow path - need to support old-style wrappers.
else:
if firstresult: # first result hooks return a single value
outcome: Result[object | list[object]] = Result(
results[0] if results else None, exception
)
else:
outcome = Result(results, exception)
# run all wrapper post-yield blocks
for teardown in reversed(teardowns):
if isinstance(teardown, tuple):
try:
teardown[0].send(outcome)
except StopIteration:
pass
except BaseException as e:
_warn_teardown_exception(hook_name, teardown[1], e)
raise
else:
_raise_wrapfail(teardown[0], "has second yield")
else:
try:
if outcome._exception is not None:
teardown.throw(outcome._exception)
else:
> teardown.send(outcome._result)
../pluggy/_callers.py:169:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
@pytest.hookimpl(wrapper=True, tryfirst=True)
def pytest_runtest_call() -> Generator[None, None, None]:
> yield from unraisable_exception_runtest_hook()
../_pytest/unraisableexception.py:90:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
def unraisable_exception_runtest_hook() -> Generator[None, None, None]:
with catch_unraisable_exception() as cm:
try:
yield
finally:
if cm.unraisable:
if cm.unraisable.err_msg is not None:
err_msg = cm.unraisable.err_msg
else:
err_msg = "Exception ignored in"
msg = f"{err_msg}: {cm.unraisable.object!r}\n\n"
msg += "".join(
traceback.format_exception(
cm.unraisable.exc_type,
cm.unraisable.exc_value,
cm.unraisable.exc_traceback,
)
)
> warnings.warn(pytest.PytestUnraisableExceptionWarning(msg))
E pytest.PytestUnraisableExceptionWarning: Exception ignored in: <socket.socket [closed] fd=-1, family=2, type=1, proto=6>
E
E Traceback (most recent call last):
E File "/home/runner/miniconda3/envs/test/lib/python3.12/doctest.py", line 1361, in __run
E exec(compile(example.source, filename, "single",
E ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
E ResourceWarning: unclosed <socket.socket [closed] fd=13, family=2, type=1, proto=6>
../_pytest/unraisableexception.py:80: PytestUnraisableExceptionWarning

Skipped tests (5)

Submodule Test Skip message
clients.fdsn clients/fdsn/tests/test_client.py::TestClient::test_trim_stream_after_get_waveform Skipped: data no longer available
clients.fdsn clients/fdsn/tests/test_client.py::TestClient::test_eida_token_resolution Skipped: Token is expired
clients.seedlink clients/seedlink/tests/test_slclient.py::TestSLClient::test_info Skipped: test must be started manually
clients.seedlink clients/seedlink/tests/test_slclient.py::TestSLClient::test_time_window Skipped: test must be started manually
clients.seedlink clients/seedlink/tests/test_slclient.py::TestSLClient::test_issue708 Skipped: test must be started manually

Slowest tests (20)

Runtime Test
46.461s clients/fdsn/mass_downloader/__init__.py::obspy.clients.fdsn.mass_downloader
23.773s clients/fdsn/tests/test_eidaws_routing_client.py::TestEIDAWSRoutingClient::test_get_waveforms_integration_test
11.192s clients/fdsn/tests/test_client.py::TestClient::test_irisph5_event
8.687s clients/syngine/tests/test_client.py::TestClient::test_get_available_models
7.210s clients/fdsn/tests/test_client.py::TestClient::test_dataselect_bulk
5.314s clients/iris/tests/test_client.py::TestClient::test_sacpz
4.993s clients/seedlink/basic_client.py::obspy.clients.seedlink.basic_client.Client.get_waveforms
4.847s clients/fdsn/tests/test_client.py::TestClient::test_iris_example_queries_dataselect
4.570s clients/seedlink/tests/test_basic_client.py::TestClient::test_multiple_waveform_requests_with_multiple_info_requests
4.234s clients/fdsn/tests/test_client.py::TestClient::test_iris_example_queries_dataselect_discover_services_false
3.930s clients/fdsn/tests/test_eidaws_routing_client.py::TestEIDAWSRoutingClient::test_get_stations_integration_test
3.246s clients/syngine/tests/test_client.py::TestClient::test_get_waveforms
2.531s clients/syngine/__init__.py::obspy.clients.syngine
2.490s clients/fdsn/tests/test_federator_routing_client.py::TestFederatorRoutingClient::test_get_waveforms_integration_test
2.482s clients/fdsn/client.py::obspy.clients.fdsn.client.Client.get_waveforms_bulk
2.316s clients/fdsn/client.py::obspy.clients.fdsn.client.Client.get_waveforms
2.259s clients/fdsn/__init__.py::obspy.clients.fdsn
2.251s core/tests/test_stream.py::TestStream::test_read_url_via_network
1.832s clients/fdsn/tests/test_client.py::TestClient::test_redirection
1.808s clients/seedlink/basic_client.py::obspy.clients.seedlink.basic_client.Client.get_info