Migrating to v2.11#

Version 2.11 changes the minimum Python version and removes two dependencies. If you are upgrading an existing v2.10 project, the points below cover every breaking change. Most projects only need the piping_3d import fix.

Python 3.12 is now required#

The minimum supported Python version is now 3.12 (previously 3.9). Upgrade your interpreter before installing v2.11; pip install routing will refuse to install on Python 3.11 or earlier.

piping_3d is now bundled as routing.core.legacy_piping#

The external piping_3d package is no longer a dependency. Its contents — including Section — now ship inside routing as routing.core.legacy_piping. Update your imports:

# Before (v2.10)
from piping_3d import piping
section = piping.Section(radius_equivalent=0.01)
# After (v2.11)
import routing.core.legacy_piping as piping
section = piping.Section(radius_equivalent=0.01)

A direct Section import works the same way:

from routing.core.legacy_piping import Section
section = Section(radius_equivalent=0.01)

Note

legacy_piping is kept for backward compatibility and is on a deprecation path. Avoid building new code on it beyond Section.

routing.model.Object3D was removed#

The routing.core.model module (and Object3D) has been deleted. 3D display now goes through volmdlr’s Displayable3D — routing result objects expose display_3d() directly:

# Before (v2.10): .babylonjs()
# After  (v2.11):
routing_result.display_3d()

zarr dependency dropped#

Voxel arrays are no longer stored through zarr; the dependency has been removed. No code change is required unless your own project imported zarr transitively through routing — in that case, add it to your own dependencies.

New in v2.11#

See Also#

  • Installation — updated requirements and dependency list.