airbyte-source-shopify 4.2.3__tar.gz → 4.2.4__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 (74) hide show
  1. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/PKG-INFO +1 -1
  2. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/pyproject.toml +1 -1
  3. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/job.py +26 -6
  4. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/.airbyte-pypi-readme.md +0 -0
  5. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/__init__.py +0 -0
  6. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/auth.py +0 -0
  7. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/config_migrations.py +0 -0
  8. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/http_request.py +0 -0
  9. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/run.py +0 -0
  10. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/abandoned_checkouts.json +0 -0
  11. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/articles.json +0 -0
  12. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/balance_transactions.json +0 -0
  13. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/blogs.json +0 -0
  14. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/collection_products.json +0 -0
  15. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/collections.json +0 -0
  16. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/collects.json +0 -0
  17. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/countries.json +0 -0
  18. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/custom_collections.json +0 -0
  19. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/customer_address.json +0 -0
  20. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/customer_journey_summary.json +0 -0
  21. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/customers.json +0 -0
  22. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/deleted_products.json +0 -0
  23. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/discount_codes.json +0 -0
  24. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/discount_codes_sync.json +0 -0
  25. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/disputes.json +0 -0
  26. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/draft_orders.json +0 -0
  27. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/fulfillment_orders.json +0 -0
  28. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/fulfillments.json +0 -0
  29. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/inventory_items.json +0 -0
  30. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/inventory_levels.json +0 -0
  31. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/locations.json +0 -0
  32. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/market_countries.json +0 -0
  33. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_articles.json +0 -0
  34. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_blogs.json +0 -0
  35. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_collections.json +0 -0
  36. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_customers.json +0 -0
  37. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_draft_orders.json +0 -0
  38. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_locations.json +0 -0
  39. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_orders.json +0 -0
  40. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_pages.json +0 -0
  41. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_product_images.json +0 -0
  42. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_product_variants.json +0 -0
  43. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_products.json +0 -0
  44. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_shops.json +0 -0
  45. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/metafield_smart_collections.json +0 -0
  46. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/order_agreements.json +0 -0
  47. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/order_refunds.json +0 -0
  48. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/order_risks.json +0 -0
  49. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/orders.json +0 -0
  50. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/pages.json +0 -0
  51. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/price_rules.json +0 -0
  52. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/product_images.json +0 -0
  53. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/product_variants.json +0 -0
  54. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/products.json +0 -0
  55. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/profile_location_groups.json +0 -0
  56. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/shop.json +0 -0
  57. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/smart_collections.json +0 -0
  58. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/tender_transactions.json +0 -0
  59. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/schemas/transactions.json +0 -0
  60. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/scopes.py +0 -0
  61. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/__init__.py +0 -0
  62. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/exceptions.py +0 -0
  63. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/external_sort.py +0 -0
  64. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/query.py +0 -0
  65. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/record.py +0 -0
  66. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/retry.py +0 -0
  67. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/status.py +0 -0
  68. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/shopify_graphql/bulk/tools.py +0 -0
  69. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/source.py +0 -0
  70. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/spec.json +0 -0
  71. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/streams/base_streams.py +0 -0
  72. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/streams/streams.py +0 -0
  73. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/transform.py +0 -0
  74. {airbyte_source_shopify-4.2.3 → airbyte_source_shopify-4.2.4}/source_shopify/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: airbyte-source-shopify
3
- Version: 4.2.3
3
+ Version: 4.2.4
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 = "4.2.3"
6
+ version = "4.2.4"
7
7
  name = "airbyte-source-shopify"
8
8
  description = "Source CDK implementation for Shopify."
9
9
  authors = [ "Airbyte <contact@airbyte.io>",]
@@ -600,6 +600,20 @@ class ShopifyBulkManager:
600
600
  step = self._job_size if self._job_size else self._job_size_min
601
601
  return slice_start.add(days=step)
602
602
 
603
+ def _checkpoint_cursor_within_slice(
604
+ self,
605
+ slice_start: datetime,
606
+ checkpointed_cursor: Optional[str | int],
607
+ filter_checkpointed_cursor: Optional[str],
608
+ ) -> bool:
609
+ if not checkpointed_cursor:
610
+ return False
611
+ if isinstance(checkpointed_cursor, str):
612
+ return pdm.parse(checkpointed_cursor) > slice_start
613
+ if isinstance(checkpointed_cursor, int):
614
+ return bool(filter_checkpointed_cursor) and pdm.parse(filter_checkpointed_cursor) > slice_start
615
+ return False
616
+
603
617
  def _adjust_slice_end(
604
618
  self, slice_end: datetime, checkpointed_cursor: Optional[str] = None, filter_checkpointed_cursor: Optional[str] = None
605
619
  ) -> datetime:
@@ -645,12 +659,18 @@ class ShopifyBulkManager:
645
659
  checkpoint_from_self_cancel = self._job_checkpoint_from_self_cancel
646
660
  # set the checkpointing to default, before the next slice is emitted, to avoid inf.loop
647
661
  self._reset_checkpointing()
648
- if checkpoint_from_failed_job and not checkpointed_cursor:
649
- # the partial result has no records to resume from, the rest of the slice must not be skipped
650
- self._raise_job_without_result("exited with FAILED and its partial result has no records to checkpoint from")
651
- if checkpoint_from_self_cancel and not checkpointed_cursor:
652
- # the result has no records to resume from, the slice is re-run with the checkpointing disabled
653
- self._disable_checkpointing("but its result has no records to checkpoint from")
662
+ if checkpoint_from_failed_job and not self._checkpoint_cursor_within_slice(
663
+ slice_start, checkpointed_cursor, filter_checkpointed_cursor
664
+ ):
665
+ # the partial result has no records within the current slice to resume from, the rest of the slice must not be skipped
666
+ self._raise_job_without_result(
667
+ "exited with FAILED and its partial result has no records within the slice to checkpoint from"
668
+ )
669
+ if checkpoint_from_self_cancel and not self._checkpoint_cursor_within_slice(
670
+ slice_start, checkpointed_cursor, filter_checkpointed_cursor
671
+ ):
672
+ # the result has no records within the current slice to resume from, the slice is re-run with the checkpointing disabled
673
+ self._disable_checkpointing("but its result has no records within the slice to checkpoint from")
654
674
  return slice_start
655
675
  return self._adjust_slice_end(slice_end, checkpointed_cursor, filter_checkpointed_cursor)
656
676