Skip to main content

tackle

pypi python codecov

tackle is an experimental DSL built as a fork of cookiecutter written in documents such as json, yaml, or toml with primitives of a general purpose programming language including functions, structs, methods, and types with rich control flow. It turns a config file into self documenting CLI in a concise declarative syntax.

Core to the language is the notion of a hook which is a pydantic BaseModel under the hood. These hooks can be created, called, or combined in documents and / or python with inheritance and composition. Tackle ships with over 100 native hooks to perform rudimentary tasks from prompting users for CLI inputs, reading / manipulating / writing data to and from files, to rendering templates for code generation / schema translations.

Major syntax changes will be made before the language is officially released and thus using the language is discouraged without reaching out first by leaving issues in this repo. A formal spec is under active development but has sort of taken the back seat while Rob is working on sudoblock.

=< v0.6.0

greeter(target str = 'world')<-:
  ->: print Hello {{target}}

Future

def greeter(target str = 'world'):
  =: print Hello {{target}}

When the syntax is stable, this project will be formally released. Please reach out via discord if you want to talk directly about it in the meantime.

Code of Conduct

Everyone interacting in the tackle project's codebases, issue trackers, chat rooms, and mailing lists is expected to follow the PyPA Code of Conduct.

Credit

Special thanks to audreyfeldroy for creating cookiecutter, the basis for this project. Would not have been possible without it and other core dependencies like pydantic and jinja.

Metadata

Release files for tackle 0.7.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tackle 0.7.6
File Size Uploaded
tackle-0.7.6.tar.gz 262.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for tackle 0.7.6
File Interpreter ABI Platform
tackle-0.7.6-py2.py3-none-any.whl Python 3, Python 2 none any Details

Total release size: 558.7 kB

Release files / tackle-0.7.6.tar.gz

Download URL tackle-0.7.6.tar.gz
Size 262.3 kB
Tags Source
SHA-256 checksum
How to use checksums
fa307f7a496111a235ea62da6e83ec41dff4874523c64cc3bd47431da4d3d520
BLAKE2b-256 checksum
How to use checksums
66fa76db2131062a521925b4bcee7bcd37f6806ff05cb589fb4024ac76472479
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.19

Release files / tackle-0.7.6-py2.py3-none-any.whl

Download URL tackle-0.7.6-py2.py3-none-any.whl
Size 296.4 kB
Tags Python 2 Python 3
SHA-256 checksum
How to use checksums
34767576b6153114206afba967aae3446030737e072a1e38d5319775852c768b
BLAKE2b-256 checksum
How to use checksums
eee1d104babe24767cf3537518e9438b102b01a29098ae6414103c126108d670
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.10.19

Release history Release notifications | RSS feed

This release

0.7.6 This release

2 release files

0.7.5

2 release files

0.7.4

2 release files

0.7.3

2 release files

0.7.2

2 release files

0.7.1

2 release files

0.7.0

2 release files

0.6.1

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.11

2 release files

0.4.10

2 release files

0.4.9

2 release files

0.4.8

2 release files

0.4.7

2 release files

0.4.6

2 release files

0.4.5

2 release files

0.4.4

2 release files

0.4.3

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page