pythagoras 0.25.6__tar.gz → 0.25.8__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.6 → pythagoras-0.25.8}/PKG-INFO +9 -4
- {pythagoras-0.25.6 → pythagoras-0.25.8}/README.md +8 -3
- {pythagoras-0.25.6 → pythagoras-0.25.8}/pyproject.toml +1 -1
- pythagoras-0.25.8/src/pythagoras/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_010_basic_portals/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_020_ordinary_code_portals/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_030_data_portals/.DS_Store +0 -0
- {pythagoras-0.25.6/src/pythagoras/_010_basic_portals → pythagoras-0.25.8/src/pythagoras/_040_logging_code_portals}/.DS_Store +0 -0
- {pythagoras-0.25.6/src/pythagoras/_020_ordinary_code_portals → pythagoras-0.25.8/src/pythagoras/_050_safe_code_portals}/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_060_autonomous_code_portals/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_070_protected_code_portals/.DS_Store +0 -0
- {pythagoras-0.25.6/src/pythagoras/_030_data_portals → pythagoras-0.25.8/src/pythagoras/_080_pure_code_portals}/.DS_Store +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_080_pure_code_portals/recursion_pre_validator.py +9 -5
- pythagoras-0.25.8/src/pythagoras/_090_swarming_portals/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_100_top_level_API/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_800_signatures_and_converters/.DS_Store +0 -0
- pythagoras-0.25.8/src/pythagoras/_900_project_stats_collector/.DS_Store +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/__init__.py +4 -1
- pythagoras-0.25.6/src/pythagoras/.DS_Store +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_010_basic_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_010_basic_portals/basic_portal_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_010_basic_portals/long_infoname.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_010_basic_portals/portal_tester.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_010_basic_portals/post_init_metaclass.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/code_normalizer.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/exceptions.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/function_processing.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/ordinary_decorator.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/ordinary_portal_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_030_data_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_030_data_portals/data_portal_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_030_data_portals/ready_and_get.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_030_data_portals/storable_decorator.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/exception_processing_tracking.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/execution_environment_summary.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/kw_args.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/logging_decorator.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/logging_portal_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/notebook_checker.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/output_capturer.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/uncaught_exceptions.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_050_safe_code_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_050_safe_code_portals/safe_decorator.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_050_safe_code_portals/safe_portal_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_060_autonomous_code_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_060_autonomous_code_portals/autonomous_decorators.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_060_autonomous_code_portals/autonomous_portal_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_060_autonomous_code_portals/names_usage_analyzer.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/basic_pre_validators.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/fn_arg_names_checker.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/list_flattener.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/package_manager.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/protected_decorators.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/protected_portal_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/system_utils.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/validation_succesful_const.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_080_pure_code_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_080_pure_code_portals/pure_core_classes.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_080_pure_code_portals/pure_decorator.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_090_swarming_portals/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_090_swarming_portals/output_suppressor.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_090_swarming_portals/swarming_portals.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_100_top_level_API/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_100_top_level_API/default_local_portal.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_100_top_level_API/top_level_API.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_800_signatures_and_converters/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_800_signatures_and_converters/base_16_32_convertors.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_800_signatures_and_converters/current_date_gmt_str.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_800_signatures_and_converters/hash_signatures.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_800_signatures_and_converters/node_signature.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_800_signatures_and_converters/random_signatures.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_900_project_stats_collector/__init__.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_900_project_stats_collector/project_analyzer.py +0 -0
- {pythagoras-0.25.6 → pythagoras-0.25.8}/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.8
|
|
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
|
|
@@ -57,9 +57,12 @@ Description-Content-Type: text/markdown
|
|
|
57
57
|
# Pythagoras
|
|
58
58
|
|
|
59
59
|
[](https://pypi.org/project/Pythagoras/)
|
|
60
|
-
[](https://
|
|
61
|
-
[](https://github.com/pythagoras-dev/Pythagoras)
|
|
61
|
+
[](LICENSE)
|
|
62
|
+
[](https://pypistats.org/packages/Pythagoras)
|
|
63
|
+
[](https://peps.python.org/pep-0008/)
|
|
64
|
+
[](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
|
|
65
|
+
|
|
63
66
|
|
|
64
67
|
|
|
65
68
|
Planet-scale distributed computing in Python.
|
|
@@ -97,6 +100,8 @@ preferred functional patterns, augmented by new capabilities.
|
|
|
97
100
|
|
|
98
101
|
## Videos
|
|
99
102
|
|
|
103
|
+
* [15-minute Demo](https://pythagoras.link/15-min-demo)
|
|
104
|
+
|
|
100
105
|
* [Data Phoenix Webinar, August 27, 2025](https://youtu.be/eb6_atu1RQI) ([slides](https://docs.google.com/presentation/d/1fGBqnp0aqVHPJ-BYGYnUll1_TJI_WObAbEVX89Z3-yA))
|
|
101
106
|
|
|
102
107
|
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
# Pythagoras
|
|
2
2
|
|
|
3
3
|
[](https://pypi.org/project/Pythagoras/)
|
|
4
|
-
[](https://
|
|
5
|
-
[](https://github.com/pythagoras-dev/Pythagoras)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](https://pypistats.org/packages/Pythagoras)
|
|
7
|
+
[](https://peps.python.org/pep-0008/)
|
|
8
|
+
[](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
|
|
9
|
+
|
|
7
10
|
|
|
8
11
|
|
|
9
12
|
Planet-scale distributed computing in Python.
|
|
@@ -41,6 +44,8 @@ preferred functional patterns, augmented by new capabilities.
|
|
|
41
44
|
|
|
42
45
|
## Videos
|
|
43
46
|
|
|
47
|
+
* [15-minute Demo](https://pythagoras.link/15-min-demo)
|
|
48
|
+
|
|
44
49
|
* [Data Phoenix Webinar, August 27, 2025](https://youtu.be/eb6_atu1RQI) ([slides](https://docs.google.com/presentation/d/1fGBqnp0aqVHPJ-BYGYnUll1_TJI_WObAbEVX89Z3-yA))
|
|
45
50
|
|
|
46
51
|
|
|
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
|
|
@@ -33,6 +33,9 @@ from ._100_top_level_API import *
|
|
|
33
33
|
from ._800_signatures_and_converters import *
|
|
34
34
|
|
|
35
35
|
from importlib import metadata as _md
|
|
36
|
-
|
|
36
|
+
try:
|
|
37
|
+
__version__ = _md.version("pythagoras")
|
|
38
|
+
except _md.PackageNotFoundError:
|
|
39
|
+
__version__ = "unknown"
|
|
37
40
|
|
|
38
41
|
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_010_basic_portals/post_init_metaclass.py
RENAMED
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/__init__.py
RENAMED
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_020_ordinary_code_portals/code_normalizer.py
RENAMED
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/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.6 → pythagoras-0.25.8}/src/pythagoras/_030_data_portals/data_portal_core_classes.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_030_data_portals/storable_decorator.py
RENAMED
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/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.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/notebook_checker.py
RENAMED
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_040_logging_code_portals/output_capturer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_050_safe_code_portals/safe_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_060_autonomous_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/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.6 → pythagoras-0.25.8}/src/pythagoras/_070_protected_code_portals/system_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_080_pure_code_portals/pure_core_classes.py
RENAMED
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_080_pure_code_portals/pure_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_090_swarming_portals/output_suppressor.py
RENAMED
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_090_swarming_portals/swarming_portals.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/src/pythagoras/_100_top_level_API/default_local_portal.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.25.6 → pythagoras-0.25.8}/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.6 → pythagoras-0.25.8}/src/pythagoras/_900_project_stats_collector/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|