-
-
Notifications
You must be signed in to change notification settings - Fork 934
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
BUG 1.0.0: pytest fails #3359
Comments
Here is pytest output:+ PYTHONPATH=/home/tkloczko/rpmbuild/BUILDROOT/python-geopandas-1.0.0~no_loopy_deps-2.fc37.x86_64/usr/lib64/python3.10/site-packages:/home/tkloczko/rpmbuild/BUILDROOT/python-geopandas-1.0.0~no_loopy_deps-2.fc37.x86_64/usr/lib/python3.10/site-packages
+ /usr/bin/pytest -ra -m 'not network'
============================= test session starts ==============================
platform linux -- Python 3.10.14, pytest-8.2.2, pluggy-1.5.0
rootdir: /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0
configfile: pyproject.toml
collected 2338 items / 4 skipped
geopandas/io/tests/test_file.py .......sssssss.......sssssss.......sssss [ 1%]
ssss....ssss....ssssssssssssss..ss..ss........sssssss.......sssssss.s... [ 4%]
.....ssssssss.......sssssss.s.s.s.s.s.......sssssss.s..x...xsssssss.s... [ 7%]
.ssss.s.s.s.s.s.s.sssss.s.sss.s.s.s.s.s.s.s.s.s.s.s.s.s.s.ss.s.s..ss..ss [ 10%]
.s.s.s.s.s.s..ss.s..sss.s..ss.ss.ss [ 12%]
geopandas/io/tests/test_file_geom_types_drivers.py .s.s.s.s.s.s.s.s.s.s. [ 13%]
s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s.s. [ 16%]
s.s.s.s.s.s.s.s.s.s [ 17%]
geopandas/io/tests/test_infer_schema.py ....................... [ 18%]
geopandas/io/tests/test_pickle.py sss. [ 18%]
geopandas/io/tests/test_sql.py ssssssss..sssssssssssssssssssssssss [ 19%]
geopandas/tests/test_api.py . [ 19%]
geopandas/tests/test_array.py .......................................... [ 21%]
........................................................s.....ss..... [ 24%]
geopandas/tests/test_compat.py ......... [ 25%]
geopandas/tests/test_config.py ... [ 25%]
geopandas/tests/test_crs.py ............................................ [ 27%]
.............................. [ 28%]
geopandas/tests/test_datasets.py .... [ 28%]
geopandas/tests/test_decorator.py .... [ 28%]
geopandas/tests/test_dissolve.py .....s............ [ 29%]
geopandas/tests/test_extension_array.py ................................ [ 30%]
........................................................................ [ 33%]
xx....................................................x................. [ 36%]
.................................................................sssssss [ 40%]
ssssssssssssss.......................................................... [ 43%]
..................ss............................................ss...... [ 46%]
.....................................................ssssssssss.......s. [ 49%]
.....................ss [ 50%]
geopandas/tests/test_geodataframe.py ................................... [ 51%]
........................................................................ [ 54%]
............ [ 55%]
geopandas/tests/test_geom_methods.py ................................... [ 56%]
........................................................................ [ 59%]
.............................sss.................. [ 62%]
geopandas/tests/test_geoseries.py ...................................... [ 63%]
........s........................... [ 65%]
geopandas/tests/test_merge.py ........ [ 65%]
geopandas/tests/test_op_output_types.py .....x.......................... [ 66%]
. [ 67%]
geopandas/tests/test_overlay.py ........................s.............s. [ 68%]
........................................................................ [ 71%]
............... [ 72%]
geopandas/tests/test_pandas_methods.py ..............................XX. [ 73%]
................. [ 74%]
geopandas/tests/test_plotting.py ....................................... [ 76%]
................s.s...sssssssssssssss.........FF......FFFFFFFFFFF.F... [ 79%]
geopandas/tests/test_show_versions.py .... [ 79%]
geopandas/tests/test_sindex.py .....s...........s....................... [ 81%]
.................................s.......x.............................. [ 84%]
.........x........................................... [ 86%]
geopandas/tests/test_testing.py ........ [ 86%]
geopandas/tests/test_types.py ............... [ 87%]
geopandas/tools/tests/test_clip.py ..................................... [ 89%]
.................................................... [ 91%]
geopandas/tools/tests/test_hilbert_curve.py ...... [ 91%]
geopandas/tools/tests/test_random.py .......... [ 92%]
geopandas/tools/tests/test_sjoin.py .................................... [ 93%]
........................................................................ [ 96%]
..............xs....................................................... [ 99%]
geopandas/tools/tests/test_tools.py ........ [100%]
=================================== FAILURES ===================================
________________ TestGeoplotAccessor.test_pandas_kind[png-kde] _________________
ext = 'png', request = <FixtureRequest for <Function test_pandas_kind[png-kde]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0d780>,)
kwargs = {'kind': 'kde'}, file_name = 'test_pandas_kind[png-kde]'
fig_test = <Figure size 640x480 with 0 Axes>
fig_ref = <Figure size 640x480 with 0 Axes>
figs = [<Figure size 640x480 with 1 Axes>]
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
> raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
E RuntimeError: Number of open figures changed during test. Make sure you are plotting to fig_test or fig_ref, or if this is deliberate explicitly close the new figure(s) inside the test.
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:413: RuntimeError
______________ TestGeoplotAccessor.test_pandas_kind[png-density] _______________
ext = 'png'
request = <FixtureRequest for <Function test_pandas_kind[png-density]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0d840>,)
kwargs = {'kind': 'density'}, file_name = 'test_pandas_kind[png-density]'
fig_test = <Figure size 640x480 with 0 Axes>
fig_ref = <Figure size 640x480 with 0 Axes>
figs = [<Figure size 640x480 with 1 Axes>]
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
> raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
E RuntimeError: Number of open figures changed during test. Make sure you are plotting to fig_test or fig_ref, or if this is deliberate explicitly close the new figure(s) inside the test.
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:413: RuntimeError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-line] ________________
ext = 'pdf'
request = <FixtureRequest for <Function test_pandas_kind[pdf-line]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0dd80>,)
kwargs = {'kind': 'line'}, file_name = 'test_pandas_kind[pdf-line]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-line].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-line]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-line].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-line]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
> raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
E OSError: Failed to start Ghostscript:
E
E GPL Ghostscript 10.03.1 (2024-05-02)
E Copyright (C) 2024 Artifex Software, Inc. All rights reserved.
E This software is supplied under the GNU AGPLv3 and comes with NO WARRANTY:
E see the file COPYING for details.
E While reading gs_ll3.ps:
E Error: /undefinedfilename in --resourceforall--
E Operand stack: (gs_icc.ps\000gs_mex_e.ps\000gs_mro_e.ps\000gs_pdf_e.ps\000gs_wan_e.ps\000pdf_main.ps\000gs_cff.ps\000gs_mgl_e.ps\000gs_ttf.ps\000gs_epsf.ps\000gs_pdfwr.ps) (gs_ll3.ps) 1 --nostringval-- --nostringval-- 9 --nostringval-- 37 (%{datadir}/fonts/urw-base35/IdiomSet/*) --nostringval-- (/usr/share/ghostscript/Resource/ProcSet/CIDInit\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000...)
E Execution stack: %interp_exit --nostringval-- resourceforall %loop_continue resourceforall resourceforall resourceforall false 1 %stopped_push --nostringval-- 1876 7 5 %oparray_pop resourceforall resourceforall 10 2 13 resourceforall %for_pos_int_continue resourceforall
E Dictionary stack: --dict:928/1123(G)-- --dict:0/20(G)-- --dict:82/200(L)-- --dict:928/1123(G)-- --dict:34/43(G)-- --dict:16/18(ro)(G)--
E Current allocation mode is global
E Last OS error: No such file or directoryCurrent file position is 19214
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:112: OSError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-bar] _________________
ext = 'pdf', request = <FixtureRequest for <Function test_pandas_kind[pdf-bar]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0de40>,)
kwargs = {'kind': 'bar'}, file_name = 'test_pandas_kind[pdf-bar]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-bar].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-bar]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-bar].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-bar]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-barh] ________________
ext = 'pdf'
request = <FixtureRequest for <Function test_pandas_kind[pdf-barh]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0df00>,)
kwargs = {'kind': 'barh'}, file_name = 'test_pandas_kind[pdf-barh]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-barh].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-barh]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-barh].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-barh]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-kde] _________________
ext = 'pdf', request = <FixtureRequest for <Function test_pandas_kind[pdf-kde]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0dfc0>,)
kwargs = {'kind': 'kde'}, file_name = 'test_pandas_kind[pdf-kde]'
fig_test = <Figure size 640x480 with 0 Axes>
fig_ref = <Figure size 640x480 with 0 Axes>
figs = [<Figure size 640x480 with 1 Axes>]
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
> raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
E RuntimeError: Number of open figures changed during test. Make sure you are plotting to fig_test or fig_ref, or if this is deliberate explicitly close the new figure(s) inside the test.
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:413: RuntimeError
______________ TestGeoplotAccessor.test_pandas_kind[pdf-density] _______________
ext = 'pdf'
request = <FixtureRequest for <Function test_pandas_kind[pdf-density]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0e080>,)
kwargs = {'kind': 'density'}, file_name = 'test_pandas_kind[pdf-density]'
fig_test = <Figure size 640x480 with 0 Axes>
fig_ref = <Figure size 640x480 with 0 Axes>
figs = [<Figure size 640x480 with 1 Axes>]
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
> raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
E RuntimeError: Number of open figures changed during test. Make sure you are plotting to fig_test or fig_ref, or if this is deliberate explicitly close the new figure(s) inside the test.
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:413: RuntimeError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-area] ________________
ext = 'pdf'
request = <FixtureRequest for <Function test_pandas_kind[pdf-area]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7bd95a0>,)
kwargs = {'kind': 'area'}, file_name = 'test_pandas_kind[pdf-area]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-area].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-area]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-area].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-area]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-hist] ________________
ext = 'pdf'
request = <FixtureRequest for <Function test_pandas_kind[pdf-hist]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7bf2860>,)
kwargs = {'kind': 'hist'}, file_name = 'test_pandas_kind[pdf-hist]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hist].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hist]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hist].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hist]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-box] _________________
ext = 'pdf', request = <FixtureRequest for <Function test_pandas_kind[pdf-box]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0ca90>,)
kwargs = {'kind': 'box'}, file_name = 'test_pandas_kind[pdf-box]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-box].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-box]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-box].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-box]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
________________ TestGeoplotAccessor.test_pandas_kind[pdf-pie] _________________
ext = 'pdf', request = <FixtureRequest for <Function test_pandas_kind[pdf-pie]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0c6d0>,)
kwargs = {'kind': 'pie'}, file_name = 'test_pandas_kind[pdf-pie]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-pie].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-pie]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-pie].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-pie]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
______________ TestGeoplotAccessor.test_pandas_kind[pdf-scatter] _______________
ext = 'pdf'
request = <FixtureRequest for <Function test_pandas_kind[pdf-scatter]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0c2b0>,)
kwargs = {'kind': 'scatter'}, file_name = 'test_pandas_kind[pdf-scatter]'
fig_test = <Figure size 640x480 with 2 Axes>
fig_ref = <Figure size 640x480 with 2 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-scatter].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-scatter]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-scatter].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-scatter]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
_______________ TestGeoplotAccessor.test_pandas_kind[pdf-hexbin] _______________
ext = 'pdf'
request = <FixtureRequest for <Function test_pandas_kind[pdf-hexbin]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0c040>,)
kwargs = {'kind': 'hexbin'}, file_name = 'test_pandas_kind[pdf-hexbin]'
fig_test = <Figure size 640x480 with 4 Axes>
fig_ref = <Figure size 640x480 with 4 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hexbin].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hexbin]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hexbin].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_pandas_kind[pdf-hexbin]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
____________________ TestGeoplotAccessor.test_geo_kind[pdf] ____________________
ext = 'pdf', request = <FixtureRequest for <Function test_geo_kind[pdf]>>
args = (<geopandas.tests.test_plotting.TestGeoplotAccessor object at 0x7fb9f7c0e470>,)
kwargs = {}, file_name = 'test_geo_kind[pdf]'
fig_test = <Figure size 640x480 with 1 Axes>
fig_ref = <Figure size 640x480 with 1 Axes>, figs = []
test_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_geo_kind[pdf].pdf')
ref_image_path = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_geo_kind[pdf]-expected.pdf')
@pytest.mark.parametrize("ext", extensions)
def wrapper(*args, ext, request, **kwargs):
if 'ext' in old_sig.parameters:
kwargs['ext'] = ext
if 'request' in old_sig.parameters:
kwargs['request'] = request
file_name = "".join(c for c in request.node.name
if c in ALLOWED_CHARS)
try:
fig_test = plt.figure("test")
fig_ref = plt.figure("reference")
with _collect_new_figures() as figs:
func(*args, fig_test=fig_test, fig_ref=fig_ref, **kwargs)
if figs:
raise RuntimeError('Number of open figures changed during '
'test. Make sure you are plotting to '
'fig_test or fig_ref, or if this is '
'deliberate explicitly close the '
'new figure(s) inside the test.')
test_image_path = result_dir / (file_name + "." + ext)
ref_image_path = result_dir / (file_name + "-expected." + ext)
fig_test.savefig(test_image_path)
fig_ref.savefig(ref_image_path)
> _raise_on_image_difference(
ref_image_path, test_image_path, tol=tol
)
/usr/lib64/python3.10/site-packages/matplotlib/testing/decorators.py:422:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:447: in compare_images
actual = convert(actual, cache=True)
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:312: in convert
convert(path, newpath)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>
orig = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_geo_kind[pdf].pdf')
dest = PosixPath('/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/result_images/test_plotting/test_geo_kind[pdf]_pdf.png')
def __call__(self, orig, dest):
if not self._proc:
self._proc = subprocess.Popen(
[mpl._get_executable_info("gs").executable,
"-dNOSAFER", "-dNOPAUSE", "-dEPSCrop", "-sDEVICE=png16m"],
# As far as I can see, ghostscript never outputs to stderr.
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
try:
self._read_until(b"\nGS")
except _ConverterError as e:
raise OSError(f"Failed to start Ghostscript:\n\n{e.args[0]}") from None
def encode_and_escape(name):
return (os.fsencode(name)
.replace(b"\\", b"\\\\")
.replace(b"(", br"\(")
.replace(b")", br"\)"))
self._proc.stdin.write(
b"<< /OutputFile ("
+ encode_and_escape(dest)
+ b") >> setpagedevice ("
+ encode_and_escape(orig)
+ b") run flush\n")
> self._proc.stdin.flush()
E BrokenPipeError: [Errno 32] Broken pipe
/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py:126: BrokenPipeError
================================== XFAILURES ===================================
_______________________ test_empty_crs[fiona-GPKG-.gpkg] _______________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-279/test_empty_crs_fiona_GPKG__gpk0')
driver = 'GPKG', ext = '.gpkg', engine = 'fiona'
@pytest.mark.filterwarnings("ignore:'crs' was not provided:UserWarning:pyogrio")
@pytest.mark.parametrize("driver,ext", driver_ext_pairs)
def test_empty_crs(tmpdir, driver, ext, engine):
"""Test handling of undefined CRS with GPKG driver (GH #1975)."""
if ext == ".gpkg":
> pytest.xfail("GPKG is read with Undefined geographic SRS.")
E _pytest.outcomes.XFailed: GPKG is read with Undefined geographic SRS.
geopandas/io/tests/test_file.py:553: XFailed
_______________________ test_empty_crs[fiona-None-.gpkg] _______________________
tmpdir = local('/tmp/pytest-of-tkloczko/pytest-279/test_empty_crs_fiona_None__gpk0')
driver = None, ext = '.gpkg', engine = 'fiona'
@pytest.mark.filterwarnings("ignore:'crs' was not provided:UserWarning:pyogrio")
@pytest.mark.parametrize("driver,ext", driver_ext_pairs)
def test_empty_crs(tmpdir, driver, ext, engine):
"""Test handling of undefined CRS with GPKG driver (GH #1975)."""
if ext == ".gpkg":
> pytest.xfail("GPKG is read with Undefined geographic SRS.")
E _pytest.outcomes.XFailed: GPKG is read with Undefined geographic SRS.
geopandas/io/tests/test_file.py:553: XFailed
______ TestGetitem.test_getitem_series_integer_with_missing_raises[list] _______
self = <geopandas.tests.test_extension_array.TestGetitem object at 0x7fb9fd6f5150>
data = <GeometryArray>
[ <POINT (0 0)>, <POINT (1 1)>, <POINT (2 2)>, <POINT (3 3)>,
<POINT (4 4)>, <POINT (5 5)>...4)>, <POINT (95 95)>,
<POINT (96 96)>, <POINT (97 97)>, <POINT (98 98)>, <POINT (99 99)>]
Length: 100, dtype: geometry
idx = [0, 1, 2, <NA>]
@pytest.mark.xfail(
reason="Tries label-based and raises KeyError; "
"in some cases raises when calling np.asarray"
)
@pytest.mark.parametrize(
"idx",
[[0, 1, 2, pd.NA], pd.array([0, 1, 2, pd.NA], dtype="Int64")],
ids=["list", "integer-array"],
)
def test_getitem_series_integer_with_missing_raises(self, data, idx):
msg = "Cannot index with an integer indexer containing NA values"
# TODO: this raises KeyError about labels not found (it tries label-based)
ser = pd.Series(data, index=[chr(100 + i) for i in range(len(data))])
with pytest.raises(ValueError, match=msg):
> ser[idx]
/usr/lib64/python3.10/site-packages/pandas/tests/extension/base/getitem.py:276:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1144: in __getitem__
return self._get_with(key)
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1185: in _get_with
return self.loc[key]
/usr/lib64/python3.10/site-packages/pandas/core/indexing.py:1191: in __getitem__
return self._getitem_axis(maybe_callable, axis=axis)
/usr/lib64/python3.10/site-packages/pandas/core/indexing.py:1420: in _getitem_axis
return self._getitem_iterable(key, axis=axis)
/usr/lib64/python3.10/site-packages/pandas/core/indexing.py:1360: in _getitem_iterable
keyarr, indexer = self._get_listlike_indexer(key, axis)
/usr/lib64/python3.10/site-packages/pandas/core/indexing.py:1558: in _get_listlike_indexer
keyarr, indexer = ax._get_indexer_strict(key, axis_name)
/usr/lib64/python3.10/site-packages/pandas/core/indexes/base.py:6200: in _get_indexer_strict
self._raise_if_missing(keyarr, indexer, axis_name)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Index(['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
'r', 's', 't', 'u', 'v', 'w', 'x',...',
'¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å',
'Æ', 'Ç'],
dtype='object')
key = Index([0, 1, 2, <NA>], dtype='object'), indexer = array([-1, -1, -1, -1])
axis_name = 'index'
def _raise_if_missing(self, key, indexer, axis_name: str_t) -> None:
"""
Check that indexer can be used to return a result.
e.g. at least one element was found,
unless the list of keys was actually empty.
Parameters
----------
key : list-like
Targeted labels (only used to show correct error message).
indexer: array-like of booleans
Indices corresponding to the key,
(with -1 indicating not found).
axis_name : str
Raises
------
KeyError
If at least one key was requested but none was found.
"""
if len(key) == 0:
return
# Count missing values
missing_mask = indexer < 0
nmissing = missing_mask.sum()
if nmissing:
if nmissing == len(indexer):
> raise KeyError(f"None of [{key}] are in the [{axis_name}]")
E KeyError: "None of [Index([0, 1, 2, <NA>], dtype='object')] are in the [index]"
/usr/lib64/python3.10/site-packages/pandas/core/indexes/base.py:6249: KeyError
__ TestGetitem.test_getitem_series_integer_with_missing_raises[integer-array] __
self = <geopandas.tests.test_extension_array.TestGetitem object at 0x7fb9fd6f4a60>
data = <GeometryArray>
[ <POINT (0 0)>, <POINT (1 1)>, <POINT (2 2)>, <POINT (3 3)>,
<POINT (4 4)>, <POINT (5 5)>...4)>, <POINT (95 95)>,
<POINT (96 96)>, <POINT (97 97)>, <POINT (98 98)>, <POINT (99 99)>]
Length: 100, dtype: geometry
idx = <IntegerArray>
[0, 1, 2, <NA>]
Length: 4, dtype: Int64
@pytest.mark.xfail(
reason="Tries label-based and raises KeyError; "
"in some cases raises when calling np.asarray"
)
@pytest.mark.parametrize(
"idx",
[[0, 1, 2, pd.NA], pd.array([0, 1, 2, pd.NA], dtype="Int64")],
ids=["list", "integer-array"],
)
def test_getitem_series_integer_with_missing_raises(self, data, idx):
msg = "Cannot index with an integer indexer containing NA values"
# TODO: this raises KeyError about labels not found (it tries label-based)
ser = pd.Series(data, index=[chr(100 + i) for i in range(len(data))])
with pytest.raises(ValueError, match=msg):
> ser[idx]
/usr/lib64/python3.10/site-packages/pandas/tests/extension/base/getitem.py:276:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1144: in __getitem__
return self._get_with(key)
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1182: in _get_with
return self.iloc[key]
/usr/lib64/python3.10/site-packages/pandas/core/indexing.py:1191: in __getitem__
return self._getitem_axis(maybe_callable, axis=axis)
/usr/lib64/python3.10/site-packages/pandas/core/indexing.py:1743: in _getitem_axis
return self._get_list_axis(key, axis=axis)
/usr/lib64/python3.10/site-packages/pandas/core/indexing.py:1714: in _get_list_axis
return self.obj._take_with_is_copy(key, axis=axis)
/usr/lib64/python3.10/site-packages/pandas/core/generic.py:4150: in _take_with_is_copy
result = self.take(indices=indices, axis=axis)
/usr/lib64/python3.10/site-packages/pandas/core/generic.py:4103: in take
indices = np.asarray(indices, dtype=np.intp)
/usr/lib64/python3.10/site-packages/pandas/core/arrays/masked.py:601: in __array__
return self.to_numpy(dtype=dtype)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = <IntegerArray>
[0, 1, 2, <NA>]
Length: 4, dtype: Int64
dtype = dtype('int64'), copy = False, na_value = <NA>
def to_numpy(
self,
dtype: npt.DTypeLike | None = None,
copy: bool = False,
na_value: object = lib.no_default,
) -> np.ndarray:
"""
Convert to a NumPy Array.
By default converts to an object-dtype NumPy array. Specify the `dtype` and
`na_value` keywords to customize the conversion.
Parameters
----------
dtype : dtype, default object
The numpy dtype to convert to.
copy : bool, default False
Whether to ensure that the returned value is a not a view on
the array. Note that ``copy=False`` does not *ensure* that
``to_numpy()`` is no-copy. Rather, ``copy=True`` ensure that
a copy is made, even if not strictly necessary. This is typically
only possible when no missing values are present and `dtype`
is the equivalent numpy dtype.
na_value : scalar, optional
Scalar missing value indicator to use in numpy array. Defaults
to the native missing value indicator of this array (pd.NA).
Returns
-------
numpy.ndarray
Examples
--------
An object-dtype is the default result
>>> a = pd.array([True, False, pd.NA], dtype="boolean")
>>> a.to_numpy()
array([True, False, <NA>], dtype=object)
When no missing values are present, an equivalent dtype can be used.
>>> pd.array([True, False], dtype="boolean").to_numpy(dtype="bool")
array([ True, False])
>>> pd.array([1, 2], dtype="Int64").to_numpy("int64")
array([1, 2])
However, requesting such dtype will raise a ValueError if
missing values are present and the default missing value :attr:`NA`
is used.
>>> a = pd.array([True, False, pd.NA], dtype="boolean")
>>> a
<BooleanArray>
[True, False, <NA>]
Length: 3, dtype: boolean
>>> a.to_numpy(dtype="bool")
Traceback (most recent call last):
...
ValueError: cannot convert to bool numpy array in presence of missing values
Specify a valid `na_value` instead
>>> a.to_numpy(dtype="bool", na_value=False)
array([ True, False, False])
"""
hasna = self._hasna
dtype, na_value = to_numpy_dtype_inference(self, dtype, na_value, hasna)
if dtype is None:
dtype = object
if hasna:
if (
dtype != object
and not is_string_dtype(dtype)
and na_value is libmissing.NA
):
> raise ValueError(
f"cannot convert to '{dtype}'-dtype NumPy array "
"with missing values. Specify an appropriate 'na_value' "
"for this dtype."
)
E ValueError: cannot convert to 'int64'-dtype NumPy array with missing values. Specify an appropriate 'na_value' for this dtype.
/usr/lib64/python3.10/site-packages/pandas/core/arrays/masked.py:513: ValueError
During handling of the above exception, another exception occurred:
self = <geopandas.tests.test_extension_array.TestGetitem object at 0x7fb9fd6f4a60>
data = <GeometryArray>
[ <POINT (0 0)>, <POINT (1 1)>, <POINT (2 2)>, <POINT (3 3)>,
<POINT (4 4)>, <POINT (5 5)>...4)>, <POINT (95 95)>,
<POINT (96 96)>, <POINT (97 97)>, <POINT (98 98)>, <POINT (99 99)>]
Length: 100, dtype: geometry
idx = <IntegerArray>
[0, 1, 2, <NA>]
Length: 4, dtype: Int64
@pytest.mark.xfail(
reason="Tries label-based and raises KeyError; "
"in some cases raises when calling np.asarray"
)
@pytest.mark.parametrize(
"idx",
[[0, 1, 2, pd.NA], pd.array([0, 1, 2, pd.NA], dtype="Int64")],
ids=["list", "integer-array"],
)
def test_getitem_series_integer_with_missing_raises(self, data, idx):
msg = "Cannot index with an integer indexer containing NA values"
# TODO: this raises KeyError about labels not found (it tries label-based)
ser = pd.Series(data, index=[chr(100 + i) for i in range(len(data))])
> with pytest.raises(ValueError, match=msg):
E AssertionError: Regex pattern did not match.
E Regex: 'Cannot index with an integer indexer containing NA values'
E Input: "cannot convert to 'int64'-dtype NumPy array with missing values. Specify an appropriate 'na_value' for this dtype."
/usr/lib64/python3.10/site-packages/pandas/tests/extension/base/getitem.py:275: AssertionError
_______ TestSetitem.test_setitem_integer_with_missing_raises[list-True] ________
self = Index(['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
'r', 's', 't', 'u', 'v', 'w', 'x',...',
'¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å',
'Æ', 'Ç'],
dtype='object')
key = [0, 1, 2, <NA>]
def get_loc(self, key):
"""
Get integer location, slice or boolean mask for requested label.
Parameters
----------
key : label
Returns
-------
int if unique index, slice if monotonic index, else mask
Examples
--------
>>> unique_index = pd.Index(list('abc'))
>>> unique_index.get_loc('b')
1
>>> monotonic_index = pd.Index(list('abbc'))
>>> monotonic_index.get_loc('b')
slice(1, 3, None)
>>> non_monotonic_index = pd.Index(list('abcb'))
>>> non_monotonic_index.get_loc('b')
array([False, True, False, True])
"""
casted_key = self._maybe_cast_indexer(key)
try:
> return self._engine.get_loc(casted_key)
/usr/lib64/python3.10/site-packages/pandas/core/indexes/base.py:3805:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
index.pyx:167: in pandas._libs.index.IndexEngine.get_loc
???
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
> ???
E TypeError: '[0, 1, 2, <NA>]' is an invalid key
index.pyx:173: TypeError
During handling of the above exception, another exception occurred:
self = d POINT (0 0)
e POINT (1 1)
f POINT (2 2)
g POINT (3 3)
h POINT (4 4)
...
à POINT (95 95)
Ä POINT (96 96)
Å POINT (97 97)
Æ POINT (98 98)
Ç POINT (99 99)
Length: 100, dtype: geometry
key = [0, 1, 2, <NA>], value = <POINT (0 0)>
def __setitem__(self, key, value) -> None:
warn = True
if not PYPY and using_copy_on_write():
if sys.getrefcount(self) <= 3:
warnings.warn(
_chained_assignment_msg, ChainedAssignmentError, stacklevel=2
)
elif not PYPY and not using_copy_on_write():
ctr = sys.getrefcount(self)
ref_count = 3
if not warn_copy_on_write() and _check_cacher(self):
# see https://github.com/pandas-dev/pandas/pull/56060#discussion_r1399245221
ref_count += 1
if ctr <= ref_count and (
warn_copy_on_write()
or (
not warn_copy_on_write()
and self._mgr.blocks[0].refs.has_reference() # type: ignore[union-attr]
)
):
warn = False
warnings.warn(
_chained_assignment_warning_msg, FutureWarning, stacklevel=2
)
check_dict_or_set_indexers(key)
key = com.apply_if_callable(key, self)
cacher_needs_updating = self._check_is_chained_assignment_possible()
if key is Ellipsis:
key = slice(None)
if isinstance(key, slice):
indexer = self.index._convert_slice_indexer(key, kind="getitem")
return self._set_values(indexer, value, warn=warn)
try:
> self._set_with_engine(key, value, warn=warn)
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1289:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1361: in _set_with_engine
loc = self.index.get_loc(key)
/usr/lib64/python3.10/site-packages/pandas/core/indexes/base.py:3817: in get_loc
self._check_indexing_error(key)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = Index(['d', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q',
'r', 's', 't', 'u', 'v', 'w', 'x',...',
'¸', '¹', 'º', '»', '¼', '½', '¾', '¿', 'À', 'Á', 'Â', 'Ã', 'Ä', 'Å',
'Æ', 'Ç'],
dtype='object')
key = [0, 1, 2, <NA>]
def _check_indexing_error(self, key):
if not is_scalar(key):
# if key is not a scalar, directly raise an error (the code below
# would convert to numpy arrays and raise later any way) - GH29926
> raise InvalidIndexError(key)
E pandas.errors.InvalidIndexError: [0, 1, 2, <NA>]
/usr/lib64/python3.10/site-packages/pandas/core/indexes/base.py:6059: InvalidIndexError
During handling of the above exception, another exception occurred:
self = <geopandas.tests.test_extension_array.TestSetitem object at 0x7fb9f8ef88e0>
data = <GeometryArray>
[ <POINT (0 0)>, <POINT (1 1)>, <POINT (2 2)>, <POINT (3 3)>,
<POINT (4 4)>, <POINT (5 5)>...4)>, <POINT (95 95)>,
<POINT (96 96)>, <POINT (97 97)>, <POINT (98 98)>, <POINT (99 99)>]
Length: 100, dtype: geometry
idx = [0, 1, 2, <NA>], box_in_series = True
@pytest.mark.parametrize(
"idx, box_in_series",
[
([0, 1, 2, pd.NA], False),
pytest.param(
[0, 1, 2, pd.NA], True, marks=pytest.mark.xfail(reason="GH-31948")
),
(pd.array([0, 1, 2, pd.NA], dtype="Int64"), False),
(pd.array([0, 1, 2, pd.NA], dtype="Int64"), False),
],
ids=["list-False", "list-True", "integer-array-False", "integer-array-True"],
)
def test_setitem_integer_with_missing_raises(self, data, idx, box_in_series):
arr = data.copy()
# TODO(xfail) this raises KeyError about labels not found (it tries label-based)
# for list of labels with Series
if box_in_series:
arr = pd.Series(data, index=[chr(100 + i) for i in range(len(data))])
msg = "Cannot index with an integer indexer containing NA values"
with pytest.raises(ValueError, match=msg):
> arr[idx] = arr[0]
/usr/lib64/python3.10/site-packages/pandas/tests/extension/base/setitem.py:227:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1355: in __setitem__
self._set_with(key, value, warn=warn)
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1396: in _set_with
self._set_labels(key, value, warn=warn)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
self = d POINT (0 0)
e POINT (1 1)
f POINT (2 2)
g POINT (3 3)
h POINT (4 4)
...
à POINT (95 95)
Ä POINT (96 96)
Å POINT (97 97)
Æ POINT (98 98)
Ç POINT (99 99)
Length: 100, dtype: geometry
key = array([0, 1, 2, <NA>], dtype=object), value = <POINT (0 0)>, warn = True
def _set_labels(self, key, value, warn: bool = True) -> None:
key = com.asarray_tuplesafe(key)
indexer: np.ndarray = self.index.get_indexer(key)
mask = indexer == -1
if mask.any():
> raise KeyError(f"{key[mask]} not in index")
E KeyError: '[0 1 2 <NA>] not in index'
/usr/lib64/python3.10/site-packages/pandas/core/series.py:1403: KeyError
____________________________ test_loc_add_row[geom] ____________________________
geom_name = 'geom'
nybb_filename = 'zip:///home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/tests/data/nybb_16a.zip'
@pytest.mark.parametrize(
"geom_name",
[
"geometry",
pytest.param(
"geom",
marks=pytest.mark.xfail(
reason="pre-regression behaviour only works for geometry col geometry"
),
),
],
)
def test_loc_add_row(geom_name, nybb_filename):
# https://github.com/geopandas/geopandas/issues/3119
nybb = geopandas.read_file(nybb_filename)[["BoroCode", "geometry"]]
if geom_name != "geometry":
nybb = nybb.rename_geometry(geom_name)
# crs_orig = nybb.crs
# add a new row
nybb.loc[5] = [6, nybb.geometry.iloc[0]]
> assert nybb.geometry.dtype == "geometry"
E AssertionError: assert dtype('O') == 'geometry'
E + where dtype('O') = 0 MULTIPOLYGON (((970217.0223999023 145643.33221...\n1 MULTIPOLYGON (((1029606.0765991211 156073.8142...\n2 MUL...N (((1012821.8057861328 229228.2645...\n5 MULTIPOLYGON (((970217.0223999023 145643.33221...\nName: geom, dtype: object.dtype
E + where 0 MULTIPOLYGON (((970217.0223999023 145643.33221...\n1 MULTIPOLYGON (((1029606.0765991211 156073.8142...\n2 MUL...N (((1012821.8057861328 229228.2645...\n5 MULTIPOLYGON (((970217.0223999023 145643.33221...\nName: geom, dtype: object = BoroCode geom\n0 5 MULTIPOLYGON (((970217.0223999023 145643.3... 2 MULTIPOLYGON (((1012821.8057861328 229228.2645...\n5 6 MULTIPOLYGON (((970217.0223999023 145643.33221....geometry
geopandas/tests/test_op_output_types.py:172: AssertionError
___________ TestShapelyInterface.test_query_sorting[False-expected1] ___________
self = <geopandas.tests.test_sindex.TestShapelyInterface object at 0x7fb9f7b29510>
sort = False, expected = [0, 1, 2]
@pytest.mark.parametrize(
"sort, expected",
(
(True, [[0, 0, 0], [0, 1, 2]]),
# False could be anything, at least we'll know if it changes
(False, [[0, 0, 0], [0, 1, 2]]),
),
)
def test_query_sorting(self, sort, expected):
"""Check that results from `query` don't depend on the
order of geometries.
"""
# these geometries come from a reported issue:
# https://github.com/geopandas/geopandas/issues/1337
# there is no theoretical reason they were chosen
test_polys = GeoSeries([Polygon([(1, 1), (3, 1), (3, 3), (1, 3)])])
tree_polys = GeoSeries(
[
Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]),
Polygon([(-1, 1), (1, 1), (1, 3), (-1, 3)]),
Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]),
]
)
expected = [0, 1, 2]
test_geo = test_polys.values[0]
res = tree_polys.sindex.query(test_geo, sort=sort)
# asserting the same elements
assert sorted(res) == sorted(expected)
# asserting the exact array can fail if sort=False
try:
> assert_array_equal(res, expected)
geopandas/tests/test_sindex.py:539:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = (<built-in function eq>, array([1, 0, 2]), [0, 1, 2])
kwds = {'err_msg': '', 'header': 'Arrays are not equal', 'strict': False, 'verbose': True}
@wraps(func)
def inner(*args, **kwds):
with self._recreate_cm():
> return func(*args, **kwds)
E AssertionError:
E Arrays are not equal
E
E Mismatched elements: 2 / 3 (66.7%)
E Max absolute difference: 1
E Max relative difference: 1.
E x: array([1, 0, 2])
E y: array([0, 1, 2])
/usr/lib64/python3.10/contextlib.py:79: AssertionError
During handling of the above exception, another exception occurred:
self = <geopandas.tests.test_sindex.TestShapelyInterface object at 0x7fb9f7b29510>
sort = False, expected = [0, 1, 2]
@pytest.mark.parametrize(
"sort, expected",
(
(True, [[0, 0, 0], [0, 1, 2]]),
# False could be anything, at least we'll know if it changes
(False, [[0, 0, 0], [0, 1, 2]]),
),
)
def test_query_sorting(self, sort, expected):
"""Check that results from `query` don't depend on the
order of geometries.
"""
# these geometries come from a reported issue:
# https://github.com/geopandas/geopandas/issues/1337
# there is no theoretical reason they were chosen
test_polys = GeoSeries([Polygon([(1, 1), (3, 1), (3, 3), (1, 3)])])
tree_polys = GeoSeries(
[
Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]),
Polygon([(-1, 1), (1, 1), (1, 3), (-1, 3)]),
Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]),
]
)
expected = [0, 1, 2]
test_geo = test_polys.values[0]
res = tree_polys.sindex.query(test_geo, sort=sort)
# asserting the same elements
assert sorted(res) == sorted(expected)
# asserting the exact array can fail if sort=False
try:
assert_array_equal(res, expected)
except AssertionError as e:
if sort is False:
> pytest.xfail(
"rtree results are known to be unordered, see "
"https://github.com/geopandas/geopandas/issues/1337\n"
"Expected:\n {}\n".format(expected)
+ "Got:\n {}\n".format(res.tolist())
)
E _pytest.outcomes.XFailed: rtree results are known to be unordered, see https://github.com/geopandas/geopandas/issues/1337
E Expected:
E [0, 1, 2]
E Got:
E [1, 0, 2]
geopandas/tests/test_sindex.py:542: XFailed
________ TestShapelyInterface.test_query_bulk_sorting[False-expected1] _________
self = <geopandas.tests.test_sindex.TestShapelyInterface object at 0x7fb9f7ad6050>
sort = False, expected = [[0, 0, 0], [0, 1, 2]]
@pytest.mark.parametrize(
"sort, expected",
(
(True, [[0, 0, 0], [0, 1, 2]]),
# False could be anything, at least we'll know if it changes
(False, [[0, 0, 0], [0, 1, 2]]),
),
)
def test_query_bulk_sorting(self, sort, expected):
"""Check that results from `query` don't depend
on the order of geometries.
"""
# these geometries come from a reported issue:
# https://github.com/geopandas/geopandas/issues/1337
# there is no theoretical reason they were chosen
test_polys = GeoSeries([Polygon([(1, 1), (3, 1), (3, 3), (1, 3)])])
tree_polys = GeoSeries(
[
Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]),
Polygon([(-1, 1), (1, 1), (1, 3), (-1, 3)]),
Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]),
]
)
res = tree_polys.sindex.query(test_polys, sort=sort)
# asserting the same elements
assert sorted(res[0]) == sorted(expected[0])
assert sorted(res[1]) == sorted(expected[1])
# asserting the exact array can fail if sort=False
try:
> assert_array_equal(res, expected)
geopandas/tests/test_sindex.py:764:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
args = (<built-in function eq>, array([[0, 0, 0],
[1, 0, 2]]), [[0, 0, 0], [0, 1, 2]])
kwds = {'err_msg': '', 'header': 'Arrays are not equal', 'strict': False, 'verbose': True}
@wraps(func)
def inner(*args, **kwds):
with self._recreate_cm():
> return func(*args, **kwds)
E AssertionError:
E Arrays are not equal
E
E Mismatched elements: 2 / 6 (33.3%)
E Max absolute difference: 1
E Max relative difference: 1.
E x: array([[0, 0, 0],
E [1, 0, 2]])
E y: array([[0, 0, 0],
E [0, 1, 2]])
/usr/lib64/python3.10/contextlib.py:79: AssertionError
During handling of the above exception, another exception occurred:
self = <geopandas.tests.test_sindex.TestShapelyInterface object at 0x7fb9f7ad6050>
sort = False, expected = [[0, 0, 0], [0, 1, 2]]
@pytest.mark.parametrize(
"sort, expected",
(
(True, [[0, 0, 0], [0, 1, 2]]),
# False could be anything, at least we'll know if it changes
(False, [[0, 0, 0], [0, 1, 2]]),
),
)
def test_query_bulk_sorting(self, sort, expected):
"""Check that results from `query` don't depend
on the order of geometries.
"""
# these geometries come from a reported issue:
# https://github.com/geopandas/geopandas/issues/1337
# there is no theoretical reason they were chosen
test_polys = GeoSeries([Polygon([(1, 1), (3, 1), (3, 3), (1, 3)])])
tree_polys = GeoSeries(
[
Polygon([(1, 1), (3, 1), (3, 3), (1, 3)]),
Polygon([(-1, 1), (1, 1), (1, 3), (-1, 3)]),
Polygon([(3, 3), (5, 3), (5, 5), (3, 5)]),
]
)
res = tree_polys.sindex.query(test_polys, sort=sort)
# asserting the same elements
assert sorted(res[0]) == sorted(expected[0])
assert sorted(res[1]) == sorted(expected[1])
# asserting the exact array can fail if sort=False
try:
assert_array_equal(res, expected)
except AssertionError as e:
if sort is False:
> pytest.xfail(
"rtree results are known to be unordered, see "
"https://github.com/geopandas/geopandas/issues/1337\n"
"Expected:\n {}\n".format(expected)
+ "Got:\n {}\n".format(res.tolist())
)
E _pytest.outcomes.XFailed: rtree results are known to be unordered, see https://github.com/geopandas/geopandas/issues/1337
E Expected:
E [[0, 0, 0], [0, 1, 2]]
E Got:
E [[0, 0, 0], [1, 0, 2]]
geopandas/tests/test_sindex.py:767: XFailed
_______________ TestSpatialJoinNYBB.test_no_overlapping_geometry _______________
self = <geopandas.tools.tests.test_sjoin.TestSpatialJoinNYBB object at 0x7fb9f7936d40>
@pytest.mark.xfail
def test_no_overlapping_geometry(self):
# Note: these tests are for correctly returning GeoDataFrame
# when result of the join is empty
df_inner = sjoin(self.pointdf.iloc[17:], self.polydf, how="inner")
df_left = sjoin(self.pointdf.iloc[17:], self.polydf, how="left")
df_right = sjoin(self.pointdf.iloc[17:], self.polydf, how="right")
expected_inner_df = pd.concat(
[
self.pointdf.iloc[:0],
pd.Series(name="index_right", dtype="int64"),
self.polydf.drop("geometry", axis=1).iloc[:0],
],
axis=1,
)
expected_inner = GeoDataFrame(expected_inner_df)
expected_right_df = pd.concat(
[
self.pointdf.drop("geometry", axis=1).iloc[:0],
pd.concat(
[
pd.Series(name="index_left", dtype="int64"),
pd.Series(name="index_right", dtype="int64"),
],
axis=1,
),
self.polydf,
],
axis=1,
)
expected_right = GeoDataFrame(expected_right_df).set_index("index_right")
expected_left_df = pd.concat(
[
self.pointdf.iloc[17:],
pd.Series(name="index_right", dtype="int64"),
self.polydf.iloc[:0].drop("geometry", axis=1),
],
axis=1,
)
expected_left = GeoDataFrame(expected_left_df)
assert expected_inner.equals(df_inner)
> assert expected_right.equals(df_right)
E assert False
E + where False = <bound method NDFrame.equals of pointattr1 ... geometry\nindex_...188655.315795...\nNaN NaN ... MULTIPOLYGON (((1012821.805786133 229228.26458...\n\n[5 rows x 8 columns]>( index_left ... geometry\n0 NaN ... MULTIPOLYGON (((970217.02239....055786133 188655.315795...\n4 NaN ... MULTIPOLYGON (((1012821.805786133 229228.26458...\n\n[5 rows x 8 columns])
E + where <bound method NDFrame.equals of pointattr1 ... geometry\nindex_...188655.315795...\nNaN NaN ... MULTIPOLYGON (((1012821.805786133 229228.26458...\n\n[5 rows x 8 columns]> = pointattr1 ... geometry\nindex_right ... ... 188655.315795...\nNaN NaN ... MULTIPOLYGON (((1012821.805786133 229228.26458...\n\n[5 rows x 8 columns].equals
geopandas/tools/tests/test_sjoin.py:944: AssertionError
=============================== warnings summary ===============================
geopandas/tests/test_extension_array.py::TestGetitem::test_getitem_series_integer_with_missing_raises[integer-array]
/usr/lib64/python3.10/site-packages/pandas/tests/extension/base/getitem.py:276: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
ser[idx]
geopandas/tests/test_extension_array.py::TestSetitem::test_setitem_integer_with_missing_raises[list-True]
/usr/lib64/python3.10/site-packages/pandas/tests/extension/base/setitem.py:227: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`
arr[idx] = arr[0]
geopandas/tests/test_extension_array.py::TestMissing::test_fillna_limit_backfill
/usr/lib64/python3.10/site-packages/pandas/tests/extension/base/missing.py:107: FutureWarning: Series.fillna with 'method' is deprecated and will raise in a future version. Use obj.ffill() or obj.bfill() instead.
result = pd.Series(arr).fillna(method="backfill", limit=2)
geopandas/tests/test_merge.py::TestMerging::test_concat_axis0_unaligned_cols
geopandas/tests/test_merge.py::TestMerging::test_concat_axis0_unaligned_cols
/home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/tests/test_merge.py:137: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
partial_none_case.iloc[0] = None
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=================================== XPASSES ====================================
=========================== short test summary info ============================
SKIPPED [1] geopandas/io/tests/test_arrow.py:43: could not import 'pyarrow': No module named 'pyarrow'
SKIPPED [1] geopandas/io/tests/test_geoarrow.py:17: could not import 'pyarrow': No module named 'pyarrow'
SKIPPED [1] geopandas/tests/test_explore.py:14: could not import 'folium': No module named 'folium'
SKIPPED [1] geopandas/tests/test_geocode.py:15: could not import 'geopy': No module named 'geopy'
SKIPPED [7] geopandas/io/tests/test_file.py:134: pyogrio not installed
SKIPPED [7] geopandas/io/tests/test_file.py:157: pyogrio not installed
SKIPPED [7] geopandas/io/tests/test_file.py:171: pyogrio not installed
SKIPPED [4] geopandas/io/tests/test_file.py:213: Driver corresponding to ext .shp doesn't support dt fields
SKIPPED [2] geopandas/io/tests/test_file.py:213: Driver corresponding to ext doesn't support dt fields
SKIPPED [14] geopandas/io/tests/test_file.py:203: pyogrio not installed
SKIPPED [2] geopandas/io/tests/test_file.py:265: pyogrio not installed
SKIPPED [2] geopandas/io/tests/test_file.py:279: pyogrio not installed
SKIPPED [7] geopandas/io/tests/test_file.py:320: pyogrio not installed
SKIPPED [7] geopandas/io/tests/test_file.py:335: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:350: pyogrio not installed
SKIPPED [8] geopandas/io/tests/test_file.py:373: pyogrio not installed
SKIPPED [7] geopandas/io/tests/test_file.py:397: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:411: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:418: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:450: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:481: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:497: pyogrio not installed
SKIPPED [7] geopandas/io/tests/test_file.py:506: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:542: pyogrio not installed
SKIPPED [7] geopandas/io/tests/test_file.py:548: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:581: pyogrio not installed
SKIPPED [4] geopandas/io/tests/test_file.py:590: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:611: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:617: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:636: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:645: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:654: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:660: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:666: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:689: could not import 'fsspec': No module named 'fsspec'
SKIPPED [1] geopandas/io/tests/test_file.py:688: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:699: could not import 'fsspec': No module named 'fsspec'
SKIPPED [1] geopandas/io/tests/test_file.py:698: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:705: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:723: pyogrio not installed
SKIPPED [2] geopandas/io/tests/test_file.py:730: bug fixed in pyogrio 0.9.0
SKIPPED [1] geopandas/io/tests/test_file.py:740: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:752: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:761: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:766: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:771: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:807: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:812: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:822: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:834: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:846: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:864: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:876: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:885: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:902: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:912: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:920: test for fiona < 1.9
SKIPPED [1] geopandas/io/tests/test_file.py:928: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:941: pyogrio not installed
SKIPPED [2] geopandas/io/tests/test_file.py:961: pyogrio not installed
SKIPPED [2] geopandas/io/tests/test_file.py:985: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1009: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1020: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1036: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1057: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1078: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1092: pyogrio not installed
SKIPPED [2] geopandas/io/tests/test_file.py:1138: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1309: pyogrio not installed
SKIPPED [2] geopandas/io/tests/test_file.py:1316: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1327: Fiona >= 1.9 supports metadata
SKIPPED [1] geopandas/io/tests/test_file.py:1350: Pyogrio not available
SKIPPED [2] geopandas/io/tests/test_file.py:1363: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1375: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1381: pyogrio not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1410: test for fiona not installed
SKIPPED [1] geopandas/io/tests/test_file.py:1420: pyogrio not installed
SKIPPED [56] geopandas/io/tests/test_file_geom_types_drivers.py:268: pyogrio not installed
SKIPPED [3] geopandas/io/tests/test_pickle.py:34: shapely 2.0/pygeos-based unpickling currently only works for shapely-2.0/pygeos-written files
SKIPPED [1] geopandas/io/tests/test_sql.py:230: got empty parameter set ['engine_postgis'], function test_get_conn at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:229
SKIPPED [1] geopandas/io/tests/test_sql.py:244: got empty parameter set ['connection_postgis'], function test_read_postgis_default at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:243
SKIPPED [1] geopandas/io/tests/test_sql.py:257: got empty parameter set ['connection_postgis'], function test_read_postgis_custom_geom_col at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:256
SKIPPED [1] geopandas/io/tests/test_sql.py:268: got empty parameter set ['connection_postgis'], function test_read_postgis_select_geom_as at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:267
SKIPPED [1] geopandas/io/tests/test_sql.py:284: got empty parameter set ['connection_postgis'], function test_read_postgis_get_srid at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:283
SKIPPED [1] geopandas/io/tests/test_sql.py:298: got empty parameter set ['connection_postgis'], function test_read_postgis_override_srid at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:297
SKIPPED [1] geopandas/io/tests/test_sql.py:311: got empty parameter set ['connection_postgis'], function test_from_postgis_default at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:310
SKIPPED [1] geopandas/io/tests/test_sql.py:321: got empty parameter set ['connection_postgis'], function test_from_postgis_custom_geom_col at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:320
SKIPPED [1] geopandas/io/tests/test_sql.py:357: got empty parameter set ['connection_postgis'], function test_read_postgis_chunksize at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:356
SKIPPED [1] geopandas/io/tests/test_sql.py:372: got empty parameter set ['engine_postgis'], function test_write_postgis_default at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:371
SKIPPED [1] geopandas/io/tests/test_sql.py:388: got empty parameter set ['engine_postgis'], function test_write_postgis_uppercase_tablename at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:387
SKIPPED [1] geopandas/io/tests/test_sql.py:404: got empty parameter set ['engine_postgis'], function test_write_postgis_sqlalchemy_connection at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:403
SKIPPED [1] geopandas/io/tests/test_sql.py:420: got empty parameter set ['engine_postgis'], function test_write_postgis_fail_when_table_exists at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:419
SKIPPED [1] geopandas/io/tests/test_sql.py:440: got empty parameter set ['engine_postgis'], function test_write_postgis_replace_when_table_exists at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:439
SKIPPED [1] geopandas/io/tests/test_sql.py:458: got empty parameter set ['engine_postgis'], function test_write_postgis_append_when_table_exists at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:457
SKIPPED [1] geopandas/io/tests/test_sql.py:489: got empty parameter set ['engine_postgis'], function test_write_postgis_without_crs at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:488
SKIPPED [1] geopandas/io/tests/test_sql.py:512: got empty parameter set ['engine_postgis'], function test_write_postgis_with_esri_authority at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:511
SKIPPED [1] geopandas/io/tests/test_sql.py:535: got empty parameter set ['engine_postgis'], function test_write_postgis_geometry_collection at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:534
SKIPPED [1] geopandas/io/tests/test_sql.py:562: got empty parameter set ['engine_postgis'], function test_write_postgis_mixed_geometry_types at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:561
SKIPPED [1] geopandas/io/tests/test_sql.py:589: got empty parameter set ['engine_postgis'], function test_write_postgis_linear_ring at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:588
SKIPPED [1] geopandas/io/tests/test_sql.py:611: got empty parameter set ['engine_postgis'], function test_write_postgis_in_chunks at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:610
SKIPPED [1] geopandas/io/tests/test_sql.py:645: got empty parameter set ['engine_postgis'], function test_write_postgis_to_different_schema at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:644
SKIPPED [1] geopandas/io/tests/test_sql.py:669: got empty parameter set ['engine_postgis'], function test_write_postgis_to_different_schema_when_table_exists at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:668
SKIPPED [1] geopandas/io/tests/test_sql.py:714: got empty parameter set ['engine_postgis'], function test_write_postgis_3D_geometries at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:713
SKIPPED [1] geopandas/io/tests/test_sql.py:730: got empty parameter set ['engine_postgis'], function test_row_order at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:729
SKIPPED [1] geopandas/io/tests/test_sql.py:747: got empty parameter set ['engine_postgis'], function test_append_before_table_exists at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:746
SKIPPED [1] geopandas/io/tests/test_sql.py:765: got empty parameter set ['engine_postgis'], function test_append_with_different_crs at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:764
SKIPPED [1] geopandas/io/tests/test_sql.py:782: got empty parameter set ['engine_postgis'], function test_append_without_crs at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:781
SKIPPED [1] geopandas/io/tests/test_sql.py:798: got empty parameter set ['engine_postgis'], function test_duplicate_geometry_column_fails at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:797
SKIPPED [1] geopandas/io/tests/test_sql.py:814: got empty parameter set ['connection_postgis'], function test_read_non_epsg_crs at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:813
SKIPPED [1] geopandas/io/tests/test_sql.py:825: got empty parameter set ['connection_postgis'], function test_read_srid_not_in_table at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:824
SKIPPED [1] geopandas/io/tests/test_sql.py:844: got empty parameter set ['connection_postgis'], function test_read_no_spatial_ref_sys_table_in_postgis at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:843
SKIPPED [1] geopandas/io/tests/test_sql.py:865: got empty parameter set ['connection_postgis'], function test_read_non_epsg_crs_chunksize at /home/tkloczko/rpmbuild/BUILD/geopandas-1.0.0/geopandas/io/tests/test_sql.py:864
SKIPPED [1] geopandas/tests/test_array.py:937: pyproj installed
SKIPPED [1] geopandas/tests/test_array.py:972: pyproj installed
SKIPPED [1] geopandas/tests/test_array.py:982: pyproj installed
SKIPPED [1] geopandas/tests/test_dissolve.py:104: warning for pandas 1.5.x
SKIPPED [20] ../../../../../usr/lib64/python3.10/site-packages/pandas/tests/extension/base/reduce.py:123: geometry is not numeric dtype
SKIPPED [1] geopandas/tests/test_extension_array.py:488: boolean reduce (any/all) tested in test_pandas_methods
SKIPPED [1] geopandas/tests/test_extension_array.py:526: not applicable
SKIPPED [1] geopandas/tests/test_extension_array.py:530: not applicable
SKIPPED [2] ../../../../../usr/lib64/python3.10/site-packages/pandas/tests/extension/base/methods.py:443: <class 'geopandas.array.GeometryArray'> does not support diff
SKIPPED [2] geopandas/tests/test_extension_array.py:577: searchsorted not supported
SKIPPED [1] geopandas/tests/test_extension_array.py:581: Not yet implemented
SKIPPED [1] geopandas/tests/test_extension_array.py:585: addition not supported
SKIPPED [1] geopandas/tests/test_extension_array.py:589: Not yet implemented
SKIPPED [1] geopandas/tests/test_extension_array.py:595: Min/max not supported
SKIPPED [1] geopandas/tests/test_extension_array.py:599: Min/max not supported
SKIPPED [1] geopandas/tests/test_extension_array.py:603: Min/max not supported
SKIPPED [1] geopandas/tests/test_extension_array.py:607: Min/max not supported
SKIPPED [1] geopandas/tests/test_extension_array.py:611: Min/max not supported
SKIPPED [1] ../../../../../usr/lib64/python3.10/site-packages/pandas/tests/extension/base/casting.py:50: Could not import 'pyarrow'
SKIPPED [2] ../../../../../usr/lib64/python3.10/site-packages/pandas/tests/extension/base/io.py:12: Not yet implemented
SKIPPED [3] geopandas/tests/test_geom_methods.py:1907: could not import 'pointpats': No module named 'pointpats'
SKIPPED [1] geopandas/tests/test_geoseries.py:500: pyproj installed
SKIPPED [1] geopandas/tests/test_overlay.py:260: Skipped
SKIPPED [1] geopandas/tests/test_overlay.py:338: Difference uses columns from one df only.
SKIPPED [1] geopandas/tests/test_plotting.py:1064: array-like style_kwds not supported for mixed geometry types (#1379)
SKIPPED [1] geopandas/tests/test_plotting.py:1083: array-like style_kwds not supported for mixed geometry types (#1379)
SKIPPED [1] geopandas/tests/test_plotting.py:1212: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1225: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1238: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1249: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1257: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1270: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [2] geopandas/tests/test_plotting.py:1283: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1288: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1293: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1312: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1317: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1330: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1352: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_plotting.py:1466: could not import 'mapclassify': No module named 'mapclassify'
SKIPPED [1] geopandas/tests/test_sindex.py:74: append removed in pandas 2.0
SKIPPED [1] geopandas/tests/test_sindex.py: unconditional skip
SKIPPED [1] geopandas/tests/test_sindex.py:474: Test for 'dwithin'-incompatible versions of GEOS
SKIPPED [1] geopandas/tools/tests/test_sjoin.py:947: Not implemented
XFAIL geopandas/io/tests/test_file.py::test_empty_crs[fiona-GPKG-.gpkg] - reason: GPKG is read with Undefined geographic SRS.
XFAIL geopandas/io/tests/test_file.py::test_empty_crs[fiona-None-.gpkg] - reason: GPKG is read with Undefined geographic SRS.
XFAIL geopandas/tests/test_extension_array.py::TestGetitem::test_getitem_series_integer_with_missing_raises[list] - Tries label-based and raises KeyError; in some cases raises when calling np.asarray
XFAIL geopandas/tests/test_extension_array.py::TestGetitem::test_getitem_series_integer_with_missing_raises[integer-array] - Tries label-based and raises KeyError; in some cases raises when calling np.asarray
XFAIL geopandas/tests/test_extension_array.py::TestSetitem::test_setitem_integer_with_missing_raises[list-True] - GH-31948
XFAIL geopandas/tests/test_op_output_types.py::test_loc_add_row[geom] - pre-regression behaviour only works for geometry col geometry
XFAIL geopandas/tests/test_sindex.py::TestShapelyInterface::test_query_sorting[False-expected1] - reason: rtree results are known to be unordered, see https://github.com/geopandas/geopandas/issues/1337
Expected:
[0, 1, 2]
Got:
[1, 0, 2]
XFAIL geopandas/tests/test_sindex.py::TestShapelyInterface::test_query_bulk_sorting[False-expected1] - reason: rtree results are known to be unordered, see https://github.com/geopandas/geopandas/issues/1337
Expected:
[[0, 0, 0], [0, 1, 2]]
Got:
[[0, 0, 0], [1, 0, 2]]
XFAIL geopandas/tools/tests/test_sjoin.py::TestSpatialJoinNYBB::test_no_overlapping_geometry
XPASS geopandas/tests/test_pandas_methods.py::test_drop_duplicates_series
XPASS geopandas/tests/test_pandas_methods.py::test_drop_duplicates_frame
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[png-kde]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[png-density]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-line]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-bar]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-barh]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-kde]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-density]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-area]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-hist]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-box]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-pie]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-scatter]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_pandas_kind[pdf-hexbin]
FAILED geopandas/tests/test_plotting.py::TestGeoplotAccessor::test_geo_kind[pdf]
= 14 failed, 1996 passed, 321 skipped, 9 xfailed, 2 xpassed, 5 warnings in 117.67s (0:01:57) =
Exception ignored in atexit callback: <bound method _Converter.__del__ of <matplotlib.testing.compare._GSConverter object at 0x7fb9f7bacf10>>
Traceback (most recent call last):
File "/usr/lib64/python3.10/site-packages/matplotlib/testing/compare.py", line 86, in __del__
stream.close()
BrokenPipeError: [Errno 32] Broken pipe |
@kloczek it looks to me like there is an issue with how ghostscript is installed / configured on the system based on the test output - it's not found and then later a sequence of pipe errors trigger the test failures inside matplotlib code. The two png failures messages I have seen before but only using pytest-xdist. I'm also not sure if your environment which is cut off from the network is working correctly as geopandas/io/tests/test_file::test_read_file_url would fail without network access - you mention using Additionally it'd be good to know how you came up with your list of modules in the build env - you're missing pyogrio in favour of fiona, but as of 1.0 pyogrio should be installed by default and fiona optional - so it'd be good to know if we're missing this somewhere. |
Indeed it is issue with png output 😞
Is it possible to add duplicate |
Is there anything preventing us from changing the marker from web to network? |
I don't think so, it dates from #531 - I think the only reason to keep the old mark is if other package manager build scripts are already set up and are using the existing mark (but I don't know if this is likely)
Perhaps I could have been clearer in what I said - this doesn't look like a geopandas issue to me, but rather something to do with the system dependencies. |
I have checked that this issue has not already been reported.
I have confirmed this bug exists on the latest version of geopandas.
(optional) I have confirmed this bug exists on the main branch of geopandas.
I'm packaging your module as an rpm package so I'm using the typical PEP517 based build, install and test cycle used on building packages from non-root account.
python3 -sBm build -w --no-isolation
build
with--no-isolation
I'm using during all processes only locally installed modulesinstaller
modulecut off from access to the public network
(pytest is executed with-m "not network"
)List of installed modules in build env:
Please let me know if you need more details or want me to perform some diagnostics.
The text was updated successfully, but these errors were encountered: