r5py 0.1.1.dev2__py3-none-any.whl → 1.0.0.dev0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of r5py might be problematic. Click here for more details.

r5py/util/__init__.py CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  """Utility functions, e.g., starting a JVM, and accessing configuration."""
4
4
 
5
+ from . import environment # noqa: F401
6
+
5
7
  from .camel_to_snake_case import camel_to_snake_case
6
8
  from .config import Config
7
9
  from .contains_gtfs_data import contains_gtfs_data
r5py/util/classpath.py CHANGED
@@ -17,8 +17,10 @@ from .warnings import R5pyWarning
17
17
 
18
18
 
19
19
  # update these to use a newer R5 version if no R5 available locally
20
- R5_JAR_URL = "https://github.com/conveyal/r5/releases/download/v6.9/r5-v6.9-all.jar"
21
- R5_JAR_SHA256 = "a7e1c5ff8786a9fb9191073b8f31a6933b862f44b9ff85b2c00a68c85491274d"
20
+ R5_JAR_URL = (
21
+ "https://github.com/r5py/r5/releases/download/v7.2-r5py/r5-v7.2-r5py-all.jar"
22
+ )
23
+ R5_JAR_SHA256 = "f693af105b4b9c5fb317f0c81cf2d6d54a46b3b56a7c4817454d758920fbe706"
22
24
  # ---
23
25
 
24
26
 
@@ -73,9 +75,11 @@ def find_r5_classpath(arguments):
73
75
  "Could not find R5 jar, trying to download it from upstream",
74
76
  R5pyWarning,
75
77
  )
76
- with ValidatingRequestsSession() as session, session.get(
77
- R5_JAR_URL, R5_JAR_SHA256
78
- ) as response, open(r5_classpath, "wb") as jar:
78
+ with (
79
+ ValidatingRequestsSession() as session,
80
+ session.get(R5_JAR_URL, R5_JAR_SHA256) as response,
81
+ open(r5_classpath, "wb") as jar,
82
+ ):
79
83
  jar.write(response.content)
80
84
  if arguments.verbose:
81
85
  warnings.warn(
r5py/util/config.py CHANGED
@@ -31,7 +31,6 @@ class Config:
31
31
 
32
32
  def __init__(self):
33
33
  """Load configuration from config files or command line arguments."""
34
-
35
34
  self.argparser.add(
36
35
  "-v",
37
36
  "--verbose",
@@ -40,6 +39,7 @@ class Config:
40
39
  )
41
40
 
42
41
  def __new__(cls):
42
+ """Load configuration from config files or command line arguments."""
43
43
  if cls._instance is None:
44
44
  cls._instance = super(Config, cls).__new__(cls)
45
45
  return cls._instance
@@ -55,6 +55,7 @@ class Config:
55
55
 
56
56
  @property
57
57
  def argparser(self):
58
+ """Return a singleton instance of a `configargparse.ArgumentParser`."""
58
59
  try:
59
60
  argparser = configargparse.get_argument_parser(
60
61
  prog=PACKAGE,
@@ -67,6 +68,7 @@ class Config:
67
68
 
68
69
  @functools.cached_property
69
70
  def CACHE_DIR(self):
71
+ """Save persistent cache files into this directory."""
70
72
  cache_dir = (
71
73
  pathlib.Path(
72
74
  os.environ.get("LOCALAPPDATA")
@@ -80,6 +82,7 @@ class Config:
80
82
 
81
83
  @functools.cached_property
82
84
  def CONFIG_FILES(self):
85
+ """List locations of potential configuration files."""
83
86
  config_files = [
84
87
  pathlib.Path(f"/etc/{PACKAGE}.yml"),
85
88
  pathlib.Path(
@@ -130,8 +133,14 @@ class Config:
130
133
 
131
134
  @functools.cached_property
132
135
  def TEMP_DIR(self):
136
+ """
137
+ Save temporary files to this directory.
138
+
139
+ read-only property,
140
+ use command-line option `--temporary-directory` to change.
141
+ """
133
142
  parent_dir = self.arguments.temporary_directory
134
- temp_dir = pathlib.Path(tempfile.mkdtemp(prefix=self.PACKAGE), dir=parent_dir)
143
+ temp_dir = pathlib.Path(tempfile.mkdtemp(prefix=self.PACKAGE, dir=parent_dir))
135
144
  return temp_dir
136
145
 
137
146
  PACKAGE = PACKAGE
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/env python3
2
+
3
+
4
+ """Normalise some environment variables that might not always get set."""
5
+
6
+
7
+ import os
8
+ import pathlib
9
+
10
+
11
+ # if a readthedocs runner uses a conda environment, it fails to
12
+ # properly initialise the JAVA_HOME and PROJ_LIB environment variables
13
+ #
14
+ # this might happen on other installation, so let’s keep this as general
15
+ # as possible.
16
+ #
17
+ # As readthedocs also does not export CONDA_PREFIX, we first reconstruct
18
+ # it from CONDA_ENVS_PATH and CONDA_DEFAULT_ENV
19
+ if (
20
+ "CONDA_PREFIX" not in os.environ
21
+ and "CONDA_DEFAULT_ENV" in os.environ
22
+ and "CONDA_ENVS_PATH" in os.environ
23
+ ):
24
+ os.environ["CONDA_PREFIX"] = str(
25
+ pathlib.Path(os.environ["CONDA_ENVS_PATH"]) / os.environ["CONDA_DEFAULT_ENV"]
26
+ )
27
+ if "JAVA_HOME" not in os.environ and "CONDA_PREFIX" in os.environ:
28
+ os.environ["JAVA_HOME"] = str(
29
+ pathlib.Path(os.environ["CONDA_PREFIX"]) / "lib" / "jvm"
30
+ )
31
+ if "PROJ_LIB" not in os.environ and "CONDA_PREFIX" in os.environ:
32
+ os.environ["PROJ_LIB"] = str(
33
+ pathlib.Path(os.environ["CONDA_PREFIX"]) / "share" / "proj"
34
+ )
@@ -31,7 +31,6 @@ class GoodEnoughEquidistantCrs(pyproj.CRS):
31
31
  The geographical extent for which to find an equidistant reference
32
32
  system, in `EPSG:4326`
33
33
  """
34
-
35
34
  if GoodEnoughEquidistantCrs._is_plausible_in_epsg4326(extent):
36
35
  # default CRS in case we do not find any better match
37
36
  crs = pyproj.CRS.from_epsg(3857)
@@ -62,9 +62,9 @@ def _share_of_ram(share=0.8, leave_at_least=(2 * 1024**3)):
62
62
 
63
63
  def _parse_value_and_unit(value_and_unit, max_unit_length=1):
64
64
  """
65
- Extract value and unit from a string containing a possible
66
- (non-numeric) unit suffix.
65
+ Extract value and unit from a string.
67
66
 
67
+ The string is allowed to contain a (non-numeric) unit suffix.
68
68
  For instance, input values of `'1M'` or `3.732G` would yield return
69
69
  values `(1, 'M')` or `(3.732, 'G')`, respectively.
70
70
 
@@ -112,11 +112,10 @@ def _interpret_power_of_two_units(value, unit):
112
112
  int:
113
113
  interpreted value in bytes
114
114
  """
115
-
116
- SUFFIXES = " KMGTPEZY"
117
115
  # the position of each suffix in this string is the unit’s exponent
118
116
  # over 1024.
119
117
  # Compare https://en.wikipedia.org/wiki/ISO%2FIEC_80000#Part_13:_Information_science_and_technology
118
+ SUFFIXES = " KMGTPEZY"
120
119
 
121
120
  if unit is None:
122
121
  unit = " "
@@ -152,7 +151,6 @@ def _get_max_memory(max_memory):
152
151
  int
153
152
  Maximum amount of memory allocated for R5 in bytes.
154
153
  """
155
-
156
154
  try:
157
155
  value, unit = _parse_value_and_unit(max_memory)
158
156
  except TypeError:
@@ -25,6 +25,7 @@ class SampleDataSet(pathlib.Path):
25
25
  _CACHE_DIR = pathlib.Path(config.CACHE_DIR) / "sampledata"
26
26
 
27
27
  def __new__(cls, remote_url, sha256_checksum):
28
+ """Define a data set that is downloaded and cached on demand."""
28
29
  # pathlib.Path does everything in __new__, rather than __init__
29
30
  cached_path = cls._CACHE_DIR / pathlib.Path(remote_url).name
30
31
  return super().__new__(cls, cached_path)
@@ -40,10 +41,16 @@ class SampleDataSet(pathlib.Path):
40
41
  sha256_checksum : str
41
42
  checksum for this data set, using an SHA256 algorithm
42
43
  """
43
- super().__init__()
44
+ cached_path = self._CACHE_DIR / pathlib.Path(remote_url).name
45
+
46
+ try: # Python>=3.12
47
+ super().__init__(cached_path)
48
+ except TypeError:
49
+ super().__init__()
50
+
44
51
  self.remote_url = remote_url
45
52
  self.checksum = sha256_checksum
46
- self.cached_path = self._CACHE_DIR / pathlib.Path(remote_url).name
53
+ self.cached_path = cached_path
47
54
  self._download_remote_file()
48
55
 
49
56
  def _download_remote_file(self):
@@ -60,7 +67,8 @@ class SampleDataSet(pathlib.Path):
60
67
  RuntimeWarning,
61
68
  )
62
69
  self.cached_path.parent.mkdir(exist_ok=True)
63
- with ValidatingRequestsSession() as session, session.get(
64
- self.remote_url, self.checksum
65
- ) as response:
70
+ with (
71
+ ValidatingRequestsSession() as session,
72
+ session.get(self.remote_url, self.checksum) as response,
73
+ ):
66
74
  self.cached_path.write_bytes(response.content)
@@ -30,12 +30,12 @@ class ValidatingRequestsSession(requests.Session):
30
30
  self._algorithm = checksum_algorithm
31
31
 
32
32
  def get(self, url, checksum, **kwargs):
33
- """Sends a GET request, tests checksum."""
33
+ """Send a GET request, tests checksum."""
34
34
  kwargs.setdefault("allow_redirects", True)
35
35
  return self.request("GET", url, checksum, **kwargs)
36
36
 
37
37
  def post(self, url, checksum, **kwargs):
38
- """Sends a POST request, tests checksum."""
38
+ """Send a POST request, tests checksum."""
39
39
  return self.request("POST", url, checksum, **kwargs)
40
40
 
41
41
  # delete, put, head don’t return data,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: r5py
3
- Version: 0.1.1.dev2
3
+ Version: 1.0.0.dev0
4
4
  Summary: Python wrapper for the R5 routing analysis engine
5
5
  Author: Willem Klumpenhouwer, Marcus Sairava, Rafael Pereira, Henrikki Tenkanen
6
6
  Author-email: Christoph Fink <christoph.fink@helsinki.fi>
@@ -25,37 +25,39 @@ Requires-Dist: importlib-resources
25
25
  Requires-Dist: joblib
26
26
  Requires-Dist: jpype1
27
27
  Requires-Dist: numpy
28
- Requires-Dist: pandas >=2.1.0
28
+ Requires-Dist: pandas>=2.1.0
29
29
  Requires-Dist: psutil
30
30
  Requires-Dist: pyproj
31
31
  Requires-Dist: requests
32
- Requires-Dist: shapely >=2.0
32
+ Requires-Dist: shapely>=2.0
33
33
  Provides-Extra: docs
34
- Requires-Dist: contextily ; extra == 'docs'
35
- Requires-Dist: folium ; extra == 'docs'
36
- Requires-Dist: GitPython ; extra == 'docs'
37
- Requires-Dist: h3 >=4.0.0b2 ; extra == 'docs'
38
- Requires-Dist: jupyterlab-myst ; extra == 'docs'
39
- Requires-Dist: mapclassify ; extra == 'docs'
40
- Requires-Dist: matplotlib ; extra == 'docs'
41
- Requires-Dist: myst-nb ; extra == 'docs'
42
- Requires-Dist: nbsphinx ; extra == 'docs'
43
- Requires-Dist: pybtex-apa7-style ; extra == 'docs'
44
- Requires-Dist: r5py.sampledata.helsinki >=0.1.1.dev2 ; extra == 'docs'
45
- Requires-Dist: r5py.sampledata.sao-paulo >=0.1.1.dev2 ; extra == 'docs'
46
- Requires-Dist: shapely ; extra == 'docs'
47
- Requires-Dist: sphinx ; extra == 'docs'
48
- Requires-Dist: sphinx-book-theme ; extra == 'docs'
49
- Requires-Dist: sphinx-design ; extra == 'docs'
50
- Requires-Dist: sphinxcontrib-bibtex ; extra == 'docs'
51
- Requires-Dist: sphinxcontrib-images ; extra == 'docs'
34
+ Requires-Dist: contextily; extra == "docs"
35
+ Requires-Dist: folium; extra == "docs"
36
+ Requires-Dist: GitPython; extra == "docs"
37
+ Requires-Dist: h3>=4.0.0b2; extra == "docs"
38
+ Requires-Dist: jupyterlab-myst; extra == "docs"
39
+ Requires-Dist: mapclassify; extra == "docs"
40
+ Requires-Dist: matplotlib; extra == "docs"
41
+ Requires-Dist: myst-nb; extra == "docs"
42
+ Requires-Dist: nbsphinx; extra == "docs"
43
+ Requires-Dist: pybtex-apa7-style; extra == "docs"
44
+ Requires-Dist: r5py.sampledata.helsinki>=0.1.1; extra == "docs"
45
+ Requires-Dist: r5py.sampledata.sao-paulo>=0.1.1; extra == "docs"
46
+ Requires-Dist: shapely; extra == "docs"
47
+ Requires-Dist: sphinx; extra == "docs"
48
+ Requires-Dist: sphinx-book-theme; extra == "docs"
49
+ Requires-Dist: sphinx-design; extra == "docs"
50
+ Requires-Dist: sphinxcontrib-bibtex; extra == "docs"
51
+ Requires-Dist: sphinxcontrib-images; extra == "docs"
52
52
  Provides-Extra: tests
53
- Requires-Dist: pytest ; extra == 'tests'
54
- Requires-Dist: pytest-asyncio ; extra == 'tests'
55
- Requires-Dist: pytest-cov ; extra == 'tests'
56
- Requires-Dist: pytest-lazy-fixture ; extra == 'tests'
57
- Requires-Dist: r5py.sampledata.helsinki >=0.1.1.dev2 ; extra == 'tests'
58
- Requires-Dist: r5py.sampledata.sao-paulo >=0.1.1.dev2 ; extra == 'tests'
53
+ Requires-Dist: pyarrow; extra == "tests"
54
+ Requires-Dist: pytest; extra == "tests"
55
+ Requires-Dist: pytest-asyncio; extra == "tests"
56
+ Requires-Dist: pytest-cov; extra == "tests"
57
+ Requires-Dist: pytest-lazy-fixtures; extra == "tests"
58
+ Requires-Dist: r5py.sampledata.helsinki>=0.1.1; extra == "tests"
59
+ Requires-Dist: r5py.sampledata.sao-paulo>=0.1.1; extra == "tests"
60
+ Requires-Dist: typing-extensions; extra == "tests"
59
61
 
60
62
  <img class="r5py_logo" align="right" src="https://github.com/r5py/r5py/raw/main/docs/_static/images/r5py_blue.svg" alt="r5py logo" style="width:180px; max-width:30vW;">
61
63
 
@@ -0,0 +1,42 @@
1
+ r5py/__init__.py,sha256=8aG7qJXJb_PEHvRoC4PUA7i4CHF8bFS5k8Dgkbgc1X8,516
2
+ r5py/__main__.py,sha256=Wvn0ChD7E-dCSZ8b8k_HhHG0KMOk0qMNFkijGuSH3-0,81
3
+ r5py/r5/__init__.py,sha256=N_55XlwBDUtljFEHIDYSFb4pPPHXsHdPfF-8qu9IjhQ,1071
4
+ r5py/r5/access_leg.py,sha256=W3GfPEpqmWD1c4xipd6UcVIaBC-yb6srGCZV30E2dPY,293
5
+ r5py/r5/base_travel_time_matrix.py,sha256=Vl82Wkk2iANNy6L3r937yXNnQ9lmMOErGT_-fQnb1Ms,6978
6
+ r5py/r5/breakdown_stat.py,sha256=ZQkWA0hXlcRH3KVgtxPSNHP0FUDri8MWqdFk8EUdDMU,533
7
+ r5py/r5/detailed_itineraries.py,sha256=kLIlMMMGC3pbjzkhIQDx9AdQ7wFBcMzCteB8E7JLdQQ,10964
8
+ r5py/r5/direct_leg.py,sha256=T7wX8puhOVIssCpflXthYs-G9OA8pasFbdz9p8k8teg,1054
9
+ r5py/r5/egress_leg.py,sha256=9rsCIcwlZUzoZE6q4imNY3VWpjJepO1IJvheVrlPi90,297
10
+ r5py/r5/regional_task.py,sha256=wTNx2NT3-GCEvDyz0e-_YYkVWtpE66dg2IlXTA1gI-4,23234
11
+ r5py/r5/scenario.py,sha256=nUNAlN3cO7E_b4sMpNqdL0FD7WQaQ49iIvh-k8l4YRM,763
12
+ r5py/r5/street_layer.py,sha256=iGlAWftzmwzaRUpXngis7prVuH3Oq8i-AXS8-pnVXMk,2259
13
+ r5py/r5/transfer_leg.py,sha256=_IpzQJAyW4hDPO5V4k-ZjIPd3uyxhHPa4U6_b8UbKt4,311
14
+ r5py/r5/transit_layer.py,sha256=vVo_o10yDCzpujOQ99xdzmznwVjAbANjdDflQy2QOpI,3223
15
+ r5py/r5/transit_leg.py,sha256=R0Qc9YLMEXYu51NIdo7Q0bdmpYIJf5irEDXWrW6pZWE,221
16
+ r5py/r5/transport_mode.py,sha256=zHSqXb0R4oyjTp069CzO69IgoCKt0nmOAwsSy272rGo,3675
17
+ r5py/r5/transport_network.py,sha256=d4PPBEBk3t2QbUI5KMS9zM-a4s4E4zEYOHIV6txCnYg,10777
18
+ r5py/r5/travel_time_matrix.py,sha256=S76Ir53hFwsJeB2t2MrC1azu5apt6Sptgew9NNJO3YA,8028
19
+ r5py/r5/trip.py,sha256=AqhlhgYaGRL5jVzV08BhsqgWxe8f4wAb5HMP8HIGwc8,2944
20
+ r5py/r5/trip_leg.py,sha256=9E4vZpBEJCXIVqAXWJvnPloC-upEASKhFnjiuen8i8A,6495
21
+ r5py/r5/trip_planner.py,sha256=qUzzTA3PHcHkN7kNzAywhLFQswGDyPSgtkkvPZ9eJVQ,23819
22
+ r5py/util/__init__.py,sha256=S-agt-08twU7hFIH1_x_VjuNC-WHfP6844n0xM0E8t8,714
23
+ r5py/util/camel_to_snake_case.py,sha256=zj5F3PNBvsuS6vqN4USeeo8NI-3hnscGhwun0G95AK0,673
24
+ r5py/util/classpath.py,sha256=Q8DETY-U_rY9UeFmrp3stxDj75wv-u7fhxXVp9AL00s,2773
25
+ r5py/util/config.py,sha256=TpT67KZoHj17USjmGgiyH7HKa757CFXVk5nnBEio8E0,4667
26
+ r5py/util/contains_gtfs_data.py,sha256=ooX4hfVDKK0aqX1MI46jSFZ7dZ6riyXaORrgF6PUFrk,1211
27
+ r5py/util/data_validation.py,sha256=H5Mcp2nS4vu5RKym20mPnGpl-8d0SDchzDRJBrrL6WE,1039
28
+ r5py/util/environment.py,sha256=cbSM8TKTuhbXsTIIB06pMtydBOiqLkitF2Lj2asVTho,1082
29
+ r5py/util/exceptions.py,sha256=r65XUg_AJ_bTw8ARNj7A2-GbFZlSTrOAjDynx1pSD2Y,1049
30
+ r5py/util/good_enough_equidistant_crs.py,sha256=1aqJLghNwcd2FbLfODcht_6pyOEqhsrE2KPaC3NLoek,2354
31
+ r5py/util/jvm.py,sha256=NCwoYLDznXydcIRAZl2kzUQA6D6NCvzjVG74pm6ioR0,5027
32
+ r5py/util/memory_footprint.py,sha256=p8efCUs4UXRg6P1GrRxVs71m7SpEw2mASoz6PVTRvgQ,4672
33
+ r5py/util/parse_int_date.py,sha256=JmnV8TwdUdUp3kSp2e73ZSxCbRyqv2FmQzNt0I_MsM0,667
34
+ r5py/util/sample_data_set.py,sha256=SRTFmhnhtwNCYtXRGPNKkh_lh3OEvgcyHS4Fz8N9uM8,2394
35
+ r5py/util/snake_to_camel_case.py,sha256=uJ5hTCVDUEmIxTyy4LGFTbpGC_rtnjDZVQ2vmVRTQ4k,485
36
+ r5py/util/validating_requests_session.py,sha256=sH5FgpS9eGax5DG2qA2GrGuiwgTJgh8tKsZ9OiXKmvk,1807
37
+ r5py/util/warnings.py,sha256=CvxKWKlNO_p3riB4SkNqbU5AGPsaY_3-OzqaBObE3B8,139
38
+ r5py-1.0.0.dev0.dist-info/LICENSE,sha256=VAnuGDX1TPylSN9G2xLa-urDpj_SQwn-qqs068dx4tk,51
39
+ r5py-1.0.0.dev0.dist-info/METADATA,sha256=PpjIwfXHBYr9nU0MBk9OArFFYjmnz-lJHAhE3-U3TmM,10039
40
+ r5py-1.0.0.dev0.dist-info/WHEEL,sha256=UvcQYKBHoFqaQd6LKyqHw9fxEolWLQnlzP0h_LgJAfI,91
41
+ r5py-1.0.0.dev0.dist-info/top_level.txt,sha256=fOH1R85dkNDOI7jkg-lIsl5CQIO4fE5X868K9dTqs9U,5
42
+ r5py-1.0.0.dev0.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.41.2)
2
+ Generator: setuptools (74.0.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5
 
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env
2
-
3
- """A placeholder for plugin-style sample data packages within the r5py.sampledata.* namespace."""
@@ -1,42 +0,0 @@
1
- r5py/__init__.py,sha256=eWYsVlnfyYPcIveYA3jP_niDewEPlrWau81hem9WybM,418
2
- r5py/__main__.py,sha256=5p_QWx8hsNbz34OwMKl9mY644bfqwXRFXkFSlTP06AM,239
3
- r5py/r5/__init__.py,sha256=gq-1XbdrHE4v3XAvyV-Amod-Vcgp_c1Sbs13mgxOD08,643
4
- r5py/r5/access_leg.py,sha256=W3GfPEpqmWD1c4xipd6UcVIaBC-yb6srGCZV30E2dPY,293
5
- r5py/r5/base_travel_time_matrix_computer.py,sha256=lnyI70dIGq0e9E1cvLJfF17hIw8eG8Qnt8WfXOwNFBo,6313
6
- r5py/r5/breakdown_stat.py,sha256=ZQkWA0hXlcRH3KVgtxPSNHP0FUDri8MWqdFk8EUdDMU,533
7
- r5py/r5/detailed_itineraries_computer.py,sha256=kRV8OBpvdsgYHcNGQzBi6Y3WyAlPCTSQn0HrWoBqvus,8483
8
- r5py/r5/direct_leg.py,sha256=opX575iuByoy8WORIsSvIgVqAwglBVCl15ZCo1pv_Mk,1064
9
- r5py/r5/egress_leg.py,sha256=9rsCIcwlZUzoZE6q4imNY3VWpjJepO1IJvheVrlPi90,297
10
- r5py/r5/regional_task.py,sha256=uzciavh9qWrMPYtixIdSR8hMxg4tyC98FnTYqpN4FME,23136
11
- r5py/r5/scenario.py,sha256=nUNAlN3cO7E_b4sMpNqdL0FD7WQaQ49iIvh-k8l4YRM,763
12
- r5py/r5/street_layer.py,sha256=aA8cBXvV60wH7WlEnwqbPXPpPxwQQsPPbW59HDUJrc0,2196
13
- r5py/r5/transfer_leg.py,sha256=m_9t1Kr8pq5rmtJz4XZSvRpog4_WpMtF2nKeybJ0v8U,325
14
- r5py/r5/transit_layer.py,sha256=znQcJmtFpqVcsvZziPDHxAcRS0OXvyn3JdWE_lXZv0A,2928
15
- r5py/r5/transit_leg.py,sha256=zd8QnMiOHCw3hS6WO5uwegxROdwDpqNDqvZwVJ2MlKo,241
16
- r5py/r5/transport_mode.py,sha256=YJj2CzZ0cz4hAu48udYtX8MnFuSx4he703xcP3BV_7I,3586
17
- r5py/r5/transport_network.py,sha256=ZWKHEhRkmpy_lQLvMjjjRqp_8ciP5kea7263Y4WwhG0,10470
18
- r5py/r5/travel_time_matrix_computer.py,sha256=ns4DnWXfyPpslwQlHGM5Vsmpdzvr8NF-hWaRgc8HYGc,4880
19
- r5py/r5/trip.py,sha256=SvXXQdvkCZzXcAbLyxKjCEwdbft_Jt7SPmPDzdw0K9w,2617
20
- r5py/r5/trip_leg.py,sha256=gto-VRo_AdUxdRDRlIey6f8jSZ021NI91BODTowp-wQ,4131
21
- r5py/r5/trip_planner.py,sha256=298IvJioFz4uj1L8qXJE5Ehrqcy51IP_2FoQfo3GEDc,21293
22
- r5py/sampledata/_keep/__init__.py,sha256=Dd14TxWipq66sLK3ponMl09SbtzWoqmD-dhbTuS889M,114
23
- r5py/util/__init__.py,sha256=moUcR_oxpITt2vdNQxuej6haFywjA62UcUY4T5TMDns,673
24
- r5py/util/camel_to_snake_case.py,sha256=zj5F3PNBvsuS6vqN4USeeo8NI-3hnscGhwun0G95AK0,673
25
- r5py/util/classpath.py,sha256=os4UmHEs2GGk0jnHSD_1wJHEjmpYQU3VAb6T_iUdFEw,2724
26
- r5py/util/config.py,sha256=M3eT4B2mB0CaFHQYn5DmtFTtSc4_RCK8fS3UuO7X2D8,4216
27
- r5py/util/contains_gtfs_data.py,sha256=ooX4hfVDKK0aqX1MI46jSFZ7dZ6riyXaORrgF6PUFrk,1211
28
- r5py/util/data_validation.py,sha256=H5Mcp2nS4vu5RKym20mPnGpl-8d0SDchzDRJBrrL6WE,1039
29
- r5py/util/exceptions.py,sha256=r65XUg_AJ_bTw8ARNj7A2-GbFZlSTrOAjDynx1pSD2Y,1049
30
- r5py/util/good_enough_equidistant_crs.py,sha256=VuzPGPTyL7T0Cl3SZba7atBTyyt9uUTLkq7JVMxjGsI,2355
31
- r5py/util/jvm.py,sha256=NCwoYLDznXydcIRAZl2kzUQA6D6NCvzjVG74pm6ioR0,5027
32
- r5py/util/memory_footprint.py,sha256=FlOLEAz7yI3YOv3wJe_tejJPh0y640QlDd0Z3Ce5i2s,4660
33
- r5py/util/parse_int_date.py,sha256=JmnV8TwdUdUp3kSp2e73ZSxCbRyqv2FmQzNt0I_MsM0,667
34
- r5py/util/sample_data_set.py,sha256=YQcDjcywria2hiR9A3cS8y3LmGsEAraQMDaGXFPg4JU,2165
35
- r5py/util/snake_to_camel_case.py,sha256=uJ5hTCVDUEmIxTyy4LGFTbpGC_rtnjDZVQ2vmVRTQ4k,485
36
- r5py/util/validating_requests_session.py,sha256=nkgOsZ_fbaP19R8l0ImZLFo5zUdw9-B289w0DEygtW0,1809
37
- r5py/util/warnings.py,sha256=CvxKWKlNO_p3riB4SkNqbU5AGPsaY_3-OzqaBObE3B8,139
38
- r5py-0.1.1.dev2.dist-info/LICENSE,sha256=VAnuGDX1TPylSN9G2xLa-urDpj_SQwn-qqs068dx4tk,51
39
- r5py-0.1.1.dev2.dist-info/METADATA,sha256=ZFy_vU_mdoQtSMduASSOhF8uIIL0Yq2PG0KxnuBVnCY,9997
40
- r5py-0.1.1.dev2.dist-info/WHEEL,sha256=yQN5g4mg4AybRjkgi-9yy4iQEFibGQmlz78Pik5Or-A,92
41
- r5py-0.1.1.dev2.dist-info/top_level.txt,sha256=fOH1R85dkNDOI7jkg-lIsl5CQIO4fE5X868K9dTqs9U,5
42
- r5py-0.1.1.dev2.dist-info/RECORD,,