pythagoras 0.24.2__tar.gz → 0.24.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.
- {pythagoras-0.24.2 → pythagoras-0.24.3}/PKG-INFO +3 -3
- {pythagoras-0.24.2 → pythagoras-0.24.3}/pyproject.toml +3 -3
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/.DS_Store +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_010_basic_portals/__init__.py +0 -1
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_010_basic_portals/basic_portal_core_classes.py +2 -14
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/logging_portal_core_classes.py +4 -4
- pythagoras-0.24.2/src/pythagoras/_010_basic_portals/not_picklable_class.py +0 -36
- {pythagoras-0.24.2 → pythagoras-0.24.3}/README.md +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_010_basic_portals/exceptions.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_010_basic_portals/long_infoname.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_010_basic_portals/portal_tester.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_010_basic_portals/post_init_metaclass.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_020_ordinary_code_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_020_ordinary_code_portals/code_normalizer.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_020_ordinary_code_portals/function_processing.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_020_ordinary_code_portals/ordinary_decorator.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_020_ordinary_code_portals/ordinary_portal_core_classes.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_030_data_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_030_data_portals/data_portal_core_classes.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_030_data_portals/ready_and_get.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_030_data_portals/storable_decorator.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/exception_processing_tracking.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/execution_environment_summary.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/kw_args.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/logging_decorator.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/notebook_checker.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/output_capturer.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/uncaught_exceptions.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_050_safe_code_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_050_safe_code_portals/safe_decorator.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_050_safe_code_portals/safe_portal_core_classes.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_060_autonomous_code_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_060_autonomous_code_portals/autonomous_decorators.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_060_autonomous_code_portals/autonomous_portal_core_classes.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_060_autonomous_code_portals/names_usage_analyzer.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/basic_pre_validators.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/fn_arg_names_checker.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/list_flattener.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/package_manager.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/protected_decorators.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/protected_portal_core_classes.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/system_utils.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/validation_succesful_const.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_080_pure_code_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_080_pure_code_portals/pure_core_classes.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_080_pure_code_portals/pure_decorator.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_080_pure_code_portals/recursion_pre_validator.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_090_swarming_portals/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_090_swarming_portals/output_suppressor.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_090_swarming_portals/swarming_portals.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_100_top_level_API/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_100_top_level_API/default_local_portal.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_100_top_level_API/top_level_API.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_800_signatures_and_converters/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_800_signatures_and_converters/base_16_32_convertors.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_800_signatures_and_converters/current_date_gmt_str.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_800_signatures_and_converters/hash_signatures.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_800_signatures_and_converters/node_signature.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_800_signatures_and_converters/random_signatures.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_900_project_stats_collector/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_900_project_stats_collector/project_analyzer.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/__init__.py +0 -0
- {pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/core/__init__.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: pythagoras
|
|
3
|
-
Version: 0.24.
|
|
3
|
+
Version: 0.24.3
|
|
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
|
|
@@ -16,7 +16,6 @@ Classifier: Topic :: Scientific/Engineering
|
|
|
16
16
|
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
17
17
|
Classifier: Topic :: Software Development :: Libraries
|
|
18
18
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
19
|
-
Requires-Dist: persidict==0.104.1
|
|
20
19
|
Requires-Dist: lz4
|
|
21
20
|
Requires-Dist: joblib
|
|
22
21
|
Requires-Dist: scikit-learn
|
|
@@ -27,11 +26,12 @@ Requires-Dist: autopep8
|
|
|
27
26
|
Requires-Dist: deepdiff
|
|
28
27
|
Requires-Dist: numpy
|
|
29
28
|
Requires-Dist: pytest
|
|
29
|
+
Requires-Dist: persidict==0.104.2
|
|
30
30
|
Requires-Dist: boto3
|
|
31
31
|
Requires-Dist: moto
|
|
32
32
|
Requires-Dist: uv
|
|
33
33
|
Requires-Dist: nvidia-ml-py
|
|
34
|
-
Requires-Dist: parameterizable==0.
|
|
34
|
+
Requires-Dist: parameterizable==0.101.0
|
|
35
35
|
Requires-Dist: persidict[aws] ; extra == 'aws'
|
|
36
36
|
Requires-Dist: boto3 ; extra == 'aws'
|
|
37
37
|
Requires-Dist: moto ; extra == 'aws'
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "pythagoras"
|
|
7
|
-
version = "0.24.
|
|
7
|
+
version = "0.24.3"
|
|
8
8
|
authors = [
|
|
9
9
|
{name = "Volodymyr (Vlad) Pavlov", email = "vlpavlov@ieee.org"},
|
|
10
10
|
]
|
|
@@ -26,7 +26,6 @@ classifiers = [
|
|
|
26
26
|
]
|
|
27
27
|
keywords = ["cloud", "ML", "AI", "serverless", "distributed", "parallel", "machine-learning", "deep-learning", "pythagoras"]
|
|
28
28
|
dependencies = [
|
|
29
|
-
"persidict==0.104.1",
|
|
30
29
|
"lz4",
|
|
31
30
|
"joblib",
|
|
32
31
|
"scikit-learn",
|
|
@@ -37,11 +36,12 @@ dependencies = [
|
|
|
37
36
|
"deepdiff",
|
|
38
37
|
"numpy",
|
|
39
38
|
"pytest",
|
|
39
|
+
"persidict==0.104.2",
|
|
40
40
|
"boto3",
|
|
41
41
|
"moto",
|
|
42
42
|
"uv",
|
|
43
43
|
"nvidia-ml-py",
|
|
44
|
-
"parameterizable==0.
|
|
44
|
+
"parameterizable==0.101.0",
|
|
45
45
|
]
|
|
46
46
|
|
|
47
47
|
[project.urls]
|
|
Binary file
|
|
@@ -14,12 +14,11 @@ from abc import abstractmethod
|
|
|
14
14
|
from pathlib import Path
|
|
15
15
|
from typing import TypeVar, Type, Any, NewType
|
|
16
16
|
import pandas as pd
|
|
17
|
-
import
|
|
17
|
+
from parameterizable import NotPicklableClass
|
|
18
18
|
from parameterizable import ParameterizableClass, sort_dict_by_keys
|
|
19
19
|
|
|
20
20
|
from persidict import PersiDict, FileDirDict, SafeStrTuple
|
|
21
21
|
from .post_init_metaclass import PostInitMeta
|
|
22
|
-
from .not_picklable_class import NotPicklable
|
|
23
22
|
from .._800_signatures_and_converters import get_hash_signature
|
|
24
23
|
|
|
25
24
|
def _describe_persistent_characteristic(name, value) -> pd.DataFrame:
|
|
@@ -205,7 +204,7 @@ def get_default_portal_base_dir() -> str:
|
|
|
205
204
|
return target_directory_str
|
|
206
205
|
|
|
207
206
|
|
|
208
|
-
class BasicPortal(
|
|
207
|
+
class BasicPortal(NotPicklableClass,ParameterizableClass, metaclass = PostInitMeta):
|
|
209
208
|
"""A base class for portal objects that enable access to 'outside' world.
|
|
210
209
|
|
|
211
210
|
In a Pythagoras-based application, a portal is the application's 'window'
|
|
@@ -359,17 +358,6 @@ class BasicPortal(NotPicklable,ParameterizableClass, metaclass = PostInitMeta):
|
|
|
359
358
|
return sorted_params
|
|
360
359
|
|
|
361
360
|
|
|
362
|
-
# @property
|
|
363
|
-
# def auxiliary_param_names(self) -> set[str]:
|
|
364
|
-
# """Get the names of the portal's ephemeral parameters.
|
|
365
|
-
#
|
|
366
|
-
# Portal's ephemeral parameters are not stored persistently.
|
|
367
|
-
# They affect behaviour of a portal object in an application session,
|
|
368
|
-
# but they do not affect behaviour of the actual portal across multiple runs.
|
|
369
|
-
# """
|
|
370
|
-
# return set()
|
|
371
|
-
|
|
372
|
-
|
|
373
361
|
@property
|
|
374
362
|
def _str_id(self) -> PortalStrID:
|
|
375
363
|
"""Get the portal's persistent hash.
|
|
@@ -5,10 +5,10 @@ import traceback
|
|
|
5
5
|
from typing import Callable, Any
|
|
6
6
|
|
|
7
7
|
import pandas as pd
|
|
8
|
-
|
|
8
|
+
from parameterizable import NotPicklableClass
|
|
9
9
|
from persidict import PersiDict, KEEP_CURRENT, Joker
|
|
10
10
|
|
|
11
|
-
from .._010_basic_portals import
|
|
11
|
+
from .._010_basic_portals import get_active_portal
|
|
12
12
|
from .._010_basic_portals.basic_portal_core_classes import (
|
|
13
13
|
_describe_persistent_characteristic, _describe_runtime_characteristic)
|
|
14
14
|
|
|
@@ -313,7 +313,7 @@ class LoggingFnCallSignature:
|
|
|
313
313
|
return result
|
|
314
314
|
|
|
315
315
|
|
|
316
|
-
class LoggingFnExecutionRecord(
|
|
316
|
+
class LoggingFnExecutionRecord(NotPicklableClass):
|
|
317
317
|
""" A record of one full function execution session.
|
|
318
318
|
|
|
319
319
|
It provides access to all information logged during the
|
|
@@ -392,7 +392,7 @@ class LoggingFnExecutionRecord(NotPicklable):
|
|
|
392
392
|
f"{self.call_signature.fn_name} execution results.")
|
|
393
393
|
|
|
394
394
|
|
|
395
|
-
class LoggingFnExecutionFrame(
|
|
395
|
+
class LoggingFnExecutionFrame(NotPicklableClass):
|
|
396
396
|
call_stack: list[LoggingFnExecutionFrame] = []
|
|
397
397
|
|
|
398
398
|
session_id: str
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
class NotPicklable:
|
|
2
|
-
"""A mixin class that prevents objects from being pickled or unpickled.
|
|
3
|
-
|
|
4
|
-
This class provides a mechanism to explicitly prevent instances from being
|
|
5
|
-
serialized using Python's pickle module. Classes that inherit from this
|
|
6
|
-
mixin will raise TypeError exceptions when pickle attempts to serialize
|
|
7
|
-
or deserialize them.
|
|
8
|
-
|
|
9
|
-
This is useful for objects that contain non-serializable resources or
|
|
10
|
-
should not be persisted for security or architectural reasons.
|
|
11
|
-
"""
|
|
12
|
-
|
|
13
|
-
def __getstate__(self):
|
|
14
|
-
"""Prevent object serialization by raising TypeError.
|
|
15
|
-
|
|
16
|
-
This method is called by pickle when attempting to serialize the object.
|
|
17
|
-
It unconditionally raises a TypeError to prevent pickling.
|
|
18
|
-
|
|
19
|
-
Raises:
|
|
20
|
-
TypeError: Always raised to prevent the object from being pickled.
|
|
21
|
-
"""
|
|
22
|
-
raise TypeError(f"{type(self).__name__} cannot be pickled")
|
|
23
|
-
|
|
24
|
-
def __setstate__(self, state):
|
|
25
|
-
"""Prevent object deserialization by raising TypeError.
|
|
26
|
-
|
|
27
|
-
This method is called by pickle when attempting to deserialize the object.
|
|
28
|
-
It unconditionally raises a TypeError to prevent unpickling.
|
|
29
|
-
|
|
30
|
-
Args:
|
|
31
|
-
state: The state dictionary that would be used for unpickling.
|
|
32
|
-
|
|
33
|
-
Raises:
|
|
34
|
-
TypeError: Always raised to prevent the object from being unpickled.
|
|
35
|
-
"""
|
|
36
|
-
raise TypeError(f"{type(self).__name__} cannot be unpickled")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_010_basic_portals/post_init_metaclass.py
RENAMED
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_020_ordinary_code_portals/__init__.py
RENAMED
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_020_ordinary_code_portals/code_normalizer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_030_data_portals/data_portal_core_classes.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_030_data_portals/storable_decorator.py
RENAMED
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/notebook_checker.py
RENAMED
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_040_logging_code_portals/output_capturer.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_050_safe_code_portals/safe_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_060_autonomous_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/list_flattener.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_070_protected_code_portals/system_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_080_pure_code_portals/pure_core_classes.py
RENAMED
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_080_pure_code_portals/pure_decorator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_090_swarming_portals/output_suppressor.py
RENAMED
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_090_swarming_portals/swarming_portals.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/src/pythagoras/_100_top_level_API/default_local_portal.py
RENAMED
|
File without changes
|
|
File without changes
|
{pythagoras-0.24.2 → pythagoras-0.24.3}/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.24.2 → pythagoras-0.24.3}/src/pythagoras/_900_project_stats_collector/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|