Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/quetz-al/quetzal-client
Python client for the Quetzal API
https://github.com/quetz-al/quetzal-client
client data data-science openapi-client openapi3 python quetzal
Last synced: about 1 month ago
JSON representation
Python client for the Quetzal API
- Host: GitHub
- URL: https://github.com/quetz-al/quetzal-client
- Owner: quetz-al
- License: bsd-3-clause
- Created: 2019-02-11T10:41:13.000Z (almost 6 years ago)
- Default Branch: master
- Last Pushed: 2020-06-05T13:58:07.000Z (over 4 years ago)
- Last Synced: 2024-04-26T02:21:35.645Z (9 months ago)
- Topics: client, data, data-science, openapi-client, openapi3, python, quetzal
- Language: Python
- Size: 325 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Changelog: CHANGELOG.rst
- License: LICENSE
Awesome Lists containing this project
README
.. Note that this file is included on Sphinx as well.
Quetzal Python client
=====================Python client for the Quetzal API.
If you are not familiar with the Quetzal API, read its
`documentation `_ first. This Python
package provides a command-line and helper functions to interact with the
Quetzal API.Note that this package depends on an auto-generated package
`quetzal.openapi_client `_,
which is also a client to this API. You can use the latter as a pure Python
client, but *quetzal.client* provides some helpers and small fixes.Installation
------------You can install *quetzal-client*, with ``pip``:
.. code-block:: console
pip install quetzal-client
Alternatively, add this line to your ``requirements.txt``:
.. code-block:: none
quetzal-client
and then do ``pip install -r requirements.txt``.
If you are using conda, add the following structure to your ``environment.yaml``:
.. code-block:: yaml
...
dependencies:
- pip
- pip:
- quetzal-clientand create or update your environment with
``conda env create -f environment.yaml`` or
``conda env update -f environment.yaml``, respectively.Getting started
---------------In order to use *quetzal.client*, you need to know the URL of the API server,
your username and password. You can set these on the command-line interface,
through a configuration object, or using environment variables:.. list-table:: Environment variables considered by `quetzal-client`.
:header-rows: 1* - Variable
- Description
- Default if not set
* - ``QUETZAL_URL``
- Complete URL of the Quetzal server + API version.
- ``'https://api.quetz.al/api/v1'``
* - ``QUETZAL_USER``
- Quetzal username.
- ``''``
* - ``QUETZAL_PASSWORD``
- Quetzal password.
- ``''``
* - ``QUETZAL_API_KEY``
- Quetzal API key.
- ``''``Basic usage
-----------There are two ways this package helps you: with a command-line interface or by
providing some helper modules that you can use in Python.Command-line interface
^^^^^^^^^^^^^^^^^^^^^^The command-line interface is available through the ``quetzal-client`` command.
Use the ``--help`` or ``--help-all`` options to get a detailed description of
each command... code-block:: console
$ quetzal-client --help
Usage: quetzal-client [GLOBAL OPTIONS] COMMAND [ARGS]...
Command-line utility for the Quetzal API client.
Options:
--url TEXT Quetzal URL. If not set, uses environment variable
QUETZAL_URL if this variable is defined. [default:
https://api.quetz.al/api/v1]
--username TEXT Quetzal username. If not set, uses environment variable
QUETZAL_USER. Option is mutually exclusive with token,
api_key.
--password TEXT Quetzal password. If not set, uses environment variable
QUETZAL_PASSWORD. Option is mutually exclusive with token,
api_key.
--token TEXT Quetzal bearer token. If not set, uses environment variable
QUETZAL_TOKEN. Option is mutually exclusive with username,
password, api_key.
--api-key TEXT Quetzal API key. If not set, uses environment variable
QUETZAL_API_KEY Option is mutually exclusive with username,
password, token.
--insecure Do not verify HTTPS certificates.
-v, --verbose Verbosity level. Use -v for verbose, -vv for even more
verbosity
--help-all Show a detailed help message with all options and exit.
--help Show help message for this command and exit.
--version Show the version and exit.Commands:
auth Authentication operations.
file File operations.
query Query metadata.
workspace Workspace operations.Python
^^^^^^To start using *quetzal.client* on Python code, use the following template:
.. code-block:: python
from quetzal.client import Client, Configuration, QuetzalAPIException
from quetzal.client import helpersconfig = Configuration()
# ... change config as needed or fallback to the environment variables ...
# config.verify_ssl = False # Use this for servers without certificates (dev servers)
client = Client(config)# A simple test using the helpers to verify that we can login to Quetzal
try:
helpers.auth.login(client)
print('Logged in successfully!')
except QuetzalAPIException as ex:
print(f'Operation failed. {ex.title} - {ex.detail}')Documentation
-------------There are more details on *quetzal.client* on its official documentation at
`readthedocs `_.Contribute
----------- Issue Tracker: https://github.com/quetz-al/quetzal-client/issues
- Source Code: https://github.com/quetz-al/quetzal-clientNote to package maintainer
--------------------------To build and send this package to PyPI:
.. code-block:: console
# Clean previous builds!
rm -rf dist/
# Build
python setup.py sdist bdist_wheel# Install helper module for uploading to PyPI
pip install twine
# First, send to test PyPI
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
# If that works ok, then send to PyPI
python -m twine upload dist/*License
-------The project is under the BSD 3-clause license.