Skip to main content

Make it so.

Project description

“Make it so.”Captain Jean-Luc Picard

Build status Documentation status Latest PyPI version Python versions supported

The idea of Ansible with the execution of Make.

With Picard, you define a set of targets, each with a recipe that leaves it in a desired state, e.g. a compiled executable or a running service. Targets may depend on each other, e.g. “this executable depends on that source file” or “this service depends on that host”, in a directed acyclic graph. Like Make, Picard executes the recipes for targets in dependency order.

Like Ansible, Picard comes with many sophisticated recipes out-of-the-box that behave like rsync: they find the differences between a target’s present state and its goal state, and execute just the changes necessary to transition from the first to the second.

Make is limited to considering targets on the local filesystem, while Ansible can consider more general targets and states, e.g. the existence and configuration of remote machines. Ansible’s input is a rigid declarative template (based on Jinja), while Make’s input is an executable script that builds the abstract definitions of the targets and gets to leverage functions and variables. Picard tries to combine the best of both worlds in pure Python.

Help

Please see the documentation on Read the Docs.

If you have any questions, please ask me in the issues, by email, over Twitter, or however you want to reach me. I’ll be happy to help you, because it will help me make this documentation better for the next reader.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

picard.py-0.1.2.tar.gz (12.0 kB view details)

Uploaded Source

Built Distribution

picard.py-0.1.2-py3-none-any.whl (30.8 kB view details)

Uploaded Python 3

File details

Details for the file picard.py-0.1.2.tar.gz.

File metadata

  • Download URL: picard.py-0.1.2.tar.gz
  • Upload date:
  • Size: 12.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.10 CPython/3.6.7 Linux/4.15.0-42-generic

File hashes

Hashes for picard.py-0.1.2.tar.gz
Algorithm Hash digest
SHA256 6e296aa1a065e6790ab04cccdee0794eac9fd1e14e0daed6850c1d190622521b
MD5 b9ea93e78ad30e8c256fde654b61ab59
BLAKE2b-256 290a044f3daa75841b5d9dd6da36ba201cb5d9186c42cfd26510adc8dc1f5df8

See more details on using hashes here.

File details

Details for the file picard.py-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: picard.py-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 30.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/0.12.10 CPython/3.6.7 Linux/4.15.0-42-generic

File hashes

Hashes for picard.py-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 19f53df136284f4d0b3430d94c4299eca278df48c2bd581fd4d218d69f14ff24
MD5 938783b37ed891cc778ece95b8130b59
BLAKE2b-256 9da446f08206cf0a1feddcc4e24f3b78158a9095998dfe3f850093c53bd3f585

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page