tha-wright-stuff 0.1.38__tar.gz → 0.2.0__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.
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/bump-dep-floors.yml +25 -9
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/dep-floors-check.yml +2 -2
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/CHANGELOG.md +6 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/PKG-INFO +9 -9
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/pyproject.toml +9 -9
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/dependabot.yml +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/pull_request_template.md +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/auto-assign-pr.yml +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/check-yanked-floors.yml +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/ci.yml +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/dependabot-auto-merge.yml +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/publish.yml +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.gitignore +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.pre-commit-config.yaml +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/LICENSE +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/README.md +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/src/tha_wright_stuff/__init__.py +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/src/tha_wright_stuff/py.typed +0 -0
- {tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/tests/test_imports.py +0 -0
|
@@ -28,14 +28,15 @@ jobs:
|
|
|
28
28
|
with open("pyproject.toml") as f:
|
|
29
29
|
content = f.read()
|
|
30
30
|
|
|
31
|
-
pattern = r'"(tha-[a-z-]+)(\[[a-
|
|
31
|
+
pattern = r'"(tha-[a-z-]+)(\[[a-z0-9, _-]+\])?==([\d]+\.[\d]+\.[\d]+)"'
|
|
32
32
|
deps = [(pkg, extra or "", floor) for pkg, extra, floor in re.findall(pattern, content)]
|
|
33
33
|
|
|
34
34
|
bumps = []
|
|
35
35
|
for pkg, extra, floor in deps:
|
|
36
36
|
try:
|
|
37
37
|
with urlopen(f"https://pypi.org/pypi/{pkg}/json", timeout=10) as r:
|
|
38
|
-
|
|
38
|
+
info = json.load(r)["info"]
|
|
39
|
+
latest = info["version"]
|
|
39
40
|
except Exception:
|
|
40
41
|
print(f" skipping {pkg} (PyPI lookup failed)")
|
|
41
42
|
continue
|
|
@@ -44,10 +45,25 @@ jobs:
|
|
|
44
45
|
latest_t = tuple(int(x) for x in latest.split("."))
|
|
45
46
|
|
|
46
47
|
if latest_t > floor_t:
|
|
48
|
+
if extra:
|
|
49
|
+
# `extra` is a bracket carried forward as literal text (e.g. "[httpx]") --
|
|
50
|
+
# this script has no way to know an extra was renamed upstream, so verify
|
|
51
|
+
# it still exists on the target version rather than silently bumping to a
|
|
52
|
+
# version/extra combo that doesn't resolve.
|
|
53
|
+
extra_names = [e.strip() for e in extra.strip("[]").split(",") if e.strip()]
|
|
54
|
+
provided = set(info.get("provides_extra") or [])
|
|
55
|
+
missing = [e for e in extra_names if e not in provided]
|
|
56
|
+
if missing:
|
|
57
|
+
print(
|
|
58
|
+
f" WARNING: {pkg}{extra}: extra(s) {missing} not found on "
|
|
59
|
+
f"{pkg} {latest} (available: {sorted(provided)}) -- "
|
|
60
|
+
f"SKIPPING auto-bump, needs a manual PR"
|
|
61
|
+
)
|
|
62
|
+
continue
|
|
47
63
|
bumps.append((pkg, extra, floor, latest))
|
|
48
|
-
print(f" {pkg}{extra}:
|
|
64
|
+
print(f" {pkg}{extra}: =={floor} -> =={latest}")
|
|
49
65
|
else:
|
|
50
|
-
print(f" {pkg}{extra}:
|
|
66
|
+
print(f" {pkg}{extra}: =={floor} ok (latest={latest})")
|
|
51
67
|
|
|
52
68
|
gho = os.environ["GITHUB_OUTPUT"]
|
|
53
69
|
if not bumps:
|
|
@@ -58,7 +74,7 @@ jobs:
|
|
|
58
74
|
|
|
59
75
|
new_content = content
|
|
60
76
|
for pkg, extra, old, new in bumps:
|
|
61
|
-
new_content = new_content.replace(f'"{pkg}{extra}
|
|
77
|
+
new_content = new_content.replace(f'"{pkg}{extra}=={old}"', f'"{pkg}{extra}=={new}"')
|
|
62
78
|
|
|
63
79
|
ver_m = re.search(r'^version = "(\d+)\.(\d+)\.(\d+)"', new_content, re.MULTILINE)
|
|
64
80
|
major, minor, patch = int(ver_m.group(1)), int(ver_m.group(2)), int(ver_m.group(3))
|
|
@@ -70,11 +86,11 @@ jobs:
|
|
|
70
86
|
f.write(new_content)
|
|
71
87
|
|
|
72
88
|
today = date.today().isoformat()
|
|
73
|
-
bumped_summary = ", ".join(f"{pkg}{extra}
|
|
89
|
+
bumped_summary = ", ".join(f"{pkg}{extra}=={new}" for pkg, extra, _, new in bumps)
|
|
74
90
|
changelog_entry = (
|
|
75
91
|
f"## [{new_ver}] - {today}\n"
|
|
76
92
|
f"### Changed\n"
|
|
77
|
-
f"- Bumped dep
|
|
93
|
+
f"- Bumped dep pins: {bumped_summary}.\n"
|
|
78
94
|
)
|
|
79
95
|
with open("CHANGELOG.md") as f:
|
|
80
96
|
cl = f.read()
|
|
@@ -82,9 +98,9 @@ jobs:
|
|
|
82
98
|
with open("CHANGELOG.md", "w") as f:
|
|
83
99
|
f.write(cl)
|
|
84
100
|
|
|
85
|
-
pr_lines = [f"- `{pkg}{extra}`:
|
|
101
|
+
pr_lines = [f"- `{pkg}{extra}`: `=={old}` -> `=={new}`" for pkg, extra, old, new in bumps]
|
|
86
102
|
pr_body = (
|
|
87
|
-
"## Dependency
|
|
103
|
+
"## Dependency Pin Bumps\n\n"
|
|
88
104
|
+ "\n".join(pr_lines)
|
|
89
105
|
+ f"\n\nVersion bumped `{old_ver}` -> `{new_ver}`."
|
|
90
106
|
)
|
|
@@ -20,7 +20,7 @@ jobs:
|
|
|
20
20
|
with open("pyproject.toml") as f:
|
|
21
21
|
content = f.read()
|
|
22
22
|
|
|
23
|
-
pattern = r'"(tha-[a-z-]+)(\[[a-
|
|
23
|
+
pattern = r'"(tha-[a-z-]+)(\[[a-z0-9, _-]+\])?==([\d]+\.[\d]+\.[\d]+)"'
|
|
24
24
|
deps = [(pkg, extra or "", floor) for pkg, extra, floor in re.findall(pattern, content)]
|
|
25
25
|
|
|
26
26
|
stale = []
|
|
@@ -32,7 +32,7 @@ jobs:
|
|
|
32
32
|
print(f" skipping {pkg}{extra}")
|
|
33
33
|
continue
|
|
34
34
|
if tuple(int(x) for x in latest.split(".")) > tuple(int(x) for x in floor.split(".")):
|
|
35
|
-
stale.append(f"{pkg}{extra} (
|
|
35
|
+
stale.append(f"{pkg}{extra} (=={floor}, latest {latest})")
|
|
36
36
|
print(f" stale: {stale[-1]}")
|
|
37
37
|
|
|
38
38
|
if not stale:
|
|
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.2.0] - 2026-09-25
|
|
11
|
+
### Changed
|
|
12
|
+
- Pinned all tha-* dependencies to exact versions (`==`) instead of minimum floors (`>=`). Installing `tha-wright-stuff` now yields one known-good, CI-tested set of family versions; installing a different version of a member lib alongside it will now conflict at resolve time.
|
|
13
|
+
- `bump-dep-floors.yml` and `dep-floors-check.yml` now match and rewrite `==` pins.
|
|
14
|
+
- Fixed both workflows' extras regex, which could not match extras containing digits (e.g. `[httpx2]`), so `tha-req-runner` was silently skipped by the bump and status checks.
|
|
15
|
+
|
|
10
16
|
## [0.1.38] - 2026-09-22
|
|
11
17
|
### Changed
|
|
12
18
|
- Bumped dep floors: tha-req-runner[httpx2]>=0.3.0 (renamed from the `httpx` extra — tha-req-runner 0.3.0 replaced the `httpx` backend with `httpx2`), tha-edfi-runner>=0.1.15, tha-google-runner>=0.3.0.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: tha-wright-stuff
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
4
4
|
Summary: A Tabular Helper meta-package that bundles the full tha-* library family in a single install.
|
|
5
5
|
Project-URL: Homepage, https://github.com/tha-guy-nate/tha-wright-stuff
|
|
6
6
|
Project-URL: Issues, https://github.com/tha-guy-nate/tha-wright-stuff/issues
|
|
@@ -21,14 +21,14 @@ Classifier: Programming Language :: Python :: 3.14
|
|
|
21
21
|
Classifier: Topic :: Utilities
|
|
22
22
|
Classifier: Typing :: Typed
|
|
23
23
|
Requires-Python: >=3.10
|
|
24
|
-
Requires-Dist: tha-aws-runner
|
|
25
|
-
Requires-Dist: tha-csv-runner
|
|
26
|
-
Requires-Dist: tha-edfi-runner
|
|
27
|
-
Requires-Dist: tha-google-runner
|
|
28
|
-
Requires-Dist: tha-map-runner
|
|
29
|
-
Requires-Dist: tha-req-runner[httpx2]
|
|
30
|
-
Requires-Dist: tha-snowflake-runner
|
|
31
|
-
Requires-Dist: tha-utils-helper
|
|
24
|
+
Requires-Dist: tha-aws-runner==0.2.10
|
|
25
|
+
Requires-Dist: tha-csv-runner==0.4.2
|
|
26
|
+
Requires-Dist: tha-edfi-runner==0.1.15
|
|
27
|
+
Requires-Dist: tha-google-runner==0.3.0
|
|
28
|
+
Requires-Dist: tha-map-runner==0.3.1
|
|
29
|
+
Requires-Dist: tha-req-runner[httpx2]==0.3.0
|
|
30
|
+
Requires-Dist: tha-snowflake-runner==0.3.4
|
|
31
|
+
Requires-Dist: tha-utils-helper==0.2.6
|
|
32
32
|
Provides-Extra: dev
|
|
33
33
|
Requires-Dist: mypy>=2.1.0; extra == 'dev'
|
|
34
34
|
Requires-Dist: pip-audit>=2.10.1; extra == 'dev'
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tha-wright-stuff"
|
|
7
|
-
version = "0.
|
|
7
|
+
version = "0.2.0"
|
|
8
8
|
description = "A Tabular Helper meta-package that bundles the full tha-* library family in a single install."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = { text = "MIT" }
|
|
@@ -25,14 +25,14 @@ classifiers = [
|
|
|
25
25
|
]
|
|
26
26
|
keywords = ["tabular", "helper", "api", "csv", "aws", "edfi", "google", "snowflake", "utilities", "meta"]
|
|
27
27
|
dependencies = [
|
|
28
|
-
"tha-csv-runner
|
|
29
|
-
"tha-map-runner
|
|
30
|
-
"tha-req-runner[httpx2]
|
|
31
|
-
"tha-aws-runner
|
|
32
|
-
"tha-utils-helper
|
|
33
|
-
"tha-edfi-runner
|
|
34
|
-
"tha-google-runner
|
|
35
|
-
"tha-snowflake-runner
|
|
28
|
+
"tha-csv-runner==0.4.2",
|
|
29
|
+
"tha-map-runner==0.3.1",
|
|
30
|
+
"tha-req-runner[httpx2]==0.3.0",
|
|
31
|
+
"tha-aws-runner==0.2.10",
|
|
32
|
+
"tha-utils-helper==0.2.6",
|
|
33
|
+
"tha-edfi-runner==0.1.15",
|
|
34
|
+
"tha-google-runner==0.3.0",
|
|
35
|
+
"tha-snowflake-runner==0.3.4",
|
|
36
36
|
]
|
|
37
37
|
|
|
38
38
|
[project.optional-dependencies]
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/check-yanked-floors.yml
RENAMED
|
File without changes
|
|
File without changes
|
{tha_wright_stuff-0.1.38 → tha_wright_stuff-0.2.0}/.github/workflows/dependabot-auto-merge.yml
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
|