ingestify 0.9.2__tar.gz → 0.9.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 (93) hide show
  1. {ingestify-0.9.2 → ingestify-0.9.3}/PKG-INFO +1 -1
  2. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/__init__.py +1 -1
  3. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/dataset/sqlalchemy/repository.py +7 -2
  4. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/test_engine.py +14 -4
  5. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify.egg-info/PKG-INFO +1 -1
  6. {ingestify-0.9.2 → ingestify-0.9.3}/README.md +0 -0
  7. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/application/__init__.py +0 -0
  8. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/application/dataset_store.py +0 -0
  9. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/application/ingestion_engine.py +0 -0
  10. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/application/loader.py +0 -0
  11. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/application/secrets_manager.py +0 -0
  12. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/cmdline.py +0 -0
  13. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/__init__.py +0 -0
  14. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/__init__.py +0 -0
  15. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/base.py +0 -0
  16. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/data_spec_version_collection.py +0 -0
  17. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/__init__.py +0 -0
  18. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/collection.py +0 -0
  19. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/collection_metadata.py +0 -0
  20. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/dataset.py +0 -0
  21. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/dataset_repository.py +0 -0
  22. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/dataset_state.py +0 -0
  23. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/events.py +0 -0
  24. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/file.py +0 -0
  25. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/file_collection.py +0 -0
  26. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/file_repository.py +0 -0
  27. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/identifier.py +0 -0
  28. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/revision.py +0 -0
  29. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/dataset/selector.py +0 -0
  30. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/event/__init__.py +0 -0
  31. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/event/_old_event.py +0 -0
  32. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/event/dispatcher.py +0 -0
  33. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/event/domain_event.py +0 -0
  34. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/event/event_bus.py +0 -0
  35. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/event/publisher.py +0 -0
  36. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/event/subscriber.py +0 -0
  37. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/fetch_policy.py +0 -0
  38. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/ingestion/__init__.py +0 -0
  39. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/ingestion/ingestion_job.py +0 -0
  40. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/ingestion/ingestion_job_summary.py +0 -0
  41. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/ingestion/ingestion_plan.py +0 -0
  42. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/resources/__init__.py +0 -0
  43. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/resources/dataset_resource.py +0 -0
  44. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/sink.py +0 -0
  45. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/source.py +0 -0
  46. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/task/__init__.py +0 -0
  47. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/task/set.py +0 -0
  48. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/task/task.py +0 -0
  49. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/task/task_summary.py +0 -0
  50. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/models/timing.py +0 -0
  51. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/services/__init__.py +0 -0
  52. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/services/identifier_key_transformer.py +0 -0
  53. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/services/transformers/__init__.py +0 -0
  54. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/domain/services/transformers/kloppy_to_pandas.py +0 -0
  55. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/exceptions.py +0 -0
  56. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/__init__.py +0 -0
  57. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/fetch/__init__.py +0 -0
  58. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/fetch/http.py +0 -0
  59. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/serialization/__init__.py +0 -0
  60. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/sink/__init__.py +0 -0
  61. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/sink/postgresql.py +0 -0
  62. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/source/__init__.py +0 -0
  63. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/source/statsbomb/__init__.py +0 -0
  64. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/source/statsbomb/base.py +0 -0
  65. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/source/statsbomb/match.py +0 -0
  66. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/source/statsbomb_github.py +0 -0
  67. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/__init__.py +0 -0
  68. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/dataset/__init__.py +0 -0
  69. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/dataset/sqlalchemy/__init__.py +0 -0
  70. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/dataset/sqlalchemy/tables.py +0 -0
  71. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/file/__init__.py +0 -0
  72. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/file/dummy_file_repository.py +0 -0
  73. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/file/local_file_repository.py +0 -0
  74. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/infra/store/file/s3_file_repository.py +0 -0
  75. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/main.py +0 -0
  76. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/server.py +0 -0
  77. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/source_base.py +0 -0
  78. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/__init__.py +0 -0
  79. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/conftest.py +0 -0
  80. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/test_auto_ingest.py +0 -0
  81. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/test_events.py +0 -0
  82. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/test_file_cache.py +0 -0
  83. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/test_pagination.py +0 -0
  84. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/test_store_version.py +0 -0
  85. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/tests/test_table_prefix.py +0 -0
  86. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify/utils.py +0 -0
  87. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify.egg-info/SOURCES.txt +0 -0
  88. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify.egg-info/dependency_links.txt +0 -0
  89. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify.egg-info/entry_points.txt +0 -0
  90. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify.egg-info/requires.txt +0 -0
  91. {ingestify-0.9.2 → ingestify-0.9.3}/ingestify.egg-info/top_level.txt +0 -0
  92. {ingestify-0.9.2 → ingestify-0.9.3}/setup.cfg +0 -0
  93. {ingestify-0.9.2 → ingestify-0.9.3}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ingestify
3
- Version: 0.9.2
3
+ Version: 0.9.3
4
4
  Summary: Data Ingestion Framework
5
5
  Author: Koen Vossen
6
6
  Author-email: info@koenvossen.nl
@@ -9,4 +9,4 @@ if not __INGESTIFY_SETUP__:
9
9
  from .source_base import Source, DatasetResource
10
10
  from .main import debug_source
11
11
 
12
- __version__ = "0.9.2"
12
+ __version__ = "0.9.3"
@@ -470,9 +470,14 @@ class SqlAlchemyDatasetRepository(DatasetRepository):
470
470
  dataset_ids = [row.dataset_id for row in dataset_query]
471
471
  datasets = self._load_datasets(dataset_ids)
472
472
 
473
+ last_modified_values = [
474
+ dataset.last_modified_at
475
+ for dataset in datasets
476
+ if dataset.last_modified_at is not None
477
+ ]
473
478
  dataset_collection_metadata = DatasetCollectionMetadata(
474
- last_modified=max(dataset.last_modified_at for dataset in datasets)
475
- if datasets
479
+ last_modified=max(last_modified_values)
480
+ if last_modified_values
476
481
  else None,
477
482
  row_count=len(datasets),
478
483
  )
@@ -526,12 +526,22 @@ def test_post_load_files_hook(config_file):
526
526
  def test_force_save_creates_revision(config_file):
527
527
  """Test that datasets get a revision even when no files are persisted."""
528
528
  engine = get_engine(config_file, "main")
529
+
530
+ # Create one dataset with files and one without
531
+ add_ingestion_plan(
532
+ engine, SimpleFakeSource("fake-source"), competition_id=1, season_id=2
533
+ )
529
534
  add_ingestion_plan(
530
- engine, NoFilesSource("fake-source"), competition_id=1, season_id=2
535
+ engine, NoFilesSource("fake-source"), competition_id=1, season_id=3
531
536
  )
532
537
 
533
538
  engine.load()
534
- dataset = engine.store.get_dataset_collection().first()
535
539
 
536
- assert len(dataset.revisions) == 1
537
- assert len(dataset.current_revision.modified_files) == 0
540
+ # This should not fail even though one dataset has no last_modified_at
541
+ datasets = engine.store.get_dataset_collection()
542
+ assert len(datasets) == 2
543
+
544
+ # Verify the dataset without files still has a revision
545
+ dataset_without_files = engine.store.get_dataset_collection(season_id=3).first()
546
+ assert len(dataset_without_files.revisions) == 1
547
+ assert len(dataset_without_files.current_revision.modified_files) == 0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ingestify
3
- Version: 0.9.2
3
+ Version: 0.9.3
4
4
  Summary: Data Ingestion Framework
5
5
  Author: Koen Vossen
6
6
  Author-email: info@koenvossen.nl
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes