{"id":21721354,"url":"https://github.com/informaticsmatters/squonk2-data-manager-job-utilities","last_synced_at":"2025-08-23T05:32:57.231Z","repository":{"id":62570608,"uuid":"455210089","full_name":"InformaticsMatters/squonk2-data-manager-job-utilities","owner":"InformaticsMatters","description":"Python-based utilities for Data Manager Jobs","archived":false,"fork":false,"pushed_at":"2024-03-20T15:12:31.000Z","size":37,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-23T05:32:11.616Z","etag":null,"topics":["squonk2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/InformaticsMatters.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2022-02-03T15:04:45.000Z","updated_at":"2022-09-17T12:02:25.000Z","dependencies_parsed_at":"2025-01-25T18:42:07.912Z","dependency_job_id":"a0686429-4d94-4ccf-9598-9f5467468550","html_url":"https://github.com/InformaticsMatters/squonk2-data-manager-job-utilities","commit_stats":{"total_commits":11,"total_committers":2,"mean_commits":5.5,"dds":0.09090909090909094,"last_synced_commit":"1131361b7271452880b78f9fc0626f747cd62071"},"previous_names":["informaticsmatters/data-manager-job-utilities"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/InformaticsMatters/squonk2-data-manager-job-utilities","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-utilities","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-utilities/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-utilities/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-utilities/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/InformaticsMatters","download_url":"https://codeload.github.com/InformaticsMatters/squonk2-data-manager-job-utilities/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/InformaticsMatters%2Fsquonk2-data-manager-job-utilities/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271745600,"owners_count":24813509,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-23T02:00:09.327Z","response_time":69,"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":["squonk2"],"created_at":"2024-11-26T02:16:00.085Z","updated_at":"2025-08-23T05:32:57.187Z","avatar_url":"https://github.com/InformaticsMatters.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"Informatics Matters Data Manager Job Utilities\n==============================================\n\n.. image:: https://badge.fury.io/py/im-data-manager-job-utilities.svg\n   :target: https://badge.fury.io/py/im-data-manager-job-utilities\n   :alt: PyPI package (latest)\n\n.. image:: https://github.com/InformaticsMatters/squonk2-data-manager-job-utilities/actions/workflows/build.yaml/badge.svg\n   :target: https://github.com/InformaticsMatters/squonk2-data-manager-job-utilities/actions/workflows/build.yaml\n   :alt: Build\n\n.. image:: https://github.com/InformaticsMatters/squonk2-data-manager-job-utilities/actions/workflows/publish.yaml/badge.svg\n   :target: https://github.com/InformaticsMatters/squonk2-data-manager-job-utilities/actions/workflows/publish.yaml\n   :alt: Publish\n\nA Python 2/3 package that simplifies the generation of *events* and *cost*\nlines written to a **Squonk2 Job** stdout stream.\n\nThe following utilities are available: -\n\n- ``DmLog.emit_event()``\n- ``DmLog.emit_cost()``\n\nA number of miscellaneous utilities are also included. These have been\nextracted form the squonk2 virtual-screening ``utils.py`` module and moved\nhere into ``utils.py``.\n\nInstallation (Python)\n=====================\n\nThe Job utilities are published on `PyPI`_ and can be installed from\nthere::\n\n    pip install im-data-manager-job-utilities\n\nOnce installed you can use the available classes::\n\n    \u003e\u003e\u003e from dm_job_utilities.dm_log import DmLog\n    \u003e\u003e\u003e DmLog.emit_event('Hello World!')\n    2022-02-03T16:39:27+00:00 # INFO -EVENT- Hello World!\n    \u003e\u003e\u003e from decimal import Decimal\n    \u003e\u003e\u003e DmLog.emit_cost(Decimal('5.7'))\n    2022-02-03T16:40:16+00:00 # INFO -COST- 5.7 1\n\n\nCosts are *total* by default but can be issued as an incremental value::\n\n    \u003e\u003e\u003e DmLog.emit_cost(Decimal('0.5'), incremental=True)\n    2022-02-03T16:40:16+00:00 # INFO -COST- +0.5 2\n\n\nThe final value on each cost line is a unique sequence number. This value\nis typically an integer that increments with each line. It is required and\nis used by the Data Manager to avoid duplicating costs.\n\nThe Data Manager uses the `python-dateutil`_ package to parse\ndates and times from the generated log lines. The package is extremely\ntolerant of many formats but if you are in control of the\nstring, the preferred format would be to use a classic UTC ISO string like\n``%Y-%m-%dT%H:%M:%S%z`` so that the date and time is written as::\n\n    2022-03-20T10:49:41+00:00\n\n.. _PyPI: https://pypi.org/project/im-data-manager-job-utilities\n.. _python-dateutil: https://pypi.org/project/python-dateutil\n\nGet in touch\n============\n\n- Report bugs, suggest features or view the source code `on GitHub`_.\n\n.. _on GitHub: https://github.com/informaticsmatters/squonk2-data-manager-job-utilities\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Fsquonk2-data-manager-job-utilities","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finformaticsmatters%2Fsquonk2-data-manager-job-utilities","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finformaticsmatters%2Fsquonk2-data-manager-job-utilities/lists"}