tha-wright-stuff 0.1.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.0/.github/dependabot.yml +17 -0
- tha_wright_stuff-0.1.0/.github/workflows/ci.yml +36 -0
- tha_wright_stuff-0.1.0/.github/workflows/publish.yml +62 -0
- tha_wright_stuff-0.1.0/.gitignore +6 -0
- tha_wright_stuff-0.1.0/PKG-INFO +89 -0
- tha_wright_stuff-0.1.0/README.md +56 -0
- tha_wright_stuff-0.1.0/pyproject.toml +61 -0
- tha_wright_stuff-0.1.0/src/tha_wright_stuff/__init__.py +95 -0
- tha_wright_stuff-0.1.0/src/tha_wright_stuff/py.typed +0 -0
- tha_wright_stuff-0.1.0/tests/test_imports.py +60 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
updates:
|
|
3
|
+
- package-ecosystem: github-actions
|
|
4
|
+
directory: /
|
|
5
|
+
schedule:
|
|
6
|
+
interval: weekly
|
|
7
|
+
day: monday
|
|
8
|
+
groups:
|
|
9
|
+
github-actions:
|
|
10
|
+
patterns:
|
|
11
|
+
- "*"
|
|
12
|
+
|
|
13
|
+
- package-ecosystem: pip
|
|
14
|
+
directory: /
|
|
15
|
+
schedule:
|
|
16
|
+
interval: weekly
|
|
17
|
+
day: monday
|
|
@@ -0,0 +1,36 @@
|
|
|
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/
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
name: Publish
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- "v*"
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
build:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v6
|
|
13
|
+
|
|
14
|
+
- name: Install uv
|
|
15
|
+
uses: astral-sh/setup-uv@v7
|
|
16
|
+
|
|
17
|
+
- name: Build
|
|
18
|
+
run: uv build
|
|
19
|
+
|
|
20
|
+
- name: Upload dist
|
|
21
|
+
uses: actions/upload-artifact@v7
|
|
22
|
+
with:
|
|
23
|
+
name: dist
|
|
24
|
+
path: dist/
|
|
25
|
+
|
|
26
|
+
publish-testpypi:
|
|
27
|
+
needs: build
|
|
28
|
+
runs-on: ubuntu-latest
|
|
29
|
+
environment: testpypi
|
|
30
|
+
permissions:
|
|
31
|
+
id-token: write
|
|
32
|
+
steps:
|
|
33
|
+
- name: Download dist
|
|
34
|
+
uses: actions/download-artifact@v8
|
|
35
|
+
with:
|
|
36
|
+
name: dist
|
|
37
|
+
path: dist/
|
|
38
|
+
|
|
39
|
+
- name: Install uv
|
|
40
|
+
uses: astral-sh/setup-uv@v7
|
|
41
|
+
|
|
42
|
+
- name: Publish to TestPyPI
|
|
43
|
+
run: uv publish --publish-url https://test.pypi.org/legacy/ --trusted-publishing always
|
|
44
|
+
|
|
45
|
+
publish-pypi:
|
|
46
|
+
needs: publish-testpypi
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
environment: pypi
|
|
49
|
+
permissions:
|
|
50
|
+
id-token: write
|
|
51
|
+
steps:
|
|
52
|
+
- name: Download dist
|
|
53
|
+
uses: actions/download-artifact@v8
|
|
54
|
+
with:
|
|
55
|
+
name: dist
|
|
56
|
+
path: dist/
|
|
57
|
+
|
|
58
|
+
- name: Install uv
|
|
59
|
+
uses: astral-sh/setup-uv@v7
|
|
60
|
+
|
|
61
|
+
- name: Publish to PyPI
|
|
62
|
+
run: uv publish --trusted-publishing always
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: tha-wright-stuff
|
|
3
|
+
Version: 0.1.0
|
|
4
|
+
Summary: A Tabular Helper meta-package that bundles the full tha-* library family in a single install.
|
|
5
|
+
Project-URL: Homepage, https://github.com/tha-guy-nate/tha-wright-stuff
|
|
6
|
+
Project-URL: Issues, https://github.com/tha-guy-nate/tha-wright-stuff/issues
|
|
7
|
+
Author: Nate Wright
|
|
8
|
+
License: MIT
|
|
9
|
+
Keywords: api,aws,csv,edfi,google,helper,meta,snowflake,tabular,utilities
|
|
10
|
+
Classifier: Intended Audience :: Developers
|
|
11
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
12
|
+
Classifier: Operating System :: OS Independent
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Topic :: Utilities
|
|
18
|
+
Classifier: Typing :: Typed
|
|
19
|
+
Requires-Python: >=3.10
|
|
20
|
+
Requires-Dist: tha-aws-runner>=0.1.15
|
|
21
|
+
Requires-Dist: tha-csv-runner>=0.2.6
|
|
22
|
+
Requires-Dist: tha-edfi-runner>=0.1.2
|
|
23
|
+
Requires-Dist: tha-google-runner>=0.1.0
|
|
24
|
+
Requires-Dist: tha-map-runner>=0.2.7
|
|
25
|
+
Requires-Dist: tha-req-runner>=0.2.2
|
|
26
|
+
Requires-Dist: tha-snowflake-runner>=0.1.1
|
|
27
|
+
Requires-Dist: tha-utils-helper>=0.2.3
|
|
28
|
+
Provides-Extra: dev
|
|
29
|
+
Requires-Dist: mypy>=2.1.0; extra == 'dev'
|
|
30
|
+
Requires-Dist: pytest>=9.1.0; extra == 'dev'
|
|
31
|
+
Requires-Dist: ruff>=0.15.17; extra == 'dev'
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
# tha-wright-stuff
|
|
35
|
+
|
|
36
|
+
> Install the entire Tabular Helper (`tha-*`) library family in one shot.
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
pip install tha-wright-stuff
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## What is this?
|
|
45
|
+
|
|
46
|
+
`tha-wright-stuff` serves two purposes at once:
|
|
47
|
+
|
|
48
|
+
### 1. Meta-package
|
|
49
|
+
|
|
50
|
+
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
|
+
|
|
52
|
+
```python
|
|
53
|
+
from tha_wright_stuff import ThaCSV, ThaMap, ThaReq, ThaDict, ThaDdb, ThaEdfiBase, ThaSheets, ThaSnowflake
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
Every public class, function, and error type from all eight libraries is available at the top level.
|
|
57
|
+
|
|
58
|
+
### 2. Cross-family integration canary
|
|
59
|
+
|
|
60
|
+
`uv.lock` is intentionally **not committed** to this repo. That means every CI run resolves all eight libraries fresh from PyPI — no pinned snapshot. If any two libraries in the family ship incompatible dependency requirements, this repo's CI will fail, surfacing the conflict before users hit it.
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
## Included libraries
|
|
65
|
+
|
|
66
|
+
| Package | PyPI | GitHub | What it does |
|
|
67
|
+
|---|---|---|---|
|
|
68
|
+
| **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
|
+
| **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
|
+
| **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`), and a `DdbCostTracker` context manager that tallies RCU/WCU and USD cost per run. |
|
|
72
|
+
| **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
|
+
| **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 reader/writer (`ThaSheets`) using a service account — reads sheets to row dicts, writes row dicts back with optional header control. |
|
|
75
|
+
| **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
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## Requirements
|
|
80
|
+
|
|
81
|
+
- Python 3.10+
|
|
82
|
+
|
|
83
|
+
All eight libraries are installed automatically as dependencies. Optional extras from individual libraries (e.g. `tha-csv-runner[excel]`, `tha-req-runner[httpx]`) are not pulled in by default — install them separately if needed.
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## License
|
|
88
|
+
|
|
89
|
+
MIT
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# tha-wright-stuff
|
|
2
|
+
|
|
3
|
+
> Install the entire Tabular Helper (`tha-*`) library family in one shot.
|
|
4
|
+
|
|
5
|
+
```bash
|
|
6
|
+
pip install tha-wright-stuff
|
|
7
|
+
```
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## What is this?
|
|
12
|
+
|
|
13
|
+
`tha-wright-stuff` serves two purposes at once:
|
|
14
|
+
|
|
15
|
+
### 1. Meta-package
|
|
16
|
+
|
|
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
|
+
|
|
19
|
+
```python
|
|
20
|
+
from tha_wright_stuff import ThaCSV, ThaMap, ThaReq, ThaDict, ThaDdb, ThaEdfiBase, ThaSheets, ThaSnowflake
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Every public class, function, and error type from all eight libraries is available at the top level.
|
|
24
|
+
|
|
25
|
+
### 2. Cross-family integration canary
|
|
26
|
+
|
|
27
|
+
`uv.lock` is intentionally **not committed** to this repo. That means every CI run resolves all eight libraries fresh from PyPI — no pinned snapshot. If any two libraries in the family ship incompatible dependency requirements, this repo's CI will fail, surfacing the conflict before users hit it.
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Included libraries
|
|
32
|
+
|
|
33
|
+
| Package | PyPI | GitHub | What it does |
|
|
34
|
+
|---|---|---|---|
|
|
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
|
+
| **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
|
+
| **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`), and a `DdbCostTracker` context manager that tallies RCU/WCU and USD cost per run. |
|
|
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
|
+
| **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 reader/writer (`ThaSheets`) using a service account — reads sheets to row dicts, writes row dicts back with optional header control. |
|
|
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
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## Requirements
|
|
47
|
+
|
|
48
|
+
- Python 3.10+
|
|
49
|
+
|
|
50
|
+
All eight libraries are installed automatically as dependencies. Optional extras from individual libraries (e.g. `tha-csv-runner[excel]`, `tha-req-runner[httpx]`) are not pulled in by default — install them separately if needed.
|
|
51
|
+
|
|
52
|
+
---
|
|
53
|
+
|
|
54
|
+
## License
|
|
55
|
+
|
|
56
|
+
MIT
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "tha-wright-stuff"
|
|
7
|
+
version = "0.1.0"
|
|
8
|
+
description = "A Tabular Helper meta-package that bundles the full tha-* library family in a single install."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = { text = "MIT" }
|
|
11
|
+
authors = [{ name = "Nate Wright" }]
|
|
12
|
+
requires-python = ">=3.10"
|
|
13
|
+
classifiers = [
|
|
14
|
+
"Programming Language :: Python :: 3",
|
|
15
|
+
"Programming Language :: Python :: 3.10",
|
|
16
|
+
"Programming Language :: Python :: 3.11",
|
|
17
|
+
"Programming Language :: Python :: 3.12",
|
|
18
|
+
"License :: OSI Approved :: MIT License",
|
|
19
|
+
"Operating System :: OS Independent",
|
|
20
|
+
"Intended Audience :: Developers",
|
|
21
|
+
"Topic :: Utilities",
|
|
22
|
+
"Typing :: Typed",
|
|
23
|
+
]
|
|
24
|
+
keywords = ["tabular", "helper", "api", "csv", "aws", "edfi", "google", "snowflake", "utilities", "meta"]
|
|
25
|
+
dependencies = [
|
|
26
|
+
"tha-csv-runner>=0.2.6",
|
|
27
|
+
"tha-map-runner>=0.2.7",
|
|
28
|
+
"tha-req-runner>=0.2.2",
|
|
29
|
+
"tha-aws-runner>=0.1.15",
|
|
30
|
+
"tha-utils-helper>=0.2.3",
|
|
31
|
+
"tha-edfi-runner>=0.1.2",
|
|
32
|
+
"tha-google-runner>=0.1.0",
|
|
33
|
+
"tha-snowflake-runner>=0.1.1",
|
|
34
|
+
]
|
|
35
|
+
|
|
36
|
+
[project.optional-dependencies]
|
|
37
|
+
dev = [
|
|
38
|
+
"pytest>=9.1.0",
|
|
39
|
+
"ruff>=0.15.17",
|
|
40
|
+
"mypy>=2.1.0",
|
|
41
|
+
]
|
|
42
|
+
|
|
43
|
+
[project.urls]
|
|
44
|
+
Homepage = "https://github.com/tha-guy-nate/tha-wright-stuff"
|
|
45
|
+
Issues = "https://github.com/tha-guy-nate/tha-wright-stuff/issues"
|
|
46
|
+
|
|
47
|
+
[tool.hatch.build.targets.wheel]
|
|
48
|
+
packages = ["src/tha_wright_stuff"]
|
|
49
|
+
|
|
50
|
+
[tool.ruff]
|
|
51
|
+
line-length = 100
|
|
52
|
+
target-version = "py310"
|
|
53
|
+
|
|
54
|
+
[tool.ruff.lint]
|
|
55
|
+
select = ["E", "F", "I", "B", "UP", "RUF"]
|
|
56
|
+
|
|
57
|
+
[tool.mypy]
|
|
58
|
+
ignore_missing_imports = true
|
|
59
|
+
|
|
60
|
+
[tool.pytest.ini_options]
|
|
61
|
+
testpaths = ["tests"]
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
"""tha-wright-stuff: the full tha-* Tabular Helper library family in one install."""
|
|
2
|
+
|
|
3
|
+
from tha_aws_runner import (
|
|
4
|
+
AWSBase,
|
|
5
|
+
AWSClients,
|
|
6
|
+
AwsError,
|
|
7
|
+
BatchCountResult,
|
|
8
|
+
BatchQueryResult,
|
|
9
|
+
BatchUpdateResult,
|
|
10
|
+
DdbCostTracker,
|
|
11
|
+
ThaDdb,
|
|
12
|
+
ThaGsi,
|
|
13
|
+
ThaS3,
|
|
14
|
+
ThaSSM,
|
|
15
|
+
cli_auth_check,
|
|
16
|
+
current_identity,
|
|
17
|
+
parse_arn,
|
|
18
|
+
parse_assumed_role_arn,
|
|
19
|
+
)
|
|
20
|
+
from tha_csv_runner import ConfigError, ThaCSV
|
|
21
|
+
from tha_edfi_runner import EdfiError, ThaEdfiBase, ThaStudentAssessment
|
|
22
|
+
from tha_google_runner import GoogleError, ThaSheets
|
|
23
|
+
from tha_map_runner import MapperError, ThaMap
|
|
24
|
+
from tha_req_runner import ReqError, ThaReq
|
|
25
|
+
from tha_snowflake_runner import Session, SnowflakeError, ThaSnowflake, list_profiles
|
|
26
|
+
from tha_utils_helper import (
|
|
27
|
+
DateError,
|
|
28
|
+
DictUtils,
|
|
29
|
+
ListUtils,
|
|
30
|
+
NumError,
|
|
31
|
+
StrError,
|
|
32
|
+
ThaDict,
|
|
33
|
+
ThaDT,
|
|
34
|
+
ThaList,
|
|
35
|
+
ThaNum,
|
|
36
|
+
ThaStr,
|
|
37
|
+
ThaType,
|
|
38
|
+
TypeUtils,
|
|
39
|
+
UtilsError,
|
|
40
|
+
)
|
|
41
|
+
|
|
42
|
+
__version__ = "0.1.0"
|
|
43
|
+
__all__ = [
|
|
44
|
+
# tha-aws-runner
|
|
45
|
+
"AWSBase",
|
|
46
|
+
"AWSClients",
|
|
47
|
+
"AwsError",
|
|
48
|
+
"BatchCountResult",
|
|
49
|
+
"BatchQueryResult",
|
|
50
|
+
"BatchUpdateResult",
|
|
51
|
+
# tha-csv-runner
|
|
52
|
+
"ConfigError",
|
|
53
|
+
"DateError",
|
|
54
|
+
"DdbCostTracker",
|
|
55
|
+
"DictUtils",
|
|
56
|
+
# tha-edfi-runner
|
|
57
|
+
"EdfiError",
|
|
58
|
+
# tha-google-runner
|
|
59
|
+
"GoogleError",
|
|
60
|
+
"ListUtils",
|
|
61
|
+
# tha-map-runner
|
|
62
|
+
"MapperError",
|
|
63
|
+
"NumError",
|
|
64
|
+
# tha-req-runner
|
|
65
|
+
"ReqError",
|
|
66
|
+
# tha-snowflake-runner
|
|
67
|
+
"Session",
|
|
68
|
+
"SnowflakeError",
|
|
69
|
+
"StrError",
|
|
70
|
+
"ThaCSV",
|
|
71
|
+
"ThaDT",
|
|
72
|
+
"ThaDdb",
|
|
73
|
+
# tha-utils-helper
|
|
74
|
+
"ThaDict",
|
|
75
|
+
"ThaEdfiBase",
|
|
76
|
+
"ThaGsi",
|
|
77
|
+
"ThaList",
|
|
78
|
+
"ThaMap",
|
|
79
|
+
"ThaNum",
|
|
80
|
+
"ThaReq",
|
|
81
|
+
"ThaS3",
|
|
82
|
+
"ThaSSM",
|
|
83
|
+
"ThaSheets",
|
|
84
|
+
"ThaSnowflake",
|
|
85
|
+
"ThaStr",
|
|
86
|
+
"ThaStudentAssessment",
|
|
87
|
+
"ThaType",
|
|
88
|
+
"TypeUtils",
|
|
89
|
+
"UtilsError",
|
|
90
|
+
"cli_auth_check",
|
|
91
|
+
"current_identity",
|
|
92
|
+
"list_profiles",
|
|
93
|
+
"parse_arn",
|
|
94
|
+
"parse_assumed_role_arn",
|
|
95
|
+
]
|
|
File without changes
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
def test_top_level_imports() -> None:
|
|
2
|
+
from tha_wright_stuff import (
|
|
3
|
+
AWSBase,
|
|
4
|
+
ConfigError,
|
|
5
|
+
DdbCostTracker,
|
|
6
|
+
EdfiError,
|
|
7
|
+
GoogleError,
|
|
8
|
+
MapperError,
|
|
9
|
+
ReqError,
|
|
10
|
+
Session,
|
|
11
|
+
SnowflakeError,
|
|
12
|
+
ThaCSV,
|
|
13
|
+
ThaDT,
|
|
14
|
+
ThaDdb,
|
|
15
|
+
ThaDict,
|
|
16
|
+
ThaEdfiBase,
|
|
17
|
+
ThaGsi,
|
|
18
|
+
ThaList,
|
|
19
|
+
ThaMap,
|
|
20
|
+
ThaNum,
|
|
21
|
+
ThaReq,
|
|
22
|
+
ThaS3,
|
|
23
|
+
ThaSSM,
|
|
24
|
+
ThaSheets,
|
|
25
|
+
ThaSnowflake,
|
|
26
|
+
ThaStr,
|
|
27
|
+
ThaStudentAssessment,
|
|
28
|
+
ThaType,
|
|
29
|
+
UtilsError,
|
|
30
|
+
list_profiles,
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
assert ThaCSV is not None
|
|
34
|
+
assert ThaMap is not None
|
|
35
|
+
assert ThaReq is not None
|
|
36
|
+
assert ThaDdb is not None
|
|
37
|
+
assert ThaGsi is not None
|
|
38
|
+
assert ThaS3 is not None
|
|
39
|
+
assert ThaSSM is not None
|
|
40
|
+
assert ThaDict is not None
|
|
41
|
+
assert ThaList is not None
|
|
42
|
+
assert ThaType is not None
|
|
43
|
+
assert ThaStr is not None
|
|
44
|
+
assert ThaNum is not None
|
|
45
|
+
assert ThaDT is not None
|
|
46
|
+
assert ThaStudentAssessment is not None
|
|
47
|
+
assert ThaEdfiBase is not None
|
|
48
|
+
assert ThaSheets is not None
|
|
49
|
+
assert ThaSnowflake is not None
|
|
50
|
+
assert Session is not None
|
|
51
|
+
assert AWSBase is not None
|
|
52
|
+
assert DdbCostTracker is not None
|
|
53
|
+
assert ConfigError is not None
|
|
54
|
+
assert MapperError is not None
|
|
55
|
+
assert ReqError is not None
|
|
56
|
+
assert UtilsError is not None
|
|
57
|
+
assert EdfiError is not None
|
|
58
|
+
assert GoogleError is not None
|
|
59
|
+
assert SnowflakeError is not None
|
|
60
|
+
assert list_profiles is not None
|