velocity-python 0.2.4__tar.gz → 0.2.5__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.4/src/velocity_python.egg-info → velocity_python-0.2.5}/PKG-INFO +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.5}/pyproject.toml +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/__init__.py +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/authz.py +23 -2
- {velocity_python-0.2.4 → velocity_python-0.2.5/src/velocity_python.egg-info}/PKG-INFO +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_authz.py +53 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/LICENSE +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/README.md +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/setup.cfg +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/assets/backfill.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/blobs.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/base.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/dispatch.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/infra.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/jobs.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/provisioning.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/retention.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/security.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/single_session.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/ci_gate.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/frontend_checks.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/operations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/policies.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/reconcile.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/deploy/targets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/email.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/facets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/failures.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/feature_flags.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/masquerade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/action_names.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/audit_trail.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/client_errors.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/client_input.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/job_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/permissions_actions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/row_scoped.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/session_control.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/tiles_actions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/identity.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/job_lifecycle.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/job_results.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/ops.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/permissions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/queue_defaults.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/schema.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/sms.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_deploy_least_privilege.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_deploy_policies.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_deploy_policy_size.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_deploy_reconcile.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_email.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_sms.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tiles.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/async_support.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/jsonproxy.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/lazy_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/transaction.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/fragments.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/maintenance.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/conftest.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tunnel.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/logging.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_mail_send.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/core/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/core/capabilities.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/core/store.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/core/where.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/exceptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/base/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/cassandra/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/cassandra/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/couchbase/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/couchbase/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/dynamodb/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/dynamodb/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/elasticsearch/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/elasticsearch/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/memory/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/mongodb/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/mongodb/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/nosql/servers/redis/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/_mirror_core.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/authorizenet_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/authorizenet_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/money.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/plaid_api.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/plaid_webhook.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/redact.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/schema.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/stripe_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/testing/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/testing/fake_db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_access_error_403.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_action_names.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_activity_tracking_aborted_tx.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_amplify_redirects.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_asset_references.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_assets_service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_async_support.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_audit_mixin.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_aws_package_hygiene.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_blob_store.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_business_objects.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_capabilities.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_capability_catalog.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_check_changelog.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_ci_gate.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_client_errors_mixin.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_client_input_contract_export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_client_sql_boundary.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_client_table_gate_case_and_pointers.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_cognito_user_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_column_tx_arg.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_context_flags_loader.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_context_queue_job.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_conv_combine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_data_service_owner_scope.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_data_service_query_cap.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_data_service_renumber.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_data_service_row_number.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_data_service_save_as.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_data_service_security_gates.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_db_credentials_ssm_cascade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_db_maintenance.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_db_tunnel.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_declared_column_types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_decorators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_delete_hook_fk_blocked.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_deploy_config_fields.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_deploy_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_deploy_frontend_checks.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_deploy_operations_queue.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_deploy_policies.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_dlq_constant.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_docs_snippets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_email_processing.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_enqueue_metric_namespace.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_enqueue_send_failures.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_ensure_infrastructure.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_export_workbook.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_facets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_facets_and_where.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_failures.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_feature_flags.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_get_cognito_user_provider.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_http_handler_rollback.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_identifier_injection_guard.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_identity.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_job_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_job_lifecycle.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_job_results.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_json_columns.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_jsonb_dict_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_lambda_handler_masquerade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_lambda_handler_user_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_lazy_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_masquerade_grant.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_merge_on_conflict.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_mirror_upsert_public.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_nosql_dynamodb.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_nosql_memory.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_nosql_mongodb.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_nosql_redis.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_nosql_translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_nosql_where.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_observability.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_on_action_default.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_on_commit.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_ops.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_audit_fixes.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_authorizenet_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_business_agnostic.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_charge_reference.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_extra_bounds.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_lazy_imports.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_mirror_empty_table.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pdf.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_permissions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_permissions_actions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_permissions_notices.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_permissions_review.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_bulk_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_capability_types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_ensure_infrastructure.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_get_tables.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_permissions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_pointer_joins.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_row_scope.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_search_export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_tiles.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pgserver_user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_plaid_api.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_plaid_webhook.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_pointer_join_sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_postgres_initializer_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_postgres_py_type.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_query_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_query_missing_table_unlocked.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_raw_sql_prefix_policy.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_read_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_readme_imports.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_restricted_direct_tables.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_result_returning.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_retry_side_effect_guard.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_return_default_safety.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_row_scoped_data_service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_s3_bucket_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_s3_list_client_files.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_s3_upload.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_schema_lock_config_other_backends.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_search_paging_export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_security_capability.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_session_control.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_single_autocommit_safety.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_single_session_capability.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_sms_twilio_signature.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_sqlite_backend.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_ssm_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_ssm_config_require.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_store_user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_table_alter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_table_claim.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_table_find_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_table_purge.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_testing_fake_db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_tiles.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_transaction_class_wrapping.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_transaction_commit_and_ownership.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_transaction_edge_cases.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_tx_lifecycle_retry.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_tx_read_cache_and_bulk.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_user_not_provisioned.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_where_clause_validation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_write_hook_create_flow.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.5}/tests/test_write_hook_empty_strings.py +0 -0
|
@@ -80,6 +80,7 @@ from __future__ import annotations
|
|
|
80
80
|
|
|
81
81
|
import logging
|
|
82
82
|
import re
|
|
83
|
+
import sys
|
|
83
84
|
from dataclasses import dataclass, field, replace
|
|
84
85
|
from fnmatch import fnmatchcase
|
|
85
86
|
from typing import Any, Callable, Optional
|
|
@@ -379,22 +380,42 @@ BUILTIN_RULES = (permit("data.ordinary_tables", DATA_ACCESS, when=_ordinary_tabl
|
|
|
379
380
|
|
|
380
381
|
_REGISTERED = {}
|
|
381
382
|
_REGISTERED_TUPLE = None
|
|
383
|
+
# name -> the globals of the module that registered it. A module imported a
|
|
384
|
+
# second time (importlib.reload, a test that patches sys.modules) runs with
|
|
385
|
+
# new globals under the same __name__ and builds new condition closures, so
|
|
386
|
+
# its rules never compare equal to the first import's.
|
|
387
|
+
_OWNERS = {}
|
|
382
388
|
|
|
383
389
|
|
|
384
390
|
def register(*rules):
|
|
385
391
|
"""Add rules to the ones every handler evaluates. Registering the same
|
|
386
|
-
rule again is a no-op
|
|
392
|
+
rule again is a no-op, and so is a module re-registering its own rules
|
|
393
|
+
when it is imported again (the new rules replace the old). A different
|
|
394
|
+
rule under a taken name is otherwise an error."""
|
|
387
395
|
global _REGISTERED_TUPLE
|
|
396
|
+
caller = sys._getframe(1).f_globals
|
|
388
397
|
for rule in rules:
|
|
389
398
|
if not isinstance(rule, Rule):
|
|
390
399
|
raise ValueError("register() takes rules made by permit() or forbid().")
|
|
391
400
|
known = _REGISTERED.get(rule.name)
|
|
392
|
-
if known is not None and known != rule:
|
|
401
|
+
if known is not None and known != rule and not _reimported(rule.name, caller):
|
|
393
402
|
raise ValueError(f"An authorization rule named '{rule.name}' exists.")
|
|
394
403
|
_REGISTERED[rule.name] = rule
|
|
404
|
+
_OWNERS[rule.name] = caller
|
|
395
405
|
_REGISTERED_TUPLE = None
|
|
396
406
|
|
|
397
407
|
|
|
408
|
+
def _reimported(name, caller):
|
|
409
|
+
"""True when ``caller`` is a fresh import of the module that registered
|
|
410
|
+
``name``: same module name, different globals."""
|
|
411
|
+
owner = _OWNERS.get(name)
|
|
412
|
+
return (
|
|
413
|
+
owner is not None
|
|
414
|
+
and owner is not caller
|
|
415
|
+
and owner.get("__name__") == caller.get("__name__")
|
|
416
|
+
)
|
|
417
|
+
|
|
418
|
+
|
|
398
419
|
def registered():
|
|
399
420
|
"""Every rule a handler evaluates before its own. The same tuple object
|
|
400
421
|
until a rule is registered, so its action index is built once."""
|
|
@@ -7,6 +7,7 @@ each ``_any`` permission, masquerade, and the audit row.
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import logging
|
|
10
|
+
import sys
|
|
10
11
|
from unittest.mock import MagicMock, patch
|
|
11
12
|
|
|
12
13
|
import pytest
|
|
@@ -137,6 +138,55 @@ def test_rules_are_validated_and_registered_once():
|
|
|
137
138
|
authz.register(authz.permit("test.once", "t.write"))
|
|
138
139
|
finally:
|
|
139
140
|
authz._REGISTERED.pop("test.once", None)
|
|
141
|
+
authz._OWNERS.pop("test.once", None)
|
|
142
|
+
|
|
143
|
+
|
|
144
|
+
_MODULE_SOURCE = """
|
|
145
|
+
from velocity.aws import authz
|
|
146
|
+
authz.register(
|
|
147
|
+
authz.permit(
|
|
148
|
+
"test.reimport",
|
|
149
|
+
"t.read",
|
|
150
|
+
when=authz.any_of(authz.signed_in, authz.holds("t.read")),
|
|
151
|
+
)
|
|
152
|
+
)
|
|
153
|
+
"""
|
|
154
|
+
|
|
155
|
+
|
|
156
|
+
def _import_as(module_name):
|
|
157
|
+
"""Run a module that registers a rule, as a fresh import would: new
|
|
158
|
+
globals (so new condition closures) under ``module_name``."""
|
|
159
|
+
exec(_MODULE_SOURCE, {"__name__": module_name})
|
|
160
|
+
|
|
161
|
+
|
|
162
|
+
def test_a_module_imported_again_replaces_its_own_rules(_fresh_registry):
|
|
163
|
+
_import_as("tests.fake_rules")
|
|
164
|
+
first = authz._REGISTERED["test.reimport"]
|
|
165
|
+
_import_as("tests.fake_rules") # a second import of the same module
|
|
166
|
+
second = authz._REGISTERED["test.reimport"]
|
|
167
|
+
assert first != second # new closures: never equal
|
|
168
|
+
assert authz.registered().count(second) == 1
|
|
169
|
+
assert first not in authz.registered()
|
|
170
|
+
|
|
171
|
+
|
|
172
|
+
def test_another_module_cannot_take_a_registered_name(_fresh_registry):
|
|
173
|
+
_import_as("tests.fake_rules")
|
|
174
|
+
with pytest.raises(ValueError, match="exists"):
|
|
175
|
+
_import_as("tests.other_rules")
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
def test_velocity_handler_mixins_survive_a_second_import(_fresh_registry):
|
|
179
|
+
"""A consumer test that patches sys.modules imports velocity's handler
|
|
180
|
+
mixins twice; the permissions rules must not refuse the second import."""
|
|
181
|
+
import importlib
|
|
182
|
+
|
|
183
|
+
name = "velocity.aws.handlers.mixins.permissions_actions"
|
|
184
|
+
original = sys.modules[name]
|
|
185
|
+
try:
|
|
186
|
+
sys.modules.pop(name)
|
|
187
|
+
importlib.import_module(name)
|
|
188
|
+
finally:
|
|
189
|
+
sys.modules[name] = original
|
|
140
190
|
|
|
141
191
|
|
|
142
192
|
# ── on a handler ─────────────────────────────────────────────────────────────
|
|
@@ -484,10 +534,13 @@ def _fresh_registry():
|
|
|
484
534
|
dict(authz._REGISTERED),
|
|
485
535
|
authz._REGISTERED_TUPLE,
|
|
486
536
|
dict(authz._PERMISSIONS),
|
|
537
|
+
dict(authz._OWNERS),
|
|
487
538
|
)
|
|
488
539
|
authz._INDEX.clear()
|
|
489
540
|
authz._HANDLER_RULES.clear()
|
|
490
541
|
yield
|
|
542
|
+
authz._OWNERS.clear()
|
|
543
|
+
authz._OWNERS.update(saved[3])
|
|
491
544
|
authz._REGISTERED.clear()
|
|
492
545
|
authz._REGISTERED.update(saved[0])
|
|
493
546
|
authz._REGISTERED_TUPLE = saved[1]
|
|
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.4 → velocity_python-0.2.5}/src/velocity/aws/capabilities/provisioning.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/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.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/context_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/action_names.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/audit_trail.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/client_errors.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/client_input.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/job_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/row_scoped.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/session_control.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/handlers/mixins/tiles_actions.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/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.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_deploy_policies.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/aws/tests/test_deploy_policy_size.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/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.4 → velocity_python-0.2.5}/src/velocity/db/servers/postgres/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/postgres/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/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.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlserver/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/servers/sqlserver/operators.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/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.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_column.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_connections.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_database.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_engine.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_general_usage.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_imports.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_result.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_sequence.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/postgres/test_table.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/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.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_cursor_rowcount_fix.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_postgres_unchanged.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_result_caching.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_result_sql_aware.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_row_get_missing_column.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.5}/src/velocity/db/tests/test_schema_locking_simple.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|