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.
Files changed (263) hide show
  1. {fleetpull-0.1.2 → fleetpull-0.1.3}/PKG-INFO +1 -1
  2. {fleetpull-0.1.2 → fleetpull-0.1.3}/pyproject.toml +1 -1
  3. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/__init__.py +1 -1
  4. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/batch.py +16 -27
  5. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/PKG-INFO +1 -1
  6. {fleetpull-0.1.2 → fleetpull-0.1.3}/LICENSE +0 -0
  7. {fleetpull-0.1.2 → fleetpull-0.1.3}/README.md +0 -0
  8. {fleetpull-0.1.2 → fleetpull-0.1.3}/setup.cfg +0 -0
  9. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/__init__.py +0 -0
  10. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/auth_ingress.py +0 -0
  11. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/catalog.py +0 -0
  12. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/fetch.py +0 -0
  13. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/identity.py +0 -0
  14. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/api/sync.py +0 -0
  15. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/cli.py +0 -0
  16. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/__init__.py +0 -0
  17. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/base.py +0 -0
  18. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/example.py +0 -0
  19. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/geotab.py +0 -0
  20. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/http.py +0 -0
  21. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/loading.py +0 -0
  22. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/logger.py +0 -0
  23. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/providers.py +0 -0
  24. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/rate_limit.py +0 -0
  25. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/resolution.py +0 -0
  26. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/retry.py +0 -0
  27. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/root.py +0 -0
  28. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/config/sections.py +0 -0
  29. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/__init__.py +0 -0
  30. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/__init__.py +0 -0
  31. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/_requests.py +0 -0
  32. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/annotation_logs.py +0 -0
  33. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/audits.py +0 -0
  34. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/devices.py +0 -0
  35. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/driver_changes.py +0 -0
  36. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/duty_status_logs.py +0 -0
  37. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/dvir_logs.py +0 -0
  38. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/exception_events.py +0 -0
  39. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fault_data.py +0 -0
  40. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fill_ups.py +0 -0
  41. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fuel_and_energy_used.py +0 -0
  42. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/fuel_tax_details.py +0 -0
  43. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/log_records.py +0 -0
  44. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/media_files.py +0 -0
  45. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/shipment_logs.py +0 -0
  46. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/status_data.py +0 -0
  47. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/text_messages.py +0 -0
  48. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/trips.py +0 -0
  49. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/geotab/users.py +0 -0
  50. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/__init__.py +0 -0
  51. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/_spec_builders.py +0 -0
  52. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/driver_idle_rollups.py +0 -0
  53. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/driving_periods.py +0 -0
  54. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/groups.py +0 -0
  55. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/idle_events.py +0 -0
  56. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/users.py +0 -0
  57. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/vehicle_locations.py +0 -0
  58. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/vehicle_utilizations.py +0 -0
  59. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/motive/vehicles.py +0 -0
  60. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/registry.py +0 -0
  61. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/__init__.py +0 -0
  62. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/_spec_builders.py +0 -0
  63. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/addresses.py +0 -0
  64. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/asset_locations.py +0 -0
  65. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/driver_fuel_energy_reports.py +0 -0
  66. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/driver_vehicle_assignments.py +0 -0
  67. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/drivers.py +0 -0
  68. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/engine_states.py +0 -0
  69. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/gps_readings.py +0 -0
  70. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/idling_events.py +0 -0
  71. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/odometer_readings.py +0 -0
  72. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/trips.py +0 -0
  73. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/vehicle_fuel_energy_reports.py +0 -0
  74. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/samsara/vehicles.py +0 -0
  75. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/__init__.py +0 -0
  76. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/base.py +0 -0
  77. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/request_shape.py +0 -0
  78. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/resume.py +0 -0
  79. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/spec_builders.py +0 -0
  80. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/sync_mode.py +0 -0
  81. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/endpoints/shared/url_paths.py +0 -0
  82. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/exceptions.py +0 -0
  83. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/__init__.py +0 -0
  84. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/cursor.py +0 -0
  85. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/resolution.py +0 -0
  86. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/seed.py +0 -0
  87. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/incremental/window.py +0 -0
  88. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/logger/__init__.py +0 -0
  89. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/logger/setup.py +0 -0
  90. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/model_contract/__init__.py +0 -0
  91. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/model_contract/coercions.py +0 -0
  92. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/model_contract/response.py +0 -0
  93. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/__init__.py +0 -0
  94. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/__init__.py +0 -0
  95. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/annotation_log.py +0 -0
  96. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/audit.py +0 -0
  97. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/device.py +0 -0
  98. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/driver_change.py +0 -0
  99. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/duty_status_log.py +0 -0
  100. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/dvir_log.py +0 -0
  101. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/exception_event.py +0 -0
  102. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fault_data.py +0 -0
  103. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fill_up.py +0 -0
  104. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fuel_and_energy_used.py +0 -0
  105. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/fuel_tax_detail.py +0 -0
  106. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/log_record.py +0 -0
  107. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/media_file.py +0 -0
  108. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/shared.py +0 -0
  109. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/shipment_log.py +0 -0
  110. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/status_data.py +0 -0
  111. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/text_message.py +0 -0
  112. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/trip.py +0 -0
  113. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/geotab/user.py +0 -0
  114. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/__init__.py +0 -0
  115. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/driver_idle_rollup.py +0 -0
  116. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/driving_period.py +0 -0
  117. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/group.py +0 -0
  118. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/idle_event.py +0 -0
  119. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/shared.py +0 -0
  120. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/user.py +0 -0
  121. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/vehicle.py +0 -0
  122. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/vehicle_location.py +0 -0
  123. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/motive/vehicle_utilization.py +0 -0
  124. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/__init__.py +0 -0
  125. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/address.py +0 -0
  126. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/asset_location.py +0 -0
  127. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver.py +0 -0
  128. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver_fuel_energy_report.py +0 -0
  129. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/driver_vehicle_assignment.py +0 -0
  130. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/engine_state.py +0 -0
  131. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/gps_reading.py +0 -0
  132. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/idling_event.py +0 -0
  133. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/odometer_reading.py +0 -0
  134. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/trip.py +0 -0
  135. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/vehicle.py +0 -0
  136. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/models/samsara/vehicle_fuel_energy_report.py +0 -0
  137. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/__init__.py +0 -0
  138. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/__init__.py +0 -0
  139. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/authenticate.py +0 -0
  140. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/manager.py +0 -0
  141. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/models.py +0 -0
  142. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/auth/strategies.py +0 -0
  143. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/__init__.py +0 -0
  144. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/geotab.py +0 -0
  145. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/motive.py +0 -0
  146. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/classifiers/samsara.py +0 -0
  147. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/__init__.py +0 -0
  148. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/page.py +0 -0
  149. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/profile.py +0 -0
  150. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/registry.py +0 -0
  151. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/registry_base.py +0 -0
  152. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/runtime.py +0 -0
  153. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/client/transport.py +0 -0
  154. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/__init__.py +0 -0
  155. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/auth.py +0 -0
  156. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/classifier.py +0 -0
  157. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/envelope_fetcher.py +0 -0
  158. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/envelopes.py +0 -0
  159. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/outcome.py +0 -0
  160. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/page_decoder.py +0 -0
  161. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/contract/request.py +0 -0
  162. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/__init__.py +0 -0
  163. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/_window_stamp.py +0 -0
  164. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/geotab.py +0 -0
  165. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/motive.py +0 -0
  166. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/motive_reports.py +0 -0
  167. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/samsara.py +0 -0
  168. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/samsara_reports.py +0 -0
  169. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/samsara_trips.py +0 -0
  170. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/decoders/single_page.py +0 -0
  171. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/__init__.py +0 -0
  172. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/bucket_math.py +0 -0
  173. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/limiter.py +0 -0
  174. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/limits/registry.py +0 -0
  175. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/posture/__init__.py +0 -0
  176. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/posture/client_options.py +0 -0
  177. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/retry/__init__.py +0 -0
  178. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/retry/decision.py +0 -0
  179. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/tls/__init__.py +0 -0
  180. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/network/tls/truststore_context.py +0 -0
  181. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/__init__.py +0 -0
  182. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/backfill.py +0 -0
  183. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/bisection.py +0 -0
  184. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/drivers.py +0 -0
  185. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/entry.py +0 -0
  186. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/executors.py +0 -0
  187. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/fanout.py +0 -0
  188. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/feed_drive.py +0 -0
  189. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/metadata_projection.py +0 -0
  190. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/outcome.py +0 -0
  191. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/recording.py +0 -0
  192. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/resume.py +0 -0
  193. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/roster_harvest.py +0 -0
  194. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/roster_refresh.py +0 -0
  195. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/runner.py +0 -0
  196. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/shape_resolution.py +0 -0
  197. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/spine.py +0 -0
  198. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/streaming.py +0 -0
  199. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/unit_loop.py +0 -0
  200. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/orchestrator/watermark_drive.py +0 -0
  201. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/__init__.py +0 -0
  202. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/datasets.py +0 -0
  203. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/partitions.py +0 -0
  204. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/paths/resolution.py +0 -0
  205. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/polars_typing/__init__.py +0 -0
  206. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/py.typed +0 -0
  207. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/__init__.py +0 -0
  208. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/convert.py +0 -0
  209. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/dataframe.py +0 -0
  210. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/event_time.py +0 -0
  211. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/fields.py +0 -0
  212. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/flatten.py +0 -0
  213. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/roster_members.py +0 -0
  214. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/schema.py +0 -0
  215. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/records/validation.py +0 -0
  216. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/resources/__init__.py +0 -0
  217. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/resources/config.example.yaml +0 -0
  218. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/__init__.py +0 -0
  219. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/definition.py +0 -0
  220. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/key.py +0 -0
  221. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/roster/registry.py +0 -0
  222. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/__init__.py +0 -0
  223. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/cursors.py +0 -0
  224. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/database.py +0 -0
  225. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/migrations.py +0 -0
  226. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/reconcile.py +0 -0
  227. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/rosters.py +0 -0
  228. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/run_ledger.py +0 -0
  229. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/state/work_units.py +0 -0
  230. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/__init__.py +0 -0
  231. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/append.py +0 -0
  232. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/atomic.py +0 -0
  233. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/files.py +0 -0
  234. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/frames.py +0 -0
  235. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/metadata.py +0 -0
  236. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/partitioned.py +0 -0
  237. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/pruning.py +0 -0
  238. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/read.py +0 -0
  239. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/result.py +0 -0
  240. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/single_file.py +0 -0
  241. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/splitting.py +0 -0
  242. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/staging.py +0 -0
  243. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/storage/writers.py +0 -0
  244. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/__init__.py +0 -0
  245. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/canon.py +0 -0
  246. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/clock.py +0 -0
  247. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/codec.py +0 -0
  248. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/timing/sleeper.py +0 -0
  249. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/__init__.py +0 -0
  250. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/json_types.py +0 -0
  251. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/provider.py +0 -0
  252. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/quota_scope.py +0 -0
  253. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull/vocabulary/response_category.py +0 -0
  254. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/SOURCES.txt +0 -0
  255. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/dependency_links.txt +0 -0
  256. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/entry_points.txt +0 -0
  257. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/requires.txt +0 -0
  258. {fleetpull-0.1.2 → fleetpull-0.1.3}/src/fleetpull.egg-info/top_level.txt +0 -0
  259. {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_cli.py +0 -0
  260. {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_exceptions.py +0 -0
  261. {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_import_discipline.py +0 -0
  262. {fleetpull-0.1.2 → fleetpull-0.1.3}/tests/test_temporal_discipline.py +0 -0
  263. {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.2
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.2"
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" }]
@@ -21,7 +21,7 @@ from fleetpull.exceptions import (
21
21
  SyncFailuresError,
22
22
  )
23
23
 
24
- __version__: str = '0.1.2'
24
+ __version__: str = '0.1.3'
25
25
 
26
26
  __all__: list[str] = [
27
27
  'AuthenticationError',
@@ -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) guard-and-window one batch.
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 apply the future-event guard to the raw frame,
84
- filter the frame to the resume window, and fold the in-window maximum event
85
- time.
86
-
87
- The guard runs on the *raw* frame, before the window filter: the window's
88
- end is at or before ``now`` (the trailing edge is held back), so a
89
- future-dated record falls outside the window and the filter would silently
90
- drop it -- guarding the raw frame surfaces the anomaly instead. The fold
91
- uses the *filtered* frame: an event time past ``window.end`` would otherwise
92
- advance the watermark past the trailing edge and skip the next run's cutoff
93
- holdback.
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: A raw event time exceeds ``context.now`` -- a
105
- contract violation (watermark path only). Validation and framing
106
- errors propagate from ``validate_records`` / ``models_to_dataframe``
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.2
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