A streamlined CLI utility designed to simplify the AWS Glue development lifecycle.
Project description
AWS Glue Toolkit
A streamlined CLI utility designed to simplify the AWS Glue development lifecycle.
Installation
Requires Python 3.11+. Installing the package adds the gtk command and a compatible pip release.
pip install aws-glue-toolkit
Example
A Glue job is a directory with a pyproject.toml and a source tree. Given this layout:
my-glue-job/
pyproject.toml
src/
__main__.py
configure the job in pyproject.toml:
[project]
name = "my-glue-job"
version = "0.1.0"
dependencies = ["pandas>=2"]
[tool.aws-glue-toolkit]
glue_version = "5.1"
source = "src"
script = "__main__.py"
then run:
cd my-glue-job
gtk check .
gtk build .
check validates dependencies. build writes deployment zips into the job directory.
Configuration
Each job is a directory containing pyproject.toml. Unknown keys are ignored. The source directory and entry script must exist before gtk runs.
| Field | Required | Default | Description |
|---|---|---|---|
project.name |
yes | — | Job name; used in artifact file names |
project.version |
no | 0.0.0 |
Job version; used in artifact file names |
project.dependencies |
no | [] |
Direct dependencies as PEP 508 strings |
tool.aws-glue-toolkit.glue_version |
yes | — | Glue release; bundled pins for 5.0 and 5.1 |
tool.aws-glue-toolkit.source |
yes | — | Source directory, relative to the job root |
tool.aws-glue-toolkit.script |
yes | — | Entry script, relative to source |
Commands
[JOB-DIR] is the job directory path, passed as a positional argument or with --job-dir [JOB-DIR] (default: .).
| Command | Usage |
|---|---|
| check | gtk check [JOB-DIR] |
| build | gtk build [JOB-DIR] |
check
Resolves project.dependencies against the bundled runtime pins for glue_version. Uses the Glue worker Python version and platform tag from the bundled metadata. Does not write files.
build
Writes a dependencies zip and a gluewheels zip to the job directory:
| File | Glue parameter | Contents |
|---|---|---|
{name}-{version}.dependencies.zip |
--extra-py-files |
.py files under the configured source directory, except the entry script |
{name}-{version}.gluewheels.zip |
--additional-python-modules (Glue 5.0+) |
wheels/requirements.txt and *.whl files per AWS Glue Appendix A |
The gluewheels zip skips packages already pinned on the Glue image. Both zips are always written, even when empty.
Exit codes
On failure, gtk uses BSD sysexits.h codes:
| Code | Meaning |
|---|---|
| 65 | Dependencies unsatisfiable with Glue runtime pins |
| 66 | pyproject.toml missing or unreadable |
| 70 | Build pipeline failed |
| 78 | Invalid pyproject.toml, job layout, or unsupported Glue version |
Success exits 0. Unhandled errors exit 1.
License
This project is licensed under the MIT License — see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aws_glue_toolkit-0.1.0.tar.gz.
File metadata
- Download URL: aws_glue_toolkit-0.1.0.tar.gz
- Upload date:
- Size: 11.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
590629e86fc1a690f45e5f36b7719262f3a571323fad09d40bf4e2befe22890b
|
|
| MD5 |
4ad8936e1e1365250ce7e65deeecf7fe
|
|
| BLAKE2b-256 |
6ca1c012bc916f6f71cafec79e0b102f1b06b759800b5faa927fcadfd1be8388
|
Provenance
The following attestation bundles were made for aws_glue_toolkit-0.1.0.tar.gz:
Publisher:
release.yml on HH-MWB/aws-glue-toolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aws_glue_toolkit-0.1.0.tar.gz -
Subject digest:
590629e86fc1a690f45e5f36b7719262f3a571323fad09d40bf4e2befe22890b - Sigstore transparency entry: 1816790541
- Sigstore integration time:
-
Permalink:
HH-MWB/aws-glue-toolkit@c8d2f307b853ca6d86ba5570490cf9b2175ee1dd -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/HH-MWB
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c8d2f307b853ca6d86ba5570490cf9b2175ee1dd -
Trigger Event:
release
-
Statement type:
File details
Details for the file aws_glue_toolkit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: aws_glue_toolkit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 16.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4dcce4eeab371f80912d0e358d9e52cc94a2578407e085fc9244fba7e6316bd
|
|
| MD5 |
7f48354cb064b1b5541efd12bbca96bc
|
|
| BLAKE2b-256 |
122f4d447983d657efbd287e0c7b1e39a65c2fe947b0a42d0f760f754847bda0
|
Provenance
The following attestation bundles were made for aws_glue_toolkit-0.1.0-py3-none-any.whl:
Publisher:
release.yml on HH-MWB/aws-glue-toolkit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aws_glue_toolkit-0.1.0-py3-none-any.whl -
Subject digest:
c4dcce4eeab371f80912d0e358d9e52cc94a2578407e085fc9244fba7e6316bd - Sigstore transparency entry: 1816790796
- Sigstore integration time:
-
Permalink:
HH-MWB/aws-glue-toolkit@c8d2f307b853ca6d86ba5570490cf9b2175ee1dd -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/HH-MWB
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c8d2f307b853ca6d86ba5570490cf9b2175ee1dd -
Trigger Event:
release
-
Statement type: