Bug 1746849

Summary: python-libpysal fails to build with Python 3.8 on Fedora 32+
Product: [Fedora] Fedora Reporter: Miro Hrončok <mhroncok>
Component: python-libpysalAssignee: Elliott Sales de Andrade <quantum.analyst>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: python-sig, quantum.analyst
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: python-libpysal-4.2.2-1.fc32 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-02-09 10:05:36 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1750908, 1750909, 1686977, 1785415    

Description Miro Hrončok 2019-08-29 11:43:33 UTC
python-libpysal fails to build with Python 3.8.0b3 in Fedora 32.

See the build failures at https://koji.fedoraproject.org/koji/search?match=glob&type=package&terms=python-libpysal

======================================================================
ERROR: test_alpha_shapes (libpysal.cg.tests.test_ashapes.Test_Alpha_Shapes)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/tests/test_ashapes.py", line 25, in setUp
    self.a05 = geopandas.read_file(os.path.join(this_directory, 'data/alpha_05.shp')).geometry.item()
  File "/usr/lib64/python3.8/site-packages/pandas/core/base.py", line 740, in item
    return self.values.item()
AttributeError: 'GeometryArray' object has no attribute 'item'
-------------------- >> begin captured logging << --------------------
fiona.env: DEBUG: Entering env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.env: DEBUG: Starting outermost env
fiona.env: DEBUG: No GDAL environment exists
fiona.env: DEBUG: New GDAL environment <fiona._env.GDALEnv object at 0x7fff531052b0> created
fiona._env: DEBUG: Logging error handler pushed.
fiona._env: DEBUG: All drivers registered.
fiona._env: DEBUG: GDAL data files are available at built-in paths
fiona._env: DEBUG: PROJ data files are available at built-in paths
fiona._env: DEBUG: Started GDALEnv <fiona._env.GDALEnv object at 0x7fff531052b0>.
fiona.env: DEBUG: Updated existing <fiona._env.GDALEnv object at 0x7fff531052b0> with options {}
fiona.env: DEBUG: Entered env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Index: 0
fiona.collection: DEBUG: Flushed buffer
fiona.collection: DEBUG: Stopped session
fiona.env: DEBUG: Exiting env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.env: DEBUG: Cleared existing <fiona._env.GDALEnv object at 0x7fff531052b0> options
fiona._env: DEBUG: Stopping GDALEnv <fiona._env.GDALEnv object at 0x7fff531052b0>.
fiona._env: DEBUG: Error handler popped.
fiona._env: DEBUG: Stopped GDALEnv <fiona._env.GDALEnv object at 0x7fff531052b0>.
fiona.env: DEBUG: Exiting outermost env
fiona.env: DEBUG: Exited env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.env: DEBUG: Entering env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.env: DEBUG: Starting outermost env
fiona.env: DEBUG: No GDAL environment exists
fiona.env: DEBUG: New GDAL environment <fiona._env.GDALEnv object at 0x7fff53105430> created
fiona._env: DEBUG: Logging error handler pushed.
fiona._env: DEBUG: All drivers registered.
fiona._env: DEBUG: GDAL data files are available at built-in paths
fiona._env: DEBUG: PROJ data files are available at built-in paths
fiona._env: DEBUG: Started GDALEnv <fiona._env.GDALEnv object at 0x7fff53105430>.
fiona.env: DEBUG: Updated existing <fiona._env.GDALEnv object at 0x7fff53105430> with options {}
fiona.env: DEBUG: Entered env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Index: 0
fiona.collection: DEBUG: Flushed buffer
fiona.collection: DEBUG: Stopped session
fiona.env: DEBUG: Exiting env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.env: DEBUG: Cleared existing <fiona._env.GDALEnv object at 0x7fff53105430> options
fiona._env: DEBUG: Stopping GDALEnv <fiona._env.GDALEnv object at 0x7fff53105430>.
fiona._env: DEBUG: Error handler popped.
fiona._env: DEBUG: Stopped GDALEnv <fiona._env.GDALEnv object at 0x7fff53105430>.
fiona.env: DEBUG: Exiting outermost env
fiona.env: DEBUG: Exited env context: <fiona.env.Env object at 0x7fff53483fd0>
--------------------- >> end captured logging << ---------------------
======================================================================
ERROR: test_auto (libpysal.cg.tests.test_ashapes.Test_Alpha_Shapes)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/tests/test_ashapes.py", line 25, in setUp
    self.a05 = geopandas.read_file(os.path.join(this_directory, 'data/alpha_05.shp')).geometry.item()
  File "/usr/lib64/python3.8/site-packages/pandas/core/base.py", line 740, in item
    return self.values.item()
AttributeError: 'GeometryArray' object has no attribute 'item'
-------------------- >> begin captured logging << --------------------
fiona.env: DEBUG: Entering env context: <fiona.env.Env object at 0x7fff533b91c0>
fiona.env: DEBUG: Starting outermost env
fiona.env: DEBUG: No GDAL environment exists
fiona.env: DEBUG: New GDAL environment <fiona._env.GDALEnv object at 0x7fff53105e50> created
fiona._env: DEBUG: Logging error handler pushed.
fiona._env: DEBUG: All drivers registered.
fiona._env: DEBUG: GDAL data files are available at built-in paths
fiona._env: DEBUG: PROJ data files are available at built-in paths
fiona._env: DEBUG: Started GDALEnv <fiona._env.GDALEnv object at 0x7fff53105e50>.
fiona.env: DEBUG: Updated existing <fiona._env.GDALEnv object at 0x7fff53105e50> with options {}
fiona.env: DEBUG: Entered env context: <fiona.env.Env object at 0x7fff533b91c0>
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Index: 0
fiona.collection: DEBUG: Flushed buffer
fiona.collection: DEBUG: Stopped session
fiona.env: DEBUG: Exiting env context: <fiona.env.Env object at 0x7fff533b91c0>
fiona.env: DEBUG: Cleared existing <fiona._env.GDALEnv object at 0x7fff53105e50> options
fiona._env: DEBUG: Stopping GDALEnv <fiona._env.GDALEnv object at 0x7fff53105e50>.
fiona._env: DEBUG: Error handler popped.
fiona._env: DEBUG: Stopped GDALEnv <fiona._env.GDALEnv object at 0x7fff53105e50>.
fiona.env: DEBUG: Exiting outermost env
fiona.env: DEBUG: Exited env context: <fiona.env.Env object at 0x7fff533b91c0>
fiona.env: DEBUG: Entering env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.env: DEBUG: Starting outermost env
fiona.env: DEBUG: No GDAL environment exists
fiona.env: DEBUG: New GDAL environment <fiona._env.GDALEnv object at 0x7fff53105c10> created
fiona._env: DEBUG: Logging error handler pushed.
fiona._env: DEBUG: All drivers registered.
fiona._env: DEBUG: GDAL data files are available at built-in paths
fiona._env: DEBUG: PROJ data files are available at built-in paths
fiona._env: DEBUG: Started GDALEnv <fiona._env.GDALEnv object at 0x7fff53105c10>.
fiona.env: DEBUG: Updated existing <fiona._env.GDALEnv object at 0x7fff53105c10> with options {}
fiona.env: DEBUG: Entered env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Index: 0
fiona.collection: DEBUG: Flushed buffer
fiona.collection: DEBUG: Stopped session
fiona.env: DEBUG: Exiting env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.env: DEBUG: Cleared existing <fiona._env.GDALEnv object at 0x7fff53105c10> options
fiona._env: DEBUG: Stopping GDALEnv <fiona._env.GDALEnv object at 0x7fff53105c10>.
fiona._env: DEBUG: Error handler popped.
fiona._env: DEBUG: Stopped GDALEnv <fiona._env.GDALEnv object at 0x7fff53105c10>.
fiona.env: DEBUG: Exiting outermost env
fiona.env: DEBUG: Exited env context: <fiona.env.Env object at 0x7fff53483fd0>
--------------------- >> end captured logging << ---------------------
======================================================================
ERROR: test_small_n (libpysal.cg.tests.test_ashapes.Test_Alpha_Shapes)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/tests/test_ashapes.py", line 25, in setUp
    self.a05 = geopandas.read_file(os.path.join(this_directory, 'data/alpha_05.shp')).geometry.item()
  File "/usr/lib64/python3.8/site-packages/pandas/core/base.py", line 740, in item
    return self.values.item()
AttributeError: 'GeometryArray' object has no attribute 'item'
-------------------- >> begin captured logging << --------------------
fiona.env: DEBUG: Entering env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.env: DEBUG: Starting outermost env
fiona.env: DEBUG: No GDAL environment exists
fiona.env: DEBUG: New GDAL environment <fiona._env.GDALEnv object at 0x7fff53105430> created
fiona._env: DEBUG: Logging error handler pushed.
fiona._env: DEBUG: All drivers registered.
fiona._env: DEBUG: GDAL data files are available at built-in paths
fiona._env: DEBUG: PROJ data files are available at built-in paths
fiona._env: DEBUG: Started GDALEnv <fiona._env.GDALEnv object at 0x7fff53105430>.
fiona.env: DEBUG: Updated existing <fiona._env.GDALEnv object at 0x7fff53105430> with options {}
fiona.env: DEBUG: Entered env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Index: 0
fiona.collection: DEBUG: Flushed buffer
fiona.collection: DEBUG: Stopped session
fiona.env: DEBUG: Exiting env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.env: DEBUG: Cleared existing <fiona._env.GDALEnv object at 0x7fff53105430> options
fiona._env: DEBUG: Stopping GDALEnv <fiona._env.GDALEnv object at 0x7fff53105430>.
fiona._env: DEBUG: Error handler popped.
fiona._env: DEBUG: Stopped GDALEnv <fiona._env.GDALEnv object at 0x7fff53105430>.
fiona.env: DEBUG: Exiting outermost env
fiona.env: DEBUG: Exited env context: <fiona.env.Env object at 0x7fff533dcfa0>
fiona.env: DEBUG: Entering env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.env: DEBUG: Starting outermost env
fiona.env: DEBUG: No GDAL environment exists
fiona.env: DEBUG: New GDAL environment <fiona._env.GDALEnv object at 0x7fff531052e0> created
fiona._env: DEBUG: Logging error handler pushed.
fiona._env: DEBUG: All drivers registered.
fiona._env: DEBUG: GDAL data files are available at built-in paths
fiona._env: DEBUG: PROJ data files are available at built-in paths
fiona._env: DEBUG: Started GDALEnv <fiona._env.GDALEnv object at 0x7fff531052e0>.
fiona.env: DEBUG: Updated existing <fiona._env.GDALEnv object at 0x7fff531052e0> with options {}
fiona.env: DEBUG: Entered env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Layer has no coordinate system
fiona.ogrext: DEBUG: Projection not found (cogr_crs was NULL)
fiona.ogrext: DEBUG: Index: 0
fiona.collection: DEBUG: Flushed buffer
fiona.collection: DEBUG: Stopped session
fiona.env: DEBUG: Exiting env context: <fiona.env.Env object at 0x7fff53483fd0>
fiona.env: DEBUG: Cleared existing <fiona._env.GDALEnv object at 0x7fff531052e0> options
fiona._env: DEBUG: Stopping GDALEnv <fiona._env.GDALEnv object at 0x7fff531052e0>.
fiona._env: DEBUG: Error handler popped.
fiona._env: DEBUG: Stopped GDALEnv <fiona._env.GDALEnv object at 0x7fff531052e0>.
fiona.env: DEBUG: Exiting outermost env
fiona.env: DEBUG: Exited env context: <fiona.env.Env object at 0x7fff53483fd0>
--------------------- >> end captured logging << ---------------------
======================================================================
ERROR: test_rtree (libpysal.cg.tests.test_rtree.Pyrtree_Tester)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/tests/test_rtree.py", line 27, in test_rtree
    t.insert(object, self.objects[object])
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/rtree.py", line 200, in insert
    self.cursor.insert(o, orect)
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/rtree.py", line 417, in insert
    self._balance()
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/rtree.py", line 451, in _balance
    t = time.clock()
AttributeError: module 'time' has no attribute 'clock'
======================================================================
ERROR: test_rtree (libpysal.cg.tests.test_rtree.Pyrtree_Tester)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/tests/test_rtree.py", line 27, in test_rtree
    t.insert(object, self.objects[object])
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/rtree.py", line 200, in insert
    self.cursor.insert(o, orect)
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/rtree.py", line 417, in insert
    self._balance()
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/rtree.py", line 451, in _balance
    t = time.clock()
AttributeError: module 'time' has no attribute 'clock'
======================================================================
ERROR: test_filter (libpysal.weights.tests.test_adjlist.Test_Adjlist)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/weights/tests/test_adjlist.py", line 32, in test_filter
    alist = grid.to_adjlist(remove_symmetric=True)
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/weights/weights.py", line 263, in to_adjlist
    return adjtools.filter_adjlist(adjlist) if remove_symmetric else adjlist
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/weights/adjtools.py", line 191, in filter_adjlist
    to_drop = adjlist.query('focal == {} and neighbor == {}'
  File "/usr/lib64/python3.8/site-packages/pandas/core/frame.py", line 3184, in query
    res = self.eval(expr, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/frame.py", line 3300, in eval
    return _eval(expr, inplace=inplace, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/eval.py", line 322, in eval
    parsed_expr = Expr(expr, engine=engine, parser=parser, env=env, truediv=truediv)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 827, in __init__
    self.terms = self.parse()
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 844, in parse
    return self._visitor.visit(self.expr)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 441, in visit
    return visitor(node, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 447, in visit_Module
    return self.visit(expr, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 441, in visit
    return visitor(node, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 450, in visit_Expr
    return self.visit(node.value, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 441, in visit
    return visitor(node, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 771, in visit_BoolOp
    return reduce(visitor, operands)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 764, in visitor
    lhs = self._try_visit_binop(x)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 760, in _try_visit_binop
    return self.visit(bop)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 441, in visit
    return visitor(node, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 744, in visit_Compare
    return self.visit(binop)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 441, in visit
    return visitor(node, **kwargs)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 563, in visit_BinOp
    op, op_class, left, right = self._maybe_transform_eq_ne(node)
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 484, in _maybe_transform_eq_ne
    right = self.visit(node.right, side="right")
  File "/usr/lib64/python3.8/site-packages/pandas/core/computation/expr.py", line 440, in visit
    visitor = getattr(self, method)
AttributeError: 'PandasExprVisitor' object has no attribute 'visit_Constant'
-------------------- >> begin captured logging << --------------------
numexpr.utils: INFO: NumExpr defaulting to 4 threads.
--------------------- >> end captured logging << ---------------------
======================================================================
FAIL: test_voronoi (libpysal.cg.tests.test_voronoi.Voronoi)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/builddir/build/BUILD/libpysal-4.1.0/libpysal/cg/tests/test_voronoi.py", line 20, in test_voronoi
    self.assertTrue(vertices.tolist() == self.vertices)
AssertionError: False is not true
----------------------------------------------------------------------
Ran 490 tests in 57.756s
FAILED (failures=1, errors=6, skipped=41)

It is not important whether the problem is relevant to Python 3.8, this issue is blocking the Python 3.8 rebuilds.
If this package won't build with 3.8, it won't be installable, along with all its dependent packages, in Fedora 32 and further.

Furthermore, as it fails to install, its dependent packages will fail to install and/or build as well.

Please rebuild the package in Fedora 32 (rawhide).

Let us know here if you have any questions. Thank You!

Comment 1 Miro Hrončok 2019-11-17 23:52:11 UTC
No response upstream so far. Do we keep the package? It fails to install.

Comment 2 Miro Hrončok 2019-12-06 23:54:01 UTC
Please, respond.

Comment 3 Elliott Sales de Andrade 2019-12-07 00:15:48 UTC
Sorry, I'm focusing on Cartopy at the moment, so I have not looked at what is going on here at all, or whether it's simple to patch or what.

I also have no internet right now, so somewhat limited in what I can do in any case.

Comment 4 Miro Hrončok 2019-12-07 00:17:48 UTC
The idea was to know whether we are keeping the package (and hence we invest the energy into the fix) or not (and possibly orphan it in that case), not to fix it immediately.