jetpytools 2.0.2__py3-none-any.whl → 2.1.0__py3-none-any.whl
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.
Potentially problematic release.
This version of jetpytools might be problematic. Click here for more details.
- jetpytools/_metadata.py +1 -1
- jetpytools/enums/base.py +19 -25
- {jetpytools-2.0.2.dist-info → jetpytools-2.1.0.dist-info}/METADATA +1 -1
- {jetpytools-2.0.2.dist-info → jetpytools-2.1.0.dist-info}/RECORD +6 -6
- {jetpytools-2.0.2.dist-info → jetpytools-2.1.0.dist-info}/WHEEL +0 -0
- {jetpytools-2.0.2.dist-info → jetpytools-2.1.0.dist-info}/licenses/LICENSE +0 -0
jetpytools/_metadata.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"""Collection of stuff that's useful in general python programming"""
|
|
2
2
|
|
|
3
|
-
__version__ = "2.0
|
|
3
|
+
__version__ = "2.1.0"
|
|
4
4
|
|
|
5
5
|
__author_name__, __author_email__ = "Jaded Encoding Thaumaturgy", "jaded.encoding.thaumaturgy@gmail.com"
|
|
6
6
|
__maintainer_name__, __maintainer_email__ = __author_name__, __author_email__
|
jetpytools/enums/base.py
CHANGED
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
from __future__ import annotations
|
|
2
2
|
|
|
3
|
-
from
|
|
3
|
+
from abc import ABCMeta
|
|
4
|
+
from enum import Enum, EnumMeta
|
|
4
5
|
from typing import Any, Self
|
|
5
6
|
|
|
6
|
-
from ..exceptions import
|
|
7
|
+
from ..exceptions import NotFoundEnumValueError
|
|
7
8
|
from ..types import FuncExcept
|
|
8
9
|
|
|
9
|
-
__all__ = ["CustomEnum", "CustomIntEnum", "CustomStrEnum"]
|
|
10
|
+
__all__ = ["CustomEnum", "CustomIntEnum", "CustomStrEnum", "EnumABCMeta"]
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
class EnumABCMeta(EnumMeta, ABCMeta):
|
|
14
|
+
"""Metaclass combining EnumMeta and ABCMeta to support abstract enumerations."""
|
|
10
15
|
|
|
11
16
|
|
|
12
17
|
class CustomEnum(Enum):
|
|
13
18
|
"""Base class for custom enums."""
|
|
14
19
|
|
|
15
20
|
@classmethod
|
|
16
|
-
def
|
|
17
|
-
return cls.from_param(value)
|
|
18
|
-
|
|
19
|
-
@classmethod
|
|
20
|
-
def from_param(cls, value: Any, func_except: FuncExcept | None = None) -> Self | None:
|
|
21
|
+
def from_param(cls, value: Any, func_except: FuncExcept | None = None) -> Self:
|
|
21
22
|
"""
|
|
22
23
|
Return the enum value from a parameter.
|
|
23
24
|
|
|
@@ -28,44 +29,37 @@ class CustomEnum(Enum):
|
|
|
28
29
|
|
|
29
30
|
:raises NotFoundEnumValue: Variable not found in the given enum.
|
|
30
31
|
"""
|
|
31
|
-
|
|
32
|
-
if value is None:
|
|
33
|
-
return None
|
|
34
|
-
|
|
35
|
-
if func_except is None:
|
|
36
|
-
func_except = cls.from_param
|
|
37
|
-
|
|
38
|
-
if isinstance(value, cls):
|
|
39
|
-
return value
|
|
40
|
-
|
|
41
|
-
if value is cls:
|
|
42
|
-
raise CustomValueError("You must select a member, not pass the enum!", func_except)
|
|
32
|
+
func_except = func_except or cls.from_param
|
|
43
33
|
|
|
44
34
|
try:
|
|
45
35
|
return cls(value)
|
|
46
|
-
except
|
|
36
|
+
except (ValueError, TypeError):
|
|
47
37
|
pass
|
|
48
38
|
|
|
49
39
|
if isinstance(func_except, tuple):
|
|
50
40
|
func_name, var_name = func_except
|
|
51
41
|
else:
|
|
52
|
-
func_name, var_name = func_except,
|
|
42
|
+
func_name, var_name = func_except, repr(cls)
|
|
53
43
|
|
|
54
|
-
raise
|
|
44
|
+
raise NotFoundEnumValueError(
|
|
55
45
|
'The given value for "{var_name}" argument must be a valid {enum_name}, not "{value}"!\n'
|
|
56
46
|
"Valid values are: [{readable_enum}].",
|
|
57
47
|
func_name,
|
|
58
48
|
var_name=var_name,
|
|
59
49
|
enum_name=cls,
|
|
60
50
|
value=value,
|
|
61
|
-
readable_enum=
|
|
51
|
+
readable_enum=(f"{name} ({value!r})" for name, value in cls.__members__.items()),
|
|
62
52
|
reason=value,
|
|
63
|
-
)
|
|
53
|
+
) from None
|
|
64
54
|
|
|
65
55
|
|
|
66
56
|
class CustomIntEnum(int, CustomEnum):
|
|
67
57
|
"""Base class for custom int enums."""
|
|
68
58
|
|
|
59
|
+
_value_: int
|
|
60
|
+
|
|
69
61
|
|
|
70
62
|
class CustomStrEnum(str, CustomEnum):
|
|
71
63
|
"""Base class for custom str enums."""
|
|
64
|
+
|
|
65
|
+
_value_: str
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jetpytools
|
|
3
|
-
Version: 2.0
|
|
3
|
+
Version: 2.1.0
|
|
4
4
|
Summary: Collection of stuff that's useful in general python programming
|
|
5
5
|
Project-URL: Source Code, https://github.com/Jaded-Encoding-Thaumaturgy/jetpytools
|
|
6
6
|
Project-URL: Contact, https://discord.gg/XTpc6Fa9eB
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
jetpytools/__init__.py,sha256=ha_pCOMqfeIbipDRrtqKOqH3NQEpX4KwN2SskpsCGb4,114
|
|
2
|
-
jetpytools/_metadata.py,sha256=
|
|
2
|
+
jetpytools/_metadata.py,sha256=U80yRxxkWvE0J7Cx3_B7F5QU7GPamHpYbuASsOrNYPI,414
|
|
3
3
|
jetpytools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
4
|
jetpytools/enums/__init__.py,sha256=TvEt3TWmnzf2TWS_Gd6llyyXAGDKxdhdJsDgSvT7xys,41
|
|
5
|
-
jetpytools/enums/base.py,sha256=
|
|
5
|
+
jetpytools/enums/base.py,sha256=KDKzxj-nN0t6JUTZ7D0ZVqOFEgZEYUEFxkmB_7lDZ5Y,1850
|
|
6
6
|
jetpytools/enums/other.py,sha256=Fwf8J98cqFQbnDsOPV90RTOJ_Ltd72Y3qVbSDzOl5Eg,1346
|
|
7
7
|
jetpytools/exceptions/__init__.py,sha256=0rNEfnOuoSRUyKsutGzHFWQkgiFaK7diOT4VbRVKt9c,105
|
|
8
8
|
jetpytools/exceptions/base.py,sha256=cKvND21z0McwbhpOg9oVYyMvLVa8MDs9m1g4FUbEHvM,6949
|
|
@@ -27,7 +27,7 @@ jetpytools/utils/file.py,sha256=3fJxAHjIN5zdyzO0guc3jDspcs5HPG4t4cwB_ZrAhh4,1062
|
|
|
27
27
|
jetpytools/utils/funcs.py,sha256=2jOOIUQpifQ_kTuVUSrCAi8hvCmmvieBpMTfF8XuM24,979
|
|
28
28
|
jetpytools/utils/math.py,sha256=ZqsAyVNBT4LD-zqP7QxEkGwWdVfrR7YAkdv87NQTMV0,3460
|
|
29
29
|
jetpytools/utils/ranges.py,sha256=RAknSZkTAYxAXdFn_CKY8xGASu7xS7Gu039DX89ugDc,1293
|
|
30
|
-
jetpytools-2.0.
|
|
31
|
-
jetpytools-2.0.
|
|
32
|
-
jetpytools-2.0.
|
|
33
|
-
jetpytools-2.0.
|
|
30
|
+
jetpytools-2.1.0.dist-info/METADATA,sha256=Ciw5glQuXiHMS8gkV_vkkS8tp11qmy-Cbz7fa0OIc1Q,1198
|
|
31
|
+
jetpytools-2.1.0.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
32
|
+
jetpytools-2.1.0.dist-info/licenses/LICENSE,sha256=l0PN-qDtXcgOB5aXP_nSUsvCK5V3o9pQCGsTzyZhKL0,1071
|
|
33
|
+
jetpytools-2.1.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|