Skip to content

Rjf/compass edge lists#17

Merged
robfitzgerald merged 24 commits intomainfrom
rjf/compass-edge-lists
Sep 12, 2025
Merged

Rjf/compass edge lists#17
robfitzgerald merged 24 commits intomainfrom
rjf/compass-edge-lists

Conversation

@robfitzgerald
Copy link
Copy Markdown
Collaborator

@robfitzgerald robfitzgerald commented Sep 8, 2025

this PR integrates upstream changes to routee-compass to allow for disjoint edge list modeling, in support of upcoming GTFS-based routing in bambam.

remaining work:

  • change Cargo.toml paths for routee-compass to point to crates.io release instead of git revision
    • will continue to point to main as a stopgap to avoid possibly publishing broken code with edge lists refactor in compass
  • create setup script similar to setup.sh that runs the denver example import
  • change file paths in configuration/denver_test.toml to relative paths based on above setup script
  • change routing-class filename to road-class (from routee-compass-tomtom import to routee-compass import)

This comment was marked as outdated.

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR integrates upstream changes to routee-compass to enable disjoint edge list modeling in preparation for GTFS-based routing in bambam. The changes update dependencies, modify the main application structure to use the newer routee-compass API, and introduce new setup scripts for test data management.

  • Update routee-compass dependencies to use git branches instead of crates.io releases
  • Refactor main application to use CompassApp API directly rather than command line runner
  • Replace test setup scripts with new Python-based approach using osmnx and compass libraries

Reviewed Changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
script/setup_test_bambam_osm.sh New script to download OSM test dataset
script/setup_test_bambam.sh Updated to use Python script for Denver scenario setup
script/setup_test_bambam.py New Python script using osmnx to generate compass dataset
rust/bambam/src/main.rs Major refactor to use CompassApp API directly with new test
rust/bambam/Cargo.toml Convert dependency versions to workspace references
rust/bambam-osm/src/model/osm/graph/compass_writer.rs Update to use EdgeConfig instead of Edge
rust/bambam-osm/src/main.rs Update test to use new OSM file name
rust/Cargo.toml Update routee-compass dependencies to git branches and add missing workspace deps
configuration/denver_test.toml New configuration file for Denver test scenario
.github/workflows/test.yaml Update workflow to use new setup scripts

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines 194 to 195
proportion_groups.into_iter(),
total = vertices.len(),
desc = "opportunities areal proportioning"
Copy link

Copilot AI Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The total parameter was removed from the tqdm macro call, but the iterator proportion_groups doesn't have a known length. This will result in a progress bar without total progress indication, which may be confusing to users.

Copilot uses AI. Check for mistakes.
- name: Install test assets
run: |
./setup.sh
./setup_bambam_osm_test.sh
Copy link

Copilot AI Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The script name setup_bambam_osm_test.sh doesn't match any of the actual script files created in this PR. It should be ./script/setup_test_bambam_osm.sh to match the new file structure.

Copilot uses AI. Check for mistakes.

- name: Install test assets
run: |
./setup_bambam_osm_test.sh
Copy link

Copilot AI Sep 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The script name setup_bambam_osm_test.sh doesn't match any of the actual script files created in this PR. It should be ./script/setup_test_bambam_osm.sh to match the new file structure.

Copilot uses AI. Check for mistakes.
Copy link
Copy Markdown
Collaborator

@yamilbknsu yamilbknsu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree with these changes. I tried to run the setup_test_bambam.sh script and failed in what seems to be a network error with a lot of numpy version warnings. I have seen those numpy warnings a lot in my laptop so I think it may be a me thing. The network error not sure. I'll dump the logs here:

Details
downloading denver_co scenario
importing osmnx, compass

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "/Users/yessus/projects/bambam/script/setup_test_bambam.py", line 2, in <module>
    import osmnx as ox
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/__init__.py", line 18, in <module>
    from . import bearing as bearing
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/bearing.py", line 12, in <module>
    from . import projection
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/projection.py", line 9, in <module>
    import geopandas as gpd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/__init__.py", line 3, in <module>
    from geopandas.geoseries import GeoSeries
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/geoseries.py", line 8, in <module>
    import pandas as pd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/__init__.py", line 26, in <module>
    from pandas.compat import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/compat/__init__.py", line 27, in <module>
    from pandas.compat.pyarrow import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/compat/pyarrow.py", line 8, in <module>
    import pyarrow as pa
  File "/Users/yessus/anaconda3/lib/python3.12/site-packages/pyarrow/__init__.py", line 65, in <module>
    import pyarrow.lib as _lib
Traceback (most recent call last):
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/numpy/core/_multiarray_umath.py", line 44, in __getattr__
    raise ImportError(msg)
ImportError: 
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.



A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "/Users/yessus/projects/bambam/script/setup_test_bambam.py", line 2, in <module>
    import osmnx as ox
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/__init__.py", line 18, in <module>
    from . import bearing as bearing
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/bearing.py", line 12, in <module>
    from . import projection
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/projection.py", line 9, in <module>
    import geopandas as gpd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/__init__.py", line 3, in <module>
    from geopandas.geoseries import GeoSeries
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/geoseries.py", line 8, in <module>
    import pandas as pd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/__init__.py", line 49, in <module>
    from pandas.core.api import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/api.py", line 9, in <module>
    from pandas.core.dtypes.dtypes import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/dtypes/dtypes.py", line 24, in <module>
    from pandas._libs import (
  File "/Users/yessus/anaconda3/lib/python3.12/site-packages/pyarrow/__init__.py", line 65, in <module>
    import pyarrow.lib as _lib
Traceback (most recent call last):
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/numpy/core/_multiarray_umath.py", line 44, in __getattr__
    raise ImportError(msg)
ImportError: 
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.



A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "/Users/yessus/projects/bambam/script/setup_test_bambam.py", line 2, in <module>
    import osmnx as ox
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/__init__.py", line 18, in <module>
    from . import bearing as bearing
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/bearing.py", line 12, in <module>
    from . import projection
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/projection.py", line 9, in <module>
    import geopandas as gpd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/__init__.py", line 3, in <module>
    from geopandas.geoseries import GeoSeries
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/geoseries.py", line 8, in <module>
    import pandas as pd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/__init__.py", line 49, in <module>
    from pandas.core.api import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/api.py", line 28, in <module>
    from pandas.core.arrays import Categorical
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/arrays/__init__.py", line 1, in <module>
    from pandas.core.arrays.arrow import ArrowExtensionArray
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/arrays/arrow/__init__.py", line 5, in <module>
    from pandas.core.arrays.arrow.array import ArrowExtensionArray
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/arrays/arrow/array.py", line 52, in <module>
    from pandas.core import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/ops/__init__.py", line 8, in <module>
    from pandas.core.ops.array_ops import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/ops/array_ops.py", line 56, in <module>
    from pandas.core.computation import expressions
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/computation/expressions.py", line 21, in <module>
    from pandas.core.computation.check import NUMEXPR_INSTALLED
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/computation/check.py", line 5, in <module>
    ne = import_optional_dependency("numexpr", errors="warn")
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/compat/_optional.py", line 135, in import_optional_dependency
    module = importlib.import_module(name)
  File "/Users/yessus/anaconda3/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/yessus/anaconda3/lib/python3.12/site-packages/numexpr/__init__.py", line 24, in <module>
    from numexpr.interpreter import MAX_THREADS, use_vml, __BLOCK_SIZE1__
AttributeError: _ARRAY_API not found

A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "/Users/yessus/projects/bambam/script/setup_test_bambam.py", line 2, in <module>
    import osmnx as ox
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/__init__.py", line 18, in <module>
    from . import bearing as bearing
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/bearing.py", line 12, in <module>
    from . import projection
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/projection.py", line 9, in <module>
    import geopandas as gpd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/__init__.py", line 3, in <module>
    from geopandas.geoseries import GeoSeries
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/geopandas/geoseries.py", line 8, in <module>
    import pandas as pd
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/__init__.py", line 49, in <module>
    from pandas.core.api import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/api.py", line 28, in <module>
    from pandas.core.arrays import Categorical
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/arrays/__init__.py", line 1, in <module>
    from pandas.core.arrays.arrow import ArrowExtensionArray
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/arrays/arrow/__init__.py", line 5, in <module>
    from pandas.core.arrays.arrow.array import ArrowExtensionArray
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/arrays/arrow/array.py", line 66, in <module>
    from pandas.core.arrays.masked import BaseMaskedArray
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/arrays/masked.py", line 61, in <module>
    from pandas.core import (
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/core/nanops.py", line 52, in <module>
    bn = import_optional_dependency("bottleneck", errors="warn")
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/pandas/compat/_optional.py", line 135, in import_optional_dependency
    module = importlib.import_module(name)
  File "/Users/yessus/anaconda3/lib/python3.12/importlib/__init__.py", line 90, in import_module
    return _bootstrap._gcd_import(name[level:], package, level)
  File "/Users/yessus/anaconda3/lib/python3.12/site-packages/bottleneck/__init__.py", line 7, in <module>
    from .move import (move_argmax, move_argmin, move_max, move_mean, move_median,
Traceback (most recent call last):
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/numpy/core/_multiarray_umath.py", line 44, in __getattr__
    raise ImportError(msg)
ImportError: 
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.



A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.

Traceback (most recent call last):  File "/Users/yessus/projects/bambam/script/setup_test_bambam.py", line 2, in <module>
    import osmnx as ox
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/__init__.py", line 20, in <module>
    from . import distance as distance
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/distance.py", line 28, in <module>
    from sklearn.neighbors import BallTree
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/__init__.py", line 73, in <module>
    from .base import clone  # noqa: E402
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/base.py", line 19, in <module>
    from .utils._metadata_requests import _MetadataRequester, _routing_enabled
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/utils/__init__.py", line 9, in <module>
    from ._chunking import gen_batches, gen_even_slices
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/utils/_chunking.py", line 11, in <module>
    from ._param_validation import Interval, validate_params
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/utils/_param_validation.py", line 17, in <module>
    from .validation import _is_arraylike_not_scalar
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/utils/validation.py", line 21, in <module>
    from ..utils._array_api import _asarray_with_order, _is_numpy_namespace, get_namespace
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/utils/_array_api.py", line 20, in <module>
    from .fixes import parse_version
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/sklearn/utils/fixes.py", line 421, in <module>
    import pyarrow
  File "/Users/yessus/anaconda3/lib/python3.12/site-packages/pyarrow/__init__.py", line 65, in <module>
    import pyarrow.lib as _lib
Traceback (most recent call last):
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/numpy/core/_multiarray_umath.py", line 44, in __getattr__
    raise ImportError(msg)
ImportError: 
A module that was compiled using NumPy 1.x cannot be run in
NumPy 2.2.6 as it may crash. To support both 1.x and 2.x
versions of NumPy, modules must be compiled with NumPy 2.0.
Some module may need to rebuild instead e.g. with 'pybind11>=2.12'.

If you are a user of the module, the easiest solution will be to
downgrade to 'numpy<2' or try to upgrade the affected module.
We expect that some modules will need time to support NumPy 2.


downloading graph
Traceback (most recent call last):
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/connectionpool.py", line 464, in _make_request
    self._validate_conn(conn)
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/connectionpool.py", line 1093, in _validate_conn
    conn.connect()
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/connection.py", line 790, in connect
    sock_and_verified = _ssl_wrap_socket_and_match_hostname(
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/connection.py", line 969, in _ssl_wrap_socket_and_match_hostname
    ssl_sock = ssl_wrap_socket(
               ^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/util/ssl_.py", line 480, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/util/ssl_.py", line 524, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/anaconda3/lib/python3.12/ssl.py", line 455, in wrap_socket
    return self.sslsocket_class._create(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/anaconda3/lib/python3.12/ssl.py", line 1042, in _create
    self.do_handshake()
  File "/Users/yessus/anaconda3/lib/python3.12/ssl.py", line 1320, in do_handshake
    self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/connectionpool.py", line 787, in urlopen
    response = self._make_request(
               ^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/connectionpool.py", line 488, in _make_request
    raise new_e
urllib3.exceptions.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/requests/adapters.py", line 644, in send
    resp = conn.urlopen(
           ^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/connectionpool.py", line 841, in urlopen
    retries = retries.increment(
              ^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/urllib3/util/retry.py", line 519, in increment
    raise MaxRetryError(_pool, url, reason) from reason  # type: ignore[arg-type]
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
urllib3.exceptions.MaxRetryError: HTTPSConnectionPool(host='overpass-api.de', port=443): Max retries exceeded with url: /api/interpreter (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)')))

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/Users/yessus/projects/bambam/script/setup_test_bambam.py", line 8, in <module>
    g = ox.graph_from_place("Denver, Colorado, USA", network_type="drive")
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/graph.py", line 395, in graph_from_place
    G = graph_from_polygon(
        ^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/graph.py", line 495, in graph_from_polygon
    G_buff = _create_graph(response_jsons, bidirectional)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/graph.py", line 624, in _create_graph
    for response_json in response_jsons:
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/_overpass.py", line 402, in _download_overpass_network
    yield _overpass_request(OrderedDict(data=query_str))
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/osmnx/_overpass.py", line 469, in _overpass_request
    response = requests.post(
               ^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/requests/api.py", line 115, in post
    return request("post", url, data=data, json=json, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/requests/api.py", line 59, in request
    return session.request(method=method, url=url, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/requests/sessions.py", line 589, in request
    resp = self.send(prep, **send_kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/requests/sessions.py", line 703, in send
    r = adapter.send(request, **kwargs)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/Users/yessus/.cache/uv/archive-v0/QCd6U_Cuei8f2aZV7rGHe/lib/python3.12/site-packages/requests/adapters.py", line 675, in send
    raise SSLError(e, request=request)
requests.exceptions.SSLError: HTTPSConnectionPool(host='overpass-api.de', port=443): Max retries exceeded with url: /api/interpreter (Caused by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)')))

@robfitzgerald
Copy link
Copy Markdown
Collaborator Author

I agree with these changes. I tried to run the setup_test_bambam.sh script and failed in what seems to be a network error with a lot of numpy version warnings.

I'm pretty sure the numpy warnings are a red herring here and the problem is ssl-related. Could you make sure you run it with your NREL VPN off as a quick sanity check?

@yamilbknsu
Copy link
Copy Markdown
Collaborator

Aah yes, with the VPN off it run perfectly!

@robfitzgerald robfitzgerald merged commit 20cac74 into main Sep 12, 2025
1 check passed
@robfitzgerald robfitzgerald deleted the rjf/compass-edge-lists branch September 12, 2025 17:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants