Python SDK for Equinix Metal API , generated with openapi-generator. Pypi package name is equinix-metal
.
python -m pip install --upgrade equinix-metal
See examples in examples directory.
Full Equinix Metal API documenation is available here: https://metal.equinix.com/developers/api/.
Generated documentation is available here: equinix_metal/README.md.
This project is using OpenAPITools openapi-generator Docker images to generate the code. You need to have Docker installed.
In order to limit dependencies, the Makefile uses Docker for most of the tasks. If you run the tasks for the first time, you will need to wait for Docker image download.
Run make fetch
to download newest API spec from upstream.
Clone this repo
git clone https://github.com/equinix-labs/metal-python
Everything in equinix_metal directory is generated. You can change code there to debug or experiment, but be aware that it will be rewritten on next make generate
.
Development of this package mostly means editing:
- Makefile
- The spec-patching script in scripts/patch_metal_spec.py
Once you did your edits, run make generate
and check how the generated code has changed.
To use the regenerated code, you can install the generated package from directory:
pip install ./equinix_metal
.. and then import equinix_metal
in a Python script.
If you set Configuration.debug
, the sdk will print HTTP traffic to stderr:
def get_equinix_metal_client(api_token):
conf = equinix_metal.Configuration(
host="https://api.equinix.com/metal/v1"
)
conf.api_key['x_auth_token'] = api_token
conf.debug = True
return equinix_metal.ApiClient(conf)
You can also set Configuration.logger_file
to see debug messages in a file.
Configuration options might change with openapi-generator version. See Configuration class for more details.
If you want to do a new release from main branch, make sure that make generate
doesn't taint git status.
To craft a new release, use the release GitHub action. Run it for main branch.
The workflow derives new version number based on conventional commits syntax from titles of PRs since last release. It will then build new PyPi wheel package, upload it to PyPi and create new GitHub release.
Once you run the workflow, verify that:
- the release GitHub action succeeded
- there's new release in this GitHub project
- new version of equinix-metal is avaiable on Pypi