jaaql-middleware-python 5.3.9__tar.gz → 5.3.10__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 (78) hide show
  1. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/PKG-INFO +1 -1
  2. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/constants.py +1 -1
  3. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/db/db_utils_no_circ.py +19 -7
  4. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql_middleware_python.egg-info/PKG-INFO +1 -1
  5. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/LICENSE.txt +0 -0
  6. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/README.md +0 -0
  7. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/__init__.py +0 -0
  8. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/config/__init__.py +0 -0
  9. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/config/config-docker.ini +0 -0
  10. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/config/config-test.ini +0 -0
  11. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/config/config.ini +0 -0
  12. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/config_constants.py +0 -0
  13. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/db/__init__.py +0 -0
  14. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/db/db_interface.py +0 -0
  15. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/db/db_pg_interface.py +0 -0
  16. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/db/db_utils.py +0 -0
  17. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/documentation/__init__.py +0 -0
  18. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/documentation/documentation_internal.py +0 -0
  19. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/documentation/documentation_public.py +0 -0
  20. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/documentation/documentation_shared.py +0 -0
  21. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/email/__init__.py +0 -0
  22. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/email/email_manager.py +0 -0
  23. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/email/email_manager_service.py +0 -0
  24. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/email/patch_ems.py +0 -0
  25. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/exceptions/__init__.py +0 -0
  26. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/exceptions/custom_http_status.py +0 -0
  27. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/exceptions/http_status_exception.py +0 -0
  28. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/exceptions/jaaql_interpretable_handled_errors.py +0 -0
  29. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/exceptions/not_yet_implement_exception.py +0 -0
  30. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/generated_constants.py +0 -0
  31. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/interpreter/__init__.py +0 -0
  32. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/interpreter/interpret_jaaql.py +0 -0
  33. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/jaaql.py +0 -0
  34. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/migrations/__init__.py +0 -0
  35. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/migrations/migrations.py +0 -0
  36. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/__init__.py +0 -0
  37. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/base_controller.py +0 -0
  38. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/base_model.py +0 -0
  39. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/controller.py +0 -0
  40. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/controller_interface.py +0 -0
  41. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/exception_queries.py +0 -0
  42. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/generated_queries.py +0 -0
  43. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/handmade_queries.py +0 -0
  44. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/model.py +0 -0
  45. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/model_interface.py +0 -0
  46. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/mvc/response.py +0 -0
  47. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/openapi/__init__.py +0 -0
  48. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/openapi/swagger_documentation.py +0 -0
  49. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/patch.py +0 -0
  50. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/01.install_domains.generated.sql +0 -0
  51. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/02.install_super_user.exceptions.sql +0 -0
  52. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/03.install_super_user.handwritten.sql +0 -0
  53. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/04.install_jaaql_data_structures.generated.sql +0 -0
  54. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/05.install_static_data.generated.sql +0 -0
  55. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/06.install_jaaql.exceptions.sql +0 -0
  56. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/ZZZZ.generated_functions_views_and_permissions.sql +0 -0
  57. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/ZZZZ.reset_references.sql +0 -0
  58. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/scripts/swagger_template.html +0 -0
  59. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/services/__init__.py +0 -0
  60. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/services/cached_canned_query_service.py +0 -0
  61. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/services/migrations_manager_service.py +0 -0
  62. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/services/patch_mms.py +0 -0
  63. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/services/patch_shared_var_service.py +0 -0
  64. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/services/shared_var_service.py +0 -0
  65. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/__init__.py +0 -0
  66. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/bootstrap_secrets.py +0 -0
  67. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/cron.py +0 -0
  68. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/crypt_utils.py +0 -0
  69. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/options.py +0 -0
  70. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/utils.py +0 -0
  71. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/utils_no_project_imports.py +0 -0
  72. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql/utilities/vault.py +0 -0
  73. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql_middleware_python.egg-info/SOURCES.txt +0 -0
  74. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql_middleware_python.egg-info/dependency_links.txt +0 -0
  75. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql_middleware_python.egg-info/requires.txt +0 -0
  76. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/jaaql_middleware_python.egg-info/top_level.txt +0 -0
  77. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/setup.cfg +0 -0
  78. {jaaql_middleware_python-5.3.9 → jaaql_middleware_python-5.3.10}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaaql-middleware-python
3
- Version: 5.3.9
3
+ Version: 5.3.10
4
4
  Summary: The jaaql package, allowing for rapid development and deployment of RESTful HTTP applications
5
5
  Home-page: https://github.com/JAAQL/JAAQL-middleware-python
6
6
  Author: Software Quality Measurement and Improvement bv
@@ -218,5 +218,5 @@ ROLE__dba = "dba"
218
218
 
219
219
  PROTOCOL__postgres = "postgresql://"
220
220
 
221
- VERSION = "5.3.9"
221
+ VERSION = "5.3.10"
222
222
 
@@ -1,8 +1,8 @@
1
1
  from jaaql.mvc.exception_queries import QUERY__fetch_application_schemas, KG__application_schema__application, KG__application__is_live, \
2
2
  KG__application_schema__name, KEY__is_default
3
3
  from queue import Queue
4
- from jaaql.db.db_utils import execute_supplied_statement, create_interface_for_db, ERR__schema_invalid
5
- from jaaql.exceptions.http_status_exception import HttpStatusException
4
+ from jaaql.db.db_utils import execute_supplied_statement, create_interface_for_db, ERR__schema_invalid, CONN_LOST__max_attempts
5
+ from jaaql.exceptions.http_status_exception import HttpStatusException, ConnectionLostError
6
6
  from jaaql.interpreter.interpret_jaaql import InterpretJAAQL
7
7
  from jaaql.constants import KEY__application, KEY__database, KEY__schema, KEY__role, DB__jaaql, \
8
8
  KEY__read_only, KEY__prevent_unused_parameters
@@ -76,11 +76,23 @@ def submit(vault, config, db_crypt_key, jaaql_connection: DBInterface, inputs: d
76
76
 
77
77
  prevent_unused = inputs.pop(KEY__prevent_unused_parameters) if KEY__prevent_unused_parameters in inputs else True
78
78
 
79
- ret = InterpretJAAQL(required_db, jaaql_connection
80
- ).transform(inputs, skip_commit=inputs.get(KEY__read_only), wait_hook=verification_hook,
81
- encryption_key=db_crypt_key, conn=conn,
82
- canned_query_service=cached_canned_query_service, prevent_unused_parameters=prevent_unused,
83
- and_return_connection_mid_transaction=keep_alive_conn, prepare_statements=prepare_statements)
79
+ # A lost connection committed nothing, so re-running on a fresh connection is safe. \wipe dbms kills
80
+ # pooled connections, so a request landing on one dies at commit ("the connection is lost") - retry
81
+ # it. Only when transform owns the connection (conn is None); otherwise the caller manages the
82
+ # transaction and must handle the loss itself.
83
+ attempts = 0
84
+ while True:
85
+ attempts += 1
86
+ try:
87
+ ret = InterpretJAAQL(required_db, jaaql_connection
88
+ ).transform(inputs, skip_commit=inputs.get(KEY__read_only), wait_hook=verification_hook,
89
+ encryption_key=db_crypt_key, conn=conn,
90
+ canned_query_service=cached_canned_query_service, prevent_unused_parameters=prevent_unused,
91
+ and_return_connection_mid_transaction=keep_alive_conn, prepare_statements=prepare_statements)
92
+ break
93
+ except ConnectionLostError:
94
+ if conn is not None or attempts >= CONN_LOST__max_attempts:
95
+ raise
84
96
 
85
97
  if as_objects:
86
98
  ret = objectify(ret, singleton=singleton)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: jaaql-middleware-python
3
- Version: 5.3.9
3
+ Version: 5.3.10
4
4
  Summary: The jaaql package, allowing for rapid development and deployment of RESTful HTTP applications
5
5
  Home-page: https://github.com/JAAQL/JAAQL-middleware-python
6
6
  Author: Software Quality Measurement and Improvement bv