AWS Glue Toolkit
A streamlined command-line utility designed to simplify the AWS Glue development lifecycle.
Disclaimer: This is an independent, community-maintained project. It is not affiliated with, endorsed by, or sponsored by Amazon Web Services (AWS). AWS, AWS Glue, and related marks are trademarks of Amazon.com, Inc. or its affiliates.
Installation
Requires Python 3.11+. Install Docker for run, test, and gtk build --mode container; the Glue image is pulled on first use. Default gtk build uses host pip (--mode host).
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
tests/
test_example.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"
tests = "tests"
Then run:
cd my-glue-job
gtk build .
gtk run .
gtk test .
Configuration
Each job is a directory containing pyproject.toml. gtk reads the [project] and [tool.aws-glue-toolkit] fields in the table below. Other keys in the file are skipped. 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 (PEP 508: PyPI, file:, Git) |
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 |
tool.aws-glue-toolkit.tests |
no | tests |
Test directory, relative to the job root |
tool.aws-glue-toolkit.dependencies |
no | [] |
Extra PEP 508 strings merged after project.dependencies; recommended for relative file: paths |
Commands
[JOB-DIR] is the job directory (default .) on build, run, and test.
| Command | Usage |
|---|---|
| build | gtk build [JOB-DIR] [--mode host|container] |
| run | gtk run [JOB-DIR] [--platform native|worker] [args...] |
| test | gtk test [JOB-DIR] [--platform native|worker] [pytest args...] |
Run gtk COMMAND --help for flags and behavior (for example gtk build --help).
For build --mode container, run, and test, gtk snapshots the host pip configuration for pip inside the container.
Build artifacts
Use gtk build to verify dependencies against Glue runtime pins. It writes two zips under the job directory:
| File | Glue parameter | Contents |
|---|---|---|
{name}-{version}.dependencies.zip |
--extra-py-files |
.py files under source, except the entry script |
{name}-{version}.gluewheels.zip |
--additional-python-modules (Glue 5.0+) |
wheels/requirements.txt and *.whl per AWS Glue Appendix A |
Exit codes
Documented failure codes follow the Berkeley sysexits convention in the 64–78 band:
| Code | Meaning |
|---|---|
| 65 | Pip or dependency resolution failure (build, run, or test) |
| 66 | pyproject.toml missing or unreadable |
| 69 | Docker not available or could not be started |
| 70 | build only: zip or other packaging failure on the host |
| 78 | Invalid pyproject.toml, job layout (missing source, script, or tests directory), unsupported Glue version, or invalid dependency |
Success is 0; unhandled errors are 1. build uses the codes above. run and test return the container command’s exit code when pip install and the main command succeed (pytest exit code 1 means failing tests).
License
This project is licensed under the MIT License — see the LICENSE file for details.
Metadata
Release files for aws-glue-toolkit 0.5.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| aws_glue_toolkit-0.5.0.tar.gz | 27.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| aws_glue_toolkit-0.5.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 61.4 kB
Release files / aws_glue_toolkit-0.5.0.tar.gz
| Download URL | aws_glue_toolkit-0.5.0.tar.gz |
|---|---|
| Size | 27.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
50dec8f4f27e413393218cb10ed9fbac8afeba0f349f493535594559caff60ae
|
|
BLAKE2b-256 checksum How to use checksums |
1b932f779d40d16f252fd2196fd3b3fbe34a338f624f6801386ccfd27609c5ae
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency logRelease files / aws_glue_toolkit-0.5.0-py3-none-any.whl
| Download URL | aws_glue_toolkit-0.5.0-py3-none-any.whl |
|---|---|
| Size | 34.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9b1f9b6ebbf24ab7dcad6a3ded5b1a6be2e0ec973819f66a8e6faf9115782789
|
|
BLAKE2b-256 checksum How to use checksums |
65389677141910daa829211f82970ddb2b2ca0e01bc801445a74ccfc00c0a8a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 10, 2026.
Transparency log