{"id":23171206,"url":"https://github.com/octue/octue-sdk-python","last_synced_at":"2025-08-18T07:32:02.781Z","repository":{"id":37444181,"uuid":"85727675","full_name":"octue/octue-sdk-python","owner":"octue","description":"The python SDK for @Octue services and digital twins.","archived":false,"fork":false,"pushed_at":"2025-08-15T21:48:19.000Z","size":7889,"stargazers_count":10,"open_issues_count":100,"forks_count":4,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-08-15T23:36:48.788Z","etag":null,"topics":["data","data-service","data-service-development-kit","data-services","digital-twin","digital-twin-application","digital-twin-web","digital-twins","microservice","microservices","python","python3","renewable-energy","renewables","sdk","sdk-python","wind-energy","wind-energy-analytics"],"latest_commit_sha":null,"homepage":"https://octue.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/octue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing.md","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}},"created_at":"2017-03-21T16:35:04.000Z","updated_at":"2025-08-05T18:29:13.000Z","dependencies_parsed_at":"2023-01-30T04:45:19.000Z","dependency_job_id":"ac00d3bb-8199-45e8-8d7f-6e90fdffcbc7","html_url":"https://github.com/octue/octue-sdk-python","commit_stats":{"total_commits":3473,"total_committers":8,"mean_commits":434.125,"dds":"0.054419809962568344","last_synced_commit":"c4b41f69732a36e136d5d72789b4648e660a2b52"},"previous_names":[],"tags_count":245,"template":false,"template_full_name":null,"purl":"pkg:github/octue/octue-sdk-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octue%2Foctue-sdk-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octue%2Foctue-sdk-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octue%2Foctue-sdk-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octue%2Foctue-sdk-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/octue","download_url":"https://codeload.github.com/octue/octue-sdk-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/octue%2Foctue-sdk-python/sbom","scorecard":{"id":114230,"data":{"date":"2025-08-04","repo":{"name":"github.com/octue/octue-sdk-python","commit":"0dffbf3f4adc1771698943ad952749da8c0d2f84"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":5,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 1 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/2 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"License","score":9,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Warn: project license file does not contain an FSF or OSI license."],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Info: jobLevel 'actions' permission set to 'read': .github/workflows/codeql.yml:23","Info: jobLevel 'contents' permission set to 'read': .github/workflows/codeql.yml:24","Info: jobLevel 'contents' permission set to 'read': .github/workflows/python-ci.yml:78","Info: jobLevel 'contents' permission set to 'read': .github/workflows/release.yml:116","Info: jobLevel 'contents' permission set to 'read': .github/workflows/update-pull-request.yml:17","Warn: no topLevel permission defined: .github/workflows/add-issues-to-octue-board.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql.yml:1","Warn: no topLevel permission defined: .github/workflows/python-ci.yml:1","Warn: no topLevel permission defined: .github/workflows/release.yml:1","Warn: no topLevel permission defined: .github/workflows/update-pull-request.yml:1","Warn: no topLevel permission defined: .github/workflows/version-compatibility.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Packaging","score":10,"reason":"packaging workflow detected","details":["Info: Project packages its releases by way of GitHub Actions.: .github/workflows/python-ci.yml:72"],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"SAST","score":7,"reason":"SAST tool detected but not run on all commits","details":["Info: SAST configuration detected: CodeQL","Warn: 0 commits out of 29 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-fpfv-jqm9-f5jm","Warn: Project is vulnerable to: PYSEC-2020-73","Warn: Project is vulnerable to: GHSA-8qvm-5x2c-j2w7","Warn: Project is vulnerable to: GHSA-9hjg-9r4m-mvj7","Warn: Project is vulnerable to: GHSA-48p4-8xcf-vxj5","Warn: Project is vulnerable to: GHSA-pq67-6m6q-mj2v"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/add-issues-to-octue-board.yml:12: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/add-issues-to-octue-board.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:55: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/codeql.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql.yml:68: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/codeql.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:34: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:37: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:49: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:66: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/python-ci.yml:81: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:84: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/python-ci.yml:90: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/python-ci.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:41: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:46: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:53: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:70: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:82: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:88: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:100: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release.yml:120: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:125: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/release.yml:131: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/release.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/update-pull-request.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/update-pull-request.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/version-compatibility.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/version-compatibility.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/version-compatibility.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/version-compatibility.yml/main?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/version-compatibility.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/octue/octue-sdk-python/version-compatibility.yml/main?enable=pin","Warn: containerImage not pinned by hash: .devcontainer/Dockerfile:1: pin your Docker image by updating windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.13-dev to windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.13-dev@sha256:5ff341c84b33591bd38a97ceb36853d6cb6490281e18c24856da4b9986f6045e","Warn: containerImage not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python310:1: pin your Docker image by updating windpioneers/gdal-python:little-gecko-gdal-2.4.1-python-3.10-slim to windpioneers/gdal-python:little-gecko-gdal-2.4.1-python-3.10-slim@sha256:6be3e5d46c4dd506efce9c42e8fc9d90362f0ef7d13de714cc8d76cab1d1ed64","Warn: containerImage not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python311:1: pin your Docker image by updating windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.11-slim to windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.11-slim@sha256:a606d49386bf1d4851d702d44e1130e7b60c51bc2e098b3a9570c8e1e40617d6","Warn: containerImage not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python312:1: pin your Docker image by updating windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.12-slim to windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.12-slim@sha256:7c16a7137f12423b1410ecb398697597d6125c4bc9d5711f4314e6829573f4a0","Warn: containerImage not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python313:1: pin your Docker image by updating windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.13-slim to windpioneers/gdal-python:rational-swordtail-gdal-3.10.0-python-3.13-slim@sha256:66ac70c4886eab86e34d9726d4c94f5caf784e443de2e2e501d5f24ab5fc94a3","Warn: downloadThenRun not pinned by hash: .devcontainer/Dockerfile:18","Warn: downloadThenRun not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python310:14","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python310:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python310:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python310:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python310:33-35","Warn: downloadThenRun not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python311:14","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python311:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python311:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python311:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python311:33-35","Warn: downloadThenRun not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python312:14","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python312:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python312:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python312:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python312:33-35","Warn: downloadThenRun not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python313:14","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python313:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python313:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python313:33-35","Warn: pipCommand not pinned by hash: octue/twined/cloud/deployment/dockerfiles/Dockerfile-python313:33-35","Info:   0 out of  15 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of  14 third-party GitHubAction dependencies pinned","Info:   0 out of  16 pipCommand dependencies pinned","Info:   0 out of   5 containerImage dependencies pinned","Info:   0 out of   5 downloadThenRun dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}}]},"last_synced_at":"2025-08-15T23:36:53.942Z","repository_id":37444181,"created_at":"2025-08-15T23:36:53.942Z","updated_at":"2025-08-15T23:36:53.942Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270669171,"owners_count":24625433,"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-16T02:00:11.002Z","response_time":91,"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":["data","data-service","data-service-development-kit","data-services","digital-twin","digital-twin-application","digital-twin-web","digital-twins","microservice","microservices","python","python3","renewable-energy","renewables","sdk","sdk-python","wind-energy","wind-energy-analytics"],"created_at":"2024-12-18T04:16:45.344Z","updated_at":"2025-08-18T07:32:02.772Z","avatar_url":"https://github.com/octue.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![PyPI version](https://badge.fury.io/py/octue.svg)](https://badge.fury.io/py/octue)\n[![Release](https://github.com/octue/octue-sdk-python/actions/workflows/release.yml/badge.svg)](https://github.com/octue/octue-sdk-python/actions/workflows/release.yml)\n[![codecov](https://codecov.io/gh/octue/octue-sdk-python/branch/main/graph/badge.svg?token=4KdR7fmwcT)](https://codecov.io/gh/octue/octue-sdk-python)\n[![Documentation Status](https://readthedocs.org/projects/octue-python-sdk/badge/?version=latest)](https://octue-python-sdk.readthedocs.io/en/latest/?badge=latest)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.10961975.svg)](https://doi.org/10.5281/zenodo.10961975)\n\n# Octue Python SDK \u003cimg src=\"./docs/source/images/213_purple-fruit-snake-transparent.gif\" alt=\"Purple Fruit Snake\" width=\"100\"/\u003e\u003c/span\u003e\n\nThe python SDK for running [Octue](https://octue.com) data services, digital twins, and applications - get faster data\ngroundwork so you have more time for the science!\n\nRead the docs [here.](https://octue-python-sdk.readthedocs.io/en/latest/)\n\nUses our [twined](https://twined.readthedocs.io/en/latest/) library for data validation.\n\n## Installation and usage\n\nTo install, run one of:\n\n```shell\npip install octue\n```\n\n```shell\npoetry add octue\n```\n\nThe command line interface (CLI) can then be accessed via:\n\n```shell\noctue --help\n```\n\n```text\nUsage: octue [OPTIONS] COMMAND [ARGS]...\n\n  The CLI for the Octue SDK. Use it to start an Octue data service or digital\n  twin locally or run an analysis on one locally.\n\n  Read more in the docs: https://octue-python-sdk.readthedocs.io/en/latest/\n\nOptions:\n  --id UUID                       UUID of the analysis being undertaken. None\n                                  (for local use) will cause a unique ID to be\n                                  generated.\n  --logger-uri TEXT               Stream logs to a websocket at the given URI.\n  --log-level [debug|info|warning|error]\n                                  Log level used for the analysis.  [default:\n                                  info]\n  --force-reset / --no-force-reset\n                                  Forces a reset of analysis cache and outputs\n                                  [For future use, currently not implemented]\n                                  [default: force-reset]\n  --version                       Show the version and exit.\n  -h, --help                      Show this message and exit.\n\nCommands:\n  deploy  Deploy a python app to the cloud as an Octue service or digital...\n  run     Run an analysis on the given input data using an Octue service...\n  start   Start an Octue service or digital twin locally as a child so it...\n```\n\n## Deprecated code\n\nWhen code is deprecated, it will still work but a deprecation warning will be issued with a suggestion on how to update\nit. After an adjustment period, deprecations will be removed from the codebase according to the [code removal schedule](https://github.com/octue/octue-sdk-python/issues/415).\nThis constitutes a breaking change.\n\n## Developer notes\n\n### Installation\n\nWe use [Poetry](https://python-poetry.org/) as our package manager. For development, run the following from the\nrepository root, which will editably install the package:\n\n```shell\npoetry install --all-extras\n```\n\nThen run the tests to check everything's working.\n\n### Testing\n\nThese environment variables need to be set to run the tests:\n\n- `GOOGLE_APPLICATION_CREDENTIALS=/absolute/path/to/service/account/file.json`\n\nThen, from the repository root, run\n\n```shell\npython3 -m unittest\n```\n\n## Contributing\n\nTake a look at our [contributing](/docs/contributing.md) page.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctue%2Foctue-sdk-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foctue%2Foctue-sdk-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foctue%2Foctue-sdk-python/lists"}