velocity-python 0.2.4__tar.gz → 0.2.6__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.6}/PKG-INFO +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.6}/pyproject.toml +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/__init__.py +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/authz.py +23 -2
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/async_support.py +3 -13
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/transaction.py +74 -18
- {velocity_python-0.2.4 → velocity_python-0.2.6/src/velocity_python.egg-info}/PKG-INFO +1 -1
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_async_support.py +4 -2
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_authz.py +53 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_observability.py +37 -6
- {velocity_python-0.2.4 → velocity_python-0.2.6}/LICENSE +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/README.md +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/setup.cfg +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/amplify.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/assets/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/assets/backfill.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/assets/indexing.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/assets/references.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/assets/service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/assets/usage_index.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/blobs.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/base.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/dispatch.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/infra.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/jobs.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/provisioning.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/retention.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/security.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/capabilities/single_session.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/ci_gate.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/frontend_checks.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/operations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/policies.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/reconcile.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/deploy/targets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/dirty_pipeline.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/email.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/facets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/failures.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/feature_flags.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/base_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/context.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/context_factory.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/exceptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/lambda_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/masquerade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/action_names.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/audit_trail.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/client_errors.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/client_input.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/job_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/permissions_actions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/row_scoped.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/session_control.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/tiles_actions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/perf.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/sqs_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/identity.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/job_lifecycle.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/job_results.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/ops.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/permissions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/queue_defaults.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/s3.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/schema.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/sms.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/ssm_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_deploy_least_privilege.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_deploy_policies.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_deploy_policy_size.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_deploy_reconcile.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_email.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_sms.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tiles.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/column.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/database.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/decorators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/jsonproxy.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/lazy_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/result.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/row.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/sequence.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/table.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/core/view.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/exceptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/fragments.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/maintenance.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/migrations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/base/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/base/initializer.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/base/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/base/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/base/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/mysql/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/mysql/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/mysql/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/mysql/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/mysql/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/postgres/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/postgres/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/postgres/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/postgres/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/postgres/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlite/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlite/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlite/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlite/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlite/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlserver/operators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlserver/sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/sqlserver/types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/servers/tablehelper.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/common_db_test.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/common.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/conftest.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_column.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_connections.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_database.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_imports.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_result.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_row.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_table.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/sql/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/sql/common.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_db_utils.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_postgres.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_result_caching.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_sql_builder.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_tablehelper.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tests/test_view_helper.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/tunnel.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/db/utils.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/logging.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/conv/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/conv/iconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/conv/oconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/format.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/mail.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/merge.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/pdf.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_fix.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_format.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_iconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_mail_send.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_merge.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_oconv.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_original_error.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tests/test_timer.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/timer.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/misc/tools.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/core/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/core/capabilities.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/core/store.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/core/where.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/exceptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/base/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/cassandra/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/cassandra/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/couchbase/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/couchbase/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/dynamodb/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/dynamodb/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/elasticsearch/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/elasticsearch/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/memory/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/mongodb/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/mongodb/translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/nosql/servers/redis/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/_mirror_core.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/authorizenet_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/authorizenet_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/base_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/braintree_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/braintree_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/charge_rules.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/money.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/plaid_api.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/plaid_webhook.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/redact.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/schema.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/stripe_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/payment/stripe_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/testing/__init__.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/testing/fake_db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity_python.egg-info/SOURCES.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity_python.egg-info/dependency_links.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity_python.egg-info/entry_points.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity_python.egg-info/requires.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity_python.egg-info/top_level.txt +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_access_error_403.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_action_names.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_activity_tracking_aborted_tx.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_amplify_redirects.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_asset_indexing.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_asset_references.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_assets_service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_audit_mixin.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_aws_package_hygiene.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_batch_operations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_blob_store.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_business_objects.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_capabilities.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_capability_catalog.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_check_changelog.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_ci_gate.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_client_errors_mixin.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_client_input_contract_export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_client_sql_boundary.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_client_table_gate_case_and_pointers.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_cognito_user_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_column_tx_arg.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_concurrency_safety.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_connection_pool.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_connection_resilience.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_context_flags_loader.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_context_job_descriptions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_context_queue_job.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_conv_combine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_data_service_owner_scope.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_data_service_query_cap.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_data_service_renumber.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_data_service_row_number.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_data_service_save_as.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_data_service_security_gates.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_db_credentials_ssm_cascade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_db_maintenance.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_db_tunnel.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_declared_column_types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_decorators.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_delete_hook_fk_blocked.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_deploy_config_fields.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_deploy_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_deploy_frontend_checks.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_deploy_operations_queue.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_deploy_policies.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_dirty_pipeline_fast_path.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_dlq_constant.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_docs_snippets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_email_processing.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_enqueue_metric_namespace.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_enqueue_send_failures.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_ensure_infrastructure.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_export_workbook.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_facets.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_facets_and_where.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_failures.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_feature_flags.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_get_cognito_user_provider.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_http_handler_rollback.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_iconv_money_to_cents.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_identifier_injection_guard.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_identity.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_job_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_job_lifecycle.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_job_results.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_json_columns.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_jsonb_dict_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_lambda_handler.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_lambda_handler_auth.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_lambda_handler_masquerade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_lambda_handler_user_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_lazy_engine.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_masquerade_grant.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_merge_on_conflict.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_mirror_upsert_public.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_mixins_import.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_n_plus_one.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_nosql_dynamodb.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_nosql_memory.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_nosql_mongodb.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_nosql_redis.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_nosql_translation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_nosql_where.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_on_action_default.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_on_commit.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_ops.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_audit_fixes.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_authorizenet_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_braintree_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_braintree_mirror.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_business_agnostic.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_charge_reference.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_extra_bounds.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_lazy_imports.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_mirror_empty_table.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_profile_sorting.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_payment_stripe_adapter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pdf.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_permissions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_permissions_actions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_permissions_notices.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_permissions_review.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_bulk_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_capability_types.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_ensure_infrastructure.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_get_tables.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_permissions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_pointer_joins.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_row_scope.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_search_export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_tiles.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pgserver_user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_plaid_api.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_plaid_webhook.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_pointer_join_sql.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_postgres_initializer_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_postgres_py_type.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_prepared_statements.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_psycopg3_upgrade.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_query_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_query_missing_table_unlocked.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_raw_sql_prefix_policy.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_read_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_readme_imports.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_response.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_restricted_direct_tables.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_result_returning.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_retry_side_effect_guard.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_return_default_safety.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_row_batch_update.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_row_cache_staleness.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_row_scoped_data_service.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_s3_bucket_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_s3_list_client_files.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_s3_upload.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_schema_lock_config_other_backends.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_schema_migrations.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_search_paging_export.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_security_capability.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_security_hardening.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_server_cursor.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_session_control.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_single_autocommit_safety.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_single_session_capability.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_sms_twilio_signature.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_spreadsheet_functions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_sqlite_backend.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_sqs_per_record_transactions.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_ssm_config.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_ssm_config_require.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_store_user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_sys_modified_count_postgres_demo.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_table_alter.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_table_claim.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_table_find_cache.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_table_purge.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_testing_fake_db.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_tiles.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_transaction_class_wrapping.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_transaction_commit_and_ownership.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_transaction_edge_cases.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_tx_lifecycle_retry.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_tx_read_cache_and_bulk.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_user_data.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_user_not_provisioned.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_where_clause_validation.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/tests/test_write_hook_create_flow.py +0 -0
- {velocity_python-0.2.4 → velocity_python-0.2.6}/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."""
|
|
@@ -528,19 +528,9 @@ class AsyncTransaction:
|
|
|
528
528
|
|
|
529
529
|
# R12 — Slow query logging
|
|
530
530
|
if _SLOW_QUERY_MS and elapsed_ms > _SLOW_QUERY_MS:
|
|
531
|
-
from velocity.db.core.transaction import
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
_logger.warning(
|
|
535
|
-
"Slow async query: %.1f ms sql=%s",
|
|
536
|
-
elapsed_ms,
|
|
537
|
-
sql_preview,
|
|
538
|
-
extra={
|
|
539
|
-
"query_duration_ms": round(elapsed_ms, 1),
|
|
540
|
-
"sql_preview": sql_preview,
|
|
541
|
-
},
|
|
542
|
-
stack_info=True,
|
|
543
|
-
)
|
|
531
|
+
from velocity.db.core.transaction import _slow_query_log
|
|
532
|
+
|
|
533
|
+
_slow_query_log(_logger, sql, elapsed_ms)
|
|
544
534
|
|
|
545
535
|
# R14 — N+1 detection / R33 — raw-write cache invalidation
|
|
546
536
|
from velocity.db.core.transaction import _classify_sql, _extract_table_name
|
|
@@ -30,6 +30,15 @@ _DEFAULT_QUERY_CACHE_SIZE = int(os.environ.get("VELOCITY_QUERY_CACHE_SIZE", "100
|
|
|
30
30
|
# Slow-query threshold in milliseconds (0 = disabled).
|
|
31
31
|
_SLOW_QUERY_MS = int(os.environ.get("VELOCITY_SLOW_QUERY_MS", "500"))
|
|
32
32
|
_SLOW_QUERY_SQL_CHARS = int(os.environ.get("VELOCITY_SLOW_QUERY_SQL_CHARS", "4000"))
|
|
33
|
+
# The slow-query line is for people: this much SQL, the caller's file:line,
|
|
34
|
+
# no traceback unless VELOCITY_SLOW_QUERY_STACK=1 asks for one. The full
|
|
35
|
+
# preview (VELOCITY_SLOW_QUERY_SQL_CHARS) still rides on the record's `extra`.
|
|
36
|
+
_SLOW_QUERY_LINE_CHARS = 200
|
|
37
|
+
_SLOW_QUERY_STACK = os.environ.get("VELOCITY_SLOW_QUERY_STACK", "").strip().lower() in (
|
|
38
|
+
"1",
|
|
39
|
+
"true",
|
|
40
|
+
"yes",
|
|
41
|
+
)
|
|
33
42
|
|
|
34
43
|
# N+1 detection: warn when the same table is SELECTed more than this many
|
|
35
44
|
# times within a single transaction. 0 = disabled. Only active when the
|
|
@@ -174,16 +183,79 @@ def _written_tables_from_sql(sql):
|
|
|
174
183
|
return tags or None
|
|
175
184
|
|
|
176
185
|
|
|
186
|
+
# a run of three or more bind placeholders: "IN (%s, %s, %s, …)"
|
|
187
|
+
_PLACEHOLDER_RUN_RE = re.compile(r"(%s|\?)(?:\s*,\s*\1){2,}")
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
def _collapse_placeholders(text):
|
|
191
|
+
"""``%s, %s, … (812 of them)`` -> ``%s × 812``."""
|
|
192
|
+
|
|
193
|
+
def collapse(match):
|
|
194
|
+
token = match.group(1)
|
|
195
|
+
return f"{token} × {match.group(0).count(token)}"
|
|
196
|
+
|
|
197
|
+
return _PLACEHOLDER_RUN_RE.sub(collapse, text)
|
|
198
|
+
|
|
199
|
+
|
|
177
200
|
def _summarize_sql(sql, limit=None):
|
|
178
201
|
if not sql:
|
|
179
202
|
return None
|
|
180
|
-
compact = " ".join(str(sql).split())
|
|
203
|
+
compact = _collapse_placeholders(" ".join(str(sql).split()))
|
|
181
204
|
max_chars = _SLOW_QUERY_SQL_CHARS if limit is None else limit
|
|
182
205
|
if max_chars and len(compact) > max_chars:
|
|
183
206
|
return compact[:max_chars] + "... [truncated]"
|
|
184
207
|
return compact
|
|
185
208
|
|
|
186
209
|
|
|
210
|
+
_VELOCITY_DIR = os.path.dirname(
|
|
211
|
+
os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
|
212
|
+
)
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
def _caller_location():
|
|
216
|
+
"""``file.py:line`` of the first stack frame outside velocity (the code
|
|
217
|
+
that ran the query), or ``None``."""
|
|
218
|
+
import traceback
|
|
219
|
+
|
|
220
|
+
for frame in reversed(traceback.extract_stack()[:-1]):
|
|
221
|
+
filename = os.path.abspath(frame.filename)
|
|
222
|
+
if filename.startswith(_VELOCITY_DIR + os.sep) or "<frozen" in frame.filename:
|
|
223
|
+
continue
|
|
224
|
+
return f"{os.path.basename(frame.filename)}:{frame.lineno}"
|
|
225
|
+
return None
|
|
226
|
+
|
|
227
|
+
|
|
228
|
+
def _slow_query_log(logger, sql, elapsed_ms, *, op=None, table=None):
|
|
229
|
+
"""One readable line for a slow query: what, on which table, how long,
|
|
230
|
+
from where, and the start of the SQL (placeholders collapsed). The fields
|
|
231
|
+
for log tooling go in ``extra``; a traceback only with
|
|
232
|
+
VELOCITY_SLOW_QUERY_STACK=1."""
|
|
233
|
+
op = op or _classify_sql(sql)
|
|
234
|
+
table = table if table is not None else _extract_table_name(sql)
|
|
235
|
+
preview = _summarize_sql(sql)
|
|
236
|
+
line = _summarize_sql(sql, limit=_SLOW_QUERY_LINE_CHARS)
|
|
237
|
+
caller = _caller_location()
|
|
238
|
+
took = (
|
|
239
|
+
f"{elapsed_ms / 1000:.1f} s" if elapsed_ms >= 1000 else f"{elapsed_ms:.0f} ms"
|
|
240
|
+
)
|
|
241
|
+
logger.warning(
|
|
242
|
+
"Slow %s%s: %s%s — %s",
|
|
243
|
+
op or "query",
|
|
244
|
+
f" on {table}" if table else "",
|
|
245
|
+
took,
|
|
246
|
+
f" at {caller}" if caller else "",
|
|
247
|
+
line,
|
|
248
|
+
extra={
|
|
249
|
+
"query_duration_ms": round(elapsed_ms, 1),
|
|
250
|
+
"table_name": table,
|
|
251
|
+
"operation": op,
|
|
252
|
+
"sql_preview": preview,
|
|
253
|
+
"caller": caller,
|
|
254
|
+
},
|
|
255
|
+
stack_info=_SLOW_QUERY_STACK,
|
|
256
|
+
)
|
|
257
|
+
|
|
258
|
+
|
|
187
259
|
def _is_prepare_kw_type_error(error):
|
|
188
260
|
"""True for the TypeError a DB-API driver raises when ``execute()`` has
|
|
189
261
|
no ``prepare`` keyword (``unexpected keyword argument 'prepare'``)."""
|
|
@@ -650,23 +722,7 @@ class Transaction:
|
|
|
650
722
|
|
|
651
723
|
# R12 — Slow query logging.
|
|
652
724
|
if _SLOW_QUERY_MS and elapsed_ms > _SLOW_QUERY_MS:
|
|
653
|
-
|
|
654
|
-
tbl = _extract_table_name(sql)
|
|
655
|
-
sql_preview = _summarize_sql(sql)
|
|
656
|
-
_logger.warning(
|
|
657
|
-
"Slow query (%s): %.1f ms table=%s sql=%s",
|
|
658
|
-
op,
|
|
659
|
-
elapsed_ms,
|
|
660
|
-
tbl,
|
|
661
|
-
sql_preview,
|
|
662
|
-
extra={
|
|
663
|
-
"query_duration_ms": round(elapsed_ms, 1),
|
|
664
|
-
"table_name": tbl,
|
|
665
|
-
"operation": op,
|
|
666
|
-
"sql_preview": sql_preview,
|
|
667
|
-
},
|
|
668
|
-
stack_info=True,
|
|
669
|
-
)
|
|
725
|
+
_slow_query_log(_logger, sql, elapsed_ms)
|
|
670
726
|
|
|
671
727
|
# R14 — N+1 detection (only when debug=True).
|
|
672
728
|
if debug and _N_PLUS_1_THRESHOLD:
|
|
@@ -728,6 +728,8 @@ class TestAsyncSlowQueryLogging:
|
|
|
728
728
|
assert len(slow_calls) >= 1
|
|
729
729
|
args = slow_calls[0].args
|
|
730
730
|
kwargs = slow_calls[0].kwargs
|
|
731
|
-
|
|
731
|
+
# the same one-line form as the sync path: op, table, SQL last
|
|
732
|
+
assert args[1:3] == ("SELECT", " on large_table")
|
|
733
|
+
assert args[-1] == "SELECT * FROM large_table"
|
|
732
734
|
assert kwargs["extra"]["sql_preview"] == "SELECT * FROM large_table"
|
|
733
|
-
assert kwargs["stack_info"] is
|
|
735
|
+
assert kwargs["stack_info"] is False
|
|
@@ -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]
|
|
@@ -179,9 +179,14 @@ class TestSlowQueryLogging:
|
|
|
179
179
|
with caplog.at_level(logging.WARNING, logger="velocity.db.transaction"):
|
|
180
180
|
tx._execute("SELECT * FROM big_table")
|
|
181
181
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
182
|
+
lines = [
|
|
183
|
+
r.getMessage() for r in caplog.records if r.getMessage().startswith("Slow ")
|
|
184
|
+
]
|
|
185
|
+
assert len(lines) == 1
|
|
186
|
+
# one readable line: what, on which table, how long, from where, the SQL
|
|
187
|
+
assert lines[0].startswith("Slow SELECT on big_table: ")
|
|
188
|
+
assert " at test_observability.py:" in lines[0]
|
|
189
|
+
assert lines[0].endswith("— SELECT * FROM big_table")
|
|
185
190
|
|
|
186
191
|
def test_fast_query_no_warning(self, caplog):
|
|
187
192
|
tx = _make_tx()
|
|
@@ -192,7 +197,7 @@ class TestSlowQueryLogging:
|
|
|
192
197
|
with caplog.at_level(logging.WARNING, logger="velocity.db.transaction"):
|
|
193
198
|
tx._execute("SELECT 1")
|
|
194
199
|
|
|
195
|
-
assert not any("Slow
|
|
200
|
+
assert not any(r.getMessage().startswith("Slow ") for r in caplog.records)
|
|
196
201
|
|
|
197
202
|
def test_slow_query_disabled_when_zero(self, caplog):
|
|
198
203
|
tx = _make_tx()
|
|
@@ -211,7 +216,7 @@ class TestSlowQueryLogging:
|
|
|
211
216
|
with caplog.at_level(logging.WARNING, logger="velocity.db.transaction"):
|
|
212
217
|
tx._execute("SELECT * FROM big_table")
|
|
213
218
|
|
|
214
|
-
assert not any("Slow
|
|
219
|
+
assert not any(r.getMessage().startswith("Slow ") for r in caplog.records)
|
|
215
220
|
|
|
216
221
|
def test_slow_query_structured_extra(self, caplog):
|
|
217
222
|
"""Verify structured logging extra fields on slow-query record."""
|
|
@@ -231,13 +236,39 @@ class TestSlowQueryLogging:
|
|
|
231
236
|
with caplog.at_level(logging.WARNING, logger="velocity.db.transaction"):
|
|
232
237
|
tx._execute("SELECT * FROM orders WHERE id = 1")
|
|
233
238
|
|
|
234
|
-
slow_records = [r for r in caplog.records if "Slow
|
|
239
|
+
slow_records = [r for r in caplog.records if r.getMessage().startswith("Slow ")]
|
|
235
240
|
assert len(slow_records) >= 1
|
|
236
241
|
rec = slow_records[0]
|
|
237
242
|
assert rec.query_duration_ms > 0
|
|
238
243
|
assert rec.table_name == "orders"
|
|
239
244
|
assert rec.operation == "SELECT"
|
|
240
245
|
assert rec.sql_preview == "SELECT * FROM orders WHERE id = 1"
|
|
246
|
+
assert rec.caller.startswith("test_observability.py:")
|
|
247
|
+
# no traceback unless VELOCITY_SLOW_QUERY_STACK asks for one
|
|
248
|
+
assert not rec.stack_info
|
|
249
|
+
|
|
250
|
+
def test_slow_query_collapses_placeholders_and_can_add_the_stack(self, caplog):
|
|
251
|
+
tx = _make_tx()
|
|
252
|
+
|
|
253
|
+
class SlowCursor:
|
|
254
|
+
def execute(self, *a, **kw):
|
|
255
|
+
time.sleep(0.01)
|
|
256
|
+
|
|
257
|
+
@property
|
|
258
|
+
def description(self):
|
|
259
|
+
return None
|
|
260
|
+
|
|
261
|
+
tx.connection.cursor.return_value = SlowCursor()
|
|
262
|
+
sql = "SELECT * FROM links WHERE event_id IN (" + ", ".join(["%s"] * 812) + ")"
|
|
263
|
+
with (
|
|
264
|
+
patch("velocity.db.core.transaction._SLOW_QUERY_MS", 5),
|
|
265
|
+
patch("velocity.db.core.transaction._SLOW_QUERY_STACK", True),
|
|
266
|
+
):
|
|
267
|
+
with caplog.at_level(logging.WARNING, logger="velocity.db.transaction"):
|
|
268
|
+
tx._execute(sql, tuple(range(812)))
|
|
269
|
+
|
|
270
|
+
rec = [r for r in caplog.records if r.getMessage().startswith("Slow ")][0]
|
|
271
|
+
assert rec.getMessage().endswith("IN (%s × 812)")
|
|
241
272
|
assert rec.stack_info
|
|
242
273
|
|
|
243
274
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
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.6}/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.6}/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.6}/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.6}/src/velocity/aws/handlers/mixins/__init__.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/action_names.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/audit_trail.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/client_errors.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/client_input.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/data_service.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/job_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/row_scoped.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/session_control.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/handlers/mixins/tiles_actions.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/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.6}/src/velocity/aws/tests/test_deploy_policies.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/src/velocity/aws/tests/test_deploy_policy_size.py
RENAMED
|
File without changes
|
{velocity_python-0.2.4 → velocity_python-0.2.6}/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
|