pythagoras 0.53.2__tar.gz → 0.53.3__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 (303) hide show
  1. {pythagoras-0.53.2 → pythagoras-0.53.3}/PKG-INFO +4 -4
  2. {pythagoras-0.53.2 → pythagoras-0.53.3}/README.md +3 -3
  3. {pythagoras-0.53.2 → pythagoras-0.53.3}/pyproject.toml +1 -1
  4. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/__init__.py +2 -1
  5. pythagoras-0.53.3/src/pythagoras/_110_supporting_utilities/reimported_objects.py +4 -0
  6. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_350_protected_code_portals/__init__.py +1 -3
  7. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_350_protected_code_portals/basic_pre_validators.py +3 -2
  8. {pythagoras-0.53.2 → pythagoras-0.53.3}/.claude/settings.local.json +0 -0
  9. {pythagoras-0.53.2 → pythagoras-0.53.3}/.github/workflows/ruff.yml +0 -0
  10. {pythagoras-0.53.2 → pythagoras-0.53.3}/.github/workflows/unit-tests.yml +0 -0
  11. {pythagoras-0.53.2 → pythagoras-0.53.3}/.gitignore +0 -0
  12. {pythagoras-0.53.2 → pythagoras-0.53.3}/CLAUDE.md +0 -0
  13. {pythagoras-0.53.2 → pythagoras-0.53.3}/CONTRIBUTING.md +0 -0
  14. {pythagoras-0.53.2 → pythagoras-0.53.3}/GLOSSARY.md +0 -0
  15. {pythagoras-0.53.2 → pythagoras-0.53.3}/LICENSE +0 -0
  16. {pythagoras-0.53.2 → pythagoras-0.53.3}/cache_cleanup_report.md +0 -0
  17. {pythagoras-0.53.2 → pythagoras-0.53.3}/docs/swarming_portal_storage_structure.md +0 -0
  18. {pythagoras-0.53.2 → pythagoras-0.53.3}/docstrings_comments.md +0 -0
  19. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/base_16_32_converters.py +0 -0
  20. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/constants_for_signatures_and_converters.py +0 -0
  21. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/current_date_gmt_str.py +0 -0
  22. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/hash_signature.py +0 -0
  23. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/long_infoname.py +0 -0
  24. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/node_signature.py +0 -0
  25. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_110_supporting_utilities/random_signature.py +0 -0
  26. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_210_basic_portals/__init__.py +0 -0
  27. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_210_basic_portals/basic_portal_accessors.py +0 -0
  28. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_210_basic_portals/basic_portal_core_classes.py +0 -0
  29. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_210_basic_portals/default_portal_base_dir.py +0 -0
  30. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_210_basic_portals/portal_description_helpers.py +0 -0
  31. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_210_basic_portals/portal_tester.py +0 -0
  32. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_220_data_portals/__init__.py +0 -0
  33. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_220_data_portals/data_portal_core_classes.py +0 -0
  34. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_220_data_portals/kw_args.py +0 -0
  35. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_220_data_portals/ready_and_get.py +0 -0
  36. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_230_tunable_portals/__init__.py +0 -0
  37. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_230_tunable_portals/tunable_portal_core_classes.py +0 -0
  38. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_310_ordinary_code_portals/__init__.py +0 -0
  39. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_310_ordinary_code_portals/code_normalizer.py +0 -0
  40. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_310_ordinary_code_portals/function_error_exception.py +0 -0
  41. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_310_ordinary_code_portals/function_processing.py +0 -0
  42. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_310_ordinary_code_portals/ordinary_decorator.py +0 -0
  43. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_310_ordinary_code_portals/ordinary_portal_core_classes.py +0 -0
  44. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_310_ordinary_code_portals/reuse_flag.py +0 -0
  45. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_320_logging_code_portals/__init__.py +0 -0
  46. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_320_logging_code_portals/exception_processing_tracking.py +0 -0
  47. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_320_logging_code_portals/execution_environment_summary.py +0 -0
  48. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_320_logging_code_portals/logging_decorator.py +0 -0
  49. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_320_logging_code_portals/logging_portal_core_classes.py +0 -0
  50. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_320_logging_code_portals/uncaught_exceptions.py +0 -0
  51. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_330_safe_code_portals/__init__.py +0 -0
  52. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_330_safe_code_portals/safe_decorator.py +0 -0
  53. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_330_safe_code_portals/safe_portal_core_classes.py +0 -0
  54. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_340_autonomous_code_portals/__init__.py +0 -0
  55. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_340_autonomous_code_portals/autonomous_decorators.py +0 -0
  56. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_340_autonomous_code_portals/autonomous_portal_core_classes.py +0 -0
  57. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_340_autonomous_code_portals/names_usage_analyzer.py +0 -0
  58. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_350_protected_code_portals/fn_arg_names_checker.py +0 -0
  59. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_350_protected_code_portals/protected_decorators.py +0 -0
  60. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_350_protected_code_portals/protected_portal_core_classes.py +0 -0
  61. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_350_protected_code_portals/system_resources_info_getters.py +0 -0
  62. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_350_protected_code_portals/validation_succesful_const.py +0 -0
  63. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_360_pure_code_portals/__init__.py +0 -0
  64. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_360_pure_code_portals/pure_core_classes.py +0 -0
  65. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_360_pure_code_portals/pure_decorator.py +0 -0
  66. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_360_pure_code_portals/recursion_pre_validator.py +0 -0
  67. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_410_swarming_portals/__init__.py +0 -0
  68. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_410_swarming_portals/descendant_process_info.py +0 -0
  69. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_410_swarming_portals/swarming_portals.py +0 -0
  70. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_410_swarming_portals/system_processes_info_getters.py +0 -0
  71. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_800_top_level_API/__init__.py +0 -0
  72. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_800_top_level_API/default_local_portal.py +0 -0
  73. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_800_top_level_API/top_level_API.py +0 -0
  74. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/__init__.py +0 -0
  75. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/_version_info.py +0 -0
  76. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/core/__init__.py +0 -0
  77. {pythagoras-0.53.2 → pythagoras-0.53.3}/src/pythagoras/py.typed +0 -0
  78. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_000_simple_imports/test_imports.py +0 -0
  79. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_000_simple_imports/test_version.py +0 -0
  80. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_000_simple_imports/test_version_fallback.py +0 -0
  81. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_000_simple_imports/test_version_old.py +0 -0
  82. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_convert_base16_to_base32.py +0 -0
  83. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_convert_base32_to_int.py +0 -0
  84. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_convert_int_to_base32.py +0 -0
  85. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_current_date_gmt_str.py +0 -0
  86. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_get_base16_hash_signature.py +0 -0
  87. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_get_base32_hash_signature.py +0 -0
  88. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_get_hash_signature.py +0 -0
  89. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_long_infoname.py +0 -0
  90. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_long_infoname_robustness.py +0 -0
  91. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_node_signature.py +0 -0
  92. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_random_signature.py +0 -0
  93. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_110_supporting_utilities/test_round_trip_conversions.py +0 -0
  94. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_basic_portal.py +0 -0
  95. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_basic_portal_accessors.py +0 -0
  96. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_basic_portal_binding.py +0 -0
  97. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_basic_portal_linked_objects.py +0 -0
  98. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_basic_portal_not_picklable.py +0 -0
  99. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_basic_portal_parameterizable_smoketest.py +0 -0
  100. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_basic_portal_params.py +0 -0
  101. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_default_portal_base_dir.py +0 -0
  102. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_describe_basic_portal.py +0 -0
  103. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_exit_all_complex.py +0 -0
  104. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_exit_all_simple.py +0 -0
  105. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_get_portal.py +0 -0
  106. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_link_to_portal.py +0 -0
  107. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_noncurrent_portals.py +0 -0
  108. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_portal_aware_class.py +0 -0
  109. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_portal_default_args.py +0 -0
  110. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_portal_description_helpers.py +0 -0
  111. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_portal_filtering_validation.py +0 -0
  112. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_portal_stack.py +0 -0
  113. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_portal_tester.py +0 -0
  114. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_portal_type_checking.py +0 -0
  115. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_210_basic_portals/test_visit_portal.py +0 -0
  116. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_data_portal_get_params.py +0 -0
  117. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_data_portal_not_picklable.py +0 -0
  118. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_data_portal_parameterizable_smoketest.py +0 -0
  119. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_data_portal_params.py +0 -0
  120. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_describe_data_portal.py +0 -0
  121. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_empty_data_portal.py +0 -0
  122. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_get.py +0 -0
  123. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_hash_addr_comprehensive.py +0 -0
  124. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_hash_address.py +0 -0
  125. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_kw_args.py +0 -0
  126. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_kw_args_type_invariants.py +0 -0
  127. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_kw_args_very_basic.py +0 -0
  128. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_portals.py +0 -0
  129. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_ready.py +0 -0
  130. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_value_address.py +0 -0
  131. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_220_data_portals/test_value_address_default_portal.py +0 -0
  132. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_230_tunable_portals/test_tunable_config_settings.py +0 -0
  133. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_230_tunable_portals/test_tunable_object_effective_setting.py +0 -0
  134. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_assert_ordinarity.py +0 -0
  135. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_code_normalizer_helpers.py +0 -0
  136. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_count_parameters_with_defaults.py +0 -0
  137. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_describe_ordinary_portal.py +0 -0
  138. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_empty_ordinary_code_portal.py +0 -0
  139. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_function_code_normalization.py +0 -0
  140. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_function_name.py +0 -0
  141. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_get_linked_functions.py +0 -0
  142. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_ordinary_decorator.py +0 -0
  143. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_ordinary_factorial.py +0 -0
  144. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_ordinary_fn_errors.py +0 -0
  145. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_ordinary_func.py +0 -0
  146. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_ordinary_odd_even.py +0 -0
  147. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_ordinary_portal_not_picklable.py +0 -0
  148. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_ordinary_portal_params.py +0 -0
  149. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_positional_args_checker.py +0 -0
  150. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_save_load_storablefn.py +0 -0
  151. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_self_inside_ordinary_function.py +0 -0
  152. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_310_ordinary_code_portals/test_tunable_object_config.py +0 -0
  153. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_2arg_function_logging.py +0 -0
  154. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_context_builder.py +0 -0
  155. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_describe_logging_portal.py +0 -0
  156. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_empty_logging_code_portal.py +0 -0
  157. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_exception_deduplication.py +0 -0
  158. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_exceptions_logging.py +0 -0
  159. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_execution_frame_edge_cases.py +0 -0
  160. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_execution_records_basic.py +0 -0
  161. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_fn_call_signature.py +0 -0
  162. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_log_functions.py +0 -0
  163. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_code_portal_not_picklable.py +0 -0
  164. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_code_portal_parameterizable_smoketest.py +0 -0
  165. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_configuration.py +0 -0
  166. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_factorial.py +0 -0
  167. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_odd_even.py +0 -0
  168. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_portal_basic.py +0 -0
  169. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_portal_binding.py +0 -0
  170. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_logging_portal_params.py +0 -0
  171. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_simple_function_logging.py +0 -0
  172. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_uncaught_exceptions.py +0 -0
  173. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_unique_name_maker.py +0 -0
  174. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_value_addr_for_fn_call_signature.py +0 -0
  175. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_320_logging_code_portals/test_value_addr_for_logging_fn.py +0 -0
  176. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_330_safe_code_portals/test_safe_code_portal_binding.py +0 -0
  177. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_330_safe_code_portals/test_safe_code_portal_parameterizable_smoketest.py +0 -0
  178. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_330_safe_code_portals/test_safe_code_portal_params.py +0 -0
  179. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_330_safe_code_portals/test_safe_factorial.py +0 -0
  180. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_330_safe_code_portals/test_safe_odd_even.py +0 -0
  181. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/decorators/test_autonomisity_checks_yield_in_decorator.py +0 -0
  182. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/decorators/test_autonomisity_globals_locals_checks_in_decorator.py +0 -0
  183. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/decorators/test_autonomisity_nonordinarycallables_checks_in_decorator.py +0 -0
  184. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/decorators/test_autonomous_decorator_basic.py +0 -0
  185. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/decorators/test_exceptions_sqrt_autonomous_decorator.py +0 -0
  186. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/decorators/test_exceptions_zero_div_autonomous_decorator.py +0 -0
  187. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/decorators/test_nested_imports_autonomous_decorator.py +0 -0
  188. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_async_function.py +0 -0
  189. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_bad_list_compr.py +0 -0
  190. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_bad_simple_nested.py +0 -0
  191. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_comprehension_scope_isolation.py +0 -0
  192. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_del_statement.py +0 -0
  193. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_exception_handlers.py +0 -0
  194. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_for_loop.py +0 -0
  195. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_from_x_import.py +0 -0
  196. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_good_list_compr.py +0 -0
  197. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_import_y_as.py +0 -0
  198. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_lambda.py +0 -0
  199. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_nested_class_scope.py +0 -0
  200. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_nested_tuple_unpacking.py +0 -0
  201. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_nested_yeld.py +0 -0
  202. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_posonlyargs_kwonlyargs.py +0 -0
  203. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_relative_imports.py +0 -0
  204. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_deep.py +0 -0
  205. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_exception.py +0 -0
  206. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_global.py +0 -0
  207. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_nested.py +0 -0
  208. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_nested_2.py +0 -0
  209. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_nonlocal.py +0 -0
  210. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_with.py +0 -0
  211. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_simple_yeld.py +0 -0
  212. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/dependency_analyzer/test_wildcard_imports.py +0 -0
  213. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_aut_factorial.py +0 -0
  214. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_aut_factorial_exception.py +0 -0
  215. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_aut_fibonacci.py +0 -0
  216. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_autonomous_code_portal_get_params.py +0 -0
  217. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_autonomous_code_portal_params.py +0 -0
  218. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_autonomous_odd_even.py +0 -0
  219. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_edge_cases.py +0 -0
  220. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_fix_kwargs_overlapping_keys.py +0 -0
  221. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_fix_kwargs_portal_preservation.py +0 -0
  222. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_load_save_two_versions_autonomous.py +0 -0
  223. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_save_load_autonomous.py +0 -0
  224. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_self_inside_autonomous_function.py +0 -0
  225. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_340_autonomous_code_portals/test_walrus_operator.py +0 -0
  226. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_VALIDATION_SUCCESSFUL_conts.py +0 -0
  227. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_check_if_fn_accepts_args.py +0 -0
  228. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_installed_packages_validator_factory.py +0 -0
  229. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_max_pre_validation_iterations.py +0 -0
  230. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_protected_code_portal_params.py +0 -0
  231. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_ram_validators.py +0 -0
  232. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_required_environment_variables_prevalidator.py +0 -0
  233. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_save_load_protected_w_guards.py +0 -0
  234. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_system_utils.py +0 -0
  235. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_unused_cpu_validator_factory.py +0 -0
  236. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_350_protected_code_portals/test_unused_ram_validator_factory.py +0 -0
  237. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_2_mixed_calls_NEEDS_REFACTORING.py +0 -0
  238. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_2_nested_calls.py +0 -0
  239. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_3_nested_calls.py +0 -0
  240. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_bad_sequential_NEEDS_REFACTORING.py +0 -0
  241. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_basic_save_load.py +0 -0
  242. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_basics.py +0 -0
  243. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_chained_save_load.py +0 -0
  244. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_exceptions_pure.py +0 -0
  245. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_many_args.py +0 -0
  246. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_nested_imports_pure.py +0 -0
  247. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_output_capturing.py +0 -0
  248. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_positional_args.py +0 -0
  249. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_storage_size.py +0 -0
  250. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_two_different_pure_functions.py +0 -0
  251. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/decorator/test_two_equivalent_pure_functions.py +0 -0
  252. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/guards/test_guards_basic.py +0 -0
  253. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/guards/test_guards_basic2.py +0 -0
  254. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/guards/test_package_dependency_guards.py +0 -0
  255. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_addrr_execute.py +0 -0
  256. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_describe_pure_code_portal.py +0 -0
  257. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_execution_attempts_property.py +0 -0
  258. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_factorial_large_over_recursion_limit.py +0 -0
  259. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_factorial_w_recursion_prevalidator.py +0 -0
  260. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_func_output_address.py +0 -0
  261. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_installed_packages_prevalidator.py +0 -0
  262. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_needs_execution_property.py +0 -0
  263. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pandas_double_dataframe.py +0 -0
  264. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pure_code_portal_params.py +0 -0
  265. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pure_code_portals.py +0 -0
  266. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pure_factorial.py +0 -0
  267. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pure_fibonacci.py +0 -0
  268. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pure_fibonacci_small.py +0 -0
  269. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pure_function_lazy_registration.py +0 -0
  270. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_pure_odd_even.py +0 -0
  271. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_result_addr_descriptor_case.py +0 -0
  272. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_run_grid.py +0 -0
  273. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_run_list.py +0 -0
  274. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_self_inside_pure_function.py +0 -0
  275. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_360_pure_code_portals/test_unused_ram_prevalidator.py +0 -0
  276. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_____swarming_portal.py +0 -0
  277. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_descendant_process_info.py +0 -0
  278. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_describe_swarming_portal.py +0 -0
  279. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_donothing_swarming_function.py +0 -0
  280. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_empty_swarming_portal.py +0 -0
  281. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_installed_packages_prevalidator_swarming.py +0 -0
  282. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_random_request_execution.py +0 -0
  283. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_code_portal_params.py +0 -0
  284. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_factorial.py +0 -0
  285. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_factorial_large_recursive_prevalidator.py +0 -0
  286. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_fibonacci.py +0 -0
  287. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_fibonacci_small.py +0 -0
  288. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_odd_even.py +0 -0
  289. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_odd_even_only_even.py +0 -0
  290. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_odd_even_only_odd.py +0 -0
  291. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_swarming_portal_get_params.py +0 -0
  292. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_system_processes_info_getters.py +0 -0
  293. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_worker_launcher.py +0 -0
  294. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_410_swarming_portals/test_worker_launcher_from_init.py +0 -0
  295. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/_800_top_level_API/test_get_portal_top_level_api.py +0 -0
  296. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/__live_actions__/__init__.py +0 -0
  297. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/__live_actions__/clean_dist_live_action.py +0 -0
  298. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/__live_actions__/clear_cache_live_action.py +0 -0
  299. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/__live_actions__/refresh_venv_live_action.py +0 -0
  300. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/__live_actions__/update_stats_live_action.py +0 -0
  301. {pythagoras-0.53.2 → pythagoras-0.53.3}/tests/core/test_core.py +0 -0
  302. {pythagoras-0.53.2 → pythagoras-0.53.3}/type_hints.md +0 -0
  303. {pythagoras-0.53.2 → pythagoras-0.53.3}/unit_tests.md +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pythagoras
3
- Version: 0.53.2
3
+ Version: 0.53.3
4
4
  Summary: Planet-scale distributed computing in Python.
5
5
  Project-URL: Homepage, https://github.com/pythagoras-dev/pythagoras
6
6
  Author-email: "Volodymyr (Vlad) Pavlov" <vlpavlov@ieee.org>
@@ -310,11 +310,11 @@ pip install pythagoras
310
310
  <!-- MIXINFORGE_STATS_START -->
311
311
  | Metric | Main code | Unit Tests | Total |
312
312
  |--------|-----------|------------|-------|
313
- | Lines Of Code (LOC) | 11174 | 16041 | 27215 |
314
- | Source Lines Of Code (SLOC) | 4411 | 9770 | 14181 |
313
+ | Lines Of Code (LOC) | 11178 | 16041 | 27219 |
314
+ | Source Lines Of Code (SLOC) | 4414 | 9770 | 14184 |
315
315
  | Classes | 53 | 48 | 101 |
316
316
  | Functions / Methods | 471 | 1285 | 1756 |
317
- | Files | 61 | 224 | 285 |
317
+ | Files | 62 | 224 | 286 |
318
318
  <!-- MIXINFORGE_STATS_END -->
319
319
 
320
320
  ## Contributing
@@ -253,11 +253,11 @@ pip install pythagoras
253
253
  <!-- MIXINFORGE_STATS_START -->
254
254
  | Metric | Main code | Unit Tests | Total |
255
255
  |--------|-----------|------------|-------|
256
- | Lines Of Code (LOC) | 11174 | 16041 | 27215 |
257
- | Source Lines Of Code (SLOC) | 4411 | 9770 | 14181 |
256
+ | Lines Of Code (LOC) | 11178 | 16041 | 27219 |
257
+ | Source Lines Of Code (SLOC) | 4414 | 9770 | 14184 |
258
258
  | Classes | 53 | 48 | 101 |
259
259
  | Functions / Methods | 471 | 1285 | 1756 |
260
- | Files | 61 | 224 | 285 |
260
+ | Files | 62 | 224 | 286 |
261
261
  <!-- MIXINFORGE_STATS_END -->
262
262
 
263
263
  ## Contributing
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "pythagoras"
7
- version = "0.53.2"
7
+ version = "0.53.3"
8
8
  authors = [
9
9
  {name = "Volodymyr (Vlad) Pavlov", email = "vlpavlov@ieee.org"},
10
10
  ]
@@ -20,4 +20,5 @@ from .current_date_gmt_str import *
20
20
  from .hash_signature import *
21
21
  from .node_signature import *
22
22
  from .random_signature import *
23
- from .long_infoname import *
23
+ from .long_infoname import *
24
+ from .reimported_objects import *
@@ -0,0 +1,4 @@
1
+ from mixinforge import install_package as install_package
2
+ from mixinforge import uninstall_package as uninstall_package
3
+ from mixinforge import is_package_installed as is_package_installed
4
+ from mixinforge import is_valid_env_name as is_valid_env_name
@@ -28,6 +28,4 @@ from .protected_portal_core_classes import *
28
28
  from .protected_decorators import *
29
29
  from .system_resources_info_getters import *
30
30
  from .basic_pre_validators import *
31
- from mixinforge import install_package as install_package
32
- from mixinforge import uninstall_package as uninstall_package
33
- from mixinforge import is_package_installed as is_package_installed
31
+
@@ -24,6 +24,7 @@ from typing import TYPE_CHECKING
24
24
 
25
25
  from .._350_protected_code_portals import SimplePreValidatorFn
26
26
  from .validation_succesful_const import ValidationSuccessFlag
27
+ from .._110_supporting_utilities import is_valid_env_name
27
28
 
28
29
  # The validator functions below use `pth` and `self` which are injected into
29
30
  # their global namespace at runtime by the portal framework (see module docstring).
@@ -207,9 +208,9 @@ def required_environment_variables(*names) -> list[SimplePreValidatorFn]:
207
208
  raise TypeError("All environment variable names must be strings")
208
209
  if len(name)==0:
209
210
  raise ValueError("Environment variable name cannot be empty")
210
- if not all(c.isalnum() or c == '_' for c in name):
211
+ if not is_valid_env_name(name):
211
212
  raise ValueError(f"Environment variable name '{name}' "
212
- f"can only contain letters, numbers, and underscores")
213
+ "is not a valid environment variable name.")
213
214
 
214
215
  validators = []
215
216
  for name in names:
File without changes
File without changes
File without changes
File without changes
File without changes