velocity-python 0.1.76__tar.gz → 0.1.78__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.76 → velocity_python-0.1.78}/PKG-INFO +1 -1
- {velocity_python-0.1.76 → velocity_python-0.1.78}/pyproject.toml +1 -1
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/__init__.py +1 -1
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/maintenance.py +21 -12
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/PKG-INFO +1 -1
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_db_maintenance.py +17 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/LICENSE +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/README.md +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/setup.cfg +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/amplify_build.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/assets/backfill.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/masquerade.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/async_support.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/jsonproxy.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/conftest.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/logging.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/authorizenet_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/authorizenet_mirror.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/stripe_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_amplify_build.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_asset_references.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_assets_service.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_async_support.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_column_tx_arg.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_db_credentials_ssm_cascade.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_decorators.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_email_processing.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_enqueue_send_failures.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_get_cognito_user_provider.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_http_handler_rollback.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_identifier_injection_guard.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_json_columns.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_jsonb_dict_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_lambda_handler_masquerade.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_masquerade_grant.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_observability.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_payment_authorizenet_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_pdf.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_query_cache.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_restricted_direct_tables.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_retry_side_effect_guard.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_return_default_safety.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_single_autocommit_safety.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_sqlite_backend.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_ssm_config.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_store_user_data.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_table_alter.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_transaction_class_wrapping.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_transaction_commit_and_ownership.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_transaction_edge_cases.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_where_clause_validation.py +0 -0
- {velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_write_hook_create_flow.py +0 -0
|
@@ -72,11 +72,23 @@ class DatabaseMaintenance:
|
|
|
72
72
|
self._engine = engine
|
|
73
73
|
|
|
74
74
|
# ------------------------------------------------------------------ engine
|
|
75
|
+
def _engine_config(self, dbname: str) -> dict:
|
|
76
|
+
"""Connection config that connects to ``dbname``.
|
|
77
|
+
|
|
78
|
+
The source/destination database is operated *on*, never connected *to*, so
|
|
79
|
+
any caller-supplied database name is dropped and replaced. (libpq uses
|
|
80
|
+
``dbname``; ``postgres.initialize`` remaps a stray ``database`` key, which
|
|
81
|
+
would otherwise override the forced connection database.)
|
|
82
|
+
"""
|
|
83
|
+
cfg = dict(self._config)
|
|
84
|
+
cfg.pop("database", None)
|
|
85
|
+
cfg.pop("dbname", None)
|
|
86
|
+
cfg["dbname"] = dbname
|
|
87
|
+
return cfg
|
|
88
|
+
|
|
75
89
|
def _get_engine(self):
|
|
76
90
|
if self._engine is None:
|
|
77
|
-
|
|
78
|
-
cfg.update(self._config)
|
|
79
|
-
self._engine = postgres.initialize(config=cfg)
|
|
91
|
+
self._engine = postgres.initialize(config=self._engine_config(self.maintenance_db))
|
|
80
92
|
return self._engine
|
|
81
93
|
|
|
82
94
|
def _exec(self, *statements: str) -> None:
|
|
@@ -85,11 +97,12 @@ class DatabaseMaintenance:
|
|
|
85
97
|
|
|
86
98
|
@engine.transaction
|
|
87
99
|
def _run(tx):
|
|
88
|
-
|
|
89
|
-
|
|
100
|
+
# single=True runs each statement standalone in autocommit (required for
|
|
101
|
+
# CREATE/DROP/RENAME DATABASE) and restores transactional mode after --
|
|
102
|
+
# velocity manages the lazy connection, so we never touch it directly.
|
|
90
103
|
for sql in statements:
|
|
91
104
|
if sql:
|
|
92
|
-
tx.execute(sql)
|
|
105
|
+
tx.execute(sql, single=True)
|
|
93
106
|
|
|
94
107
|
_run()
|
|
95
108
|
|
|
@@ -304,16 +317,12 @@ class DatabaseMaintenance:
|
|
|
304
317
|
|
|
305
318
|
def _exec_in(self, db: str, *statements: str) -> None:
|
|
306
319
|
"""Run autocommit statements against ``db`` itself (not the maintenance db)."""
|
|
307
|
-
|
|
308
|
-
cfg["dbname"] = db
|
|
309
|
-
engine = postgres.initialize(config=cfg)
|
|
320
|
+
engine = postgres.initialize(config=self._engine_config(db))
|
|
310
321
|
|
|
311
322
|
@engine.transaction
|
|
312
323
|
def _run(tx):
|
|
313
|
-
tx.rollback()
|
|
314
|
-
tx.connection.autocommit = True
|
|
315
324
|
for sql in statements:
|
|
316
325
|
if sql:
|
|
317
|
-
tx.execute(sql)
|
|
326
|
+
tx.execute(sql, single=True)
|
|
318
327
|
|
|
319
328
|
_run()
|
|
@@ -177,5 +177,22 @@ class TestQuoting(unittest.TestCase):
|
|
|
177
177
|
self.assertIn("pid <> pg_backend_pid()", sql)
|
|
178
178
|
|
|
179
179
|
|
|
180
|
+
class TestEngineConfig(unittest.TestCase):
|
|
181
|
+
def test_forces_maintenance_db_and_drops_caller_db_name(self):
|
|
182
|
+
m = maintenance.DatabaseMaintenance(
|
|
183
|
+
config={"database": "caringcent-develop", "host": "h", "user": "u"}
|
|
184
|
+
)
|
|
185
|
+
cfg = m._engine_config(m.maintenance_db)
|
|
186
|
+
self.assertEqual(cfg["dbname"], "postgres")
|
|
187
|
+
self.assertNotIn("database", cfg) # the stray key that would override dbname is gone
|
|
188
|
+
self.assertEqual(cfg["host"], "h")
|
|
189
|
+
self.assertEqual(cfg["user"], "u")
|
|
190
|
+
|
|
191
|
+
def test_target_db_overrides_caller_dbname(self):
|
|
192
|
+
m = maintenance.DatabaseMaintenance(config={"dbname": "x", "host": "h"})
|
|
193
|
+
cfg = m._engine_config("mydb")
|
|
194
|
+
self.assertEqual(cfg["dbname"], "mydb")
|
|
195
|
+
|
|
196
|
+
|
|
180
197
|
if __name__ == "__main__":
|
|
181
198
|
unittest.main()
|
|
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.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/lambda_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/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
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/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.76 → velocity_python-0.1.78}/src/velocity/db/servers/mysql/operators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/postgres/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlite/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/reserved.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/servers/sqlserver/types.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/conftest.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_connections.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/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.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/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.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_cursor_rowcount_fix.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/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.76 → velocity_python-0.1.78}/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.76 → velocity_python-0.1.78}/src/velocity/payment/authorizenet_adapter.py
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/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.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/src/velocity_python.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/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
|
|
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.76 → velocity_python-0.1.78}/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
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_sys_modified_count_postgres_demo.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.1.76 → velocity_python-0.1.78}/tests/test_transaction_commit_and_ownership.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|