{"id":18302291,"url":"https://github.com/outscale/osc-sdk-python","last_synced_at":"2026-05-11T09:55:03.905Z","repository":{"id":37930670,"uuid":"190581903","full_name":"outscale/osc-sdk-python","owner":"outscale","description":"Python SDK to perform actions on Outscale API.","archived":false,"fork":false,"pushed_at":"2026-05-11T07:35:46.000Z","size":543,"stargazers_count":6,"open_issues_count":3,"forks_count":10,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-05-11T09:35:30.794Z","etag":null,"topics":["maturity-graduated","outscale","python","renovate","sdk"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/outscale.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2019-06-06T12:59:07.000Z","updated_at":"2026-05-07T07:49:05.000Z","dependencies_parsed_at":"2024-01-16T12:40:51.122Z","dependency_job_id":"b3dd76f4-0598-4261-bcb8-2cbf4fb44ff0","html_url":"https://github.com/outscale/osc-sdk-python","commit_stats":null,"previous_names":[],"tags_count":48,"template":false,"template_full_name":null,"purl":"pkg:github/outscale/osc-sdk-python","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-sdk-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-sdk-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-sdk-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-sdk-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/outscale","download_url":"https://codeload.github.com/outscale/osc-sdk-python/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/outscale%2Fosc-sdk-python/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32889971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-10T13:40:02.631Z","status":"online","status_checked_at":"2026-05-11T02:00:05.975Z","response_time":120,"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":["maturity-graduated","outscale","python","renovate","sdk"],"created_at":"2024-11-05T15:18:55.182Z","updated_at":"2026-05-11T09:55:03.051Z","avatar_url":"https://github.com/outscale.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Project Graduated](https://docs.outscale.com/fr/userguide/_images/Project-Graduated-green.svg)](https://docs.outscale.com/en/userguide/Open-Source-Projects.html) [![](https://dcbadge.limes.pink/api/server/HUVtY5gT6s?style=flat\u0026theme=default-inverted)](https://discord.gg/HUVtY5gT6s)\n\n# Outscale Python SDK\n\n\u003cp align=\"center\"\u003e\n  \u003cimg alt=\"Outscale Python SDK\" src=\"https://img.icons8.com/?size=100\u0026id=2866\u0026format=png\u0026color=000000\" width=\"100px\"\u003e\n\u003c/p\u003e\n\n---\n\n## 🌐 Links\n\n- Documentation: \u003chttps://docs.outscale.com/api.html?python#3ds-outscale-api\u003e\n- Project repository: \u003chttps://github.com/outscale/osc-sdk-python\u003e\n- Outscale website: \u003chttps://outscale.com/\u003e\n- Join our community on [Discord](https://discord.gg/HUVtY5gT6s)\n\n---\n\n## 📄 Table of Contents\n\n- [Overview](#-overview)\n- [Requirements](#-requirements)\n- [Installation](#-installation)\n- [Configuration](#-configuration)\n- [Usage](#-usage)\n- [Examples](#-examples)\n- [Known Issues \u0026 Troubleshooting](#-known-issues--troubleshooting)\n- [License](#-license)\n- [Contributing](#-contributing)\n\n---\n\n## 🧭 Overview\n\n**Outscale Python SDK** (`osc-sdk-python`) is the official Python SDK to interact with the [OUTSCALE API](https://docs.outscale.com/api.html?python#3ds-outscale-api).\n\nIt allows you to:\n\n- Configure multiple profiles through environment variables or credential files.\n- Customize retry and rate-limit behavior.\n- Enable detailed logging of requests and responses.\n\nYou will need an Outscale account and API credentials. If you do not have one yet, please visit the [Outscale website](https://outscale.com/).\n\n---\n\n## ✅ Requirements\n\n- Python 3.x\n- `pip` (Python package manager)\n- Access to the OUTSCALE API (valid access key / secret key or basic auth)\n- Network access to the Outscale API endpoints\n\n---\n\n## ⚙ Installation\n\n### Option 1: Install from PyPI\n\nInstall the pre-built Python package:\n\n```bash\npip install osc-sdk-python\n````\n\n### Option 2: Install from source\n\nClone the repository and build the package:\n\n```bash\ngit clone https://github.com/outscale/osc-sdk-python.git\ncd osc-sdk-python\nmake package\n```\n\nThen install the built wheel:\n\n```bash\npip install dist/osc_sdk_python-0.41.0-py3-none-any.whl\n```\n\n---\n\n## 🛠 Configuration\n\nWhen you use the SDK, you can choose a **profile**. Profiles can be defined via **environment variables** or in a **credentials file**.\nEnvironment variables take precedence over files.\n\nIn the credentials file, you can set a default profile named `default`. It will be used if you do not explicitly specify a profile.\n\n### Environment variables\n\nThe SDK understands the following environment variables:\n\n```bash\nexport OSC_PROFILE=\u003cPROFILE\u003e            # default: \"default\"\n\n# or explicit credentials:\nexport OSC_ACCESS_KEY=\u003cACCESS_KEY\u003e\nexport OSC_SECRET_KEY=\u003cSECRET_KEY\u003e\n\n# optional:\nexport OSC_REGION=\u003cREGION\u003e              # default: eu-west-2\nexport OSC_MAX_RETRIES=\u003cINT\u003e            # default: 3\nexport OSC_RETRY_BACKOFF_FACTOR=\u003cFLOAT\u003e # default: 1.0\nexport OSC_RETRY_BACKOFF_JITTER=\u003cFLOAT\u003e # default: 3.0\nexport OSC_RETRY_BACKOFF_MAX=\u003cFLOAT\u003e    # default: 30\n```\n\n### Credentials files\n\nBy default, the SDK looks for a JSON configuration file at `~/.osc/config.json`.\n\nExample:\n\n```json\n{\n  \"default\": {\n    \"access_key\": \"\u003cACCESS_KEY\u003e\",\n    \"secret_key\": \"\u003cSECRET_KEY\u003e\",\n    \"region\": \"\u003cREGION\u003e\"\n  },\n  \"profile_1\": {\n    \"access_key\": \"\u003cACCESS_KEY\u003e\",\n    \"secret_key\": \"\u003cSECRET_KEY\u003e\",\n    \"region\": \"\u003cREGION\u003e\"\n  },\n  \"profile_2\": {\n    \"access_key\": \"\u003cACCESS_KEY\u003e\",\n    \"secret_key\": \"\u003cSECRET_KEY\u003e\",\n    \"region\": \"\u003cREGION\u003e\"\n  }\n}\n```\n\nNotes:\n\n* Environment variables have priority over credentials files.\n\n### Basic Authentication\n\nYou can also use `osc-sdk-python` with **basic authentication** using your account email and password.\nNote that some API calls may be blocked with this method. See the [authentication documentation](https://docs.outscale.com/api#authentication) for more details.\n\nExample:\n\n```python\nfrom osc_sdk_python import Gateway\n\nwith Gateway(email=\"your@email.com\", password=\"yourAccountPassword\") as gw:\n    keys = gw.ReadAccessKeys()\n```\n\n### Retry Options\n\nThe following options can be provided when initializing the `Gateway` to customize the retry behavior of the SDK:\n\n* `max_retries` (integer, default `3`)\n* `retry_backoff_factor` (float, default `1.0`)\n* `retry_backoff_jitter` (float, default `3.0`)\n* `retry_backoff_max` (float, default `30`)\n\nThese correspond to their counterparts in [`urllib3.util.Retry`](https://urllib3.readthedocs.io/en/stable/reference/urllib3.util.html#urllib3.util.Retry).\n\nExample:\n\n```python\nfrom osc_sdk_python import Gateway\n\ngw = Gateway(\n    max_retries=5,\n    retry_backoff_factor=0.5,\n    retry_backoff_jitter=1.0,\n    retry_backoff_max=120,\n)\n```\n\n### Rate Limit Options\n\nYou can also configure rate limiting when initializing the `Gateway`:\n\n* `limiter_max_requests` (integer, default `5`)\n* `limiter_window` (integer, default `1`)\n\nExample:\n\n```python\nfrom osc_sdk_python import Gateway\n\ngw = Gateway(\n    limiter_max_requests=20,\n    limiter_window=5,\n)\n```\n\nMore usage patterns and logging examples are documented in:\n\n* [docs/examples.md](docs/examples.md)\n\n---\n\n## 🧪 Examples\n\nSome example topics covered in `docs/examples.md`:\n\n* Listing VMs and volumes\n* Using profiles and regions\n* Raw calls with `gw.raw(\"ActionName\", **params)`\n* Enabling and reading logs\n\n---\n\n## 🧩 Known Issues \u0026 Troubleshooting\n\nCommon issues (such as UTF-8 / locale errors when reading the API spec) and their workarounds are documented in:\n\n* [docs/troubleshooting.md](docs/troubleshooting.md)\n\n---\n\n## 📜 License\n\n**Outscale Python SDK** is released under the BSD-3-Clause.\n\n© 2025 OUTSCALE SAS\n\nSee [LICENSE](./LICENSE) for full details.\n\n---\n\n## 🤝 Contributing\n\nWe welcome contributions!\n\nPlease read our [Contributing Guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) before submitting a pull request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutscale%2Fosc-sdk-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foutscale%2Fosc-sdk-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foutscale%2Fosc-sdk-python/lists"}