# Hetzner Cloud Python
[![](https://github.com/hetznercloud/hcloud-python/actions/workflows/test.yml/badge.svg)](https://github.com/hetznercloud/hcloud-python/actions/workflows/test.yml)
[![](https://github.com/hetznercloud/hcloud-python/actions/workflows/lint.yml/badge.svg)](https://github.com/hetznercloud/hcloud-python/actions/workflows/lint.yml)
[![](https://codecov.io/github/hetznercloud/hcloud-python/graph/badge.svg?token=3YGRqB5t1L)](https://codecov.io/github/hetznercloud/hcloud-python/tree/main)
[![](https://readthedocs.org/projects/hcloud-python/badge/?version=latest)](https://hcloud-python.readthedocs.io)
[![](https://img.shields.io/pypi/pyversions/hcloud.svg)](https://pypi.org/project/hcloud/)
Official Hetzner Cloud python library.
The library's documentation is available at [hcloud-python.readthedocs.io](https://hcloud-python.readthedocs.io), the public API documentation is available at [docs.hetzner.cloud](https://docs.hetzner.cloud).
## Usage
Install the `hcloud` library:
```sh
pip install hcloud
```
For more installation details, please see the [installation docs](https://hcloud-python.readthedocs.io/en/stable/installation.html).
Here is an example that creates a server and list them:
```python
from hcloud import Client
from hcloud.images import Image
from hcloud.server_types import ServerType
client = Client(token="{YOUR_API_TOKEN}") # Please paste your API token here
# Create a server named my-server
response = client.servers.create(
name="my-server",
server_type=ServerType(name="cx22"),
image=Image(name="ubuntu-22.04"),
)
server = response.server
print(f"{server.id=} {server.name=} {server.status=}")
print(f"root password: {response.root_password}")
# List your servers
servers = client.servers.get_all()
for server in servers:
print(f"{server.id=} {server.name=} {server.status=}")
```
- To upgrade the package, please read the [instructions available in the documentation](https://hcloud-python.readthedocs.io/en/stable/upgrading.html).
- For more details on the API, please see the [API reference](https://hcloud-python.readthedocs.io/en/stable/api.html).
- You can find some more examples under the [`examples/`](https://github.com/hetznercloud/hcloud-python/tree/main/examples) directory.
## Supported Python versions
We support python versions until [`end-of-life`](https://devguide.python.org/versions/#status-of-python-versions).
## Development
First, create a virtual environment and activate it:
```sh
make venv
source venv/bin/activate
```
You may setup [`pre-commit`](https://pre-commit.com/) to run before you commit changes, this removes the need to run it manually afterwards:
```sh
pre-commit install
```
You can then run different tasks defined in the `Makefile`, below are the most important ones:
Build the documentation and open it in your browser:
```sh
make docs
```
Lint the code:
```sh
make lint
```
Run tests using the current `python3` version:
```sh
make test
```
You may also run the tests for multiple `python3` versions using `tox`:
```sh
tox .
```
### Deprecations implementation
When deprecating a module or a function, you must:
- Update the docstring with a `deprecated` notice:
```py
"""Get image by name
.. deprecated:: 1.19
Use :func:`hcloud.images.client.ImagesClient.get_by_name_and_architecture` instead.
"""
```
- Raise a warning when the deprecated module or function is being used:
```py
warnings.warn(
"The 'hcloud.images.client.ImagesClient.get_by_name' method is deprecated, please use the "
"'hcloud.images.client.ImagesClient.get_by_name_and_architecture' method instead.",
DeprecationWarning,
stacklevel=2,
)
```
## License
The MIT License (MIT). Please see [`License File`](https://github.com/hetznercloud/hcloud-python/blob/main/LICENSE) for more information.
Raw data
{
"_id": null,
"home_page": "https://github.com/hetznercloud/hcloud-python",
"name": "hcloud",
"maintainer": null,
"docs_url": null,
"requires_python": ">=3.8",
"maintainer_email": null,
"keywords": "hcloud hetzner cloud",
"author": "Hetzner Cloud GmbH",
"author_email": "support-cloud@hetzner.com",
"download_url": "https://files.pythonhosted.org/packages/f4/51/1cf7c8d332085c80f20819c9acefb3f1776820995d94f7954b1f69aff3f7/hcloud-2.3.0.tar.gz",
"platform": null,
"description": "# Hetzner Cloud Python\n\n[![](https://github.com/hetznercloud/hcloud-python/actions/workflows/test.yml/badge.svg)](https://github.com/hetznercloud/hcloud-python/actions/workflows/test.yml)\n[![](https://github.com/hetznercloud/hcloud-python/actions/workflows/lint.yml/badge.svg)](https://github.com/hetznercloud/hcloud-python/actions/workflows/lint.yml)\n[![](https://codecov.io/github/hetznercloud/hcloud-python/graph/badge.svg?token=3YGRqB5t1L)](https://codecov.io/github/hetznercloud/hcloud-python/tree/main)\n[![](https://readthedocs.org/projects/hcloud-python/badge/?version=latest)](https://hcloud-python.readthedocs.io)\n[![](https://img.shields.io/pypi/pyversions/hcloud.svg)](https://pypi.org/project/hcloud/)\n\nOfficial Hetzner Cloud python library.\n\nThe library's documentation is available at [hcloud-python.readthedocs.io](https://hcloud-python.readthedocs.io), the public API documentation is available at [docs.hetzner.cloud](https://docs.hetzner.cloud).\n\n## Usage\n\nInstall the `hcloud` library:\n\n```sh\npip install hcloud\n```\n\nFor more installation details, please see the [installation docs](https://hcloud-python.readthedocs.io/en/stable/installation.html).\n\nHere is an example that creates a server and list them:\n\n```python\nfrom hcloud import Client\nfrom hcloud.images import Image\nfrom hcloud.server_types import ServerType\n\nclient = Client(token=\"{YOUR_API_TOKEN}\") # Please paste your API token here\n\n# Create a server named my-server\nresponse = client.servers.create(\n name=\"my-server\",\n server_type=ServerType(name=\"cx22\"),\n image=Image(name=\"ubuntu-22.04\"),\n)\nserver = response.server\nprint(f\"{server.id=} {server.name=} {server.status=}\")\nprint(f\"root password: {response.root_password}\")\n\n# List your servers\nservers = client.servers.get_all()\nfor server in servers:\n print(f\"{server.id=} {server.name=} {server.status=}\")\n```\n\n- To upgrade the package, please read the [instructions available in the documentation](https://hcloud-python.readthedocs.io/en/stable/upgrading.html).\n- For more details on the API, please see the [API reference](https://hcloud-python.readthedocs.io/en/stable/api.html).\n- You can find some more examples under the [`examples/`](https://github.com/hetznercloud/hcloud-python/tree/main/examples) directory.\n\n## Supported Python versions\n\nWe support python versions until [`end-of-life`](https://devguide.python.org/versions/#status-of-python-versions).\n\n## Development\n\nFirst, create a virtual environment and activate it:\n\n```sh\nmake venv\nsource venv/bin/activate\n```\n\nYou may setup [`pre-commit`](https://pre-commit.com/) to run before you commit changes, this removes the need to run it manually afterwards:\n\n```sh\npre-commit install\n```\n\nYou can then run different tasks defined in the `Makefile`, below are the most important ones:\n\nBuild the documentation and open it in your browser:\n\n```sh\nmake docs\n```\n\nLint the code:\n\n```sh\nmake lint\n```\n\nRun tests using the current `python3` version:\n\n```sh\nmake test\n```\n\nYou may also run the tests for multiple `python3` versions using `tox`:\n\n```sh\ntox .\n```\n\n### Deprecations implementation\n\nWhen deprecating a module or a function, you must:\n\n- Update the docstring with a `deprecated` notice:\n\n```py\n\"\"\"Get image by name\n\n.. deprecated:: 1.19\n Use :func:`hcloud.images.client.ImagesClient.get_by_name_and_architecture` instead.\n\"\"\"\n```\n\n- Raise a warning when the deprecated module or function is being used:\n\n```py\nwarnings.warn(\n \"The 'hcloud.images.client.ImagesClient.get_by_name' method is deprecated, please use the \"\n \"'hcloud.images.client.ImagesClient.get_by_name_and_architecture' method instead.\",\n DeprecationWarning,\n stacklevel=2,\n)\n```\n\n## License\n\nThe MIT License (MIT). Please see [`License File`](https://github.com/hetznercloud/hcloud-python/blob/main/LICENSE) for more information.\n",
"bugtrack_url": null,
"license": "MIT license",
"summary": "Official Hetzner Cloud python library",
"version": "2.3.0",
"project_urls": {
"Bug Tracker": "https://github.com/hetznercloud/hcloud-python/issues",
"Changelog": "https://github.com/hetznercloud/hcloud-python/blob/main/CHANGELOG.md",
"Documentation": "https://hcloud-python.readthedocs.io/en/stable/",
"Homepage": "https://github.com/hetznercloud/hcloud-python",
"Source Code": "https://github.com/hetznercloud/hcloud-python"
},
"split_keywords": [
"hcloud",
"hetzner",
"cloud"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "732427c27642c7e576424c9b9e15d0fd7baf398974074ab217c1cb79f76a3e8e",
"md5": "a0f60303c4b813b3a4ce9922ab974812",
"sha256": "653bd4f53cf92e028c00a04462b9c549249278d3acafc8e6bb9b063ca426877f"
},
"downloads": -1,
"filename": "hcloud-2.3.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "a0f60303c4b813b3a4ce9922ab974812",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.8",
"size": 86884,
"upload_time": "2024-10-09T12:55:41",
"upload_time_iso_8601": "2024-10-09T12:55:41.422250Z",
"url": "https://files.pythonhosted.org/packages/73/24/27c27642c7e576424c9b9e15d0fd7baf398974074ab217c1cb79f76a3e8e/hcloud-2.3.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f4511cf7c8d332085c80f20819c9acefb3f1776820995d94f7954b1f69aff3f7",
"md5": "a28968fec7bf51c77ae3da6b69a82775",
"sha256": "e901d298b112f1d2d4568d8300f3ce19dfe782bdef3ff9c417026a81e16ee956"
},
"downloads": -1,
"filename": "hcloud-2.3.0.tar.gz",
"has_sig": false,
"md5_digest": "a28968fec7bf51c77ae3da6b69a82775",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.8",
"size": 121684,
"upload_time": "2024-10-09T12:55:42",
"upload_time_iso_8601": "2024-10-09T12:55:42.635639Z",
"url": "https://files.pythonhosted.org/packages/f4/51/1cf7c8d332085c80f20819c9acefb3f1776820995d94f7954b1f69aff3f7/hcloud-2.3.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-10-09 12:55:42",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hetznercloud",
"github_project": "hcloud-python",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "hcloud"
}