velocity-python 0.0.228__tar.gz → 0.0.230__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.
Files changed (158) hide show
  1. {velocity_python-0.0.228/src/velocity_python.egg-info → velocity_python-0.0.230}/PKG-INFO +1 -1
  2. {velocity_python-0.0.228 → velocity_python-0.0.230}/pyproject.toml +1 -1
  3. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/__init__.py +1 -1
  4. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/payment/braintree_adapter.py +1 -1
  5. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/payment/router.py +31 -17
  6. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/payment/stripe_adapter.py +1 -1
  7. {velocity_python-0.0.228 → velocity_python-0.0.230/src/velocity_python.egg-info}/PKG-INFO +1 -1
  8. {velocity_python-0.0.228 → velocity_python-0.0.230}/LICENSE +0 -0
  9. {velocity_python-0.0.228 → velocity_python-0.0.230}/README.md +0 -0
  10. {velocity_python-0.0.228 → velocity_python-0.0.230}/setup.cfg +0 -0
  11. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/__init__.py +0 -0
  12. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/invoices.py +0 -0
  13. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/orders.py +0 -0
  14. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/payments.py +0 -0
  15. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/purchase_orders.py +0 -0
  16. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/tests/__init__.py +0 -0
  17. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/tests/test_email_processing.py +0 -0
  18. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/tests/test_payment_profile_sorting.py +0 -0
  19. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/app/tests/test_spreadsheet_functions.py +0 -0
  20. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/__init__.py +0 -0
  21. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/amplify.py +0 -0
  22. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/amplify_build.py +0 -0
  23. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/__init__.py +0 -0
  24. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/base_handler.py +0 -0
  25. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/context.py +0 -0
  26. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/context_factory.py +0 -0
  27. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/exceptions.py +0 -0
  28. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/lambda_handler.py +0 -0
  29. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/mixins/__init__.py +0 -0
  30. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/mixins/data_service.py +0 -0
  31. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/mixins/web_handler.py +0 -0
  32. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/perf.py +0 -0
  33. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/response.py +0 -0
  34. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/handlers/sqs_handler.py +0 -0
  35. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/tests/__init__.py +0 -0
  36. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/tests/test_base_handler_error_response.py +0 -0
  37. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/tests/test_lambda_handler_json_serialization.py +0 -0
  38. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/aws/tests/test_response.py +0 -0
  39. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/__init__.py +0 -0
  40. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/__init__.py +0 -0
  41. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/column.py +0 -0
  42. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/database.py +0 -0
  43. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/decorators.py +0 -0
  44. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/engine.py +0 -0
  45. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/result.py +0 -0
  46. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/row.py +0 -0
  47. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/sequence.py +0 -0
  48. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/table.py +0 -0
  49. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/transaction.py +0 -0
  50. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/core/view.py +0 -0
  51. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/exceptions.py +0 -0
  52. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/__init__.py +0 -0
  53. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/base/__init__.py +0 -0
  54. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/base/initializer.py +0 -0
  55. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/base/operators.py +0 -0
  56. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/base/sql.py +0 -0
  57. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/base/types.py +0 -0
  58. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/mysql/__init__.py +0 -0
  59. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/mysql/operators.py +0 -0
  60. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/mysql/reserved.py +0 -0
  61. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/mysql/sql.py +0 -0
  62. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/mysql/types.py +0 -0
  63. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/postgres/__init__.py +0 -0
  64. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/postgres/operators.py +0 -0
  65. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/postgres/reserved.py +0 -0
  66. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/postgres/sql.py +0 -0
  67. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/postgres/types.py +0 -0
  68. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlite/__init__.py +0 -0
  69. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlite/operators.py +0 -0
  70. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlite/reserved.py +0 -0
  71. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlite/sql.py +0 -0
  72. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlite/types.py +0 -0
  73. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlserver/__init__.py +0 -0
  74. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlserver/operators.py +0 -0
  75. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlserver/reserved.py +0 -0
  76. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlserver/sql.py +0 -0
  77. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/sqlserver/types.py +0 -0
  78. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/servers/tablehelper.py +0 -0
  79. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/__init__.py +0 -0
  80. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/common_db_test.py +0 -0
  81. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/__init__.py +0 -0
  82. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/common.py +0 -0
  83. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_column.py +0 -0
  84. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_connections.py +0 -0
  85. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_database.py +0 -0
  86. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_engine.py +0 -0
  87. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_general_usage.py +0 -0
  88. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_imports.py +0 -0
  89. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_result.py +0 -0
  90. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_row.py +0 -0
  91. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_row_comprehensive.py +0 -0
  92. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_schema_locking.py +0 -0
  93. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_schema_locking_unit.py +0 -0
  94. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_sequence.py +0 -0
  95. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_sql_comprehensive.py +0 -0
  96. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_table.py +0 -0
  97. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_table_comprehensive.py +0 -0
  98. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/postgres/test_transaction.py +0 -0
  99. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/sql/__init__.py +0 -0
  100. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/sql/common.py +0 -0
  101. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/sql/test_postgres_select_advanced.py +0 -0
  102. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/sql/test_postgres_select_variances.py +0 -0
  103. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_cursor_rowcount_fix.py +0 -0
  104. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_db_utils.py +0 -0
  105. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_postgres.py +0 -0
  106. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_postgres_unchanged.py +0 -0
  107. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_process_error_robustness.py +0 -0
  108. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_result_caching.py +0 -0
  109. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_result_sql_aware.py +0 -0
  110. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_row_get_missing_column.py +0 -0
  111. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_schema_locking_initializers.py +0 -0
  112. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_schema_locking_simple.py +0 -0
  113. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_sql_builder.py +0 -0
  114. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_tablehelper.py +0 -0
  115. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/tests/test_view_helper.py +0 -0
  116. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/db/utils.py +0 -0
  117. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/logging.py +0 -0
  118. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/__init__.py +0 -0
  119. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/conv/__init__.py +0 -0
  120. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/conv/iconv.py +0 -0
  121. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/conv/oconv.py +0 -0
  122. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/db.py +0 -0
  123. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/export.py +0 -0
  124. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/format.py +0 -0
  125. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/mail.py +0 -0
  126. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/merge.py +0 -0
  127. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/__init__.py +0 -0
  128. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_db.py +0 -0
  129. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_fix.py +0 -0
  130. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_format.py +0 -0
  131. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_iconv.py +0 -0
  132. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_merge.py +0 -0
  133. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_oconv.py +0 -0
  134. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_original_error.py +0 -0
  135. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tests/test_timer.py +0 -0
  136. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/timer.py +0 -0
  137. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/misc/tools.py +0 -0
  138. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/payment/__init__.py +0 -0
  139. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/payment/authorizenet_adapter.py +0 -0
  140. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/payment/base_adapter.py +0 -0
  141. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity/payment/profiles.py +0 -0
  142. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity_python.egg-info/SOURCES.txt +0 -0
  143. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity_python.egg-info/dependency_links.txt +0 -0
  144. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity_python.egg-info/requires.txt +0 -0
  145. {velocity_python-0.0.228 → velocity_python-0.0.230}/src/velocity_python.egg-info/top_level.txt +0 -0
  146. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_amplify_build.py +0 -0
  147. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_decorators.py +0 -0
  148. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_iconv_money_to_cents.py +0 -0
  149. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_lambda_handler.py +0 -0
  150. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_lambda_handler_auth.py +0 -0
  151. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_mixins_import.py +0 -0
  152. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_payment_braintree_adapter.py +0 -0
  153. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_payment_profiles.py +0 -0
  154. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_payment_router.py +0 -0
  155. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_payment_stripe_adapter.py +0 -0
  156. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_sys_modified_count_postgres_demo.py +0 -0
  157. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_table_alter.py +0 -0
  158. {velocity_python-0.0.228 → velocity_python-0.0.230}/tests/test_where_clause_validation.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: velocity-python
3
- Version: 0.0.228
3
+ Version: 0.0.230
4
4
  Summary: A rapid application development library for interfacing with data storage
5
5
  Author-email: Velocity Team <info@codeclubs.org>
6
6
  License-Expression: MIT
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "velocity-python"
7
- version = "0.0.228"
7
+ version = "0.0.230"
8
8
  authors = [
9
9
  { name="Velocity Team", email="info@codeclubs.org" },
10
10
  ]
@@ -1,4 +1,4 @@
1
- __version__ = version = "0.0.228"
1
+ __version__ = version = "0.0.229"
2
2
 
3
3
  from . import aws
4
4
  from . import db
@@ -207,7 +207,7 @@ class BraintreeAdapter(PaymentProcessorAdapter):
207
207
  merchant_account = self.gateway.merchant_account.find(processor_account_id)
208
208
 
209
209
  # Update database record
210
- payment_account = tx.table("client_payment_accounts").find_one(
210
+ payment_account = tx.table("client_payment_accounts").find(
211
211
  {
212
212
  "processor_account_id": processor_account_id,
213
213
  "processor_type": "braintree",
@@ -89,13 +89,13 @@ def _determine_processor_type(
89
89
  return form["payment_processor_override"].lower()
90
90
 
91
91
  # 2. Check client-level configuration
92
- customer = tx.table("customers").find_one({"client_id": client_id})
92
+ customer = tx.table("customers").find({"client_id": client_id})
93
93
  if customer and customer.get("payment_processor"):
94
94
  return customer["payment_processor"].lower()
95
95
 
96
96
  # 3. Fall back to platform default
97
97
  branch = os.environ.get("USER_BRANCH", "demo")
98
- feature_flags = tx.table("sys_feature_flags").find_one({"applied_system": branch})
98
+ feature_flags = tx.table("sys_feature_flags").find({"applied_system": branch})
99
99
 
100
100
  if feature_flags and feature_flags.get("default_payment_processor"):
101
101
  return feature_flags["default_payment_processor"].lower()
@@ -116,7 +116,7 @@ def _is_processor_enabled(tx, processor_type: str) -> bool:
116
116
  True if processor is enabled, False otherwise
117
117
  """
118
118
  branch = os.environ.get("USER_BRANCH", "demo")
119
- feature_flags = tx.table("sys_feature_flags").find_one({"applied_system": branch})
119
+ feature_flags = tx.table("sys_feature_flags").find({"applied_system": branch})
120
120
 
121
121
  if not feature_flags:
122
122
  # No feature flags found - default to braintree only
@@ -189,23 +189,30 @@ def _get_braintree_config() -> Dict[str, Any]:
189
189
  """
190
190
  Get Braintree configuration from environment variables.
191
191
 
192
- Expected environment variables:
193
- - BRAINTREE_MERCHANT_ID or BraintreeMerchantId
194
- - BRAINTREE_PUBLIC_KEY or BraintreePublicKey
195
- - BRAINTREE_PRIVATE_KEY or BraintreePrivateKey
192
+ Expected environment variables (any of the following naming conventions):
193
+ - BRAINTREE_MERCHANT_ID or BraintreeMerchantId or BTMerchantId
194
+ - BRAINTREE_PUBLIC_KEY or BraintreePublicKey or BTPublicKey
195
+ - BRAINTREE_PRIVATE_KEY or BraintreePrivateKey or BTPrivateKey
196
196
  - BRAINTREE_ENVIRONMENT (sandbox/production, default: sandbox)
197
+ or BTEnvironment (braintree.Environment.Sandbox / braintree.Environment.Production)
197
198
 
198
199
  Returns:
199
200
  Braintree configuration dictionary
200
201
  """
201
- merchant_id = os.environ.get("BRAINTREE_MERCHANT_ID") or os.environ.get(
202
- "BraintreeMerchantId"
202
+ merchant_id = (
203
+ os.environ.get("BRAINTREE_MERCHANT_ID")
204
+ or os.environ.get("BraintreeMerchantId")
205
+ or os.environ.get("BTMerchantId")
203
206
  )
204
- public_key = os.environ.get("BRAINTREE_PUBLIC_KEY") or os.environ.get(
205
- "BraintreePublicKey"
207
+ public_key = (
208
+ os.environ.get("BRAINTREE_PUBLIC_KEY")
209
+ or os.environ.get("BraintreePublicKey")
210
+ or os.environ.get("BTPublicKey")
206
211
  )
207
- private_key = os.environ.get("BRAINTREE_PRIVATE_KEY") or os.environ.get(
208
- "BraintreePrivateKey"
212
+ private_key = (
213
+ os.environ.get("BRAINTREE_PRIVATE_KEY")
214
+ or os.environ.get("BraintreePrivateKey")
215
+ or os.environ.get("BTPrivateKey")
209
216
  )
210
217
 
211
218
  if not all([merchant_id, public_key, private_key]):
@@ -214,7 +221,14 @@ def _get_braintree_config() -> Dict[str, Any]:
214
221
  "BRAINTREE_MERCHANT_ID, BRAINTREE_PUBLIC_KEY, BRAINTREE_PRIVATE_KEY"
215
222
  )
216
223
 
217
- environment = os.environ.get("BRAINTREE_ENVIRONMENT", "sandbox")
224
+ environment = os.environ.get("BRAINTREE_ENVIRONMENT")
225
+ if not environment:
226
+ # Support legacy BTEnvironment format: "braintree.Environment.Sandbox"
227
+ bt_env = os.environ.get("BTEnvironment", "")
228
+ if "Production" in bt_env:
229
+ environment = "production"
230
+ else:
231
+ environment = "sandbox"
218
232
 
219
233
  return {
220
234
  "merchant_id": merchant_id,
@@ -282,13 +296,13 @@ def get_revenue_split_percentage(
282
296
  return float(form["revenue_split_percentage"])
283
297
 
284
298
  # 2. Try client-level
285
- customer = tx.table("customers").find_one({"client_id": client_id})
299
+ customer = tx.table("customers").find({"client_id": client_id})
286
300
  if customer and customer.get("revenue_split_percentage") is not None:
287
301
  return float(customer["revenue_split_percentage"])
288
302
 
289
303
  # 3. Platform default from feature flags
290
304
  branch = os.environ.get("USER_BRANCH", "demo")
291
- feature_flags = tx.table("sys_feature_flags").find_one({"applied_system": branch})
305
+ feature_flags = tx.table("sys_feature_flags").find({"applied_system": branch})
292
306
 
293
307
  if (
294
308
  feature_flags
@@ -317,7 +331,7 @@ def get_processor_account_id(
317
331
  if not processor_type:
318
332
  processor_type = _determine_processor_type(tx, client_id)
319
333
 
320
- payment_account = tx.table("client_payment_accounts").find_one(
334
+ payment_account = tx.table("client_payment_accounts").find(
321
335
  {"client_id": client_id, "processor_type": processor_type}
322
336
  )
323
337
 
@@ -301,7 +301,7 @@ class StripeAdapter(PaymentProcessorAdapter):
301
301
  account = stripe.Account.retrieve(processor_account_id, api_key=self._api_key)
302
302
 
303
303
  # Update database record
304
- payment_account = tx.table("client_payment_accounts").find_one(
304
+ payment_account = tx.table("client_payment_accounts").find(
305
305
  {
306
306
  "processor_account_id": processor_account_id,
307
307
  "processor_type": "stripe",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: velocity-python
3
- Version: 0.0.228
3
+ Version: 0.0.230
4
4
  Summary: A rapid application development library for interfacing with data storage
5
5
  Author-email: Velocity Team <info@codeclubs.org>
6
6
  License-Expression: MIT