velocity-python 0.1.57__tar.gz → 0.1.58__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.
- {velocity_python-0.1.57 → velocity_python-0.1.58}/PKG-INFO +1 -1
- {velocity_python-0.1.57 → velocity_python-0.1.58}/pyproject.toml +1 -1
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/__init__.py +1 -1
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/assets/backfill.py +13 -1
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/PKG-INFO +1 -1
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_assets_service.py +37 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/LICENSE +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/README.md +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/setup.cfg +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/amplify_build.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/async_support.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/conftest.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/logging.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/authorizenet_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/authorizenet_mirror.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/stripe_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_amplify_build.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_asset_references.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_async_support.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_db_credentials_ssm_cascade.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_decorators.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_email_processing.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_jsonb_dict_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_observability.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_payment_authorizenet_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_pdf.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_query_cache.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_retry_side_effect_guard.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_return_default_safety.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_row_dirty_tracking.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_single_autocommit_safety.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_ssm_config.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_table_alter.py +0 -0
- {velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_where_clause_validation.py +0 -0
|
@@ -70,7 +70,16 @@ def backfill_asset_records(
|
|
|
70
70
|
bucket: str,
|
|
71
71
|
objects: Iterable[Mapping[str, Any]],
|
|
72
72
|
head_loader: HeadLoader | None = None,
|
|
73
|
+
dry_run: bool = False,
|
|
73
74
|
) -> tuple[list[AssetRecord], AssetBackfillSummary]:
|
|
75
|
+
"""Register missing S3 objects as ``images`` rows.
|
|
76
|
+
|
|
77
|
+
When ``dry_run`` is True no rows are written: the function still scans,
|
|
78
|
+
checks for existing rows, and builds the candidate records, and the returned
|
|
79
|
+
summary's ``inserted`` count reflects how many rows *would* be created. The
|
|
80
|
+
returned asset list holds the normalized would-be records. This lets a
|
|
81
|
+
runbook or the admin button preview a backfill before committing it.
|
|
82
|
+
"""
|
|
74
83
|
inserted_assets: list[AssetRecord] = []
|
|
75
84
|
scanned = 0
|
|
76
85
|
inserted = 0
|
|
@@ -91,8 +100,11 @@ def backfill_asset_records(
|
|
|
91
100
|
if not row:
|
|
92
101
|
skipped_unsupported += 1
|
|
93
102
|
continue
|
|
94
|
-
tx.table("images").upsert(row, {"key": row["key"]})
|
|
95
103
|
inserted += 1
|
|
104
|
+
if dry_run:
|
|
105
|
+
inserted_assets.append(normalize_asset_record(row))
|
|
106
|
+
continue
|
|
107
|
+
tx.table("images").upsert(row, {"key": row["key"]})
|
|
96
108
|
stored = tx.table("images").find({"key": row["key"]})
|
|
97
109
|
inserted_assets.append(normalize_asset_record(stored.to_dict() if stored else row))
|
|
98
110
|
|
|
@@ -299,6 +299,43 @@ def test_backfill_asset_records_skips_existing_and_thumbnail_objects():
|
|
|
299
299
|
assert summary.skipped_unsupported == 1
|
|
300
300
|
|
|
301
301
|
|
|
302
|
+
def test_backfill_asset_records_dry_run_reports_without_writing():
|
|
303
|
+
tx = FakeTx(
|
|
304
|
+
[
|
|
305
|
+
{
|
|
306
|
+
"sys_id": "img-1",
|
|
307
|
+
"bucket": "donate.resources",
|
|
308
|
+
"key": "client-a/existing.png",
|
|
309
|
+
"url": "https://donate.resources.s3.amazonaws.com/client-a/existing.png",
|
|
310
|
+
"public": True,
|
|
311
|
+
}
|
|
312
|
+
]
|
|
313
|
+
)
|
|
314
|
+
objects = [
|
|
315
|
+
{"Key": "client-a/existing.png", "Size": 10, "ETag": '"a"'},
|
|
316
|
+
{"Key": "client-a/new.png", "Size": 11, "ETag": '"b"'},
|
|
317
|
+
{"Key": "client-a/new-thumb.png", "Size": 12, "ETag": '"c"'},
|
|
318
|
+
]
|
|
319
|
+
rows_before = len(tx.images.rows)
|
|
320
|
+
|
|
321
|
+
inserted, summary = backfill_asset_records(
|
|
322
|
+
tx,
|
|
323
|
+
bucket="donate.resources",
|
|
324
|
+
objects=objects,
|
|
325
|
+
dry_run=True,
|
|
326
|
+
)
|
|
327
|
+
|
|
328
|
+
# Same accounting as a real run...
|
|
329
|
+
assert summary.scanned == 3
|
|
330
|
+
assert summary.inserted == 1
|
|
331
|
+
assert summary.skipped_existing == 1
|
|
332
|
+
assert summary.skipped_unsupported == 1
|
|
333
|
+
assert len(inserted) == 1
|
|
334
|
+
assert inserted[0].key == "client-a/new.png"
|
|
335
|
+
# ...but nothing was actually written.
|
|
336
|
+
assert len(tx.images.rows) == rows_before
|
|
337
|
+
|
|
338
|
+
|
|
302
339
|
def _matches(row, where):
|
|
303
340
|
for key, value in where.items():
|
|
304
341
|
if key == "!%key":
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/lambda_handler.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/aws/handlers/mixins/web_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/base/initializer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/mysql/operators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/postgres/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlite/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/servers/sqlserver/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/conftest.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_connections.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_row.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/postgres/test_transaction.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_cursor_rowcount_fix.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/db/tests/test_result_sql_aware.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/misc/tests/test_original_error.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/authorizenet_adapter.py
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity/payment/authorizenet_mirror.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/src/velocity_python.egg-info/top_level.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_payment_authorizenet_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.57 → velocity_python-0.1.58}/tests/test_sys_modified_count_postgres_demo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|