airbyte-source-shopify 3.3.2__tar.gz → 3.3.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 (72) hide show
  1. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/PKG-INFO +1 -1
  2. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/pyproject.toml +1 -1
  3. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/streams/base_streams.py +25 -2
  4. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/README.md +0 -0
  5. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/__init__.py +0 -0
  6. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/auth.py +0 -0
  7. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/config_migrations.py +0 -0
  8. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/http_request.py +0 -0
  9. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/run.py +0 -0
  10. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/abandoned_checkouts.json +0 -0
  11. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/articles.json +0 -0
  12. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/balance_transactions.json +0 -0
  13. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/blogs.json +0 -0
  14. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/collection_products.json +0 -0
  15. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/collections.json +0 -0
  16. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/collects.json +0 -0
  17. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/countries.json +0 -0
  18. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/custom_collections.json +0 -0
  19. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/customer_address.json +0 -0
  20. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/customer_journey_summary.json +0 -0
  21. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/customers.json +0 -0
  22. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/deleted_products.json +0 -0
  23. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/discount_codes.json +0 -0
  24. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/disputes.json +0 -0
  25. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/draft_orders.json +0 -0
  26. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/fulfillment_orders.json +0 -0
  27. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/fulfillments.json +0 -0
  28. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/inventory_items.json +0 -0
  29. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/inventory_levels.json +0 -0
  30. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/locations.json +0 -0
  31. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_articles.json +0 -0
  32. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_blogs.json +0 -0
  33. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_collections.json +0 -0
  34. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_customers.json +0 -0
  35. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_draft_orders.json +0 -0
  36. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_locations.json +0 -0
  37. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_orders.json +0 -0
  38. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_pages.json +0 -0
  39. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_product_images.json +0 -0
  40. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_product_variants.json +0 -0
  41. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_products.json +0 -0
  42. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_shops.json +0 -0
  43. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/metafield_smart_collections.json +0 -0
  44. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/order_agreements.json +0 -0
  45. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/order_refunds.json +0 -0
  46. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/order_risks.json +0 -0
  47. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/orders.json +0 -0
  48. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/pages.json +0 -0
  49. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/price_rules.json +0 -0
  50. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/product_images.json +0 -0
  51. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/product_variants.json +0 -0
  52. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/products.json +0 -0
  53. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/profile_location_groups.json +0 -0
  54. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/shop.json +0 -0
  55. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/smart_collections.json +0 -0
  56. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/tender_transactions.json +0 -0
  57. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/schemas/transactions.json +0 -0
  58. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/scopes.py +0 -0
  59. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/__init__.py +0 -0
  60. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/exceptions.py +0 -0
  61. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/external_sort.py +0 -0
  62. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/job.py +0 -0
  63. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/query.py +0 -0
  64. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/record.py +0 -0
  65. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/retry.py +0 -0
  66. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/status.py +0 -0
  67. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/shopify_graphql/bulk/tools.py +0 -0
  68. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/source.py +0 -0
  69. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/spec.json +0 -0
  70. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/streams/streams.py +0 -0
  71. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/transform.py +0 -0
  72. {airbyte_source_shopify-3.3.2 → airbyte_source_shopify-3.3.3}/source_shopify/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-source-shopify
3
- Version: 3.3.2
3
+ Version: 3.3.3
4
4
  Summary: Source CDK implementation for Shopify.
5
5
  Home-page: https://airbyte.com
6
6
  License: ELv2
@@ -3,7 +3,7 @@ requires = [ "poetry-core>=1.0.0",]
3
3
  build-backend = "poetry.core.masonry.api"
4
4
 
5
5
  [tool.poetry]
6
- version = "3.3.2"
6
+ version = "3.3.3"
7
7
  name = "airbyte-source-shopify"
8
8
  description = "Source CDK implementation for Shopify."
9
9
  authors = [ "Airbyte <contact@airbyte.io>",]
@@ -817,7 +817,28 @@ class IncrementalShopifyGraphQlBulkStream(IncrementalShopifyStream):
817
817
 
818
818
  def emit_checkpoint_message(self) -> None:
819
819
  if self.job_manager._job_adjust_slice_from_checkpoint:
820
- self.logger.info(f"Stream {self.name}, continue from checkpoint: `{self._checkpoint_cursor}`.")
820
+ self.logger.info(f"Stream {self.name}, continue from checkpoint: `{self._effective_checkpoint_cursor()}`.")
821
+
822
+ def _effective_checkpoint_cursor(self) -> Optional[Union[str, int]]:
823
+ """Return the cursor value to use when advancing the next slice after
824
+ a bulk job checkpointed mid-output.
825
+
826
+ For streams with a `parent_stream_class`, the bulk query filters on
827
+ the parent's cursor (e.g., `customers.updated_at`) while emitted
828
+ records carry the child's cursor (e.g., `metafield.updated_at`).
829
+ Using `self._checkpoint_cursor` here — which tracks the child's
830
+ cursor — lets the next slice skip arbitrarily far ahead whenever an
831
+ emitted child has a timestamp later than the slice window. Prefer
832
+ the parent cursor tracked by the bulk record producer, which is
833
+ bounded by the current slice's upper bound.
834
+ """
835
+ if self.parent_stream_class:
836
+ parent_state = self.job_manager.record_producer.get_parent_stream_state()
837
+ if parent_state:
838
+ parent_cursor = parent_state.get(self.parent_stream_cursor)
839
+ if parent_cursor:
840
+ return parent_cursor
841
+ return self._checkpoint_cursor
821
842
 
822
843
  @stream_state_cache.cache_stream_state
823
844
  def stream_slices(self, stream_state: Optional[Mapping[str, Any]] = None, **kwargs) -> Iterable[Optional[Mapping[str, Any]]]:
@@ -831,7 +852,9 @@ class IncrementalShopifyGraphQlBulkStream(IncrementalShopifyStream):
831
852
  self.emit_slice_message(start, slice_end)
832
853
  yield {"start": start.to_rfc3339_string(), "end": slice_end.to_rfc3339_string()}
833
854
  # increment the end of the slice or reduce the next slice
834
- start = self.job_manager.get_adjusted_job_end(start, slice_end, self._checkpoint_cursor, self._filter_checkpointed_cursor)
855
+ start = self.job_manager.get_adjusted_job_end(
856
+ start, slice_end, self._effective_checkpoint_cursor(), self._filter_checkpointed_cursor
857
+ )
835
858
  else:
836
859
  # for the streams that don't support filtering
837
860
  yield {}