abstract-utilities 0.2.2.455__tar.gz → 0.2.2.457__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.
Potentially problematic release.
This version of abstract-utilities might be problematic. Click here for more details.
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/PKG-INFO +1 -1
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/setup.py +1 -1
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/__init__.py +1 -0
- abstract_utilities-0.2.2.457/src/abstract_utilities/file_utils/file_utils/type_checks.py +83 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/read_write_utils.py +78 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities.egg-info/PKG-INFO +1 -1
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities.egg-info/SOURCES.txt +1 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/README.md +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/pyproject.toml +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/setup.cfg +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/abstract_classes.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/class_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/cmd_utils/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/cmd_utils/cmd_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/cmd_utils/imports/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/cmd_utils/imports/imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/cmd_utils/pexpect_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/cmd_utils/user_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/collator_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/compare_utils/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/compare_utils/best_match.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/compare_utils/compare_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/compare_utils/find_value.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/doit.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/dynimport.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/env_utils/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/env_utils/abstractEnv.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/env_utils/envy_it.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/env_utils/imports/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/env_utils/imports/imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/env_utils/imports/utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/error_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/file_filters.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/file_reader.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/file_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/filter_params.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/find_collect.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/map_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/file_utils/pdf_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/imports/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/imports/classes.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/imports/constants.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/imports/file_functions.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/imports/imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/imports/module_imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/file_utils/req.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/global_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/hash_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/history_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/json_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/list_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/log_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/math_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/parse_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/path_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_reader/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_reader/file_reader2.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_reader/file_readers.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_reader/imports/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_reader/imports/imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_reader/sadfsad.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/dot_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/function_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/import_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/impot_functions.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/safe_import_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/sysroot_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/import_utils/utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/robust_readers/initFuncGen.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/safe_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/ssh_utils/__init__.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/ssh_utils/classes.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/ssh_utils/imports.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/ssh_utils/pexpect_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/ssh_utils/utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/string_clean.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/string_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/tetsts.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/thread_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/time_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/type_utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/utils.py +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities.egg-info/dependency_links.txt +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities.egg-info/requires.txt +0 -0
- {abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstract_utilities
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.457
|
|
4
4
|
Summary: abstract_utilities is a collection of utility modules providing a variety of functions to aid in tasks such as data comparison, list manipulation, JSON handling, string manipulation, mathematical computations, and time operations.
|
|
5
5
|
Home-page: https://github.com/AbstractEndeavors/abstract_utilities
|
|
6
6
|
Author: putkoff
|
|
@@ -4,7 +4,7 @@ with open("README.md", "r", encoding="utf-8") as fh:
|
|
|
4
4
|
long_description = fh.read()
|
|
5
5
|
setuptools.setup(
|
|
6
6
|
name='abstract_utilities',
|
|
7
|
-
version='0.2.2.
|
|
7
|
+
version='0.2.2.457',
|
|
8
8
|
author='putkoff',
|
|
9
9
|
author_email='partners@abstractendeavors.com',
|
|
10
10
|
description='abstract_utilities is a collection of utility modules providing a variety of functions to aid in tasks such as data comparison, list manipulation, JSON handling, string manipulation, mathematical computations, and time operations.',
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
from .imports import *
|
|
2
|
+
import subprocess, os
|
|
3
|
+
from typing import Optional
|
|
4
|
+
|
|
5
|
+
# --- Base remote checker -----------------------------------------------------
|
|
6
|
+
def _remote_test(path: str, test_flag: str, user_at_host: str, timeout: int = 5) -> bool:
|
|
7
|
+
"""
|
|
8
|
+
Run a remote shell test (e.g. -f, -d) via SSH.
|
|
9
|
+
Returns True if test succeeds, False otherwise.
|
|
10
|
+
"""
|
|
11
|
+
cmd = f"[ {test_flag} {shlex.quote(path)} ] && echo 1 || echo 0"
|
|
12
|
+
try:
|
|
13
|
+
result = subprocess.check_output(
|
|
14
|
+
["ssh", user_at_host, cmd],
|
|
15
|
+
stderr=subprocess.DEVNULL,
|
|
16
|
+
text=True,
|
|
17
|
+
timeout=timeout
|
|
18
|
+
).strip()
|
|
19
|
+
return result == "1"
|
|
20
|
+
except Exception:
|
|
21
|
+
return False
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# --- Individual path checks --------------------------------------------------
|
|
25
|
+
def is_remote_file(path: str, user_at_host: str) -> bool:
|
|
26
|
+
"""True if remote path is a file."""
|
|
27
|
+
return _remote_test(path, "-f", user_at_host)
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
def is_remote_dir(path: str, user_at_host: str) -> bool:
|
|
31
|
+
"""True if remote path is a directory."""
|
|
32
|
+
return _remote_test(path, "-d", user_at_host)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
def is_local_file(path: str) -> bool:
|
|
36
|
+
"""True if local path is a file."""
|
|
37
|
+
return os.path.isfile(path)
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
def is_local_dir(path: str) -> bool:
|
|
41
|
+
"""True if local path is a directory."""
|
|
42
|
+
return os.path.isdir(path)
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
# --- Unified interface -------------------------------------------------------
|
|
46
|
+
def is_file(path: str,*args, user_at_host: Optional[str] = None,**kwargs) -> bool:
|
|
47
|
+
"""Determine if path is a file (works local or remote)."""
|
|
48
|
+
if user_at_host:
|
|
49
|
+
return is_remote_file(path, user_at_host)
|
|
50
|
+
return is_local_file(path)
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def is_dir(path: str, *args,user_at_host: Optional[str] = None,**kwargs)) -> bool:
|
|
54
|
+
"""Determine if path is a directory (works local or remote)."""
|
|
55
|
+
if user_at_host:
|
|
56
|
+
return is_remote_dir(path, user_at_host)
|
|
57
|
+
return is_local_dir(path)
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
# --- Optional: keep your original all-in-one wrapper ------------------------
|
|
61
|
+
def check_path_type(
|
|
62
|
+
path: str,
|
|
63
|
+
user_at_host: Optional[str] = None,
|
|
64
|
+
) -> str:
|
|
65
|
+
"""
|
|
66
|
+
Return 'file', 'directory', 'missing', or 'unknown'.
|
|
67
|
+
Uses isolated is_file/is_dir functions.
|
|
68
|
+
"""
|
|
69
|
+
if user_at_host:
|
|
70
|
+
if is_remote_file(path, user_at_host):
|
|
71
|
+
return "file"
|
|
72
|
+
elif is_remote_dir(path, user_at_host):
|
|
73
|
+
return "directory"
|
|
74
|
+
else:
|
|
75
|
+
return "missing"
|
|
76
|
+
else:
|
|
77
|
+
if os.path.isfile(path):
|
|
78
|
+
return "file"
|
|
79
|
+
elif os.path.isdir(path):
|
|
80
|
+
return "directory"
|
|
81
|
+
elif not os.path.exists(path):
|
|
82
|
+
return "missing"
|
|
83
|
+
return "unknown"
|
|
@@ -14,6 +14,7 @@ Usage:
|
|
|
14
14
|
|
|
15
15
|
import os
|
|
16
16
|
from .ssh_utils.utils import run_cmd
|
|
17
|
+
from .ssh_utils.type_checks import is_file,is_dir
|
|
17
18
|
from .abstract_classes import run_pruned_func
|
|
18
19
|
_FILE_PATH_KEYS = ['file', 'filepath', 'file_path', 'path', 'directory', 'f', 'dst', 'dest']
|
|
19
20
|
_CONTENTS_KEYS = ['cont', 'content', 'contents', 'data', 'datas', 'dat', 'src', 'source']
|
|
@@ -73,7 +74,73 @@ def check_read_write_params(*args, **kwargs):
|
|
|
73
74
|
raise ValueError("Missing file_path argument.")
|
|
74
75
|
return file_path, contents
|
|
75
76
|
|
|
77
|
+
def write_to_path(
|
|
78
|
+
file_path: str,
|
|
79
|
+
contents: str,
|
|
80
|
+
*,
|
|
81
|
+
user_at_host: str = None,
|
|
82
|
+
cwd: str | None = None,
|
|
83
|
+
password=None,
|
|
84
|
+
key=None,
|
|
85
|
+
env_path=None,
|
|
86
|
+
**kwargs
|
|
87
|
+
) -> str:
|
|
88
|
+
"""
|
|
89
|
+
Completely overwrite a file (locally or remotely).
|
|
90
|
+
Supports sudo and password-based remote execution.
|
|
91
|
+
"""
|
|
92
|
+
|
|
93
|
+
# sanitize for shell safety
|
|
94
|
+
quoted_path = shlex.quote(file_path)
|
|
95
|
+
quoted_data = shlex.quote(str(contents))
|
|
76
96
|
|
|
97
|
+
# shell command that fully overwrites
|
|
98
|
+
# (no append, replaces contents entirely)
|
|
99
|
+
base_cmd = f"echo {quoted_data} > {quoted_path}"
|
|
100
|
+
|
|
101
|
+
# optional sudo password injection
|
|
102
|
+
full_cmd = get_print_sudo_cmd(
|
|
103
|
+
cmd=base_cmd,
|
|
104
|
+
password=password,
|
|
105
|
+
key=key,
|
|
106
|
+
env_path=env_path
|
|
107
|
+
)
|
|
108
|
+
|
|
109
|
+
# local or remote dispatch
|
|
110
|
+
if user_at_host:
|
|
111
|
+
return run_remote_cmd(
|
|
112
|
+
user_at_host=user_at_host,
|
|
113
|
+
cmd=full_cmd,
|
|
114
|
+
cwd=cwd,
|
|
115
|
+
password=password,
|
|
116
|
+
key=key,
|
|
117
|
+
env_path=env_path,
|
|
118
|
+
**kwargs
|
|
119
|
+
)
|
|
120
|
+
else:
|
|
121
|
+
return run_local_cmd(
|
|
122
|
+
cmd=full_cmd,
|
|
123
|
+
cwd=cwd,
|
|
124
|
+
password=password,
|
|
125
|
+
key=key,
|
|
126
|
+
env_path=env_path,
|
|
127
|
+
**kwargs
|
|
128
|
+
)
|
|
129
|
+
### --- Core functionality -------------------------------------------------------
|
|
130
|
+
##def write_to_file(*args, **kwargs):
|
|
131
|
+
## """
|
|
132
|
+
## Write contents to a file (create if missing).
|
|
133
|
+
##
|
|
134
|
+
## Returns the file_path written.
|
|
135
|
+
## """
|
|
136
|
+
## file_path, contents = check_read_write_params(*args, **kwargs)
|
|
137
|
+
## if contents is None:
|
|
138
|
+
## raise ValueError("Missing contents to write.")
|
|
139
|
+
##
|
|
140
|
+
## os.makedirs(os.path.dirname(file_path) or ".", exist_ok=True)
|
|
141
|
+
## with open(file_path, "w", encoding="utf-8") as f:
|
|
142
|
+
## f.write(str(contents))
|
|
143
|
+
## return file_path
|
|
77
144
|
# --- Core functionality -------------------------------------------------------
|
|
78
145
|
def write_to_file(*args, **kwargs):
|
|
79
146
|
"""
|
|
@@ -84,6 +151,17 @@ def write_to_file(*args, **kwargs):
|
|
|
84
151
|
file_path, contents = check_read_write_params(*args, **kwargs)
|
|
85
152
|
if contents is None:
|
|
86
153
|
raise ValueError("Missing contents to write.")
|
|
154
|
+
user_at_host = kwargs.get("user_at_host")
|
|
155
|
+
if user_at_host:
|
|
156
|
+
kwargs["cwd"] = kwargs.get('cwd') or os.path.dirname(file_path)
|
|
157
|
+
# sanitize for shell safety
|
|
158
|
+
quoted_path = shlex.quote(file_path)
|
|
159
|
+
quoted_data = shlex.quote(str(contents))
|
|
160
|
+
# shell command that fully overwrites
|
|
161
|
+
# (no append, replaces contents entirely)
|
|
162
|
+
kwargs["cmd"] = f"echo {quoted_data} > {quoted_path}"
|
|
163
|
+
return run_pruned_func(run_cmd,**kwargs)
|
|
164
|
+
|
|
87
165
|
|
|
88
166
|
os.makedirs(os.path.dirname(file_path) or ".", exist_ok=True)
|
|
89
167
|
with open(file_path, "w", encoding="utf-8") as f:
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: abstract_utilities
|
|
3
|
-
Version: 0.2.2.
|
|
3
|
+
Version: 0.2.2.457
|
|
4
4
|
Summary: abstract_utilities is a collection of utility modules providing a variety of functions to aid in tasks such as data comparison, list manipulation, JSON handling, string manipulation, mathematical computations, and time operations.
|
|
5
5
|
Home-page: https://github.com/AbstractEndeavors/abstract_utilities
|
|
6
6
|
Author: putkoff
|
|
@@ -59,6 +59,7 @@ src/abstract_utilities/file_utils/file_utils/find_collect.py
|
|
|
59
59
|
src/abstract_utilities/file_utils/file_utils/imports.py
|
|
60
60
|
src/abstract_utilities/file_utils/file_utils/map_utils.py
|
|
61
61
|
src/abstract_utilities/file_utils/file_utils/pdf_utils.py
|
|
62
|
+
src/abstract_utilities/file_utils/file_utils/type_checks.py
|
|
62
63
|
src/abstract_utilities/file_utils/imports/__init__.py
|
|
63
64
|
src/abstract_utilities/file_utils/imports/classes.py
|
|
64
65
|
src/abstract_utilities/file_utils/imports/constants.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/class_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/doit.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/dynimport.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/error_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/global_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/hash_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/json_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/list_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/log_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/math_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/parse_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/path_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/safe_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/string_clean.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/string_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/tetsts.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/thread_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/time_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/type_utils.py
RENAMED
|
File without changes
|
{abstract_utilities-0.2.2.455 → abstract_utilities-0.2.2.457}/src/abstract_utilities/utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|