pythagoras 0.25.4__tar.gz → 0.25.5__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {pythagoras-0.25.4 → pythagoras-0.25.5}/PKG-INFO +9 -3
- {pythagoras-0.25.4 → pythagoras-0.25.5}/README.md +8 -2
- {pythagoras-0.25.4 → pythagoras-0.25.5}/pyproject.toml +1 -1
- pythagoras-0.25.5/src/pythagoras/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_010_basic_portals/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_020_ordinary_code_portals/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_030_data_portals/.DS_Store +0 -0
- {pythagoras-0.25.4/src/pythagoras/_010_basic_portals → pythagoras-0.25.5/src/pythagoras/_040_logging_code_portals}/.DS_Store +0 -0
- {pythagoras-0.25.4/src/pythagoras/_020_ordinary_code_portals → pythagoras-0.25.5/src/pythagoras/_050_safe_code_portals}/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_060_autonomous_code_portals/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_070_protected_code_portals/.DS_Store +0 -0
- {pythagoras-0.25.4/src/pythagoras/_030_data_portals → pythagoras-0.25.5/src/pythagoras/_080_pure_code_portals}/.DS_Store +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_080_pure_code_portals/recursion_pre_validator.py +9 -5
- pythagoras-0.25.5/src/pythagoras/_090_swarming_portals/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_100_top_level_API/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_800_signatures_and_converters/.DS_Store +0 -0
- pythagoras-0.25.5/src/pythagoras/_900_project_stats_collector/.DS_Store +0 -0
- pythagoras-0.25.4/src/pythagoras/.DS_Store +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_010_basic_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_010_basic_portals/basic_portal_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_010_basic_portals/long_infoname.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_010_basic_portals/portal_tester.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_010_basic_portals/post_init_metaclass.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/code_normalizer.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/exceptions.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/function_processing.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/ordinary_decorator.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/ordinary_portal_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_030_data_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_030_data_portals/data_portal_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_030_data_portals/ready_and_get.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_030_data_portals/storable_decorator.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/exception_processing_tracking.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/execution_environment_summary.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/kw_args.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/logging_decorator.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/logging_portal_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/notebook_checker.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/output_capturer.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/uncaught_exceptions.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_050_safe_code_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_050_safe_code_portals/safe_decorator.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_050_safe_code_portals/safe_portal_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_060_autonomous_code_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_060_autonomous_code_portals/autonomous_decorators.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_060_autonomous_code_portals/autonomous_portal_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_060_autonomous_code_portals/names_usage_analyzer.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/basic_pre_validators.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/fn_arg_names_checker.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/list_flattener.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/package_manager.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/protected_decorators.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/protected_portal_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/system_utils.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/validation_succesful_const.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_080_pure_code_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_080_pure_code_portals/pure_core_classes.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_080_pure_code_portals/pure_decorator.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_090_swarming_portals/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_090_swarming_portals/output_suppressor.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_090_swarming_portals/swarming_portals.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_100_top_level_API/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_100_top_level_API/default_local_portal.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_100_top_level_API/top_level_API.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_800_signatures_and_converters/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_800_signatures_and_converters/base_16_32_convertors.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_800_signatures_and_converters/current_date_gmt_str.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_800_signatures_and_converters/hash_signatures.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_800_signatures_and_converters/node_signature.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_800_signatures_and_converters/random_signatures.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_900_project_stats_collector/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_900_project_stats_collector/project_analyzer.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/__init__.py +0 -0
- {pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/core/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pythagoras
|
|
3
|
-
Version: 0.25.
|
|
3
|
+
Version: 0.25.5
|
|
4
4
|
Summary: Planet-scale distributed computing in Python.
|
|
5
5
|
Keywords: cloud,ML,AI,serverless,distributed,parallel,machine-learning,deep-learning,pythagoras
|
|
6
6
|
Author: Volodymyr (Vlad) Pavlov
|
|
@@ -52,6 +52,12 @@ Description-Content-Type: text/markdown
|
|
|
52
52
|
|
|
53
53
|
# Pythagoras
|
|
54
54
|
|
|
55
|
+
[](https://pypi.org/project/Pythagoras/)
|
|
56
|
+
[](https://pypi.org/project/Pythagoras/)
|
|
57
|
+
[](LICENSE)
|
|
58
|
+
[](https://pepy.tech/project/Pythagoras)
|
|
59
|
+
|
|
60
|
+
|
|
55
61
|
Planet-scale distributed computing in Python.
|
|
56
62
|
|
|
57
63
|
**!!! RESEARCH PREVIEW !!!**
|
|
@@ -228,8 +234,8 @@ assert is_odd(n=11)
|
|
|
228
234
|
works seamlessly across different machines in a distributed system, enabling significant performance
|
|
229
235
|
improvements for computationally intensive workflows.
|
|
230
236
|
|
|
231
|
-
* **Validator**:
|
|
232
|
-
of a pure function. Pre-validators run before the function, and post-validators run after.
|
|
237
|
+
* **Validator**: An autonomous function that checks if certain conditions are met before or after
|
|
238
|
+
the execution of a pure function. Pre-validators run before the function, and post-validators run after.
|
|
233
239
|
They can be passive (e.g., check for available RAM) or active (e.g., install a missing library).
|
|
234
240
|
Validators help ensure reliable execution across distributed systems by validating requirements
|
|
235
241
|
and system state. Multiple validators can be combined using the standard decorator syntax
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# Pythagoras
|
|
2
2
|
|
|
3
|
+
[](https://pypi.org/project/Pythagoras/)
|
|
4
|
+
[](https://pypi.org/project/Pythagoras/)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://pepy.tech/project/Pythagoras)
|
|
7
|
+
|
|
8
|
+
|
|
3
9
|
Planet-scale distributed computing in Python.
|
|
4
10
|
|
|
5
11
|
**!!! RESEARCH PREVIEW !!!**
|
|
@@ -176,8 +182,8 @@ assert is_odd(n=11)
|
|
|
176
182
|
works seamlessly across different machines in a distributed system, enabling significant performance
|
|
177
183
|
improvements for computationally intensive workflows.
|
|
178
184
|
|
|
179
|
-
* **Validator**:
|
|
180
|
-
of a pure function. Pre-validators run before the function, and post-validators run after.
|
|
185
|
+
* **Validator**: An autonomous function that checks if certain conditions are met before or after
|
|
186
|
+
the execution of a pure function. Pre-validators run before the function, and post-validators run after.
|
|
181
187
|
They can be passive (e.g., check for available RAM) or active (e.g., install a missing library).
|
|
182
188
|
Validators help ensure reliable execution across distributed systems by validating requirements
|
|
183
189
|
and system state. Multiple validators can be combined using the standard decorator syntax
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -50,12 +50,17 @@ def _recursion_pre_validator(
|
|
|
50
50
|
raise TypeError(f"Parameter '{param_name}' must be int, got {type(param_value).__name__}")
|
|
51
51
|
if param_value < 0:
|
|
52
52
|
raise ValueError(f"Parameter '{param_name}' must be non-negative, got {param_value}")
|
|
53
|
-
if param_value in {0,1}:
|
|
53
|
+
if param_value in {0,1,2,3,4}:
|
|
54
54
|
return pth.VALIDATION_SUCCESSFUL
|
|
55
|
-
|
|
55
|
+
unpacked_kwargs[param_name] = param_value - 1
|
|
56
|
+
result_addr = pth.PureFnExecutionResultAddr(
|
|
57
|
+
fn=fn, arguments=unpacked_kwargs)
|
|
58
|
+
if result_addr.ready:
|
|
59
|
+
return pth.VALIDATION_SUCCESSFUL
|
|
60
|
+
result = result_addr.call_signature
|
|
61
|
+
|
|
56
62
|
# Binary search to find the smallest n where result_addr.ready is not True
|
|
57
|
-
left, right = 2, param_value -
|
|
58
|
-
result = pth.VALIDATION_SUCCESSFUL # Default result if all are ready
|
|
63
|
+
left, right = 2, param_value - 2
|
|
59
64
|
|
|
60
65
|
while left <= right:
|
|
61
66
|
mid = (left + right) // 2
|
|
@@ -72,7 +77,6 @@ def _recursion_pre_validator(
|
|
|
72
77
|
# Result is ready, search in the right half
|
|
73
78
|
left = mid + 1
|
|
74
79
|
|
|
75
|
-
|
|
76
80
|
return result
|
|
77
81
|
|
|
78
82
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_010_basic_portals/post_init_metaclass.py
RENAMED
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/__init__.py
RENAMED
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/code_normalizer.py
RENAMED
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_020_ordinary_code_portals/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_030_data_portals/data_portal_core_classes.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_030_data_portals/storable_decorator.py
RENAMED
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/notebook_checker.py
RENAMED
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_040_logging_code_portals/output_capturer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_050_safe_code_portals/safe_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_060_autonomous_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/list_flattener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_070_protected_code_portals/system_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_080_pure_code_portals/pure_core_classes.py
RENAMED
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_080_pure_code_portals/pure_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_090_swarming_portals/output_suppressor.py
RENAMED
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_090_swarming_portals/swarming_portals.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_100_top_level_API/default_local_portal.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_800_signatures_and_converters/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.4 → pythagoras-0.25.5}/src/pythagoras/_900_project_stats_collector/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|