Skip to main content

The operating system-level command scheduler and manager.

Project description

= Fate

The operating system-level command scheduler and manager.

TODO: Objectives/justifications; features; installation and quick start-up....

== Creating tasks

Fate tasks are merely executables available through the file system. Tasks abiding by the framework's expectations may be added with a minimum of effort.

=== The contract

TODO

=== Testing

==== execute

Any executable may be invoked (with optional arguments) by the Fate `execute` command:

[source,sh]
----
fate debug execute [options] command [arguments]
----

The above generates an execution report for use in development and debugging.

Options such as `-i|--stdin` may be useful to supply measurment parameters to the executable according to the link:#_the_contract[framework's contract].

==== run

Once added to Fate configuration, executables become _tasks_. These may be invoked ad-hoc by the `run` command:

[source,sh]
----
fate debug run [options] task
----

The options and output of the `run` command are similar to those of `execute`.

Unlike with scheduled tasks, the results of tasks performed by `run` are not, by default, persisted to file. Either specify option `--record` to capture these as configured, or option `--stdout` to capture these at an arbitrary path.

== Development

=== Extending the framework

==== Set-up

Fate is implemented in https://www.python.org/[Python] and the framework's distribution is managed via https://python-poetry.org/[Poetry].

*Python v3.10* may be supplied by an operating system package manager, by https://www.python.org/[python.org], or by a utility such as https://github.com/pyenv/pyenv[pyenv]; pyenv is _recommended_ for development but _not required_.

With Python installed, *Poetry* may be installed https://python-poetry.org/docs/#installation[according to its instructions].

TIP: If you are managing your own virtual environment, _e.g._ via https://github.com/pyenv/pyenv-virtualenv[pyenv-virtualenv], then this step may be as simple as `pip install poetry`. However, this tooling is not required, and Poetry offers its own automated set-up, as well as management of virtual environments.

Finally, from the root directory of a repository clone, the framework may be installed in development mode:

[source,sh]
----
poetry install
----

NOTE: Poetry will use any existing, activated virtual environment, or create its own into which dependencies will be installed.

The `fate` command is now available for use in your development environment.

[IMPORTANT]
====
For simplicity, it will be presumed that `fate` is available on your `PATH`. However, this depends upon activation of your virtual environment.

A virtual environment under management by Poetry may be activated via sub-shell with:

[source,sh]
----
poetry shell
----

Alternatively, any command installed into Poetry's virtual environment may be executed ad-hoc via the `run` command:

[source,sh]
----
poetry run fate ...
----
====

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

fate_scheduler-1.1.0.tar.gz (62.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

fate_scheduler-1.1.0-py3-none-any.whl (87.8 kB view details)

Uploaded Python 3

File details

Details for the file fate_scheduler-1.1.0.tar.gz.

File metadata

  • Download URL: fate_scheduler-1.1.0.tar.gz
  • Upload date:
  • Size: 62.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for fate_scheduler-1.1.0.tar.gz
Algorithm Hash digest
SHA256 ec1d03a116a87cdd6bcb4572fe08c4f045296d210172d278aae38267c3490f65
MD5 b113521923f0a5a1ff62178f2cb1b032
BLAKE2b-256 cb4fd4f29d5bbc7f0cc0af9e648237ae305cc3c48da7899ad7c0e157196cff02

See more details on using hashes here.

Provenance

The following attestation bundles were made for fate_scheduler-1.1.0.tar.gz:

Publisher: publish.yml on internet-equity/fate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file fate_scheduler-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: fate_scheduler-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 87.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.12.8

File hashes

Hashes for fate_scheduler-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 6104b70bd5262b8b40e8bf759936984137a37e6c6d5020f5605d5299ea244a20
MD5 ff3731d10843085a426a6e25366466cb
BLAKE2b-256 dd71317f3a7213b3e308ef3bfd9010827359b1279ed344cdd90c04d43bc940b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for fate_scheduler-1.1.0-py3-none-any.whl:

Publisher: publish.yml on internet-equity/fate

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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