tha-wright-stuff 0.1.0__tar.gz → 0.1.3__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.3/.github/workflows/dependabot-auto-merge.yml +18 -0
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/PKG-INFO +7 -5
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/README.md +3 -3
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/pyproject.toml +4 -2
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/src/tha_wright_stuff/__init__.py +6 -10
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/tests/test_imports.py +10 -2
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/.github/dependabot.yml +0 -0
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/.github/workflows/ci.yml +0 -0
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/.github/workflows/publish.yml +0 -0
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/.gitignore +0 -0
- {tha_wright_stuff-0.1.0 → tha_wright_stuff-0.1.3}/src/tha_wright_stuff/py.typed +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
name: Dependabot auto-merge
|
|
2
|
+
|
|
3
|
+
on: pull_request
|
|
4
|
+
|
|
5
|
+
permissions:
|
|
6
|
+
contents: write
|
|
7
|
+
pull-requests: write
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
auto-merge:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
if: github.actor == 'dependabot[bot]'
|
|
13
|
+
steps:
|
|
14
|
+
- name: Auto-merge Dependabot PR
|
|
15
|
+
run: gh pr merge --auto --merge "$PR_URL"
|
|
16
|
+
env:
|
|
17
|
+
PR_URL: ${{ github.event.pull_request.html_url }}
|
|
18
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: tha-wright-stuff
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.3
|
|
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
|
|
@@ -14,13 +14,15 @@ Classifier: Programming Language :: Python :: 3
|
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.10
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.11
|
|
16
16
|
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
17
19
|
Classifier: Topic :: Utilities
|
|
18
20
|
Classifier: Typing :: Typed
|
|
19
21
|
Requires-Python: >=3.10
|
|
20
22
|
Requires-Dist: tha-aws-runner>=0.1.15
|
|
21
23
|
Requires-Dist: tha-csv-runner>=0.2.6
|
|
22
24
|
Requires-Dist: tha-edfi-runner>=0.1.2
|
|
23
|
-
Requires-Dist: tha-google-runner>=0.1.
|
|
25
|
+
Requires-Dist: tha-google-runner>=0.1.3
|
|
24
26
|
Requires-Dist: tha-map-runner>=0.2.7
|
|
25
27
|
Requires-Dist: tha-req-runner>=0.2.2
|
|
26
28
|
Requires-Dist: tha-snowflake-runner>=0.1.1
|
|
@@ -50,7 +52,7 @@ pip install tha-wright-stuff
|
|
|
50
52
|
One install pulls in every `tha-*` library and re-exports all of their public symbols from a single namespace. Instead of installing and importing from eight separate packages, you can just do:
|
|
51
53
|
|
|
52
54
|
```python
|
|
53
|
-
from tha_wright_stuff import ThaCSV, ThaMap, ThaReq, ThaDict, ThaDdb, ThaEdfiBase, ThaSheets, ThaSnowflake
|
|
55
|
+
from tha_wright_stuff import ThaCSV, ThaMap, ThaReq, ThaDict, ThaDdb, ThaEdfiBase, ThaSheets, ThaDocs, ThaDrive, ThaSlides, ThaGmail, ThaSnowflake
|
|
54
56
|
```
|
|
55
57
|
|
|
56
58
|
Every public class, function, and error type from all eight libraries is available at the top level.
|
|
@@ -68,10 +70,10 @@ Every public class, function, and error type from all eight libraries is availab
|
|
|
68
70
|
| **tha-csv-runner** | [](https://pypi.org/project/tha-csv-runner/) | [tha-csv-runner](https://github.com/tha-guy-nate/tha-csv-runner) | Read and write CSVs with progress bars, header validation, chunking, sort/filter, and an optional per-row validator callback. |
|
|
69
71
|
| **tha-map-runner** | [](https://pypi.org/project/tha-map-runner/) | [tha-map-runner](https://github.com/tha-guy-nate/tha-map-runner) | Enrich and join dicts using dotted-path projection and O(n+m) index-based lookups. Supports left / inner / anti joins and DynamoDB result shapes. |
|
|
70
72
|
| **tha-req-runner** | [](https://pypi.org/project/tha-req-runner/) | [tha-req-runner](https://github.com/tha-guy-nate/tha-req-runner) | Transport layer for API runners — session management, retries, `safe_call`, and a normalized `parse_response` dict. Supports both `requests` and `httpx` backends. |
|
|
71
|
-
| **tha-aws-runner** | [](https://pypi.org/project/tha-aws-runner/) | [tha-aws-runner](https://github.com/tha-guy-nate/tha-aws-runner) | DynamoDB (`ThaDdb`), GSI queries (`ThaGsi`), S3 (`ThaS3`), SSM Parameter Store (`ThaSSM`),
|
|
73
|
+
| **tha-aws-runner** | [](https://pypi.org/project/tha-aws-runner/) | [tha-aws-runner](https://github.com/tha-guy-nate/tha-aws-runner) | DynamoDB (`ThaDdb`), GSI queries (`ThaGsi`), S3 (`ThaS3`), SSM Parameter Store (`ThaSSM`), a `DdbCostTracker` context manager that tallies RCU/WCU and USD cost per run, and standalone helpers (`cli_auth_check`, `current_identity`, `parse_arn`, `parse_assumed_role_arn`). |
|
|
72
74
|
| **tha-utils-helper** | [](https://pypi.org/project/tha-utils-helper/) | [tha-utils-helper](https://github.com/tha-guy-nate/tha-utils-helper) | Zero-dependency utilities: `ThaStr` (slugify, format), `ThaNum` (currency, parens-as-negative, cast), `ThaDT` (auto-detect date formats), `ThaDict` (pick, omit, rename), `ThaList` (chunk, flatten), `ThaType` (bool/int/float coercion). All include matching `*_rows` batch methods. |
|
|
73
75
|
| **tha-edfi-runner** | [](https://pypi.org/project/tha-edfi-runner/) | [tha-edfi-runner](https://github.com/tha-guy-nate/tha-edfi-runner) | Ed-Fi ODS API client — OAuth client-credentials auth, pagination, and chunked parallel posting via `ThreadPoolExecutor`. |
|
|
74
|
-
| **tha-google-runner** | [](https://pypi.org/project/tha-google-runner/) | [tha-google-runner](https://github.com/tha-guy-nate/tha-google-runner) | Google Sheets
|
|
76
|
+
| **tha-google-runner** | [](https://pypi.org/project/tha-google-runner/) | [tha-google-runner](https://github.com/tha-guy-nate/tha-google-runner) | Typed wrappers for Google Sheets (`ThaSheets`), Docs (`ThaDocs`), Drive (`ThaDrive`), Slides (`ThaSlides`), and Gmail (`ThaGmail`) — OAuth2 or ADC auth, read/write/upsert rows, file download, presentation creation, and email sending. |
|
|
75
77
|
| **tha-snowflake-runner** | [](https://pypi.org/project/tha-snowflake-runner/) | [tha-snowflake-runner](https://github.com/tha-guy-nate/tha-snowflake-runner) | Snowflake query runner (`ThaSnowflake`) — named connection profiles, query execution to row dicts, and chunked parallel inserts. |
|
|
76
78
|
|
|
77
79
|
---
|
|
@@ -17,7 +17,7 @@ pip install tha-wright-stuff
|
|
|
17
17
|
One install pulls in every `tha-*` library and re-exports all of their public symbols from a single namespace. Instead of installing and importing from eight separate packages, you can just do:
|
|
18
18
|
|
|
19
19
|
```python
|
|
20
|
-
from tha_wright_stuff import ThaCSV, ThaMap, ThaReq, ThaDict, ThaDdb, ThaEdfiBase, ThaSheets, ThaSnowflake
|
|
20
|
+
from tha_wright_stuff import ThaCSV, ThaMap, ThaReq, ThaDict, ThaDdb, ThaEdfiBase, ThaSheets, ThaDocs, ThaDrive, ThaSlides, ThaGmail, ThaSnowflake
|
|
21
21
|
```
|
|
22
22
|
|
|
23
23
|
Every public class, function, and error type from all eight libraries is available at the top level.
|
|
@@ -35,10 +35,10 @@ Every public class, function, and error type from all eight libraries is availab
|
|
|
35
35
|
| **tha-csv-runner** | [](https://pypi.org/project/tha-csv-runner/) | [tha-csv-runner](https://github.com/tha-guy-nate/tha-csv-runner) | Read and write CSVs with progress bars, header validation, chunking, sort/filter, and an optional per-row validator callback. |
|
|
36
36
|
| **tha-map-runner** | [](https://pypi.org/project/tha-map-runner/) | [tha-map-runner](https://github.com/tha-guy-nate/tha-map-runner) | Enrich and join dicts using dotted-path projection and O(n+m) index-based lookups. Supports left / inner / anti joins and DynamoDB result shapes. |
|
|
37
37
|
| **tha-req-runner** | [](https://pypi.org/project/tha-req-runner/) | [tha-req-runner](https://github.com/tha-guy-nate/tha-req-runner) | Transport layer for API runners — session management, retries, `safe_call`, and a normalized `parse_response` dict. Supports both `requests` and `httpx` backends. |
|
|
38
|
-
| **tha-aws-runner** | [](https://pypi.org/project/tha-aws-runner/) | [tha-aws-runner](https://github.com/tha-guy-nate/tha-aws-runner) | DynamoDB (`ThaDdb`), GSI queries (`ThaGsi`), S3 (`ThaS3`), SSM Parameter Store (`ThaSSM`),
|
|
38
|
+
| **tha-aws-runner** | [](https://pypi.org/project/tha-aws-runner/) | [tha-aws-runner](https://github.com/tha-guy-nate/tha-aws-runner) | DynamoDB (`ThaDdb`), GSI queries (`ThaGsi`), S3 (`ThaS3`), SSM Parameter Store (`ThaSSM`), a `DdbCostTracker` context manager that tallies RCU/WCU and USD cost per run, and standalone helpers (`cli_auth_check`, `current_identity`, `parse_arn`, `parse_assumed_role_arn`). |
|
|
39
39
|
| **tha-utils-helper** | [](https://pypi.org/project/tha-utils-helper/) | [tha-utils-helper](https://github.com/tha-guy-nate/tha-utils-helper) | Zero-dependency utilities: `ThaStr` (slugify, format), `ThaNum` (currency, parens-as-negative, cast), `ThaDT` (auto-detect date formats), `ThaDict` (pick, omit, rename), `ThaList` (chunk, flatten), `ThaType` (bool/int/float coercion). All include matching `*_rows` batch methods. |
|
|
40
40
|
| **tha-edfi-runner** | [](https://pypi.org/project/tha-edfi-runner/) | [tha-edfi-runner](https://github.com/tha-guy-nate/tha-edfi-runner) | Ed-Fi ODS API client — OAuth client-credentials auth, pagination, and chunked parallel posting via `ThreadPoolExecutor`. |
|
|
41
|
-
| **tha-google-runner** | [](https://pypi.org/project/tha-google-runner/) | [tha-google-runner](https://github.com/tha-guy-nate/tha-google-runner) | Google Sheets
|
|
41
|
+
| **tha-google-runner** | [](https://pypi.org/project/tha-google-runner/) | [tha-google-runner](https://github.com/tha-guy-nate/tha-google-runner) | Typed wrappers for Google Sheets (`ThaSheets`), Docs (`ThaDocs`), Drive (`ThaDrive`), Slides (`ThaSlides`), and Gmail (`ThaGmail`) — OAuth2 or ADC auth, read/write/upsert rows, file download, presentation creation, and email sending. |
|
|
42
42
|
| **tha-snowflake-runner** | [](https://pypi.org/project/tha-snowflake-runner/) | [tha-snowflake-runner](https://github.com/tha-guy-nate/tha-snowflake-runner) | Snowflake query runner (`ThaSnowflake`) — named connection profiles, query execution to row dicts, and chunked parallel inserts. |
|
|
43
43
|
|
|
44
44
|
---
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "tha-wright-stuff"
|
|
7
|
-
version = "0.1.
|
|
7
|
+
version = "0.1.3"
|
|
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" }
|
|
@@ -15,6 +15,8 @@ classifiers = [
|
|
|
15
15
|
"Programming Language :: Python :: 3.10",
|
|
16
16
|
"Programming Language :: Python :: 3.11",
|
|
17
17
|
"Programming Language :: Python :: 3.12",
|
|
18
|
+
"Programming Language :: Python :: 3.13",
|
|
19
|
+
"Programming Language :: Python :: 3.14",
|
|
18
20
|
"License :: OSI Approved :: MIT License",
|
|
19
21
|
"Operating System :: OS Independent",
|
|
20
22
|
"Intended Audience :: Developers",
|
|
@@ -29,7 +31,7 @@ dependencies = [
|
|
|
29
31
|
"tha-aws-runner>=0.1.15",
|
|
30
32
|
"tha-utils-helper>=0.2.3",
|
|
31
33
|
"tha-edfi-runner>=0.1.2",
|
|
32
|
-
"tha-google-runner>=0.1.
|
|
34
|
+
"tha-google-runner>=0.1.3",
|
|
33
35
|
"tha-snowflake-runner>=0.1.1",
|
|
34
36
|
]
|
|
35
37
|
|
|
@@ -19,7 +19,7 @@ from tha_aws_runner import (
|
|
|
19
19
|
)
|
|
20
20
|
from tha_csv_runner import ConfigError, ThaCSV
|
|
21
21
|
from tha_edfi_runner import EdfiError, ThaEdfiBase, ThaStudentAssessment
|
|
22
|
-
from tha_google_runner import GoogleError, ThaSheets
|
|
22
|
+
from tha_google_runner import GoogleError, ThaDocs, ThaDrive, ThaGmail, ThaSheets, ThaSlides
|
|
23
23
|
from tha_map_runner import MapperError, ThaMap
|
|
24
24
|
from tha_req_runner import ReqError, ThaReq
|
|
25
25
|
from tha_snowflake_runner import Session, SnowflakeError, ThaSnowflake, list_profiles
|
|
@@ -39,40 +39,35 @@ from tha_utils_helper import (
|
|
|
39
39
|
UtilsError,
|
|
40
40
|
)
|
|
41
41
|
|
|
42
|
-
__version__ = "0.1.
|
|
42
|
+
__version__ = "0.1.3"
|
|
43
43
|
__all__ = [
|
|
44
|
-
# tha-aws-runner
|
|
45
44
|
"AWSBase",
|
|
46
45
|
"AWSClients",
|
|
47
46
|
"AwsError",
|
|
48
47
|
"BatchCountResult",
|
|
49
48
|
"BatchQueryResult",
|
|
50
49
|
"BatchUpdateResult",
|
|
51
|
-
# tha-csv-runner
|
|
52
50
|
"ConfigError",
|
|
53
51
|
"DateError",
|
|
54
52
|
"DdbCostTracker",
|
|
55
53
|
"DictUtils",
|
|
56
|
-
# tha-edfi-runner
|
|
57
54
|
"EdfiError",
|
|
58
|
-
# tha-google-runner
|
|
59
55
|
"GoogleError",
|
|
60
56
|
"ListUtils",
|
|
61
|
-
# tha-map-runner
|
|
62
57
|
"MapperError",
|
|
63
58
|
"NumError",
|
|
64
|
-
# tha-req-runner
|
|
65
59
|
"ReqError",
|
|
66
|
-
# tha-snowflake-runner
|
|
67
60
|
"Session",
|
|
68
61
|
"SnowflakeError",
|
|
69
62
|
"StrError",
|
|
70
63
|
"ThaCSV",
|
|
71
64
|
"ThaDT",
|
|
72
65
|
"ThaDdb",
|
|
73
|
-
# tha-utils-helper
|
|
74
66
|
"ThaDict",
|
|
67
|
+
"ThaDocs",
|
|
68
|
+
"ThaDrive",
|
|
75
69
|
"ThaEdfiBase",
|
|
70
|
+
"ThaGmail",
|
|
76
71
|
"ThaGsi",
|
|
77
72
|
"ThaList",
|
|
78
73
|
"ThaMap",
|
|
@@ -81,6 +76,7 @@ __all__ = [
|
|
|
81
76
|
"ThaS3",
|
|
82
77
|
"ThaSSM",
|
|
83
78
|
"ThaSheets",
|
|
79
|
+
"ThaSlides",
|
|
84
80
|
"ThaSnowflake",
|
|
85
81
|
"ThaStr",
|
|
86
82
|
"ThaStudentAssessment",
|
|
@@ -10,19 +10,23 @@ def test_top_level_imports() -> None:
|
|
|
10
10
|
Session,
|
|
11
11
|
SnowflakeError,
|
|
12
12
|
ThaCSV,
|
|
13
|
-
ThaDT,
|
|
14
13
|
ThaDdb,
|
|
15
14
|
ThaDict,
|
|
15
|
+
ThaDocs,
|
|
16
|
+
ThaDrive,
|
|
17
|
+
ThaDT,
|
|
16
18
|
ThaEdfiBase,
|
|
19
|
+
ThaGmail,
|
|
17
20
|
ThaGsi,
|
|
18
21
|
ThaList,
|
|
19
22
|
ThaMap,
|
|
20
23
|
ThaNum,
|
|
21
24
|
ThaReq,
|
|
22
25
|
ThaS3,
|
|
23
|
-
ThaSSM,
|
|
24
26
|
ThaSheets,
|
|
27
|
+
ThaSlides,
|
|
25
28
|
ThaSnowflake,
|
|
29
|
+
ThaSSM,
|
|
26
30
|
ThaStr,
|
|
27
31
|
ThaStudentAssessment,
|
|
28
32
|
ThaType,
|
|
@@ -46,6 +50,10 @@ def test_top_level_imports() -> None:
|
|
|
46
50
|
assert ThaStudentAssessment is not None
|
|
47
51
|
assert ThaEdfiBase is not None
|
|
48
52
|
assert ThaSheets is not None
|
|
53
|
+
assert ThaDocs is not None
|
|
54
|
+
assert ThaDrive is not None
|
|
55
|
+
assert ThaSlides is not None
|
|
56
|
+
assert ThaGmail is not None
|
|
49
57
|
assert ThaSnowflake is not None
|
|
50
58
|
assert Session is not None
|
|
51
59
|
assert AWSBase is not None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|