tha-wright-stuff 0.1.4__tar.gz → 0.1.6__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.
@@ -0,0 +1,111 @@
1
+ name: Bump Dependency Floors
2
+
3
+ on:
4
+ schedule:
5
+ - cron: '0 9 * * 5' # Fridays at 9am UTC
6
+ workflow_dispatch:
7
+
8
+ permissions:
9
+ contents: write
10
+ pull-requests: write
11
+
12
+ jobs:
13
+ bump:
14
+ runs-on: ubuntu-latest
15
+ steps:
16
+ - uses: actions/checkout@v7
17
+
18
+ - name: Install uv
19
+ uses: astral-sh/setup-uv@v8.2.0
20
+ with:
21
+ version: "latest"
22
+
23
+ - name: Check and update dependency floors
24
+ id: check
25
+ run: |
26
+ python3 - <<'PYEOF'
27
+ import re, json, os, sys
28
+ from urllib.request import urlopen
29
+
30
+ with open("pyproject.toml") as f:
31
+ content = f.read()
32
+
33
+ pattern = r'"(tha-[a-z-]+)>=([\d]+\.[\d]+\.[\d]+)"'
34
+ deps = re.findall(pattern, content)
35
+
36
+ bumps = []
37
+ for pkg, floor in deps:
38
+ try:
39
+ with urlopen(f"https://pypi.org/pypi/{pkg}/json", timeout=10) as r:
40
+ latest = json.load(r)["info"]["version"]
41
+ except Exception:
42
+ print(f" skipping {pkg} (PyPI lookup failed)")
43
+ continue
44
+
45
+ floor_t = tuple(int(x) for x in floor.split("."))
46
+ latest_t = tuple(int(x) for x in latest.split("."))
47
+
48
+ if latest_t > floor_t:
49
+ bumps.append((pkg, floor, latest))
50
+ print(f" {pkg}: >={floor} -> >={latest}")
51
+ else:
52
+ print(f" {pkg}: >={floor} ok (latest={latest})")
53
+
54
+ gho = os.environ["GITHUB_OUTPUT"]
55
+ if not bumps:
56
+ print("All floors current -- no PR needed.")
57
+ with open(gho, "a") as f:
58
+ f.write("changed=false\n")
59
+ sys.exit(0)
60
+
61
+ new_content = content
62
+ for pkg, old, new in bumps:
63
+ new_content = new_content.replace(f'"{pkg}>={old}"', f'"{pkg}>={new}"')
64
+
65
+ ver_m = re.search(r'^version = "(\d+)\.(\d+)\.(\d+)"', new_content, re.MULTILINE)
66
+ major, minor, patch = int(ver_m.group(1)), int(ver_m.group(2)), int(ver_m.group(3))
67
+ old_ver = f"{major}.{minor}.{patch}"
68
+ new_ver = f"{major}.{minor}.{patch + 1}"
69
+ new_content = new_content.replace(f'version = "{old_ver}"', f'version = "{new_ver}"')
70
+
71
+ with open("pyproject.toml", "w") as f:
72
+ f.write(new_content)
73
+
74
+ pr_lines = [f"- `{pkg}`: `>={old}` -> `>={new}`" for pkg, old, new in bumps]
75
+ pr_body = (
76
+ "## Dependency Floor Bumps\n\n"
77
+ + "\n".join(pr_lines)
78
+ + f"\n\nPackage version bumped `{old_ver}` -> `{new_ver}`."
79
+ )
80
+
81
+ with open("/tmp/pr_body.txt", "w") as f:
82
+ f.write(pr_body)
83
+
84
+ with open(gho, "a") as f:
85
+ f.write("changed=true\n")
86
+ f.write(f"new_version={new_ver}\n")
87
+
88
+ print(f"pyproject.toml updated -- version {old_ver} -> {new_ver}")
89
+ PYEOF
90
+
91
+ - name: Update lockfile
92
+ if: steps.check.outputs.changed == 'true'
93
+ run: uv lock
94
+
95
+ - name: Commit and open PR
96
+ if: steps.check.outputs.changed == 'true'
97
+ run: |
98
+ git config user.name "github-actions[bot]"
99
+ git config user.email "github-actions[bot]@users.noreply.github.com"
100
+ BRANCH="chore/bump-dep-floors-$(date +%Y%m%d)"
101
+ git checkout -b "$BRANCH"
102
+ git add pyproject.toml uv.lock
103
+ git commit -m "chore: bump tha-* dependency floors to v${{ steps.check.outputs.new_version }}"
104
+ git push origin "$BRANCH"
105
+ gh pr create \
106
+ --title "chore: bump tha-* dependency floors (${{ steps.check.outputs.new_version }})" \
107
+ --body-file /tmp/pr_body.txt \
108
+ --base main \
109
+ --head "$BRANCH"
110
+ env:
111
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
@@ -0,0 +1,12 @@
1
+ name: CI
2
+
3
+ on:
4
+ push:
5
+ branches: ["main"]
6
+ pull_request:
7
+
8
+ jobs:
9
+ ci:
10
+ uses: tha-guy-nate/tha-github-workflows/.github/workflows/python-ci.yml@main
11
+ with:
12
+ python-versions: '["3.10", "3.11", "3.12", "3.13"]'
@@ -1,4 +1,4 @@
1
- name: Publish
1
+ name: Publish
2
2
 
3
3
  on:
4
4
  push:
@@ -9,10 +9,10 @@ jobs:
9
9
  build:
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@v6
12
+ - uses: actions/checkout@v7
13
13
 
14
14
  - name: Install uv
15
- uses: astral-sh/setup-uv@v7
15
+ uses: astral-sh/setup-uv@v8.2.0
16
16
 
17
17
  - name: Build
18
18
  run: uv build
@@ -37,7 +37,7 @@ jobs:
37
37
  path: dist/
38
38
 
39
39
  - name: Install uv
40
- uses: astral-sh/setup-uv@v7
40
+ uses: astral-sh/setup-uv@v8.2.0
41
41
 
42
42
  - name: Publish to TestPyPI
43
43
  run: uv publish --publish-url https://test.pypi.org/legacy/ --trusted-publishing always
@@ -56,7 +56,7 @@ jobs:
56
56
  path: dist/
57
57
 
58
58
  - name: Install uv
59
- uses: astral-sh/setup-uv@v7
59
+ uses: astral-sh/setup-uv@v8.2.0
60
60
 
61
61
  - name: Publish to PyPI
62
62
  run: uv publish --trusted-publishing always
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tha-wright-stuff
3
- Version: 0.1.4
3
+ Version: 0.1.6
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
@@ -15,18 +15,17 @@ Classifier: Programming Language :: Python :: 3.10
15
15
  Classifier: Programming Language :: Python :: 3.11
16
16
  Classifier: Programming Language :: Python :: 3.12
17
17
  Classifier: Programming Language :: Python :: 3.13
18
- Classifier: Programming Language :: Python :: 3.14
19
18
  Classifier: Topic :: Utilities
20
19
  Classifier: Typing :: Typed
21
20
  Requires-Python: >=3.10
22
- Requires-Dist: tha-aws-runner>=0.1.15
23
- Requires-Dist: tha-csv-runner>=0.2.6
24
- Requires-Dist: tha-edfi-runner>=0.1.2
25
- Requires-Dist: tha-google-runner>=0.1.4
26
- Requires-Dist: tha-map-runner>=0.2.7
27
- Requires-Dist: tha-req-runner>=0.2.2
28
- Requires-Dist: tha-snowflake-runner>=0.1.1
29
- Requires-Dist: tha-utils-helper>=0.2.3
21
+ Requires-Dist: tha-aws-runner>=0.1.16
22
+ Requires-Dist: tha-csv-runner>=0.2.7
23
+ Requires-Dist: tha-edfi-runner>=0.1.3
24
+ Requires-Dist: tha-google-runner>=0.1.6
25
+ Requires-Dist: tha-map-runner>=0.2.8
26
+ Requires-Dist: tha-req-runner>=0.2.3
27
+ Requires-Dist: tha-snowflake-runner>=0.1.2
28
+ Requires-Dist: tha-utils-helper>=0.2.4
30
29
  Provides-Extra: dev
31
30
  Requires-Dist: mypy>=2.1.0; extra == 'dev'
32
31
  Requires-Dist: pytest>=9.1.0; extra == 'dev'
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "tha-wright-stuff"
7
- version = "0.1.4"
7
+ version = "0.1.6"
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" }
@@ -16,7 +16,6 @@ classifiers = [
16
16
  "Programming Language :: Python :: 3.11",
17
17
  "Programming Language :: Python :: 3.12",
18
18
  "Programming Language :: Python :: 3.13",
19
- "Programming Language :: Python :: 3.14",
20
19
  "License :: OSI Approved :: MIT License",
21
20
  "Operating System :: OS Independent",
22
21
  "Intended Audience :: Developers",
@@ -25,14 +24,14 @@ classifiers = [
25
24
  ]
26
25
  keywords = ["tabular", "helper", "api", "csv", "aws", "edfi", "google", "snowflake", "utilities", "meta"]
27
26
  dependencies = [
28
- "tha-csv-runner>=0.2.6",
29
- "tha-map-runner>=0.2.7",
30
- "tha-req-runner>=0.2.2",
31
- "tha-aws-runner>=0.1.15",
32
- "tha-utils-helper>=0.2.3",
33
- "tha-edfi-runner>=0.1.2",
34
- "tha-google-runner>=0.1.4",
35
- "tha-snowflake-runner>=0.1.1",
27
+ "tha-csv-runner>=0.2.7",
28
+ "tha-map-runner>=0.2.8",
29
+ "tha-req-runner>=0.2.3",
30
+ "tha-aws-runner>=0.1.16",
31
+ "tha-utils-helper>=0.2.4",
32
+ "tha-edfi-runner>=0.1.3",
33
+ "tha-google-runner>=0.1.6",
34
+ "tha-snowflake-runner>=0.1.2",
36
35
  ]
37
36
 
38
37
  [project.optional-dependencies]
@@ -1,36 +0,0 @@
1
- name: CI
2
-
3
- on:
4
- push:
5
- branches: ["main"]
6
- pull_request:
7
-
8
- jobs:
9
- test:
10
- runs-on: ubuntu-latest
11
- strategy:
12
- matrix:
13
- python-version: ["3.10", "3.11", "3.12", "3.13"]
14
-
15
- steps:
16
- - uses: actions/checkout@v6
17
-
18
- - name: Install uv
19
- uses: astral-sh/setup-uv@v7
20
- with:
21
- version: "latest"
22
-
23
- - name: Set up Python ${{ matrix.python-version }}
24
- run: uv python install ${{ matrix.python-version }}
25
-
26
- - name: Install dependencies
27
- run: uv sync --extra dev --python ${{ matrix.python-version }}
28
-
29
- - name: Lint
30
- run: uv run ruff check src/
31
-
32
- - name: Test
33
- run: uv run pytest
34
-
35
- - name: Type check
36
- run: uv run mypy src/