fleetpull 0.1.2__tar.gz → 0.1.3__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.
- {fleetpull-0.1.2 → fleetpull-0.1.3}/PKG-INFO +1 -1
- {fleetpull-0.1.2 → fleetpull-0.1.3}/pyproject.toml +1 -1
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/__init__.py +1 -1
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/batch.py +16 -27
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/PKG-INFO +1 -1
- {fleetpull-0.1.2 → fleetpull-0.1.3}/LICENSE +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/README.md +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/setup.cfg +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/auth_ingress.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/catalog.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/fetch.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/identity.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/sync.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/cli.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/base.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/example.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/geotab.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/http.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/loading.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/logger.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/providers.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/rate_limit.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/resolution.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/retry.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/root.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/sections.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/_requests.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/annotation_logs.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/audits.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/devices.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/driver_changes.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/duty_status_logs.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/dvir_logs.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/exception_events.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fault_data.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fill_ups.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fuel_and_energy_used.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fuel_tax_details.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/log_records.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/media_files.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/shipment_logs.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/status_data.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/text_messages.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/trips.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/users.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/_spec_builders.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/driver_idle_rollups.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/driving_periods.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/groups.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/idle_events.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/users.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/vehicle_locations.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/vehicle_utilizations.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/vehicles.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/registry.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/_spec_builders.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/addresses.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/asset_locations.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/driver_fuel_energy_reports.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/driver_vehicle_assignments.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/drivers.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/engine_states.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/gps_readings.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/idling_events.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/odometer_readings.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/trips.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/vehicle_fuel_energy_reports.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/vehicles.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/base.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/request_shape.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/resume.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/spec_builders.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/sync_mode.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/url_paths.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/exceptions.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/cursor.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/resolution.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/seed.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/window.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/logger/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/logger/setup.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/model_contract/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/model_contract/coercions.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/model_contract/response.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/annotation_log.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/audit.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/device.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/driver_change.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/duty_status_log.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/dvir_log.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/exception_event.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fault_data.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fill_up.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fuel_and_energy_used.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fuel_tax_detail.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/log_record.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/media_file.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/shared.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/shipment_log.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/status_data.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/text_message.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/trip.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/user.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/driver_idle_rollup.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/driving_period.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/group.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/idle_event.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/shared.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/user.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/vehicle.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/vehicle_location.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/vehicle_utilization.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/address.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/asset_location.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver_fuel_energy_report.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver_vehicle_assignment.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/engine_state.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/gps_reading.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/idling_event.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/odometer_reading.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/trip.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/vehicle.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/vehicle_fuel_energy_report.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/authenticate.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/manager.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/models.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/strategies.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/geotab.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/motive.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/samsara.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/page.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/profile.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/registry.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/registry_base.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/runtime.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/transport.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/auth.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/classifier.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/envelope_fetcher.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/envelopes.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/outcome.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/page_decoder.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/request.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/_window_stamp.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/geotab.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/motive.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/motive_reports.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/samsara.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/samsara_reports.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/samsara_trips.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/single_page.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/bucket_math.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/limiter.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/registry.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/posture/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/posture/client_options.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/retry/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/retry/decision.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/tls/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/tls/truststore_context.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/backfill.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/bisection.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/drivers.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/entry.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/executors.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/fanout.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/feed_drive.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/metadata_projection.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/outcome.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/recording.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/resume.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/roster_harvest.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/roster_refresh.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/runner.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/shape_resolution.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/spine.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/streaming.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/unit_loop.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/watermark_drive.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/datasets.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/partitions.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/resolution.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/polars_typing/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/py.typed +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/convert.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/dataframe.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/event_time.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/fields.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/flatten.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/roster_members.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/schema.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/validation.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/resources/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/resources/config.example.yaml +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/definition.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/key.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/registry.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/cursors.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/database.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/migrations.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/reconcile.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/rosters.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/run_ledger.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/work_units.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/append.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/atomic.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/files.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/frames.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/metadata.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/partitioned.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/pruning.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/read.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/result.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/single_file.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/splitting.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/staging.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/writers.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/canon.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/clock.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/codec.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/sleeper.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/__init__.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/json_types.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/provider.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/quota_scope.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/response_category.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/SOURCES.txt +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/dependency_links.txt +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/entry_points.txt +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/requires.txt +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/top_level.txt +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_cli.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_exceptions.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_import_discipline.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_temporal_discipline.py +0 -0
- {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_typing_discipline.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fleetpull
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Pull fleet telematics data from provider APIs (Motive, Samsara, GeoTab) into typed polars DataFrames and parquet: retrieval, dtype coercion, and light structural normalization — no assumed end use.
|
|
5
5
|
Author-email: Andrew Jordan <andrewjordan3@gmail.com>
|
|
6
6
|
Maintainer-email: Andrew Jordan <andrewjordan3@gmail.com>
|
|
@@ -9,7 +9,7 @@ build-backend = "setuptools.build_meta"
|
|
|
9
9
|
###############################################################################
|
|
10
10
|
[project]
|
|
11
11
|
name = "fleetpull"
|
|
12
|
-
version = "0.1.
|
|
12
|
+
version = "0.1.3"
|
|
13
13
|
description = "Pull fleet telematics data from provider APIs (Motive, Samsara, GeoTab) into typed polars DataFrames and parquet: retrieval, dtype coercion, and light structural normalization — no assumed end use."
|
|
14
14
|
readme = "README.md"
|
|
15
15
|
authors = [{ name = "Andrew Jordan", email = "andrewjordan3@gmail.com" }]
|
|
@@ -16,7 +16,6 @@ from datetime import datetime
|
|
|
16
16
|
import polars as pl
|
|
17
17
|
|
|
18
18
|
from fleetpull.endpoints.shared import EndpointDefinition
|
|
19
|
-
from fleetpull.exceptions import ProviderResponseError
|
|
20
19
|
from fleetpull.incremental import DateWindow
|
|
21
20
|
from fleetpull.model_contract import ResponseModel
|
|
22
21
|
from fleetpull.records import latest_event_time, models_to_dataframe, validate_records
|
|
@@ -75,22 +74,23 @@ def process_batch(
|
|
|
75
74
|
definition: EndpointDefinition[ResponseModel],
|
|
76
75
|
context: WindowContext | None,
|
|
77
76
|
) -> ProcessedBatch:
|
|
78
|
-
"""Validate, frame, and (watermark only)
|
|
77
|
+
"""Validate, frame, and (watermark only) window one batch.
|
|
79
78
|
|
|
80
79
|
The shared per-batch transform both runner arms drive. Snapshot path
|
|
81
80
|
(``context is None``): validate the raw records against the response model
|
|
82
81
|
and frame them; the frame is written as-is and carries no fold candidate.
|
|
83
|
-
Watermark path: additionally
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
82
|
+
Watermark path: additionally filter the frame to the resume window and fold
|
|
83
|
+
the in-window maximum event time.
|
|
84
|
+
|
|
85
|
+
An overlap- or pad-anchored endpoint legitimately returns records past the
|
|
86
|
+
window's trailing edge -- including, on a long run, events that materialized
|
|
87
|
+
AFTER the run clock but before wall-clock ``now`` (e.g. Motive
|
|
88
|
+
``idle_events``, whose company-local-day window is padded a day each side).
|
|
89
|
+
That is an EXPECTED, HANDLED condition, not an anomaly: the window filter
|
|
90
|
+
drops those records (they fall outside the resume window) and the next run's
|
|
91
|
+
window covers them, so it is never a fatal error. The fold uses the
|
|
92
|
+
*filtered* frame so such a record never advances the watermark past the
|
|
93
|
+
trailing edge and skips the next run's cutoff holdback.
|
|
94
94
|
|
|
95
95
|
Args:
|
|
96
96
|
batch: One batch of raw response records from the driver.
|
|
@@ -101,10 +101,9 @@ def process_batch(
|
|
|
101
101
|
The frame to write and its fold candidate.
|
|
102
102
|
|
|
103
103
|
Raises:
|
|
104
|
-
ProviderResponseError:
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
unchanged.
|
|
104
|
+
ProviderResponseError: Validation errors propagate from
|
|
105
|
+
``validate_records`` and framing errors from ``models_to_dataframe``
|
|
106
|
+
unchanged. The watermark path adds no guard of its own.
|
|
108
107
|
|
|
109
108
|
Side Effects:
|
|
110
109
|
None -- pure transform; the caller writes the frame.
|
|
@@ -113,16 +112,6 @@ def process_batch(
|
|
|
113
112
|
frame = models_to_dataframe(models, definition.response_model)
|
|
114
113
|
if context is None:
|
|
115
114
|
return ProcessedBatch(frame=frame, latest_event_time=None)
|
|
116
|
-
observed_raw = latest_event_time(frame, context.event_time_column)
|
|
117
|
-
if observed_raw is not None and observed_raw > context.now:
|
|
118
|
-
raise ProviderResponseError(
|
|
119
|
-
provider=definition.provider.value,
|
|
120
|
-
endpoint=definition.name,
|
|
121
|
-
detail=(
|
|
122
|
-
f'observed event time {observed_raw.isoformat()} is after the '
|
|
123
|
-
f'run clock {context.now.isoformat()}'
|
|
124
|
-
),
|
|
125
|
-
)
|
|
126
115
|
in_scope = frame.filter(in_window(context.event_time_column, context.window))
|
|
127
116
|
return ProcessedBatch(
|
|
128
117
|
frame=in_scope,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fleetpull
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
4
4
|
Summary: Pull fleet telematics data from provider APIs (Motive, Samsara, GeoTab) into typed polars DataFrames and parquet: retrieval, dtype coercion, and light structural normalization — no assumed end use.
|
|
5
5
|
Author-email: Andrew Jordan <andrewjordan3@gmail.com>
|
|
6
6
|
Maintainer-email: Andrew Jordan <andrewjordan3@gmail.com>
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
{fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/driver_fuel_energy_reports.py
RENAMED
|
File without changes
|
{fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/driver_vehicle_assignments.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/vehicle_fuel_energy_reports.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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver_fuel_energy_report.py
RENAMED
|
File without changes
|
{fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver_vehicle_assignment.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/vehicle_fuel_energy_report.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
|
|
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
|
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|