SneaksAndData / adapta

Logging, data connectors, monitoring, secret handling and general lifehacks to make data people lives easier.
Apache License 2.0
8 stars 1 forks source link

adding support for delta time travel based on a timestamp in adapta load function #460

Closed lucasgml closed 4 months ago

lucasgml commented 4 months ago

Implemented: Added a new parameter timestamp to the adapta.storage.delta_lake.v3.load function (alias adapta.storage.delta_lake.load). This enhancement enables users to load a version of a delta table based on a specified timestamp. The function retrieves the version with the closest creation timestamp to the provided argument. Timestamps can be supplied as a datetime object.

Example: data = load(auth_client, data_path, timpestamp=datetime.datetime(year=2024, month=7, day=25))

github-actions[bot] commented 4 months ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
adapta/connectors/service_bus
   __init__.py110%18
   _connector.py17170%19–61
adapta/logs
   _async_logger.py81396%55, 78–79
   _base.py55689%35, 41, 44, 94–97
   _internal_logger.py109694%276–286
adapta/logs/handlers
   datadog_api_handler.py1093172%89, 106–113, 124, 136–152, 161–195, 204, 210, 238
adapta/metrics/providers
   datadog_provider.py43430%19–147
adapta/ml
   __init__.py110%19
   _model.py10100%17–42
adapta/ml/mlflow
   __init__.py220%17–18
   _client.py42420%19–142
   _functions.py42420%17–111
adapta/process_communication
   _models.py33682%90–96
adapta/security/clients
   __init__.py261254%27–28, 34–35, 41–42, 48–49, 53–54, 58–59
   _azure_client.py724932%42, 55–64, 74–77, 80, 83–85, 94–152, 155, 158–196
adapta/security/clients/aws
   _aws_client.py371657%37–39, 46, 56, 62, 74, 99–107, 113–116
   _aws_credentials.py733059%60–79, 83, 87, 91, 95, 99, 108–112, 116, 120, 124, 128, 132
adapta/security/clients/hashicorp_vault
   hashicorp_vault_client.py30487%46, 86, 90, 94
   kubernetes_client.py21576%45–48, 67–68
   oidc_client.py452056%33–62, 80–83, 92
   token_client.py17759%42–45, 52–53, 56, 59
adapta/storage/blob
   azure_storage_client.py1205257%71–78, 88, 95–96, 99–105, 127–128, 131–157, 160, 176–189, 197–201, 220, 241–243, 252, 268–272, 282–284, 287–306, 313
   local_storage_client.py45589%39, 64, 90, 93, 96
   s3_storage_client.py1198429%56–66, 75–88, 97–102, 123–131, 139–140, 154–171, 187–191, 209–218, 228–249, 260–281
adapta/storage/cache
   redis_cache.py37370%19–107
adapta/storage/database/v2
   azure_sql.py342138%57–66, 78, 92–130, 140
   odbc.py735426%62–78, 81–111, 114–115, 121, 131–135, 145–159, 179–219
   snowflake_sql.py695126%51–64, 71–85, 100–102, 113–122, 127–149, 177–228
   trino_sql.py392341%66–98, 101–111, 114–115, 127
adapta/storage/database/v3
   azure_sql.py322038%55, 70, 84–122, 132
   odbc.py721185%94–104, 114, 125–126, 140, 149–155, 182
   snowflake_sql.py671972%63–77, 92–94, 105–114, 141
   trino_sql.py38380%20–119
adapta/storage/delta_lake/v2
   _functions.py684534%73–106, 153–168, 210–294
adapta/storage/delta_lake/v3
   _functions.py661282%72, 156, 161, 163, 165, 221, 231, 241–251, 257, 292
adapta/storage/distributed_object_store/v2/datastax_astra
   _models.py19953%54–59, 62, 65, 68
   astra_client.py19614029%40–43, 113–137, 143–184, 190–191, 197–198, 201, 211, 223–224, 233, 273–361, 369, 393–520, 530, 541–556, 579–594, 616–632, 656–673
adapta/storage/distributed_object_store/v3/datastax_astra
   _models.py19953%53–58, 61, 64, 67
   astra_client.py19411839%38–41, 137–178, 184–185, 191–192, 195, 205, 217–218, 227, 271–362, 370, 396–523, 533, 544–559, 582–597, 619–635, 659–676
adapta/storage/models
   astra.py351071%37, 40, 44, 59–61, 64, 70–73
   aws.py361169%36–39, 46–49, 57–59, 82, 91
   azure.py601772%32, 36–40, 47, 67, 70–71, 74–75, 89–93, 100, 113, 120, 123–124, 127
   filter_expression.py125596%55, 183–184, 238, 329
   hive.py572556%36, 40, 43, 91–98, 110, 113–114, 123–163, 166
   local.py21481%31, 35, 38, 50
adapta/storage/query_enabled_store
   _models.py611084%76, 138–141, 147–150, 156–157, 163
   _qes_astra.py571377%65–66, 78, 83–96, 106–109
   _qes_delta.py32488%28, 50, 62, 70
adapta/storage/secrets
   azure_secret_client.py20200%19–66
adapta/utils
   _common.py951584%36–37, 70–83, 94, 122, 142, 162, 245
   concurrent_task_runner.py27196%109
adapta/utils/data_structures
   _functions.py34197%134
adapta/utils/decorators
   _logging.py41198%32
   _rate_limit.py25196%58
adapta/utils/python_typing
   _functions.py11191%24
tests
   test_filtering_api.py32294%197–198
   test_utils.py166199%371
   test_vault_client.py801878%33–35, 40–42, 47–51, 56–57, 62–66
TOTAL4295126171% 

Tests Skipped Failures Errors Time
199 5 :zzz: 0 :x: 0 :fire: 1m 0s :stopwatch:
github-actions[bot] commented 4 months ago

Coverage

Coverage Report
FileStmtsMissCoverMissing
adapta/connectors/service_bus
   __init__.py110%18
   _connector.py17170%19–61
adapta/logs
   _async_logger.py81396%55, 78–79
   _base.py55689%35, 41, 44, 94–97
   _internal_logger.py109694%276–286
adapta/logs/handlers
   datadog_api_handler.py1093172%89, 106–113, 124, 136–152, 161–195, 204, 210, 238
adapta/metrics/providers
   datadog_provider.py43430%19–147
adapta/ml
   __init__.py110%19
   _model.py10100%17–42
adapta/ml/mlflow
   __init__.py220%17–18
   _client.py42420%19–142
   _functions.py42420%17–111
adapta/process_communication
   _models.py33682%90–96
adapta/security/clients
   __init__.py261254%27–28, 34–35, 41–42, 48–49, 53–54, 58–59
   _azure_client.py724932%42, 55–64, 74–77, 80, 83–85, 94–152, 155, 158–196
adapta/security/clients/aws
   _aws_client.py371657%37–39, 46, 56, 62, 74, 99–107, 113–116
   _aws_credentials.py733059%60–79, 83, 87, 91, 95, 99, 108–112, 116, 120, 124, 128, 132
adapta/security/clients/hashicorp_vault
   hashicorp_vault_client.py30487%46, 86, 90, 94
   kubernetes_client.py21576%45–48, 67–68
   oidc_client.py452056%33–62, 80–83, 92
   token_client.py17759%42–45, 52–53, 56, 59
adapta/storage/blob
   azure_storage_client.py1195157%71–78, 88, 95–96, 99–105, 127–128, 131–157, 160, 176–189, 197–201, 220, 241–243, 252, 268–272, 282–284, 287–306, 313
   local_storage_client.py45589%39, 64, 90, 93, 96
   s3_storage_client.py1198429%56–66, 75–88, 97–102, 123–131, 139–140, 154–171, 187–191, 209–218, 228–249, 260–281
adapta/storage/cache
   redis_cache.py37370%19–107
adapta/storage/database/v2
   azure_sql.py342138%57–66, 78, 92–130, 140
   odbc.py735426%62–78, 81–111, 114–115, 121, 131–135, 145–159, 179–219
   snowflake_sql.py695126%51–64, 71–85, 100–102, 113–122, 127–149, 177–228
   trino_sql.py392341%66–98, 101–111, 114–115, 127
adapta/storage/database/v3
   azure_sql.py322038%55, 70, 84–122, 132
   odbc.py721185%94–104, 114, 125–126, 140, 149–155, 182
   snowflake_sql.py671972%63–77, 92–94, 105–114, 141
   trino_sql.py38380%20–119
adapta/storage/delta_lake/v2
   _functions.py684534%73–106, 153–168, 210–294
adapta/storage/delta_lake/v3
   _functions.py661282%72, 156, 161, 163, 165, 221, 231, 241–251, 257, 292
adapta/storage/distributed_object_store/v2/datastax_astra
   _models.py19953%54–59, 62, 65, 68
   astra_client.py19614029%40–43, 113–137, 143–184, 190–191, 197–198, 201, 211, 223–224, 233, 273–361, 369, 393–520, 530, 541–556, 579–594, 616–632, 656–673
adapta/storage/distributed_object_store/v3/datastax_astra
   _models.py19953%53–58, 61, 64, 67
   astra_client.py19411839%38–41, 137–178, 184–185, 191–192, 195, 205, 217–218, 227, 271–362, 370, 396–523, 533, 544–559, 582–597, 619–635, 659–676
adapta/storage/models
   astra.py351071%37, 40, 44, 59–61, 64, 70–73
   aws.py361169%36–39, 46–49, 57–59, 82, 91
   azure.py601772%32, 36–40, 47, 67, 70–71, 74–75, 89–93, 100, 113, 120, 123–124, 127
   filter_expression.py125596%55, 183–184, 238, 329
   hive.py572556%36, 40, 43, 91–98, 110, 113–114, 123–163, 166
   local.py21481%31, 35, 38, 50
adapta/storage/query_enabled_store
   _models.py611084%76, 138–141, 147–150, 156–157, 163
   _qes_astra.py571377%65–66, 78, 83–96, 106–109
   _qes_delta.py32488%28, 50, 62, 70
adapta/storage/secrets
   azure_secret_client.py20200%19–66
adapta/utils
   _common.py951584%36–37, 70–83, 94, 122, 142, 162, 245
   concurrent_task_runner.py27196%109
adapta/utils/data_structures
   _functions.py34197%134
adapta/utils/decorators
   _logging.py41198%32
   _rate_limit.py25196%58
adapta/utils/python_typing
   _functions.py11373%7–9, 22
tests
   test_filtering_api.py32294%197–198
   test_python_typing_functions.py11282%38–39
   test_utils.py166199%371
   test_vault_client.py801878%33–35, 40–42, 47–51, 56–57, 62–66
TOTAL4293126471% 

Tests Skipped Failures Errors Time
199 6 :zzz: 0 :x: 0 :fire: 1m 0s :stopwatch: