aiomobilitydatabase 0.2.0__tar.gz → 0.2.1__tar.gz
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.
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/PKG-INFO +1 -1
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/const.py +1 -1
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/transit.py +14 -4
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/.github/workflows/ci.yml +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/.github/workflows/publish.yml +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/.gitignore +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/.pre-commit-config.yaml +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/LICENSE +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/README.md +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/pyproject.toml +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/scripts/generate_rt_fixtures.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/__init__.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/client.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/exceptions.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/__init__.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/client.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/const.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/exceptions.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/gbfs.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/geo.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/models.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/rt.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/static_index.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/models.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/py.typed +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/__init__.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/conftest.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/__init__.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/conftest.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/gbfs_feed.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/gtfs_feed.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/gtfs_rt_feed.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/token_response.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/free_bike_status_23.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/station_info_23.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/station_status_23.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/system_info_23.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/system_info_30.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/vehicle_status_30.json +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/agency.txt +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/calendar.txt +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/calendar_dates.txt +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/routes.txt +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/stop_times.txt +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/stops.txt +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/trips.txt +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/added_trips_s1.pb +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/alerts.pb +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/trip_updates_baseline.pb +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/trip_updates_t1_delayed.pb +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/vehicle_positions.pb +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/fixtures.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_client.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_exceptions.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_extra_import_guard.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_gbfs_stations.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_gbfs_vehicles.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_geo.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_models.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_properties.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_rt.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_static_arrivals.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_static_build.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_station_grouping.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_transit_arrivals.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_transit_resolution.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_transit_vehicles_alerts.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/fixtures.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/mock_server.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_catalog_properties.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_client_request.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_client_session.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_client_token.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_endpoints.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_exceptions.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_models.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_params.py +0 -0
- {aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/test_public_api.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: aiomobilitydatabase
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Async Python client for the Mobility Database catalog API
|
|
5
5
|
Project-URL: Source Code, https://github.com/raman325/aiomobilitydatabase
|
|
6
6
|
Project-URL: Bug Reports, https://github.com/raman325/aiomobilitydatabase/issues
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/transit.py
RENAMED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
from __future__ import annotations
|
|
4
4
|
|
|
5
5
|
import asyncio
|
|
6
|
+
import shutil
|
|
6
7
|
import tempfile
|
|
7
8
|
from collections.abc import Callable
|
|
8
9
|
from datetime import UTC, datetime, timedelta
|
|
@@ -184,7 +185,7 @@ class TransitFeedHandle:
|
|
|
184
185
|
raise FeedParseError(
|
|
185
186
|
f"Feed id {static_feed.id!r} escapes the cache directory"
|
|
186
187
|
)
|
|
187
|
-
feed_dir.mkdir
|
|
188
|
+
await asyncio.to_thread(feed_dir.mkdir, parents=True, exist_ok=True)
|
|
188
189
|
db_path = feed_dir / STATIC_DB_FILENAME
|
|
189
190
|
cached = await asyncio.to_thread(
|
|
190
191
|
StaticIndex.open_cached, db_path, dataset.id
|
|
@@ -192,7 +193,8 @@ class TransitFeedHandle:
|
|
|
192
193
|
if cached is not None:
|
|
193
194
|
return cached
|
|
194
195
|
session = client._get_session() # deliberate friend access
|
|
195
|
-
|
|
196
|
+
tmp_dir = await asyncio.to_thread(tempfile.mkdtemp)
|
|
197
|
+
try:
|
|
196
198
|
zip_path = Path(tmp_dir) / "dataset.zip"
|
|
197
199
|
try:
|
|
198
200
|
async with session.get(
|
|
@@ -210,9 +212,13 @@ class TransitFeedHandle:
|
|
|
210
212
|
done_bytes = 0
|
|
211
213
|
last_emitted = 0
|
|
212
214
|
first_chunk = True
|
|
213
|
-
|
|
215
|
+
# File writes stay off the event loop: consumers (for
|
|
216
|
+
# example Home Assistant) run this on their loop and a
|
|
217
|
+
# large dataset means thousands of 64 KiB writes.
|
|
218
|
+
fp = await asyncio.to_thread(zip_path.open, "wb")
|
|
219
|
+
try:
|
|
214
220
|
async for chunk in resp.content.iter_chunked(1 << 16):
|
|
215
|
-
fp.write
|
|
221
|
+
await asyncio.to_thread(fp.write, chunk)
|
|
216
222
|
done_bytes += len(chunk)
|
|
217
223
|
if on_progress is not None and (
|
|
218
224
|
first_chunk
|
|
@@ -227,6 +233,8 @@ class TransitFeedHandle:
|
|
|
227
233
|
)
|
|
228
234
|
last_emitted = done_bytes
|
|
229
235
|
first_chunk = False
|
|
236
|
+
finally:
|
|
237
|
+
await asyncio.to_thread(fp.close)
|
|
230
238
|
if on_progress is not None:
|
|
231
239
|
on_progress(
|
|
232
240
|
StaticBuildProgress(
|
|
@@ -259,6 +267,8 @@ class TransitFeedHandle:
|
|
|
259
267
|
dataset.agency_timezone,
|
|
260
268
|
build_progress,
|
|
261
269
|
)
|
|
270
|
+
finally:
|
|
271
|
+
await asyncio.to_thread(shutil.rmtree, tmp_dir, ignore_errors=True)
|
|
262
272
|
|
|
263
273
|
def _rt_feeds_for(self, entity_type: EntityType) -> list[GtfsRtFeed]:
|
|
264
274
|
return [
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/exceptions.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/__init__.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/client.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/const.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/exceptions.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/gbfs.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/geo.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/src/aiomobilitydatabase/feeds/models.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/gbfs_feed.json
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/gtfs_feed.json
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/gtfs_rt_feed.json
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/catalog/token_response.json
RENAMED
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/station_info_23.json
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/station_status_23.json
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/system_info_23.json
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/system_info_30.json
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gbfs/vehicle_status_30.json
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/calendar_dates.txt
RENAMED
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/gtfs/stop_times.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/added_trips_s1.pb
RENAMED
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/trip_updates_baseline.pb
RENAMED
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/data/rt/vehicle_positions.pb
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_extra_import_guard.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_station_grouping.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_transit_arrivals.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_transit_resolution.py
RENAMED
|
File without changes
|
{aiomobilitydatabase-0.2.0 → aiomobilitydatabase-0.2.1}/tests/feeds/test_transit_vehicles_alerts.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|