velocity-python 0.2.7__tar.gz → 0.2.8__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.2.7/src/velocity_python.egg-info → velocity_python-0.2.8}/PKG-INFO +1 -2
- {velocity_python-0.2.7 → velocity_python-0.2.8}/README.md +0 -1
- {velocity_python-0.2.7 → velocity_python-0.2.8}/pyproject.toml +1 -1
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/__init__.py +1 -1
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/braintree_adapter.py +29 -2
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/stripe_adapter.py +12 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8/src/velocity_python.egg-info}/PKG-INFO +1 -2
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_braintree_adapter.py +67 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_stripe_adapter.py +43 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/LICENSE +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/setup.cfg +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/assets/backfill.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/authz.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/blobs.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/base.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/dispatch.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/infra.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/jobs.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/provisioning.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/retention.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/security.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/single_session.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/ci_gate.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/config.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/frontend_checks.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/operations.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/policies.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/reconcile.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/deploy/targets.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/email.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/facets.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/failures.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/feature_flags.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/masquerade.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/action_names.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/audit_trail.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/client_errors.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/client_input.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/job_handler.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/permissions_actions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/row_scoped.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/session_control.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/tiles_actions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/identity.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/job_lifecycle.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/job_results.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/mirror.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/ops.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/permissions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/queue_defaults.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/schema.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/sms.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_deploy_least_privilege.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_deploy_policies.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_deploy_policy_size.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_deploy_reconcile.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_email.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_sms.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tiles.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/user_data.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/cache.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/async_support.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/jsonproxy.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/lazy_engine.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/fragments.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/maintenance.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/conftest.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tunnel.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/logging.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_mail_send.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/core/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/core/capabilities.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/core/store.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/core/where.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/exceptions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/base/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/cassandra/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/cassandra/translation.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/couchbase/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/couchbase/translation.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/dynamodb/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/dynamodb/translation.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/elasticsearch/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/elasticsearch/translation.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/memory/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/mongodb/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/mongodb/translation.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/nosql/servers/redis/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/_mirror_core.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/authorizenet_adapter.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/authorizenet_mirror.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/money.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/plaid_api.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/plaid_webhook.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/redact.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/schema.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/testing/__init__.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/testing/fake_db.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_access_error_403.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_action_names.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_activity_tracking_aborted_tx.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_amplify_redirects.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_asset_references.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_assets_service.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_async_support.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_audit_mixin.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_authz.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_aws_package_hygiene.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_blob_store.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_business_objects.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_capabilities.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_capability_catalog.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_check_changelog.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_ci_gate.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_client_errors_mixin.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_client_input_contract_export.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_client_sql_boundary.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_client_table_gate_case_and_pointers.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_cognito_client_lazy.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_cognito_user_cache.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_column_tx_arg.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_context_flags_loader.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_context_queue_job.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_conv_combine.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_data_service_owner_scope.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_data_service_query_cap.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_data_service_renumber.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_data_service_row_number.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_data_service_save_as.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_data_service_security_gates.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_db_credentials_ssm_cascade.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_db_maintenance.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_db_tunnel.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_declared_column_types.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_decorators.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_delete_hook_fk_blocked.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_deploy_config_fields.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_deploy_engine.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_deploy_frontend_checks.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_deploy_operations_queue.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_deploy_policies.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_dlq_constant.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_docs_snippets.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_email_processing.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_enqueue_metric_namespace.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_enqueue_send_failures.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_ensure_infrastructure.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_export_workbook.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_facets.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_facets_and_where.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_failures.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_feature_flags.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_get_cognito_user_provider.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_http_handler_rollback.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_identifier_injection_guard.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_identity.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_job_handler.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_job_lifecycle.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_job_results.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_json_columns.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_jsonb_dict_adapter.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_lambda_handler_masquerade.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_lambda_handler_user_cache.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_lazy_engine.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_masquerade_grant.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_merge_on_conflict.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_mirror.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_mirror_upsert_public.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_nosql_dynamodb.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_nosql_memory.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_nosql_mongodb.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_nosql_redis.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_nosql_translation.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_nosql_where.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_observability.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_on_action_default.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_on_commit.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_ops.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_audit_fixes.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_authorizenet_adapter.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_business_agnostic.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_charge_reference.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_extra_bounds.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_lazy_imports.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_mirror_empty_table.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pdf.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_permissions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_permissions_actions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_permissions_notices.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_permissions_review.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_bulk_cache.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_capability_types.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_ensure_infrastructure.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_get_tables.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_permissions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_pointer_joins.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_row_scope.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_search_export.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_tiles.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pgserver_user_data.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_plaid_api.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_plaid_webhook.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_pointer_join_sql.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_postgres_initializer_config.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_postgres_py_type.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_query_cache.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_query_missing_table_unlocked.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_raw_sql_prefix_policy.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_read_cache.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_readme_imports.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_response.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_restricted_direct_tables.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_result_returning.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_retry_side_effect_guard.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_return_default_safety.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_row_scoped_data_service.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_s3_bucket_config.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_s3_list_client_files.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_s3_upload.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_schema_lock_config_other_backends.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_search_paging_export.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_security_capability.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_session_control.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_single_autocommit_safety.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_single_session_capability.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_sms_twilio_signature.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_sqlite_backend.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_ssm_config.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_ssm_config_require.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_store_user_data.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_table_alter.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_table_claim.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_table_find_cache.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_table_purge.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_testing_fake_db.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_tiles.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_transaction_class_wrapping.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_transaction_commit_and_ownership.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_transaction_edge_cases.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_tx_lifecycle_retry.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_tx_read_cache_and_bulk.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_user_data.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_user_not_provisioned.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_where_clause_validation.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_write_hook_create_flow.py +0 -0
- {velocity_python-0.2.7 → velocity_python-0.2.8}/tests/test_write_hook_empty_strings.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: velocity-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.8
|
|
4
4
|
Summary: A rapid application development library for interfacing with data storage
|
|
5
5
|
Author-email: Velocity Team <info@codeclubs.org>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -267,7 +267,6 @@ What changed in each release, and what callers must do before upgrading, is in
|
|
|
267
267
|
| Testing Guide | `docs/TESTING.md` | Running tests, markers, coverage |
|
|
268
268
|
| Security | `docs/SECURITY.md` | Pre-commit hooks, credential scanning |
|
|
269
269
|
| Changelog | `CHANGELOG.md` | Per-release breaking changes, deploy ordering, additions and fixes |
|
|
270
|
-
| Improvement Backlog | `docs/IMPROVEMENT_BACKLOG.md` | Proposed and deferred library improvements |
|
|
271
270
|
|
|
272
271
|
---
|
|
273
272
|
|
|
@@ -174,7 +174,6 @@ What changed in each release, and what callers must do before upgrading, is in
|
|
|
174
174
|
| Testing Guide | `docs/TESTING.md` | Running tests, markers, coverage |
|
|
175
175
|
| Security | `docs/SECURITY.md` | Pre-commit hooks, credential scanning |
|
|
176
176
|
| Changelog | `CHANGELOG.md` | Per-release breaking changes, deploy ordering, additions and fixes |
|
|
177
|
-
| Improvement Backlog | `docs/IMPROVEMENT_BACKLOG.md` | Proposed and deferred library improvements |
|
|
178
177
|
|
|
179
178
|
---
|
|
180
179
|
|
|
@@ -113,6 +113,24 @@ def parse_braintree_environment(value: Any = None) -> str:
|
|
|
113
113
|
return name
|
|
114
114
|
|
|
115
115
|
|
|
116
|
+
def _decline_details(transaction: Any) -> Dict[str, Any]:
|
|
117
|
+
"""The processor's own verdict on a declined sale, for callers that decide
|
|
118
|
+
whether to try the card again: ``processor_response_code``,
|
|
119
|
+
``processor_response_text`` and ``processor_response_type``
|
|
120
|
+
(``approved`` / ``soft_declined`` / ``hard_declined`` -- Braintree's
|
|
121
|
+
classification; a hard decline will not be approved on retry). Only the
|
|
122
|
+
keys Braintree set; empty without a transaction (gateway rejection or
|
|
123
|
+
validation failure)."""
|
|
124
|
+
if transaction is None:
|
|
125
|
+
return {}
|
|
126
|
+
details = {
|
|
127
|
+
"processor_response_code": _attr(transaction, "processor_response_code"),
|
|
128
|
+
"processor_response_text": _attr(transaction, "processor_response_text"),
|
|
129
|
+
"processor_response_type": _attr(transaction, "processor_response_type"),
|
|
130
|
+
}
|
|
131
|
+
return {key: value for key, value in details.items() if value not in (None, "")}
|
|
132
|
+
|
|
133
|
+
|
|
116
134
|
def _deep_errors(result: Any) -> List[str]:
|
|
117
135
|
errors = getattr(getattr(result, "errors", None), "deep_errors", None) or []
|
|
118
136
|
return [scrub(f"{error.code}: {error.message}") for error in errors]
|
|
@@ -556,7 +574,11 @@ class BraintreeAdapter(PaymentProcessorAdapter):
|
|
|
556
574
|
"expires_at": None,
|
|
557
575
|
"error_message": error_message,
|
|
558
576
|
"metadata": _with_reference(
|
|
559
|
-
{
|
|
577
|
+
{
|
|
578
|
+
"braintree_errors": _deep_errors(result),
|
|
579
|
+
**_decline_details(result.transaction),
|
|
580
|
+
},
|
|
581
|
+
order_id,
|
|
560
582
|
),
|
|
561
583
|
}
|
|
562
584
|
|
|
@@ -674,7 +696,12 @@ class BraintreeAdapter(PaymentProcessorAdapter):
|
|
|
674
696
|
)
|
|
675
697
|
error_message = scrub(result.transaction.processor_response_text)
|
|
676
698
|
return failure(
|
|
677
|
-
"failed",
|
|
699
|
+
"failed",
|
|
700
|
+
error_message,
|
|
701
|
+
{
|
|
702
|
+
"braintree_errors": _deep_errors(result),
|
|
703
|
+
**_decline_details(result.transaction),
|
|
704
|
+
},
|
|
678
705
|
)
|
|
679
706
|
|
|
680
707
|
def find_charge_by_reference(
|
|
@@ -139,6 +139,16 @@ def _amount_captured(payment_intent: Any, charge: Any, requested: Optional[int])
|
|
|
139
139
|
return 0
|
|
140
140
|
|
|
141
141
|
|
|
142
|
+
def _decline_details(error: Any) -> Dict[str, Any]:
|
|
143
|
+
"""``decline_code`` of a card decline (``CardError``): the issuer's reason
|
|
144
|
+
(``insufficient_funds``, ``lost_card``, ``expired_card`` ...), for callers
|
|
145
|
+
that decide whether to try the card again. Empty when Stripe gave none."""
|
|
146
|
+
decline_code = getattr(error, "decline_code", None) or getattr(
|
|
147
|
+
getattr(error, "error", None), "decline_code", None
|
|
148
|
+
)
|
|
149
|
+
return {"decline_code": decline_code} if decline_code else {}
|
|
150
|
+
|
|
151
|
+
|
|
142
152
|
class StripeAdapter(PaymentProcessorAdapter):
|
|
143
153
|
"""
|
|
144
154
|
Stripe Connect adapter for payment processing.
|
|
@@ -664,6 +674,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
664
674
|
"error_code": e.code,
|
|
665
675
|
"error_type": type(e).__name__,
|
|
666
676
|
"idempotency_key": idempotency_key,
|
|
677
|
+
**_decline_details(e),
|
|
667
678
|
},
|
|
668
679
|
}
|
|
669
680
|
if reference:
|
|
@@ -824,6 +835,7 @@ class StripeAdapter(PaymentProcessorAdapter):
|
|
|
824
835
|
"error_code": e.code,
|
|
825
836
|
"error_type": type(e).__name__,
|
|
826
837
|
"idempotency_key": idempotency_key,
|
|
838
|
+
**_decline_details(e),
|
|
827
839
|
},
|
|
828
840
|
}
|
|
829
841
|
if reference:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: velocity-python
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.8
|
|
4
4
|
Summary: A rapid application development library for interfacing with data storage
|
|
5
5
|
Author-email: Velocity Team <info@codeclubs.org>
|
|
6
6
|
License-Expression: MIT
|
|
@@ -267,7 +267,6 @@ What changed in each release, and what callers must do before upgrading, is in
|
|
|
267
267
|
| Testing Guide | `docs/TESTING.md` | Running tests, markers, coverage |
|
|
268
268
|
| Security | `docs/SECURITY.md` | Pre-commit hooks, credential scanning |
|
|
269
269
|
| Changelog | `CHANGELOG.md` | Per-release breaking changes, deploy ordering, additions and fixes |
|
|
270
|
-
| Improvement Backlog | `docs/IMPROVEMENT_BACKLOG.md` | Proposed and deferred library improvements |
|
|
271
270
|
|
|
272
271
|
---
|
|
273
272
|
|
|
@@ -299,3 +299,70 @@ def test_generate_client_token_exhausted_raises_processor_error(monkeypatch):
|
|
|
299
299
|
with pytest.raises(ProcessorError) as err:
|
|
300
300
|
adapter.generate_client_token(attempts=2)
|
|
301
301
|
assert "after 2 attempts" in str(err.value)
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
def _declined_sale(**transaction):
|
|
305
|
+
return lambda params: SimpleNamespace(
|
|
306
|
+
is_success=False,
|
|
307
|
+
message="generic error",
|
|
308
|
+
transaction=SimpleNamespace(**transaction) if transaction else None,
|
|
309
|
+
errors=SimpleNamespace(deep_errors=[]),
|
|
310
|
+
)
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
def test_charge_failure_carries_the_processor_verdict(monkeypatch):
|
|
314
|
+
"""A hard decline will not be approved on retry; callers (recurring
|
|
315
|
+
billing) read Braintree's own processor_response_type instead of
|
|
316
|
+
guessing from the response text."""
|
|
317
|
+
adapter = build_adapter()
|
|
318
|
+
monkeypatch.setattr(
|
|
319
|
+
adapter.gateway.transaction,
|
|
320
|
+
"sale",
|
|
321
|
+
_declined_sale(
|
|
322
|
+
processor_response_text="Closed Card",
|
|
323
|
+
processor_response_code="2004",
|
|
324
|
+
processor_response_type="hard_declined",
|
|
325
|
+
),
|
|
326
|
+
)
|
|
327
|
+
|
|
328
|
+
result = adapter.charge_stored_payment_method(
|
|
329
|
+
None, {"amount": 1050, "payment_method": "token_123"}
|
|
330
|
+
)
|
|
331
|
+
|
|
332
|
+
assert result["error_message"] == "Closed Card"
|
|
333
|
+
assert result["metadata"]["processor_response_type"] == "hard_declined"
|
|
334
|
+
assert result["metadata"]["processor_response_code"] == "2004"
|
|
335
|
+
assert result["metadata"]["processor_response_text"] == "Closed Card"
|
|
336
|
+
|
|
337
|
+
|
|
338
|
+
def test_gateway_rejection_has_no_processor_verdict(monkeypatch):
|
|
339
|
+
adapter = build_adapter()
|
|
340
|
+
monkeypatch.setattr(adapter.gateway.transaction, "sale", _declined_sale())
|
|
341
|
+
|
|
342
|
+
result = adapter.charge_stored_payment_method(
|
|
343
|
+
None, {"amount": 1050, "payment_method": "token_123"}
|
|
344
|
+
)
|
|
345
|
+
|
|
346
|
+
assert result["success"] is False
|
|
347
|
+
assert "processor_response_type" not in result["metadata"]
|
|
348
|
+
assert result["metadata"]["braintree_errors"] == []
|
|
349
|
+
|
|
350
|
+
|
|
351
|
+
def test_authorize_failure_carries_the_processor_verdict(monkeypatch):
|
|
352
|
+
adapter = build_adapter()
|
|
353
|
+
monkeypatch.setattr(
|
|
354
|
+
adapter.gateway.transaction,
|
|
355
|
+
"sale",
|
|
356
|
+
_declined_sale(
|
|
357
|
+
processor_response_text="Insufficient Funds",
|
|
358
|
+
processor_response_type="soft_declined",
|
|
359
|
+
),
|
|
360
|
+
)
|
|
361
|
+
|
|
362
|
+
result = adapter.authorize_payment(
|
|
363
|
+
None, {"amount": 1050, "payment_method": "token_123"}
|
|
364
|
+
)
|
|
365
|
+
|
|
366
|
+
assert result["status"] == "failed"
|
|
367
|
+
assert result["metadata"]["processor_response_type"] == "soft_declined"
|
|
368
|
+
assert "processor_response_code" not in result["metadata"]
|
|
@@ -797,3 +797,46 @@ def test_get_account_status_takes_owner_id_and_touches_no_app_table(
|
|
|
797
797
|
mirrored.clear()
|
|
798
798
|
adapter.get_account_status(NoAppTablesTx(), "acct_7")
|
|
799
799
|
assert mirrored[0][1]["client_id"] is None
|
|
800
|
+
|
|
801
|
+
|
|
802
|
+
def _card_error(decline_code):
|
|
803
|
+
return stripe.error.CardError(
|
|
804
|
+
"Your card was declined.",
|
|
805
|
+
None,
|
|
806
|
+
"card_declined",
|
|
807
|
+
json_body={
|
|
808
|
+
"error": {
|
|
809
|
+
"type": "card_error",
|
|
810
|
+
"code": "card_declined",
|
|
811
|
+
"decline_code": decline_code,
|
|
812
|
+
"message": "Your card was declined.",
|
|
813
|
+
}
|
|
814
|
+
},
|
|
815
|
+
)
|
|
816
|
+
|
|
817
|
+
|
|
818
|
+
def test_charge_card_decline_carries_the_decline_code(adapter, monkeypatch):
|
|
819
|
+
"""Recurring billing decides whether to retry a card from Stripe's
|
|
820
|
+
decline_code (lost_card, expired_card ... are never retried)."""
|
|
821
|
+
|
|
822
|
+
def decline(**kwargs):
|
|
823
|
+
raise _card_error("lost_card")
|
|
824
|
+
|
|
825
|
+
monkeypatch.setattr(
|
|
826
|
+
"velocity.payment.stripe_adapter.stripe.PaymentIntent.create", decline
|
|
827
|
+
)
|
|
828
|
+
|
|
829
|
+
result = adapter.charge_stored_payment_method(
|
|
830
|
+
None,
|
|
831
|
+
{
|
|
832
|
+
"amount": 1050,
|
|
833
|
+
"payment_method": "pm_123",
|
|
834
|
+
"customer_profile_id": "cus_123",
|
|
835
|
+
"processor_account_id": "acct_123",
|
|
836
|
+
"client_id": "client_1",
|
|
837
|
+
},
|
|
838
|
+
)
|
|
839
|
+
|
|
840
|
+
assert result["success"] is False
|
|
841
|
+
assert result["metadata"]["error_type"] == "CardError"
|
|
842
|
+
assert result["metadata"]["decline_code"] == "lost_card"
|
|
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.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/provisioning.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/capabilities/single_session.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
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/action_names.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/audit_trail.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/client_errors.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/client_input.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/job_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/row_scoped.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/session_control.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/handlers/mixins/tiles_actions.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/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
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_deploy_policies.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_deploy_policy_size.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/aws/tests/test_deploy_reconcile.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
|
|
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.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/postgres/reserved.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.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/servers/sqlserver/reserved.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
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_connections.py
RENAMED
|
File without changes
|
{velocity_python-0.2.7 → velocity_python-0.2.8}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|