Official Hetzner Cloud python library.
The library's documentation is available at hcloud-python.readthedocs.io, the public API documentation is available at docs.hetzner.cloud.
Install the hcloud library:
pip install hcloudFor more installation details, please see the installation docs.
Here is an example that creates a server and list them:
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="cx11"),
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=}")For more details, please see the API reference.
You can find some more examples under the examples/ directory.
We support python versions until end-of-life.
First, create a virtual environment and activate it:
make venv
source venv/bin/activateYou may setup pre-commit to run before you commit changes, this removes the need to run it manually afterwards:
pre-commit installYou can then run different tasks defined in the Makefile, below are the most important ones:
Build the documentation and open it in your browser:
make docsLint the code:
make lintRun tests using the current python3 version:
make testYou may also run the tests for multiple python3 versions using tox:
tox .When deprecating a module or a function, you must:
- Update the docstring with a
deprecatednotice:
"""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:
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,
)The MIT License (MIT). Please see License File for more information.