Skip to main content

Workflows made easy, the agnostic way

Project description

Ergate

Workflows made easy, the agnostic way.

[!NOTE] There's plenty of more features that aren't yet documented. For example, Ergate supports dependency injection via Depends(...) in a similar way to FastAPI. Feel free to open a GitHub issue if you have any questions while we work on adding documentation to the project.

Simple example usage

from ergate import Ergate, Job, Workflow

class WorkerQueue:
    def get_one(self) -> Job:
        ...  # You implement this

    def put(self, job: Job) -> None:
        ...  # You implement this

class JobStateStore:
    def update(self, job: Job) -> None:
        ...  # You implement this


workflow = Workflow(unique_name="my_first_workflow")

@workflow.step
def say_hi() -> None:
    print("Hello world")

@workflow.step
def say_bye() -> None:
    print("Goodbye world")

app = Ergate(queue=WorkerQueue(), job_state_store=JobStateStore())
app.register_workflow(workflow)

if __name__ == "__main__":
    app.run()

Acknowledgements

  • Ziply Fiber: For giving me the initial idea to create this project and allowing me to turn it into a personal, open-source project.
  • FastAPI: For inspiring me on the implementation of a bunch of the features supported by Ergate (such as the use of Depends for argument injection).
  • Sanic: For getting me originally into the open-source world and for their use of unique names in blueprints (similar to workflows in Ergate).

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

ergate-0.0.dev0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

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

ergate-0.0.dev0-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file ergate-0.0.dev0.tar.gz.

File metadata

  • Download URL: ergate-0.0.dev0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.8

File hashes

Hashes for ergate-0.0.dev0.tar.gz
Algorithm Hash digest
SHA256 a72fbc680f6cb1b2f0e99f3b7b065a9ea6bc111984dd25bc4d452c6fb63631d6
MD5 65b041a63a4346ed61eaf51bbfd13402
BLAKE2b-256 0d1564c6fb1a814916a871eb900d66e03a6db140dad67c47aed8cd8080260cc7

See more details on using hashes here.

File details

Details for the file ergate-0.0.dev0-py3-none-any.whl.

File metadata

  • Download URL: ergate-0.0.dev0-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.11.8

File hashes

Hashes for ergate-0.0.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 d85b86e936e1c7cee7880f3b1111e0ab246f2868ef04bc7b26b072e35a6c9076
MD5 c03dd59e5bd44304f067058fa7bd44c1
BLAKE2b-256 d0e24096d5876880bde0003632d5be2744ebefe984b4647f72ec8ebf99c56faf

See more details on using hashes here.

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