{"id":50851782,"url":"https://github.com/rodmena-limited/python-absurd-client","last_synced_at":"2026-06-14T14:03:25.035Z","repository":{"id":323583848,"uuid":"1093899393","full_name":"rodmena-limited/python-absurd-client","owner":"rodmena-limited","description":"Python client for Absurd durable execution system","archived":false,"fork":false,"pushed_at":"2025-11-30T01:26:15.000Z","size":6164,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-14T14:03:20.864Z","etag":null,"topics":["durable-execution","highway","pypi","pypi-package","python-p","workflow-engine"],"latest_commit_sha":null,"homepage":"https://python-absurd-client.readthedocs.io/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rodmena-limited.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-11-11T01:47:50.000Z","updated_at":"2025-11-30T01:26:19.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/rodmena-limited/python-absurd-client","commit_stats":null,"previous_names":["rodmena-limited/python-absurd-client"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/rodmena-limited/python-absurd-client","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodmena-limited%2Fpython-absurd-client","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodmena-limited%2Fpython-absurd-client/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodmena-limited%2Fpython-absurd-client/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodmena-limited%2Fpython-absurd-client/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rodmena-limited","download_url":"https://codeload.github.com/rodmena-limited/python-absurd-client/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rodmena-limited%2Fpython-absurd-client/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34324004,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["durable-execution","highway","pypi","pypi-package","python-p","workflow-engine"],"created_at":"2026-06-14T14:03:21.181Z","updated_at":"2026-06-14T14:03:25.029Z","avatar_url":"https://github.com/rodmena-limited.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# WARNING:\nDEPRECATED: This package is deprecated and is no longer maintained. Please consider using alternative solutions for your workflow management needs.\n\n# Absurd Python Client\n\nA Python client for the [Absurd SQL-based durable execution workflow system](https://github.com/earendil-works/absurd). This library provides a Python interface to interact with Absurd's PostgreSQL-based task queue and workflow engine.\n\n## Installation\n\n```bash\npip install absurd\n```\n\n## Quick Start\n\n```python\nimport psycopg\nfrom absurd_client import AbsurdClient\n\n# Create a client instance\nclient = AbsurdClient(queue_name=\"my_queue\")\n\n# Connect to your PostgreSQL database and spawn a task\nwith psycopg.connect(\"your_connection_string\") as conn:\n    # Spawn a new task\n    task_id, run_id, workflow_run_id = client.spawn_task(\n        conn=conn,\n        task_name=\"process_data\",\n        params={\"input\": \"data\"}\n    )\n\n    print(f\"Spawned task: {task_id}\")\n\n    # Claim and process tasks\n    claimed_tasks = client.claim_task(conn)\n    for task_data in claimed_tasks:\n        run_id, task_id, attempt, task_name, params, *_ = task_data\n\n        try:\n            # Process the task\n            result = {\"processed\": params}\n            \n            # Mark as completed\n            client.complete_task(conn, run_id, result)\n            print(f\"Task {task_id} completed successfully\")\n        except Exception as e:\n            # Mark as failed\n            client.fail_task(conn, run_id, str(e))\n            print(f\"Task {task_id} failed: {e}\")\n```\n\n## Highway DSL Integration\n\nThe [highway-dsl](https://github.com/rodmena-limited/highway_dsl) package provides a Python-based domain-specific language for defining complex workflows that fully supports Absurd:\n\n```python\nfrom highway_dsl import WorkflowBuilder, RetryPolicy\nfrom datetime import timedelta\n\n# Create a workflow with Highway DSL\nworkflow = (\n    WorkflowBuilder(\"data_pipeline\")\n    .task(\"extract\", \"etl.extract_data\", result_key=\"raw_data\")\n    .task(\"transform\", \"etl.transform_data\", args=[\"{{raw_data}}\"], result_key=\"transformed_data\")\n    .task(\"load\", \"etl.load_data\", args=[\"{{transformed_data}}\"])\n    .build()\n)\n\n# Export to YAML for use with Absurd\nprint(workflow.to_yaml())\n```\n\n## Features\n\n- Task queuing and processing\n- Event-driven workflow coordination\n- Checkpoint-based state management\n- Retry strategies and failure handling\n- Workflow run tracking\n- Connection pooling for production environments\n- Support for complex workflow patterns\n\n## Configuration\n\nThe client supports the following environment variables:\n\n- `ABSURD_DEFAULT_QUEUE`: Default queue name (default: `absurd_default`)\n- `ABSURD_WORKER_ID`: Default worker ID (default: `absurd_worker_1`)\n\n## Support\n\nFor support, please open an issue in the [GitHub repository](https://github.com/rodmena-limited/python-absurd-client).\n\n\n## DISCLAIMER\n\nThis package has no affiliation with the original Absurd project or its maintainers. It is an independent implementation designed to work with the Absurd system. Use at your own risk.\nAlso this package is not approved or endorsed by the original Absurd project or its maintainers.\nI built this as part of HIGHWAY workflow engine, but decided not to use Absurd in the end due to various limitations and issues I encountered in its design and implementation.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodmena-limited%2Fpython-absurd-client","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frodmena-limited%2Fpython-absurd-client","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frodmena-limited%2Fpython-absurd-client/lists"}