jetpytools 1.5.0__py3-none-any.whl → 1.6.1__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/__init__.py +5 -5
- jetpytools/_metadata.py +4 -4
- jetpytools/enums/__init__.py +2 -2
- jetpytools/enums/base.py +9 -8
- jetpytools/enums/other.py +4 -9
- jetpytools/exceptions/__init__.py +5 -5
- jetpytools/exceptions/base.py +34 -38
- jetpytools/exceptions/enum.py +5 -4
- jetpytools/exceptions/file.py +6 -8
- jetpytools/exceptions/generic.py +8 -6
- jetpytools/exceptions/module.py +9 -8
- jetpytools/functions/__init__.py +3 -3
- jetpytools/functions/funcs.py +21 -42
- jetpytools/functions/normalize.py +42 -54
- jetpytools/functions/other.py +1 -3
- jetpytools/types/__init__.py +7 -7
- jetpytools/types/builtins.py +62 -43
- jetpytools/types/check.py +6 -9
- jetpytools/types/file.py +89 -46
- jetpytools/types/funcs.py +11 -28
- jetpytools/types/generic.py +1 -11
- jetpytools/types/supports.py +68 -52
- jetpytools/types/utils.py +102 -119
- jetpytools/utils/__init__.py +4 -4
- jetpytools/utils/file.py +94 -69
- jetpytools/utils/funcs.py +8 -13
- jetpytools/utils/math.py +26 -16
- jetpytools/utils/ranges.py +7 -11
- {jetpytools-1.5.0.dist-info → jetpytools-1.6.1.dist-info}/METADATA +10 -23
- jetpytools-1.6.1.dist-info/RECORD +33 -0
- {jetpytools-1.5.0.dist-info → jetpytools-1.6.1.dist-info}/WHEEL +1 -2
- jetpytools-1.5.0.dist-info/RECORD +0 -34
- jetpytools-1.5.0.dist-info/top_level.txt +0 -1
- {jetpytools-1.5.0.dist-info → jetpytools-1.6.1.dist-info}/licenses/LICENSE +0 -0
jetpytools/utils/file.py
CHANGED
|
@@ -9,20 +9,24 @@ from typing import IO, Any, BinaryIO, Callable, Literal, overload
|
|
|
9
9
|
|
|
10
10
|
from ..exceptions import FileIsADirectoryError, FileNotExistsError, FilePermissionError, FileWasNotFoundError
|
|
11
11
|
from ..types import (
|
|
12
|
-
FileOpener,
|
|
13
|
-
|
|
12
|
+
FileOpener,
|
|
13
|
+
FilePathType,
|
|
14
|
+
FuncExceptT,
|
|
15
|
+
OpenBinaryMode,
|
|
16
|
+
OpenBinaryModeReading,
|
|
17
|
+
OpenBinaryModeUpdating,
|
|
18
|
+
OpenBinaryModeWriting,
|
|
19
|
+
OpenTextMode,
|
|
20
|
+
SPath,
|
|
14
21
|
)
|
|
15
22
|
|
|
16
23
|
__all__ = [
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
'check_perms',
|
|
25
|
-
'open_file'
|
|
24
|
+
"add_script_path_hook",
|
|
25
|
+
"check_perms",
|
|
26
|
+
"get_script_path",
|
|
27
|
+
"get_user_data_dir",
|
|
28
|
+
"open_file",
|
|
29
|
+
"remove_script_path_hook",
|
|
26
30
|
]
|
|
27
31
|
|
|
28
32
|
_script_path_hooks = list[Callable[[], SPath | None]]()
|
|
@@ -52,26 +56,24 @@ def get_script_path() -> SPath:
|
|
|
52
56
|
def get_user_data_dir() -> Path:
|
|
53
57
|
"""Get user data dir path."""
|
|
54
58
|
|
|
55
|
-
if sys.platform ==
|
|
59
|
+
if sys.platform == "win32":
|
|
56
60
|
buf = ctypes.create_unicode_buffer(1024)
|
|
57
61
|
ctypes.windll.shell32.SHGetFolderPathW(None, 28, None, 0, buf)
|
|
58
62
|
|
|
59
|
-
if any(
|
|
63
|
+
if any(ord(c) > 255 for c in buf):
|
|
60
64
|
buf2 = ctypes.create_unicode_buffer(1024)
|
|
61
65
|
if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024):
|
|
62
66
|
buf = buf2
|
|
63
67
|
|
|
64
68
|
return Path(path.normpath(buf.value))
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
return Path(getenv('XDG_DATA_HOME', path.expanduser("~/.local/share")))
|
|
69
|
+
elif sys.platform == "darwin":
|
|
70
|
+
return Path(path.expanduser("~/Library/Application Support/"))
|
|
71
|
+
else:
|
|
72
|
+
return Path(getenv("XDG_DATA_HOME", path.expanduser("~/.local/share")))
|
|
70
73
|
|
|
71
74
|
|
|
72
75
|
def check_perms(
|
|
73
|
-
file: FilePathType, mode: OpenTextMode | OpenBinaryMode, strict: bool = False,
|
|
74
|
-
*, func: FuncExceptT | None = None
|
|
76
|
+
file: FilePathType, mode: OpenTextMode | OpenBinaryMode, strict: bool = False, *, func: FuncExceptT | None = None
|
|
75
77
|
) -> bool:
|
|
76
78
|
"""
|
|
77
79
|
Confirm whether the user has write/read access to a file.
|
|
@@ -93,18 +95,17 @@ def check_perms(
|
|
|
93
95
|
|
|
94
96
|
mode_i = F_OK
|
|
95
97
|
|
|
96
|
-
if func is not None:
|
|
97
|
-
|
|
98
|
-
raise FileNotExistsError(file, func)
|
|
98
|
+
if func is not None and not str(file):
|
|
99
|
+
raise FileNotExistsError(file, func)
|
|
99
100
|
|
|
100
|
-
for char in
|
|
101
|
-
mode_str = mode.replace(char,
|
|
101
|
+
for char in "rbU":
|
|
102
|
+
mode_str = mode.replace(char, "")
|
|
102
103
|
|
|
103
|
-
if not mode_str:
|
|
104
|
+
if not mode_str: # pyright: ignore[reportPossiblyUnboundVariable]
|
|
104
105
|
mode_i = R_OK
|
|
105
|
-
elif
|
|
106
|
+
elif "x" in mode_str:
|
|
106
107
|
mode_i = X_OK
|
|
107
|
-
elif
|
|
108
|
+
elif "+" in mode_str or "w" in mode_str:
|
|
108
109
|
mode_i = W_OK
|
|
109
110
|
|
|
110
111
|
check_file = file
|
|
@@ -118,78 +119,102 @@ def check_perms(
|
|
|
118
119
|
|
|
119
120
|
got_perms = access(check_file, mode_i)
|
|
120
121
|
|
|
121
|
-
if func is not None:
|
|
122
|
-
if not
|
|
123
|
-
if
|
|
124
|
-
|
|
125
|
-
raise FileWasNotFoundError(file, func)
|
|
122
|
+
if func is not None and not got_perms:
|
|
123
|
+
if strict and not file.exists():
|
|
124
|
+
if file.parent.exists():
|
|
125
|
+
raise FileWasNotFoundError(file, func)
|
|
126
126
|
|
|
127
|
-
|
|
127
|
+
raise FileNotExistsError(file, func)
|
|
128
128
|
|
|
129
|
-
|
|
129
|
+
raise FilePermissionError(file, func)
|
|
130
130
|
|
|
131
131
|
return got_perms
|
|
132
132
|
|
|
133
133
|
|
|
134
134
|
@overload
|
|
135
135
|
def open_file(
|
|
136
|
-
file: FilePathType,
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
136
|
+
file: FilePathType,
|
|
137
|
+
mode: OpenTextMode = "r",
|
|
138
|
+
buffering: int = ...,
|
|
139
|
+
encoding: str | None = None,
|
|
140
|
+
errors: str | None = ...,
|
|
141
|
+
newline: str | None = ...,
|
|
142
|
+
*,
|
|
143
|
+
func: FuncExceptT | None = None,
|
|
144
|
+
) -> TextIOWrapper: ...
|
|
141
145
|
|
|
142
146
|
|
|
143
147
|
@overload
|
|
144
148
|
def open_file(
|
|
145
|
-
file: FilePathType,
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
+
file: FilePathType,
|
|
150
|
+
mode: OpenBinaryMode,
|
|
151
|
+
buffering: Literal[0],
|
|
152
|
+
encoding: None = None,
|
|
153
|
+
*,
|
|
154
|
+
func: FuncExceptT | None = None,
|
|
155
|
+
) -> FileIO: ...
|
|
149
156
|
|
|
150
157
|
|
|
151
158
|
@overload
|
|
152
159
|
def open_file(
|
|
153
|
-
file: FilePathType,
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
160
|
+
file: FilePathType,
|
|
161
|
+
mode: OpenBinaryModeUpdating,
|
|
162
|
+
buffering: Literal[-1, 1] = ...,
|
|
163
|
+
encoding: None = None,
|
|
164
|
+
*,
|
|
165
|
+
func: FuncExceptT | None = None,
|
|
166
|
+
) -> BufferedRandom: ...
|
|
157
167
|
|
|
158
168
|
|
|
159
169
|
@overload
|
|
160
170
|
def open_file(
|
|
161
|
-
file: FilePathType,
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
171
|
+
file: FilePathType,
|
|
172
|
+
mode: OpenBinaryModeWriting,
|
|
173
|
+
buffering: Literal[-1, 1] = ...,
|
|
174
|
+
encoding: None = None,
|
|
175
|
+
*,
|
|
176
|
+
func: FuncExceptT | None = None,
|
|
177
|
+
) -> BufferedWriter: ...
|
|
165
178
|
|
|
166
179
|
|
|
167
180
|
@overload
|
|
168
181
|
def open_file(
|
|
169
|
-
file: FilePathType,
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
182
|
+
file: FilePathType,
|
|
183
|
+
mode: OpenBinaryModeReading,
|
|
184
|
+
buffering: Literal[-1, 1] = ...,
|
|
185
|
+
encoding: None = None,
|
|
186
|
+
*,
|
|
187
|
+
func: FuncExceptT | None = None,
|
|
188
|
+
) -> BufferedReader: ...
|
|
173
189
|
|
|
174
190
|
|
|
175
191
|
@overload
|
|
176
192
|
def open_file(
|
|
177
|
-
file: FilePathType,
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
193
|
+
file: FilePathType,
|
|
194
|
+
mode: OpenBinaryMode,
|
|
195
|
+
buffering: int = ...,
|
|
196
|
+
encoding: None = None,
|
|
197
|
+
*,
|
|
198
|
+
func: FuncExceptT | None = None,
|
|
199
|
+
) -> BinaryIO: ...
|
|
181
200
|
|
|
182
201
|
|
|
183
202
|
@overload
|
|
184
203
|
def open_file(
|
|
185
|
-
file: FilePathType,
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
204
|
+
file: FilePathType,
|
|
205
|
+
mode: str,
|
|
206
|
+
buffering: int = ...,
|
|
207
|
+
encoding: str | None = ...,
|
|
208
|
+
errors: str | None = ...,
|
|
209
|
+
newline: str | None = ...,
|
|
210
|
+
closefd: bool = ...,
|
|
211
|
+
opener: FileOpener | None = ...,
|
|
212
|
+
*,
|
|
213
|
+
func: FuncExceptT | None = None,
|
|
214
|
+
) -> IO[Any]: ...
|
|
215
|
+
|
|
216
|
+
|
|
217
|
+
def open_file(file: FilePathType, mode: Any = "r+", *args: Any, func: FuncExceptT | None = None, **kwargs: Any) -> Any:
|
|
193
218
|
"""
|
|
194
219
|
Open file and return a stream. Raise OSError upon failure.
|
|
195
220
|
|
|
@@ -253,4 +278,4 @@ def open_file(file: FilePathType, mode: Any = 'r+', *args: Any, func: FuncExcept
|
|
|
253
278
|
|
|
254
279
|
check_perms(file, mode, func=func)
|
|
255
280
|
|
|
256
|
-
return open(file, mode, *args, errors=
|
|
281
|
+
return open(file, mode, *args, errors="strict", closefd=True, **kwargs) # type: ignore
|
jetpytools/utils/funcs.py
CHANGED
|
@@ -2,26 +2,21 @@ from __future__ import annotations
|
|
|
2
2
|
|
|
3
3
|
from functools import update_wrapper
|
|
4
4
|
from types import FunctionType
|
|
5
|
-
from typing import Sequence
|
|
5
|
+
from typing import Any, Callable, Sequence
|
|
6
6
|
|
|
7
7
|
from ..types import F
|
|
8
8
|
|
|
9
|
-
__all__ = [
|
|
10
|
-
'copy_func',
|
|
11
|
-
'erase_module'
|
|
12
|
-
]
|
|
9
|
+
__all__ = ["copy_func", "erase_module"]
|
|
13
10
|
|
|
14
11
|
|
|
15
|
-
def copy_func(f:
|
|
12
|
+
def copy_func(f: Callable[..., Any]) -> FunctionType:
|
|
16
13
|
"""Try copying a function."""
|
|
17
14
|
|
|
18
15
|
try:
|
|
19
|
-
g = FunctionType(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
g.__kwdefaults__ = f.__kwdefaults__
|
|
24
|
-
return g
|
|
16
|
+
g = FunctionType(f.__code__, f.__globals__, name=f.__name__, argdefs=f.__defaults__, closure=f.__closure__)
|
|
17
|
+
g = update_wrapper(g, f)
|
|
18
|
+
g.__kwdefaults__ = f.__kwdefaults__ # type: ignore
|
|
19
|
+
return g # type: ignore
|
|
25
20
|
except BaseException: # for builtins
|
|
26
21
|
return f # type: ignore
|
|
27
22
|
|
|
@@ -29,7 +24,7 @@ def copy_func(f: F) -> FunctionType:
|
|
|
29
24
|
def erase_module(func: F, modules: Sequence[str] | None = None) -> F:
|
|
30
25
|
"""Delete the __module__ of the function."""
|
|
31
26
|
|
|
32
|
-
if hasattr(func,
|
|
27
|
+
if hasattr(func, "__module__") and (True if modules is None else (func.__module__ in modules)):
|
|
33
28
|
func.__module__ = None # type: ignore
|
|
34
29
|
|
|
35
30
|
return func
|
jetpytools/utils/math.py
CHANGED
|
@@ -6,17 +6,17 @@ from typing import Sequence
|
|
|
6
6
|
from ..types import Nb
|
|
7
7
|
|
|
8
8
|
__all__ = [
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
9
|
+
"clamp",
|
|
10
|
+
"clamp_arr",
|
|
11
|
+
"cround",
|
|
12
|
+
"mod2",
|
|
13
|
+
"mod4",
|
|
14
|
+
"mod8",
|
|
15
|
+
"mod_x",
|
|
16
|
+
"ndigits",
|
|
17
|
+
"next_power_of_2",
|
|
18
|
+
"next_power_of_y",
|
|
19
|
+
"spline_coeff",
|
|
20
20
|
]
|
|
21
21
|
|
|
22
22
|
|
|
@@ -35,7 +35,7 @@ def clamp_arr(vals: Sequence[Nb], min_val: Nb, max_val: Nb) -> list[Nb]:
|
|
|
35
35
|
def cround(x: float, *, eps: float = 1e-6) -> int:
|
|
36
36
|
"""Rounding function that accounts for float's imprecision."""
|
|
37
37
|
|
|
38
|
-
return round(x + (eps if x > 0. else -
|
|
38
|
+
return round(x + (eps if x > 0.0 else -eps))
|
|
39
39
|
|
|
40
40
|
|
|
41
41
|
def mod_x(val: int | float, x: int) -> int:
|
|
@@ -77,7 +77,7 @@ def next_power_of_2(x: float) -> int:
|
|
|
77
77
|
return x
|
|
78
78
|
|
|
79
79
|
while x & (x - 1) > 0:
|
|
80
|
-
x &=
|
|
80
|
+
x &= x - 1
|
|
81
81
|
|
|
82
82
|
return x << 1
|
|
83
83
|
|
|
@@ -92,9 +92,19 @@ def next_power_of_y(x: float, y: int) -> int:
|
|
|
92
92
|
|
|
93
93
|
|
|
94
94
|
def spline_coeff(
|
|
95
|
-
x: int,
|
|
96
|
-
|
|
97
|
-
|
|
95
|
+
x: int,
|
|
96
|
+
coordinates: list[tuple[float, float]] = [
|
|
97
|
+
(0, 0),
|
|
98
|
+
(0.5, 0.1),
|
|
99
|
+
(1, 0.6),
|
|
100
|
+
(2, 0.9),
|
|
101
|
+
(2.5, 1),
|
|
102
|
+
(3, 1.1),
|
|
103
|
+
(3.5, 1.15),
|
|
104
|
+
(4, 1.2),
|
|
105
|
+
(8, 1.25),
|
|
106
|
+
(255, 1.5),
|
|
107
|
+
],
|
|
98
108
|
) -> float:
|
|
99
109
|
"""Get spline coefficient of an index and coordinates."""
|
|
100
110
|
|
jetpytools/utils/ranges.py
CHANGED
|
@@ -6,21 +6,17 @@ from typing import Iterable, overload
|
|
|
6
6
|
from ..exceptions import CustomIndexError
|
|
7
7
|
from ..types import T0, T
|
|
8
8
|
|
|
9
|
-
__all__ = [
|
|
10
|
-
'ranges_product',
|
|
11
|
-
|
|
12
|
-
'interleave_arr'
|
|
13
|
-
]
|
|
9
|
+
__all__ = ["interleave_arr", "ranges_product"]
|
|
14
10
|
|
|
15
11
|
|
|
16
12
|
@overload
|
|
17
|
-
def ranges_product(range0: range | int, range1: range | int, /) -> Iterable[tuple[int, int]]:
|
|
18
|
-
...
|
|
13
|
+
def ranges_product(range0: range | int, range1: range | int, /) -> Iterable[tuple[int, int]]: ...
|
|
19
14
|
|
|
20
15
|
|
|
21
16
|
@overload
|
|
22
|
-
def ranges_product(
|
|
23
|
-
|
|
17
|
+
def ranges_product(
|
|
18
|
+
range0: range | int, range1: range | int, range2: range | int, /
|
|
19
|
+
) -> Iterable[tuple[int, int, int]]: ...
|
|
24
20
|
|
|
25
21
|
|
|
26
22
|
def ranges_product(*_iterables: range | int) -> Iterable[tuple[int, ...]]:
|
|
@@ -34,7 +30,7 @@ def ranges_product(*_iterables: range | int) -> Iterable[tuple[int, ...]]:
|
|
|
34
30
|
n_iterables = len(_iterables)
|
|
35
31
|
|
|
36
32
|
if n_iterables <= 1:
|
|
37
|
-
raise CustomIndexError(f
|
|
33
|
+
raise CustomIndexError(f"Not enough ranges passed! ({n_iterables})", ranges_product)
|
|
38
34
|
|
|
39
35
|
iterables = [range(x) if isinstance(x, int) else x for x in _iterables]
|
|
40
36
|
|
|
@@ -52,7 +48,7 @@ def ranges_product(*_iterables: range | int) -> Iterable[tuple[int, ...]]:
|
|
|
52
48
|
for zz in third_it:
|
|
53
49
|
yield xx, yy, zz
|
|
54
50
|
else:
|
|
55
|
-
raise CustomIndexError(f
|
|
51
|
+
raise CustomIndexError(f"Too many ranges passed! ({n_iterables})", ranges_product)
|
|
56
52
|
|
|
57
53
|
|
|
58
54
|
def interleave_arr(arr0: Iterable[T], arr1: Iterable[T0], n: int = 2) -> Iterable[T | T0]:
|
|
@@ -1,36 +1,23 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: jetpytools
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.6.1
|
|
4
4
|
Summary: Collection of stuff that's useful in general python programming
|
|
5
|
-
Author: Jaded Encoding Thaumaturgy
|
|
6
|
-
Author-email: jaded.encoding.thaumaturgy@gmail.com
|
|
7
|
-
Maintainer: Jaded Encoding Thaumaturgy
|
|
8
|
-
Maintainer-email: jaded.encoding.thaumaturgy@gmail.com
|
|
9
5
|
Project-URL: Source Code, https://github.com/Jaded-Encoding-Thaumaturgy/jetpytools
|
|
10
6
|
Project-URL: Contact, https://discord.gg/XTpc6Fa9eB
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
Author: Jaded Encoding Thaumaturgy
|
|
8
|
+
Maintainer-email: Jaded Encoding Thaumaturgy <jaded.encoding.thaumaturgy@gmail.com>
|
|
9
|
+
License-Expression: MIT
|
|
10
|
+
License-File: LICENSE
|
|
11
|
+
Classifier: Development Status :: 5 - Production/Stable
|
|
15
12
|
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Natural Language :: English
|
|
16
14
|
Classifier: Operating System :: OS Independent
|
|
15
|
+
Classifier: Programming Language :: Python :: 3
|
|
16
|
+
Classifier: Programming Language :: Python :: 3 :: Only
|
|
17
17
|
Classifier: Typing :: Typed
|
|
18
18
|
Requires-Python: >=3.10
|
|
19
|
+
Requires-Dist: typing-extensions>=4.12.2
|
|
19
20
|
Description-Content-Type: text/markdown
|
|
20
|
-
License-File: LICENSE
|
|
21
|
-
Requires-Dist: typing_extensions>=4.12.2
|
|
22
|
-
Dynamic: author
|
|
23
|
-
Dynamic: author-email
|
|
24
|
-
Dynamic: classifier
|
|
25
|
-
Dynamic: description
|
|
26
|
-
Dynamic: description-content-type
|
|
27
|
-
Dynamic: license-file
|
|
28
|
-
Dynamic: maintainer
|
|
29
|
-
Dynamic: maintainer-email
|
|
30
|
-
Dynamic: project-url
|
|
31
|
-
Dynamic: requires-dist
|
|
32
|
-
Dynamic: requires-python
|
|
33
|
-
Dynamic: summary
|
|
34
21
|
|
|
35
22
|
# jetpytools
|
|
36
23
|
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
jetpytools/__init__.py,sha256=ha_pCOMqfeIbipDRrtqKOqH3NQEpX4KwN2SskpsCGb4,114
|
|
2
|
+
jetpytools/_metadata.py,sha256=j_VoxH_nvom77B02JZlgSD__SSnwZxrYlKbVwvxotAk,414
|
|
3
|
+
jetpytools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
+
jetpytools/enums/__init__.py,sha256=TvEt3TWmnzf2TWS_Gd6llyyXAGDKxdhdJsDgSvT7xys,41
|
|
5
|
+
jetpytools/enums/base.py,sha256=L5dk6UAsQ3V6GVj0vulKaiJsholnh0Ftyh1FZFM9zwI,2034
|
|
6
|
+
jetpytools/enums/other.py,sha256=9GGRS4P-P589C1HqNpDDBhLdphID1trwCJi7pbXT0iM,1317
|
|
7
|
+
jetpytools/exceptions/__init__.py,sha256=0rNEfnOuoSRUyKsutGzHFWQkgiFaK7diOT4VbRVKt9c,105
|
|
8
|
+
jetpytools/exceptions/base.py,sha256=Blla807sSqweA9DC821wIZaXIB6Y_YeE7HTkWrQwPBY,5973
|
|
9
|
+
jetpytools/exceptions/enum.py,sha256=euR6cyMetVWSfTgO5rkblhQyEgusdwhx6Rd9I5ZoFbA,293
|
|
10
|
+
jetpytools/exceptions/file.py,sha256=7Eh4aPo4r1W-ppnf6XLwWaStOSjIxw9JfzOCa4W7m8E,1105
|
|
11
|
+
jetpytools/exceptions/generic.py,sha256=5LYQHdSLM2wu5fv40PTrjkW9v0iq8R-QlQzhVsiLLpE,1509
|
|
12
|
+
jetpytools/exceptions/module.py,sha256=hjkpvTPZALRvo1Q5y7D1wEAsssjyRZSZSf98gks3lKw,1231
|
|
13
|
+
jetpytools/functions/__init__.py,sha256=jCw3-aaOGxIzi6iyFInWPOxOFbzZg8IZhoSuGYaNgLA,67
|
|
14
|
+
jetpytools/functions/funcs.py,sha256=lcdWaJtslhXZNfNu_y-Badgz2uy0bVaoA3D_lLo_GNI,5286
|
|
15
|
+
jetpytools/functions/normalize.py,sha256=MYrlYine8MHcv3l9CPspc9SCAL3RLRR_LYDd10t9Nxk,8594
|
|
16
|
+
jetpytools/functions/other.py,sha256=P_NdrtFxR_Sosn9QblU-Ea4mKEyWY7AegQzmiQPSVLk,407
|
|
17
|
+
jetpytools/types/__init__.py,sha256=oP1cm6LtRpjPXQ0M4JnKH4RkzrBxBPos_xLHaITrgSs,154
|
|
18
|
+
jetpytools/types/builtins.py,sha256=4uAutpHlkcKM3K_6BbWomqR2QgWNt6294FHE3Ck_ZIA,2067
|
|
19
|
+
jetpytools/types/check.py,sha256=ktQOykmryUkDa2j-zcL6uEWF8QlxJ4GW8YKdbqMHGcc,959
|
|
20
|
+
jetpytools/types/file.py,sha256=LbOwMAwDALWxAZZ2i7ZNexoN3GHWD-uUoIhVvUy95Vo,6539
|
|
21
|
+
jetpytools/types/funcs.py,sha256=U5tBmTtLS5CLp3ZtOiA5101PQiCWQOBsmf0bj1pRwgY,2778
|
|
22
|
+
jetpytools/types/generic.py,sha256=SFnUqDAVehKZ36HmLrs9PN4Ze0BLcabPjwC7hJsGp4w,1102
|
|
23
|
+
jetpytools/types/supports.py,sha256=woMTv62HpcRiC5TG18U8NU5v2Q6iqcrHzQgXl7QYEws,3516
|
|
24
|
+
jetpytools/types/utils.py,sha256=eEypP1hh3bubw4J_Rr8InEQnr0XG1myLmXnmwYPLM-c,20410
|
|
25
|
+
jetpytools/utils/__init__.py,sha256=_rJ-mY5PsGjBfy8Fihx_FYJfAIGSrYAYzI6Td9oFh9A,83
|
|
26
|
+
jetpytools/utils/file.py,sha256=um4ow7_UEH1UxOV74w6F1u4s0wC4zh98LrcwBYjed50,10578
|
|
27
|
+
jetpytools/utils/funcs.py,sha256=2qhFyLD0OLvenjzOu2wu1ZWoZGzQ8aPmvbkAI1i9Gvk,914
|
|
28
|
+
jetpytools/utils/math.py,sha256=I56OeHDDJl3X8EFXMWVEiXGAD16AKcn8KVnFuP5fFes,3445
|
|
29
|
+
jetpytools/utils/ranges.py,sha256=glxypgmuzauV6KCSNujNHOdWkNEUNylOUAPS618jnIg,2559
|
|
30
|
+
jetpytools-1.6.1.dist-info/METADATA,sha256=_yhDYIdUMxObXMO48gDrSb5NPpm7rJqGXypZGCsQAe8,1198
|
|
31
|
+
jetpytools-1.6.1.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
|
|
32
|
+
jetpytools-1.6.1.dist-info/licenses/LICENSE,sha256=l0PN-qDtXcgOB5aXP_nSUsvCK5V3o9pQCGsTzyZhKL0,1071
|
|
33
|
+
jetpytools-1.6.1.dist-info/RECORD,,
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
jetpytools/__init__.py,sha256=FSVZdj69oy4mBXd6OXiRHrUhaSc4Exo1pQHBlXycV98,214
|
|
2
|
-
jetpytools/_metadata.py,sha256=fESIm2gU509vtKESX3rl2qKEyN-tUKshySopOq_jWVc,414
|
|
3
|
-
jetpytools/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
4
|
-
jetpytools/enums/__init__.py,sha256=5n6Cu8Yb9N6hIa_YTsyy_s0cCgCnh0vDb-NyXK2RwV0,81
|
|
5
|
-
jetpytools/enums/base.py,sha256=m3jJ6rJwDm4vp2-qMsuRH-Ll2mQDXA-wkmhw4xaafTM,2003
|
|
6
|
-
jetpytools/enums/other.py,sha256=DerFtmdjNK41ZxSYt601vHV5yzvZHPfTKNDlj-FjHm8,1346
|
|
7
|
-
jetpytools/exceptions/__init__.py,sha256=g8GT0XqcNuHFHgQGSRj6a_X1kBiBQGP05soYNbEIN_Q,205
|
|
8
|
-
jetpytools/exceptions/base.py,sha256=OZS5sJlNCh4Qy-2flvZugYpyJuXoRrxXa7RFqdDAktw,5969
|
|
9
|
-
jetpytools/exceptions/enum.py,sha256=9YoWwEfyd9k7NwanAqtXbhJaJQAnjRKqsAO73cDvcpA,223
|
|
10
|
-
jetpytools/exceptions/file.py,sha256=QwhUFAoG3NsFFYuPe5O_I6K969CzlrTCv3RTrfzx8B0,1107
|
|
11
|
-
jetpytools/exceptions/generic.py,sha256=kMj5lR3ifHk3uNhpxN6Lu4Am0vi7E6TfQezkZulqhaQ,1482
|
|
12
|
-
jetpytools/exceptions/module.py,sha256=drkcpa8hcE7Ee20N15j3qsX_grl8a3Jjv10XJ3xtDmE,1207
|
|
13
|
-
jetpytools/functions/__init__.py,sha256=CeDfQrPCYqjiXyCoZ6jcbfM2d7KmRM11lBSxUK2wl4g,127
|
|
14
|
-
jetpytools/functions/funcs.py,sha256=ZciVD2WbMo-21IzLkAjxv0WNnmikgIgTQ9O96JUzpa8,5359
|
|
15
|
-
jetpytools/functions/normalize.py,sha256=acn13f_yt6zKhkSFNxiS_4ZQ6Dy4tm1iBhobLS2KpTY,8654
|
|
16
|
-
jetpytools/functions/other.py,sha256=TRz91spvdYJUh9vKe3Kuw6xZfSEJvrQs1mZVg7SyYmY,413
|
|
17
|
-
jetpytools/types/__init__.py,sha256=yDT-PYTTzH6DyHsQcKvOy1jrCPmUQRKrjCM3apd0kNw,294
|
|
18
|
-
jetpytools/types/builtins.py,sha256=hndNUoxBeFx9kgSj-6Lm8rjQH0a9lkrqRqPDObr0pbk,1969
|
|
19
|
-
jetpytools/types/check.py,sha256=Ivf_JkVLG9OgiKXYjq-8azoROLjJvhNNqPq_KDIiOkI,971
|
|
20
|
-
jetpytools/types/file.py,sha256=PpeKPVKu6NDZexmy-3UeCVIdaPPwMUkhhgtaezG20H4,6349
|
|
21
|
-
jetpytools/types/funcs.py,sha256=9qONnDWdpqvRj7vL3W9BLwWeGyQipXQgxOaPjqpQ1M4,3119
|
|
22
|
-
jetpytools/types/generic.py,sha256=sAyBwGVG5FZ-6HVpfRuczov_6zQ_Uyoi0QWnR2iMm9Q,1128
|
|
23
|
-
jetpytools/types/supports.py,sha256=--VZ-iCUiv-a6K8n-H8-6hSxHjrvdYg9mCLhr_lRplo,3051
|
|
24
|
-
jetpytools/types/utils.py,sha256=eT3yoFUEQy4vKTyLDMp_6Ixy7woyF4afWgiLhS-Vr38,21030
|
|
25
|
-
jetpytools/utils/__init__.py,sha256=v5Bkl43-OBWlXx9OWpZoGH-QMaYNsPIi4vfuhC13ZLI,163
|
|
26
|
-
jetpytools/utils/file.py,sha256=9GhMGJ5D7CpvUFnvnwPFMloYTeIX-AJ7aKYKdoJQ374,10455
|
|
27
|
-
jetpytools/utils/funcs.py,sha256=ZuLz63kveBY1CLlBexEqmrQiGC67dY4gaXdNU3CeBMw,898
|
|
28
|
-
jetpytools/utils/math.py,sha256=r60dD7tWx3cgMEdPQDfvRH48JMKhf_XK0xA1kpnfQi4,3353
|
|
29
|
-
jetpytools/utils/ranges.py,sha256=dL3WG235Pz9sk5su8A0VdwVf_oSt6obR7R_JNwLyCjQ,2572
|
|
30
|
-
jetpytools-1.5.0.dist-info/licenses/LICENSE,sha256=l0PN-qDtXcgOB5aXP_nSUsvCK5V3o9pQCGsTzyZhKL0,1071
|
|
31
|
-
jetpytools-1.5.0.dist-info/METADATA,sha256=SvNo1h_KF5ng6ZkVQlaagXRiRmPVarF8l1OtQ80rvNM,1485
|
|
32
|
-
jetpytools-1.5.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
33
|
-
jetpytools-1.5.0.dist-info/top_level.txt,sha256=Iy4HjIta33ADJxN9Nyt5t5jRIfotEkZkQcOSw4eG8Cs,11
|
|
34
|
-
jetpytools-1.5.0.dist-info/RECORD,,
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
jetpytools
|
|
File without changes
|