stouputils 1.12.1__py3-none-any.whl → 1.13.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.
Files changed (53) hide show
  1. stouputils/__init__.py +4 -4
  2. stouputils/__init__.pyi +1 -0
  3. stouputils/__main__.py +14 -9
  4. stouputils/continuous_delivery/pypi.py +39 -1
  5. stouputils/continuous_delivery/pypi.pyi +9 -0
  6. stouputils/ctx.py +408 -408
  7. stouputils/data_science/config/set.py +125 -125
  8. stouputils/data_science/models/keras_utils/callbacks/model_checkpoint_v2.py +31 -31
  9. stouputils/data_science/utils.py +285 -285
  10. stouputils/installer/__init__.py +18 -18
  11. stouputils/installer/linux.py +144 -144
  12. stouputils/installer/main.py +223 -223
  13. stouputils/installer/windows.py +136 -136
  14. stouputils/print.py +0 -58
  15. stouputils/print.pyi +0 -10
  16. stouputils/py.typed +1 -1
  17. stouputils/stouputils/__init__.pyi +15 -0
  18. stouputils/stouputils/_deprecated.pyi +12 -0
  19. stouputils/stouputils/all_doctests.pyi +46 -0
  20. stouputils/stouputils/applications/__init__.pyi +2 -0
  21. stouputils/stouputils/applications/automatic_docs.pyi +106 -0
  22. stouputils/stouputils/applications/upscaler/__init__.pyi +3 -0
  23. stouputils/stouputils/applications/upscaler/config.pyi +18 -0
  24. stouputils/stouputils/applications/upscaler/image.pyi +109 -0
  25. stouputils/stouputils/applications/upscaler/video.pyi +60 -0
  26. stouputils/stouputils/archive.pyi +67 -0
  27. stouputils/stouputils/backup.pyi +109 -0
  28. stouputils/stouputils/collections.pyi +86 -0
  29. stouputils/stouputils/continuous_delivery/__init__.pyi +5 -0
  30. stouputils/stouputils/continuous_delivery/cd_utils.pyi +129 -0
  31. stouputils/stouputils/continuous_delivery/github.pyi +162 -0
  32. stouputils/stouputils/continuous_delivery/pypi.pyi +53 -0
  33. stouputils/stouputils/continuous_delivery/pyproject.pyi +67 -0
  34. stouputils/stouputils/continuous_delivery/stubs.pyi +39 -0
  35. stouputils/stouputils/ctx.pyi +211 -0
  36. stouputils/stouputils/decorators.pyi +242 -0
  37. stouputils/stouputils/image.pyi +172 -0
  38. stouputils/stouputils/installer/__init__.pyi +5 -0
  39. stouputils/stouputils/installer/common.pyi +39 -0
  40. stouputils/stouputils/installer/downloader.pyi +24 -0
  41. stouputils/stouputils/installer/linux.pyi +39 -0
  42. stouputils/stouputils/installer/main.pyi +57 -0
  43. stouputils/stouputils/installer/windows.pyi +31 -0
  44. stouputils/stouputils/io.pyi +213 -0
  45. stouputils/stouputils/parallel.pyi +211 -0
  46. stouputils/stouputils/print.pyi +136 -0
  47. stouputils/stouputils/version_pkg.pyi +15 -0
  48. stouputils/version_pkg.py +189 -0
  49. stouputils/version_pkg.pyi +15 -0
  50. {stouputils-1.12.1.dist-info → stouputils-1.13.0.dist-info}/METADATA +1 -2
  51. {stouputils-1.12.1.dist-info → stouputils-1.13.0.dist-info}/RECORD +53 -20
  52. {stouputils-1.12.1.dist-info → stouputils-1.13.0.dist-info}/WHEEL +0 -0
  53. {stouputils-1.12.1.dist-info → stouputils-1.13.0.dist-info}/entry_points.txt +0 -0
@@ -0,0 +1,189 @@
1
+ """
2
+ This module provides utility functions for printing package version information
3
+ in a structured format, including the main package and its dependencies.
4
+
5
+ Functions:
6
+ - show_version: Print the version of the main package and its dependencies.
7
+ """
8
+
9
+ # Imports
10
+ import sys
11
+
12
+ from .print import CYAN, GREEN, RESET, YELLOW
13
+
14
+
15
+ # Show version function
16
+ def show_version(main_package: str = "stouputils", primary_color: str = CYAN, secondary_color: str = GREEN, max_depth: int = 2) -> None:
17
+ """ Print the version of the main package and its dependencies.
18
+
19
+ Used by the "stouputils --version" command.
20
+
21
+ Args:
22
+ main_package (str): Name of the main package to show version for
23
+ primary_color (str): Color to use for the primary package name
24
+ secondary_color (str): Color to use for the secondary package names
25
+ max_depth (int): Maximum depth for dependency tree (<= 2 for flat, >=3 for tree)
26
+ """
27
+ # Imports
28
+ from importlib.metadata import requires, version
29
+ def ver(package_name: str) -> str:
30
+ try:
31
+ return version(package_name)
32
+ except Exception:
33
+ return ""
34
+
35
+ def get_deps(package_name: str) -> list[str]:
36
+ """ Get the list of dependency names for a package """
37
+ try:
38
+ deps: list[str] = requires(package_name) or []
39
+ # Remove duplicates while preserving order, then sort
40
+ unique_deps: list[str] = list(dict.fromkeys([
41
+ dep
42
+ .split(">")[0]
43
+ .split("<")[0]
44
+ .split("=")[0]
45
+ .split("[")[0]
46
+ .split(";")[0]
47
+ .strip()
48
+ for dep in deps
49
+ ]))
50
+ return sorted(unique_deps)
51
+ except Exception:
52
+ return []
53
+
54
+ def print_tree(package_name: str, prefix: str = "", is_last: bool = True, visited: set[str] | None = None, fully_displayed: set[str] | None = None, depth: int = 0, max_depth: int = 3) -> None:
55
+ """ Recursively print the dependency tree """
56
+ if visited is None:
57
+ visited = set()
58
+ if fully_displayed is None:
59
+ fully_displayed = set()
60
+
61
+ # Prevent infinite recursion and limit depth
62
+ if package_name in visited or depth > max_depth:
63
+ return
64
+ visited.add(package_name)
65
+
66
+ # Get version
67
+ v: str = ver(package_name).split("version: ")[-1]
68
+ if not v:
69
+ return
70
+
71
+ # Determine the tree characters
72
+ connector: str = "└── " if is_last else "├── "
73
+
74
+ # Check if this package was already fully displayed
75
+ already_shown: bool = package_name in fully_displayed
76
+
77
+ # Print current package
78
+ if depth == 0:
79
+ print(f"{primary_color}{package_name} {secondary_color}v{v}{RESET}")
80
+ else:
81
+ if already_shown:
82
+ print(f"{prefix}{connector}{primary_color}{package_name} {secondary_color}v{v} {YELLOW}[Already shown ^]{RESET}")
83
+ # Still mark as fully displayed even when already shown
84
+ fully_displayed.add(package_name)
85
+ return
86
+ else:
87
+ print(f"{prefix}{connector}{primary_color}{package_name} {secondary_color}v{v}{RESET}")
88
+
89
+ # Get dependencies
90
+ deps: list[str] = get_deps(package_name)
91
+
92
+ # Filter dependencies that will actually be displayed (have a version)
93
+ valid_deps: list[str] = [dep for dep in deps if ver(dep)]
94
+
95
+ # Print dependencies recursively
96
+ for i, dep in enumerate(valid_deps):
97
+ # Determine if this is the last element to display
98
+ is_last_dep: bool = (i == len(valid_deps) - 1)
99
+
100
+ # Extension is based on whether the CURRENT node is last, not the child
101
+ extension: str = " " if is_last else "│ "
102
+ new_prefix: str = prefix + extension if depth > 0 else ""
103
+ print_tree(dep, new_prefix, is_last_dep, visited.copy(), fully_displayed, depth + 1, max_depth)
104
+
105
+ # Mark this package as fully displayed (with all its dependencies)
106
+ fully_displayed.add(package_name)
107
+
108
+ # Get Python version header
109
+ python_version: str = f" Python {sys.version_info.major}.{sys.version_info.minor}.{sys.version_info.micro} "
110
+
111
+ if max_depth >= 3:
112
+ # Display as tree structure
113
+ minimum_separator_length: int = len(python_version) + 10
114
+ separator_length: int = minimum_separator_length
115
+ python_text_length: int = len(python_version)
116
+ left_dashes: int = (separator_length - python_text_length) // 2
117
+ right_dashes: int = separator_length - python_text_length - left_dashes
118
+ separator_with_python: str = "─" * left_dashes + python_version + "─" * right_dashes
119
+ separator: str = "─" * separator_length
120
+
121
+ print(f"{primary_color}{separator_with_python}{RESET}")
122
+ print_tree(main_package, max_depth=max_depth - 1)
123
+ print(f"{primary_color}{separator}{RESET}")
124
+ else:
125
+ # Display as flat list (original behavior)
126
+ deps: list[str] = requires(main_package) or []
127
+ dep_names: list[str] = sorted([
128
+ dep
129
+ .split(">")[0]
130
+ .split("<")[0]
131
+ .split("=")[0]
132
+ .split("[")[0]
133
+ for dep in deps
134
+ ])
135
+ all_deps: list[tuple[str, str]] = [
136
+ (x, ver(x).split("version: ")[-1])
137
+ for x in (main_package, *dep_names)
138
+ ]
139
+ all_deps = [pair for pair in all_deps if pair[1]] # Filter out packages with no version found
140
+ longest_name_length: int = max(len(name) for name, _ in all_deps)
141
+ longest_version_length: int = max(len(ver) for _, ver in all_deps)
142
+
143
+ minimum_separator_length: int = len(python_version) + 10 # Always at least 5 dashes on each side
144
+ separator_length: int = max(minimum_separator_length, longest_name_length + longest_version_length + 4)
145
+ python_text_length: int = len(python_version)
146
+ left_dashes: int = (separator_length - python_text_length) // 2
147
+ right_dashes: int = separator_length - python_text_length - left_dashes
148
+ separator_with_python: str = "─" * left_dashes + python_version + "─" * right_dashes
149
+ separator: str = "─" * separator_length
150
+
151
+ for pkg, v in all_deps:
152
+ pkg_spacing: str = " " * (longest_name_length - len(pkg))
153
+
154
+ # Highlight the main package with a different style
155
+ if pkg == main_package:
156
+ print(f"{primary_color}{separator_with_python}{RESET}")
157
+ print(f"{primary_color}{pkg}{pkg_spacing} {secondary_color}v{v}{RESET}")
158
+ print(f"{primary_color}{separator}{RESET}")
159
+ else:
160
+ print(f"{primary_color}{pkg}{pkg_spacing} {secondary_color}v{v}{RESET}")
161
+ return
162
+
163
+ # Show version cli
164
+ def show_version_cli() -> None:
165
+ """ Handle the "stouputils --version" CLI command """
166
+ # Determine max depth (flat or tree structure)
167
+ max_depth: int = 2 # Flat by default
168
+
169
+ # Check for tree argument
170
+ if "--tree" in sys.argv or "-t" in sys.argv:
171
+ # Find position of tree argument
172
+ pos: int = sys.argv.index("--tree") if "--tree" in sys.argv else sys.argv.index("-t")
173
+
174
+ # Check for depth argument
175
+ if pos + 1 < len(sys.argv):
176
+ try:
177
+ max_depth = int(sys.argv[pos + 1])
178
+ sys.argv.pop(pos + 1) # Remove depth argument
179
+ except ValueError:
180
+ pass # Keep default if conversion fails
181
+ sys.argv.pop(pos) # Remove the --tree/-t argument
182
+
183
+ # Handle specific package argument
184
+ if len(sys.argv) >= 3 and not sys.argv[2].startswith("-"):
185
+ return show_version(sys.argv[2], max_depth=max_depth)
186
+
187
+ # Else, show default package version
188
+ return show_version(max_depth=max_depth)
189
+
@@ -0,0 +1,15 @@
1
+ from .print import CYAN as CYAN, GREEN as GREEN, RESET as RESET, YELLOW as YELLOW
2
+
3
+ def show_version(main_package: str = 'stouputils', primary_color: str = ..., secondary_color: str = ..., max_depth: int = 2) -> None:
4
+ ''' Print the version of the main package and its dependencies.
5
+
6
+ \tUsed by the "stouputils --version" command.
7
+
8
+ \tArgs:
9
+ \t\tmain_package\t(str):\tName of the main package to show version for
10
+ \t\tprimary_color\t(str):\tColor to use for the primary package name
11
+ \t\tsecondary_color\t(str):\tColor to use for the secondary package names
12
+ \t\tmax_depth\t\t(int):\tMaximum depth for dependency tree (<= 2 for flat, >=3 for tree)
13
+ \t'''
14
+ def show_version_cli() -> None:
15
+ ''' Handle the "stouputils --version" CLI command '''
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: stouputils
3
- Version: 1.12.1
3
+ Version: 1.13.0
4
4
  Summary: Stouputils is a collection of utility modules designed to simplify and enhance the development process. It includes a range of tools for tasks such as execution of doctests, display utilities, decorators, as well as context managers, and many more.
5
5
  Keywords: utilities,tools,helpers,development,python
6
6
  Author: Stoupy51
@@ -25,7 +25,6 @@ Requires-Dist: mlflow ; extra == 'data-science'
25
25
  Requires-Dist: tensorflow ; extra == 'data-science'
26
26
  Requires-Dist: scikit-learn ; extra == 'data-science'
27
27
  Requires-Dist: pywavelets ; extra == 'data-science'
28
- Requires-Dist: mypy ; extra == 'docs'
29
28
  Requires-Dist: m2r2 ; extra == 'docs'
30
29
  Requires-Dist: myst-parser ; extra == 'docs'
31
30
  Requires-Dist: sphinx-copybutton ; extra == 'docs'
@@ -1,6 +1,6 @@
1
- stouputils/__init__.py,sha256=Yv8lz--u7ERbgfiI5IxF-fKltSEpL_VLVGiWONAvQb0,1068
2
- stouputils/__init__.pyi,sha256=kt6yTdqMbXN8WZ7p2U_k8WOkm7cCZOzO1zTQDx17JiE,323
3
- stouputils/__main__.py,sha256=_wBSbP7arM8Fu_qL_W8LHZ-VewZBAWtKmIlxKu4duIU,2439
1
+ stouputils/__init__.py,sha256=KMJoy8FCiiiXJ53QfgU3rz7AY7AJ_j5kP3j24JuznC0,1136
2
+ stouputils/__init__.pyi,sha256=J8LeijIkWrTdGlevNR8dlGlgYg-Dh_MvGjp2EsPZ8UM,351
3
+ stouputils/__main__.py,sha256=sJSncuTWua7jA9pTw4BUoDzNUUExZKeyATbmY4lhl0E,2764
4
4
  stouputils/_deprecated.py,sha256=Bcq6YjdM9Rk9Vq-WMhc_tuEbPORX6U8HAJ9Vh-VIWTA,1478
5
5
  stouputils/_deprecated.pyi,sha256=6-8YsftJd2fRAdBLsysc6jf-uA8V2wiqkiFAbdfWfJQ,664
6
6
  stouputils/all_doctests.py,sha256=1bGGUg80nvLBY3wrPkFrkcuQRjFTWmTpHZtai9X-vnY,5891
@@ -29,16 +29,16 @@ stouputils/continuous_delivery/cd_utils.py,sha256=fkaHk2V3j66uFAUsM2c_UddNhXW2KA
29
29
  stouputils/continuous_delivery/cd_utils.pyi,sha256=nxTLQydVOSVIix88dRtBXjMrUPpI5ftiQYbLI_nMByQ,4848
30
30
  stouputils/continuous_delivery/github.py,sha256=Iva2XNm60Th78P_evnhCJHn0Q9-06udPlOZAxtZB5vw,19464
31
31
  stouputils/continuous_delivery/github.pyi,sha256=RHRsSroEsT0I1qeuq-Wg0JLdEEDttLrzgHZPVRtLZ0Q,6641
32
- stouputils/continuous_delivery/pypi.py,sha256=E4jAu8bYscdUU_0svIxmCDdapxXTDzwbx2TkbMFzeXs,3428
33
- stouputils/continuous_delivery/pypi.pyi,sha256=uZeu3GaDrA9ptMARd3Dj_jyzN65eSmZdKBuG3m8QQAQ,1977
32
+ stouputils/continuous_delivery/pypi.py,sha256=pxXnf6-vQhAFuKDxIw-pCR3ex6zQiSBj5Oc5m1IglMA,5196
33
+ stouputils/continuous_delivery/pypi.pyi,sha256=qmMeHDzezN_ZW-_jGRFbaccG_rkfELbmW9hUPU6vptY,2325
34
34
  stouputils/continuous_delivery/pyproject.py,sha256=olD3QqzLfCLnTBw8IkSKSLBPWyeMv6uS7A0yGdFuIvQ,4802
35
35
  stouputils/continuous_delivery/pyproject.pyi,sha256=bMWwqyG0Auo46dt-dWGePQ9yJ8rSrgb7mnJTfbiS3TQ,2053
36
36
  stouputils/continuous_delivery/stubs.py,sha256=xUAcP21Y03PLEr7X6LrIBMvPeLI8Rp-EyaTLxocA0C4,3512
37
37
  stouputils/continuous_delivery/stubs.pyi,sha256=sLZypdz1oGoymQIRPez50rnH8TQhvEIx6A7xUdGtnys,2390
38
- stouputils/ctx.py,sha256=xjFQHgAKpqXZ2zD6P8AJYrnuhMwKV9VbLV1A7B46ZCI,15178
38
+ stouputils/ctx.py,sha256=KVVDmL3pAPX2WM_QzjsmctbG-YfjJ-4aWBSoI7eU_ws,15586
39
39
  stouputils/ctx.pyi,sha256=-7AJwD9bKzKBFsYlgyULPznstq3LvXRXe2r_2at72FI,9799
40
40
  stouputils/data_science/config/get.py,sha256=-9Yo5go7sw7eZNDwMfV3V9qOyk6q3Nrrb0V1eg-F1LE,1722
41
- stouputils/data_science/config/set.py,sha256=vzmDjj_GYCUiM_BzswAGbCUnPa7BAQSI8M5pkZiSJWk,4050
41
+ stouputils/data_science/config/set.py,sha256=PBBnWhgSptWTPkMtq3N1UxmEz_E4ywUcl3daS43wA2M,4175
42
42
  stouputils/data_science/data_processing/image/__init__.py,sha256=dJY410JsVxfwloQiH1TPAwxVsRYAI4vhaZ3w1IAkUCk,1823
43
43
  stouputils/data_science/data_processing/image/auto_contrast.py,sha256=grKz4cxMEnLWAP6k4o0CuFyzcw8_v51d6Ep3fufb6Ew,2289
44
44
  stouputils/data_science/data_processing/image/axis_flip.py,sha256=6OsDeA6SK_jIv3NcbCEe4Q5NzH3KgWIPQf-EWkLzTP0,1663
@@ -95,7 +95,7 @@ stouputils/data_science/models/keras/xception.py,sha256=NKv5zTNtPiR3oV7_X-FIFvt5
95
95
  stouputils/data_science/models/keras_utils/callbacks/__init__.py,sha256=Wvlbv7dAZd6stAJKi1kPevNVwpG6ULme_Pl-ZAFV8nE,853
96
96
  stouputils/data_science/models/keras_utils/callbacks/colored_progress_bar.py,sha256=a6zjVzXsheU2l-ecRWhSC0Vkyk55eWbp74C8NQFert4,7641
97
97
  stouputils/data_science/models/keras_utils/callbacks/learning_rate_finder.py,sha256=ftimXot3or5ykJwauv1_-JjUScq7ckX4XjMSDnecBcE,5058
98
- stouputils/data_science/models/keras_utils/callbacks/model_checkpoint_v2.py,sha256=_9UXBP-Ryef_WCpRaWT0exhSX8VLezXF-FRDMlYTc58,966
98
+ stouputils/data_science/models/keras_utils/callbacks/model_checkpoint_v2.py,sha256=KTsVin5sozwy6XVDt1Vj7J6obrkGH40NV-AfX4mBmq4,935
99
99
  stouputils/data_science/models/keras_utils/callbacks/progressive_unfreezing.py,sha256=okoiMpJ0a_DKY9ZE6JIdovbxn--Ao-XbE74xC_baKEk,9605
100
100
  stouputils/data_science/models/keras_utils/callbacks/warmup_scheduler.py,sha256=6aErEB8XHfvgqGqG8sFRtmMyZW-VSXbEK2OiIHmCujM,2312
101
101
  stouputils/data_science/models/keras_utils/losses/__init__.py,sha256=6HQkqTZd-W3YPrxg_-2956j_iCmLm4PmbeW2uIPv-4I,174
@@ -108,31 +108,64 @@ stouputils/data_science/scripts/augment_dataset.py,sha256=zGcQ2uSn_DO570NIFEs2DU
108
108
  stouputils/data_science/scripts/exhaustive_process.py,sha256=Ty2lHBZBweWxH6smpjoUEqpGz6JmMUO_oaNZO7d-gtQ,5483
109
109
  stouputils/data_science/scripts/preprocess_dataset.py,sha256=OLC2KjEtSMeyHHPpNOATfNDuq0lZ09utKhsuzBA4MN4,2929
110
110
  stouputils/data_science/scripts/routine.py,sha256=FkTLzmcdm_qUp69D-dPAKJm2RfXZZLtPgje6lEopu2I,7662
111
- stouputils/data_science/utils.py,sha256=HFXI2RQZ53RbBOn_4Act2bi0z4xQlTtsuR5Am80v9JU,11084
111
+ stouputils/data_science/utils.py,sha256=MQ5-S21W2uvtKiwUFsyKJdeN9s9y7MxuvjfjRbwKTD8,10799
112
112
  stouputils/decorators.py,sha256=dBw_TCzd3m3HWL_SrtuGPN444ncMJWBFu1lDpDfvpuk,21189
113
113
  stouputils/decorators.pyi,sha256=k7kAOPM6c2LkhskUatoiv95JmfnMcKIxJRvhZN63axM,10561
114
114
  stouputils/image.py,sha256=NtduEVzgbCuZhDRpDZHGTW7-wTs7MqoxUwSQcipvb08,16633
115
115
  stouputils/image.pyi,sha256=Dkf64KmXJTAEcbtYDHFZ1kqEHqOf2FgJ2Z2BlJgp4fU,8455
116
- stouputils/installer/__init__.py,sha256=DBwI9w3xvw0NR_jDMxmURwPi1F79kPLe7EuNjmrxW_U,502
116
+ stouputils/installer/__init__.py,sha256=Ff_al_z6GSaazLHqfsSxsxmooXcIRmE--ffb1gZt0Q0,484
117
117
  stouputils/installer/__init__.pyi,sha256=ZB-8frAUOW-0pCEJL-e2AdbFodivv46v3EBYwEXCxRo,117
118
118
  stouputils/installer/common.py,sha256=UJr5u02h4LQZQdkmVOkJ3vvW_0-ROGgVMMh0PNoVS1A,2209
119
119
  stouputils/installer/common.pyi,sha256=5aG0-58omFkkNYeVHnQ0uHUBsaI7xoMD-WqWVdOgOms,1403
120
120
  stouputils/installer/downloader.py,sha256=IIV_zI1lnKCD-9OsnroOoo4nDPOLr2Vn6oOYHnXshj8,3659
121
121
  stouputils/installer/downloader.pyi,sha256=8Xp0sXyba4flHAZ0nNqNlFU4VUmfPvllmPUkWalkvRA,1273
122
- stouputils/installer/linux.py,sha256=6BsMFoBDn1-RPMCW8rAciuxHwxbk9QTX0DmA-meQdDE,5512
122
+ stouputils/installer/linux.py,sha256=5hlG7sh4Idk6rBXbfWP9oU-99TNd6njl9D5FjSnux1o,5368
123
123
  stouputils/installer/linux.pyi,sha256=V-EbY7seOFnC6LL844bqWRNvQ7rHmMhDkcFj5r1V7Tk,1943
124
- stouputils/installer/main.py,sha256=8wrx_cnQo1dFGRf6x8vtxh6-96tQ-AzMyvJ0S64j0io,8538
124
+ stouputils/installer/main.py,sha256=pbcEdKOX1P4VLJlVjzxq-hmdk6zrFt_V3aj6pYYQ8cY,8315
125
125
  stouputils/installer/main.pyi,sha256=r3j4GoMBpU06MpOqjSwoDTiSMOmbA3WWUA87970b6KE,3134
126
- stouputils/installer/windows.py,sha256=r2AIuoyAmtMEuoCtQBH9GWQWI-JUT2J9zoH28j9ruOU,4880
126
+ stouputils/installer/windows.py,sha256=WJcsRvEj00uAlJVAWgePhR7Hq0chYE0_n2QUZG9011A,4744
127
127
  stouputils/installer/windows.pyi,sha256=tHogIFhPVDQS0I10liLkAxnpaFFAvmFtEVMpPIae5LU,1616
128
128
  stouputils/io.py,sha256=yQ4jGWoI81cP-ZWxgYwqXmuD6s_IbpkKkZf5jjqqIAE,16841
129
129
  stouputils/io.pyi,sha256=TCBTVEWUkI3dO_jWI9oPMF9SbnT1yLzFChE551JPbSY,9076
130
130
  stouputils/parallel.py,sha256=I8STOb-VV9VlSeTm_8ZKCJLdL_ahGL61iFSCptDwHhQ,17512
131
131
  stouputils/parallel.pyi,sha256=cvNMT0FyjOmehaVghurwVKABqvTO3BUbPF8f8ISp8Bw,10855
132
- stouputils/print.py,sha256=zQZxQ8ZU6Z_bLfggOIGkRTQA6iYNyoYH9kvnkBAuw6k,18614
133
- stouputils/print.pyi,sha256=jZs56OMKDOPapwLf0bQvqTbPkgLDY7eXjskrNcUmUuM,7166
134
- stouputils/py.typed,sha256=frcCV1k9oG9oKj3dpUqdJg1PxRT2RSN_XKdLCPjaYaY,2
135
- stouputils-1.12.1.dist-info/WHEEL,sha256=ZyFSCYkV2BrxH6-HRVRg3R9Fo7MALzer9KiPYqNxSbo,79
136
- stouputils-1.12.1.dist-info/entry_points.txt,sha256=tx0z9VOnE-sfkmbFbA93zaBMzV3XSsKEJa_BWIqUzxw,57
137
- stouputils-1.12.1.dist-info/METADATA,sha256=hQrZaZHMMmq9PoMGZ0TDoq9Q_91ieSCGHRvqztivA9Y,13653
138
- stouputils-1.12.1.dist-info/RECORD,,
132
+ stouputils/print.py,sha256=4IIUWkShAZ77Q7rZBDnUs-gSuAt7V1IGj9DbWwECbc4,16198
133
+ stouputils/print.pyi,sha256=-uYWZ-hlPhkeu8E0gSoQqY0u-4UhkJAtPUioQb3Xujo,6674
134
+ stouputils/py.typed,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
135
+ stouputils/stouputils/__init__.pyi,sha256=J8LeijIkWrTdGlevNR8dlGlgYg-Dh_MvGjp2EsPZ8UM,351
136
+ stouputils/stouputils/_deprecated.pyi,sha256=6-8YsftJd2fRAdBLsysc6jf-uA8V2wiqkiFAbdfWfJQ,664
137
+ stouputils/stouputils/all_doctests.pyi,sha256=8JD8qn7neYuR0PolabWxX6id1dNEvQDrvOhMS2aYhTM,1907
138
+ stouputils/stouputils/applications/__init__.pyi,sha256=DTYq2Uqq1uLzCMkFByjRqdtREA-9SaQnp4QpgmCEPFg,56
139
+ stouputils/stouputils/applications/automatic_docs.pyi,sha256=sfFXpVE5y5Z907HEjKzpZ_9zM34d-jKNDQCdMx7E-9s,6189
140
+ stouputils/stouputils/applications/upscaler/__init__.pyi,sha256=VSp6Tq09ATCTdfnjhbDnu7lblaLLGbCNi-E22jYxa88,67
141
+ stouputils/stouputils/applications/upscaler/config.pyi,sha256=lsRHAW3mvvM2inKSJ66VXb511ovmIScLABrUzckmUfk,608
142
+ stouputils/stouputils/applications/upscaler/image.pyi,sha256=AB92XoKt8Q2c_J72ZdDdyVDuCGOEiM7E6v8L-uFmAxI,4786
143
+ stouputils/stouputils/applications/upscaler/video.pyi,sha256=AyRlb7iHqCwdW7lHiW8Dy_czin8CbN-GiK2_xoVJvNU,2918
144
+ stouputils/stouputils/archive.pyi,sha256=Z2BbQAiErRYntv53QC9uf_XPw3tx3Oy73wB0Bbil11c,3246
145
+ stouputils/stouputils/backup.pyi,sha256=-SLVykkR5U8479T84zjNPVBNnV193s0zyWjathY2DDA,4923
146
+ stouputils/stouputils/collections.pyi,sha256=mKIBV4K7mm-PTvtoYi_cVOAGjW7bo3iIASqosSXFUzE,3519
147
+ stouputils/stouputils/continuous_delivery/__init__.pyi,sha256=_Sz2D10n1CDEyY8qDFwXNKdr01HVxanY4qdq9aN19cc,117
148
+ stouputils/stouputils/continuous_delivery/cd_utils.pyi,sha256=nxTLQydVOSVIix88dRtBXjMrUPpI5ftiQYbLI_nMByQ,4848
149
+ stouputils/stouputils/continuous_delivery/github.pyi,sha256=RHRsSroEsT0I1qeuq-Wg0JLdEEDttLrzgHZPVRtLZ0Q,6641
150
+ stouputils/stouputils/continuous_delivery/pypi.pyi,sha256=fRAu8ocLNpEN6dhUTMuFxlmRgt3-LRjKPOJjFlUPrJ4,2463
151
+ stouputils/stouputils/continuous_delivery/pyproject.pyi,sha256=bMWwqyG0Auo46dt-dWGePQ9yJ8rSrgb7mnJTfbiS3TQ,2053
152
+ stouputils/stouputils/continuous_delivery/stubs.pyi,sha256=sLZypdz1oGoymQIRPez50rnH8TQhvEIx6A7xUdGtnys,2390
153
+ stouputils/stouputils/ctx.pyi,sha256=-7AJwD9bKzKBFsYlgyULPznstq3LvXRXe2r_2at72FI,9799
154
+ stouputils/stouputils/decorators.pyi,sha256=k7kAOPM6c2LkhskUatoiv95JmfnMcKIxJRvhZN63axM,10561
155
+ stouputils/stouputils/image.pyi,sha256=Dkf64KmXJTAEcbtYDHFZ1kqEHqOf2FgJ2Z2BlJgp4fU,8455
156
+ stouputils/stouputils/installer/__init__.pyi,sha256=ZB-8frAUOW-0pCEJL-e2AdbFodivv46v3EBYwEXCxRo,117
157
+ stouputils/stouputils/installer/common.pyi,sha256=5aG0-58omFkkNYeVHnQ0uHUBsaI7xoMD-WqWVdOgOms,1403
158
+ stouputils/stouputils/installer/downloader.pyi,sha256=8Xp0sXyba4flHAZ0nNqNlFU4VUmfPvllmPUkWalkvRA,1273
159
+ stouputils/stouputils/installer/linux.pyi,sha256=V-EbY7seOFnC6LL844bqWRNvQ7rHmMhDkcFj5r1V7Tk,1943
160
+ stouputils/stouputils/installer/main.pyi,sha256=r3j4GoMBpU06MpOqjSwoDTiSMOmbA3WWUA87970b6KE,3134
161
+ stouputils/stouputils/installer/windows.pyi,sha256=tHogIFhPVDQS0I10liLkAxnpaFFAvmFtEVMpPIae5LU,1616
162
+ stouputils/stouputils/io.pyi,sha256=TCBTVEWUkI3dO_jWI9oPMF9SbnT1yLzFChE551JPbSY,9076
163
+ stouputils/stouputils/parallel.pyi,sha256=cvNMT0FyjOmehaVghurwVKABqvTO3BUbPF8f8ISp8Bw,10855
164
+ stouputils/stouputils/print.pyi,sha256=-uYWZ-hlPhkeu8E0gSoQqY0u-4UhkJAtPUioQb3Xujo,6674
165
+ stouputils/stouputils/version_pkg.pyi,sha256=QPvqp1U3QA-9C_CC1dT9Vahv1hXEhstbM7x5uzMZSsQ,755
166
+ stouputils/version_pkg.py,sha256=Jsp-s03L14DkiZ94vQgrlQmaxApfn9DC8M_nzT1SJLk,7014
167
+ stouputils/version_pkg.pyi,sha256=QPvqp1U3QA-9C_CC1dT9Vahv1hXEhstbM7x5uzMZSsQ,755
168
+ stouputils-1.13.0.dist-info/WHEEL,sha256=ZyFSCYkV2BrxH6-HRVRg3R9Fo7MALzer9KiPYqNxSbo,79
169
+ stouputils-1.13.0.dist-info/entry_points.txt,sha256=tx0z9VOnE-sfkmbFbA93zaBMzV3XSsKEJa_BWIqUzxw,57
170
+ stouputils-1.13.0.dist-info/METADATA,sha256=Tc6LE1z8Gbch2G-mLmzwx-hzrD06GLBSx5_ECwngFWU,13615
171
+ stouputils-1.13.0.dist-info/RECORD,,