vcorelib 3.3.2__tar.gz → 3.3.4__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.
- {vcorelib-3.3.2/vcorelib.egg-info → vcorelib-3.3.4}/PKG-INFO +6 -6
- {vcorelib-3.3.2 → vcorelib-3.3.4}/README.md +2 -2
- {vcorelib-3.3.2 → vcorelib-3.3.4}/pyproject.toml +1 -1
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/__init__.py +2 -2
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/paths/__init__.py +17 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/paths/info.py +0 -1
- {vcorelib-3.3.2 → vcorelib-3.3.4/vcorelib.egg-info}/PKG-INFO +6 -6
- {vcorelib-3.3.2 → vcorelib-3.3.4}/LICENSE +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/setup.cfg +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/setup.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/tests/test_names.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/tests/test_python.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/args/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/args/newline.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/asyncio/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/asyncio/cli.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/asyncio/poll.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/asyncio/subprocess.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/dev_requirements.txt +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/dict/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/dict/cache.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/dict/codec.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/dict/config.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/dict/env.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/graph/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/graph/abc.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/graph/edge.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/graph/node.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/graph/port.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/abc.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/arbiter/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/arbiter/base.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/arbiter/context.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/arbiter/directory.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/archive/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/cache.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/decode.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/encode.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/fifo.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/file_writer.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/mapping.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/io/types.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/logging/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/logging/args.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/logging/time.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/analysis/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/analysis/average.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/analysis/buffer.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/analysis/rate/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/analysis/rate/limiter.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/analysis/weighted.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/constants.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/keeper.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/time.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/math/unit.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/names.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/namespace/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/namespace/base.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/namespace/mixin.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/paths/base.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/paths/context.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/paths/find.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/paths/hashing.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/paths/info_cache.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/platform/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/py.typed +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/python.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/requirements.txt +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/schemas/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/schemas/base.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/schemas/json.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/schemas/mixins.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/script/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/target/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/target/evaluation.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/target/expression.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/target/resolver.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/dict/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/dict/melder.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/manager.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/subprocess/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/subprocess/run.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/time/__init__.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib/task/time/sleep.py +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib.egg-info/SOURCES.txt +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib.egg-info/dependency_links.txt +0 -0
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib.egg-info/requires.txt +3 -3
- {vcorelib-3.3.2 → vcorelib-3.3.4}/vcorelib.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: vcorelib
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.4
|
|
4
4
|
Summary: A collection of core Python utilities.
|
|
5
5
|
Home-page: https://github.com/vkottler/vcorelib
|
|
6
6
|
Author: Vaughn Kottler
|
|
@@ -17,12 +17,12 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
17
17
|
Requires-Python: >=3.11
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist:
|
|
20
|
+
Requires-Dist: tomli
|
|
21
21
|
Requires-Dist: ruamel.yaml
|
|
22
|
+
Requires-Dist: fastjsonschema
|
|
23
|
+
Requires-Dist: importlib-resources
|
|
22
24
|
Requires-Dist: cerberus
|
|
23
|
-
Requires-Dist: tomli
|
|
24
25
|
Requires-Dist: tomli-w
|
|
25
|
-
Requires-Dist: fastjsonschema
|
|
26
26
|
Provides-Extra: test
|
|
27
27
|
Requires-Dist: pylint; extra == "test"
|
|
28
28
|
Requires-Dist: flake8; extra == "test"
|
|
@@ -44,11 +44,11 @@ Requires-Dist: uvloop; (sys_platform != "win32" and sys_platform != "cygwin") an
|
|
|
44
44
|
=====================================
|
|
45
45
|
generator=datazen
|
|
46
46
|
version=3.1.4
|
|
47
|
-
hash=
|
|
47
|
+
hash=a7ebe64653725582beaaecd195538420
|
|
48
48
|
=====================================
|
|
49
49
|
-->
|
|
50
50
|
|
|
51
|
-
# vcorelib ([3.3.
|
|
51
|
+
# vcorelib ([3.3.4](https://pypi.org/project/vcorelib/))
|
|
52
52
|
|
|
53
53
|
[](https://pypi.org/project/vcorelib/)
|
|
54
54
|

|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
=====================================
|
|
3
3
|
generator=datazen
|
|
4
4
|
version=3.1.4
|
|
5
|
-
hash=
|
|
5
|
+
hash=a7ebe64653725582beaaecd195538420
|
|
6
6
|
=====================================
|
|
7
7
|
-->
|
|
8
8
|
|
|
9
|
-
# vcorelib ([3.3.
|
|
9
|
+
# vcorelib ([3.3.4](https://pypi.org/project/vcorelib/))
|
|
10
10
|
|
|
11
11
|
[](https://pypi.org/project/vcorelib/)
|
|
12
12
|

|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# =====================================
|
|
2
2
|
# generator=datazen
|
|
3
3
|
# version=3.1.4
|
|
4
|
-
# hash=
|
|
4
|
+
# hash=66dd034b36d1ab5f33f29127e32dcdbf
|
|
5
5
|
# =====================================
|
|
6
6
|
|
|
7
7
|
"""
|
|
@@ -10,7 +10,7 @@ Useful defaults and other package metadata.
|
|
|
10
10
|
|
|
11
11
|
DESCRIPTION = "A collection of core Python utilities."
|
|
12
12
|
PKG_NAME = "vcorelib"
|
|
13
|
-
VERSION = "3.3.
|
|
13
|
+
VERSION = "3.3.4"
|
|
14
14
|
|
|
15
15
|
# vcorelib-specific content.
|
|
16
16
|
DEFAULT_INDENT = 2
|
|
@@ -50,6 +50,7 @@ __all__ = [
|
|
|
50
50
|
"resource",
|
|
51
51
|
"create_hex_digest",
|
|
52
52
|
"validate_hex_digest",
|
|
53
|
+
"prune_empty_directories",
|
|
53
54
|
]
|
|
54
55
|
|
|
55
56
|
|
|
@@ -63,6 +64,22 @@ def modified_ns(path: Pathlike) -> _Optional[int]:
|
|
|
63
64
|
return result
|
|
64
65
|
|
|
65
66
|
|
|
67
|
+
def prune_empty_directories(path: Pathlike) -> None:
|
|
68
|
+
"""Attempt to prune empty directories from some path."""
|
|
69
|
+
|
|
70
|
+
path = normalize(path)
|
|
71
|
+
|
|
72
|
+
if path.is_dir():
|
|
73
|
+
# Remove sub-directories.
|
|
74
|
+
for subdir in path.iterdir():
|
|
75
|
+
if subdir.is_dir():
|
|
76
|
+
prune_empty_directories(subdir)
|
|
77
|
+
|
|
78
|
+
# Remove this directory.
|
|
79
|
+
if len(list(path.iterdir())) == 0:
|
|
80
|
+
path.rmdir()
|
|
81
|
+
|
|
82
|
+
|
|
66
83
|
def modified_after(path: Pathlike, candidates: _Iterable[Pathlike]) -> bool:
|
|
67
84
|
"""
|
|
68
85
|
Check if any candidate paths are more recently modified than the provided
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: vcorelib
|
|
3
|
-
Version: 3.3.
|
|
3
|
+
Version: 3.3.4
|
|
4
4
|
Summary: A collection of core Python utilities.
|
|
5
5
|
Home-page: https://github.com/vkottler/vcorelib
|
|
6
6
|
Author: Vaughn Kottler
|
|
@@ -17,12 +17,12 @@ Classifier: License :: OSI Approved :: MIT License
|
|
|
17
17
|
Requires-Python: >=3.11
|
|
18
18
|
Description-Content-Type: text/markdown
|
|
19
19
|
License-File: LICENSE
|
|
20
|
-
Requires-Dist:
|
|
20
|
+
Requires-Dist: tomli
|
|
21
21
|
Requires-Dist: ruamel.yaml
|
|
22
|
+
Requires-Dist: fastjsonschema
|
|
23
|
+
Requires-Dist: importlib-resources
|
|
22
24
|
Requires-Dist: cerberus
|
|
23
|
-
Requires-Dist: tomli
|
|
24
25
|
Requires-Dist: tomli-w
|
|
25
|
-
Requires-Dist: fastjsonschema
|
|
26
26
|
Provides-Extra: test
|
|
27
27
|
Requires-Dist: pylint; extra == "test"
|
|
28
28
|
Requires-Dist: flake8; extra == "test"
|
|
@@ -44,11 +44,11 @@ Requires-Dist: uvloop; (sys_platform != "win32" and sys_platform != "cygwin") an
|
|
|
44
44
|
=====================================
|
|
45
45
|
generator=datazen
|
|
46
46
|
version=3.1.4
|
|
47
|
-
hash=
|
|
47
|
+
hash=a7ebe64653725582beaaecd195538420
|
|
48
48
|
=====================================
|
|
49
49
|
-->
|
|
50
50
|
|
|
51
|
-
# vcorelib ([3.3.
|
|
51
|
+
# vcorelib ([3.3.4](https://pypi.org/project/vcorelib/))
|
|
52
52
|
|
|
53
53
|
[](https://pypi.org/project/vcorelib/)
|
|
54
54
|

|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|