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.0.0.tar.gz (65.1 kB view details)

Uploaded Source

Built Distribution

fate_scheduler-1.0.0-py3-none-any.whl (87.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: fate_scheduler-1.0.0.tar.gz
  • Upload date:
  • Size: 65.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for fate_scheduler-1.0.0.tar.gz
Algorithm Hash digest
SHA256 55e17c692007d200add68baa8e354df504d73ad6de517606ca94a4f661860dbf
MD5 65c65358063b1b59fa34934fcdf3dea8
BLAKE2b-256 30dbf4d9b6cca624a34c37dbe1cf18e753d0fefdf4c6870ac34a5856df9e313a

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on internet-equity/fate

Attestations:

File details

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

File metadata

File hashes

Hashes for fate_scheduler-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d074f8ef078fe77c8ec5fc13763598ca04572280d403afcbb11cb8b6a1618726
MD5 893342ebf33e5d47fd529eae80f1996c
BLAKE2b-256 f6c8baea03ddd89549f46540a7d8a8a78949827c200b63a7e74ab42ea163d008

See more details on using hashes here.

Provenance

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

Publisher: publish.yml on internet-equity/fate

Attestations:

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