Metadata-Version: 2.1
Name: im-squonk2-client
Version: 1.0.2
Summary: Squonk2 Python Client
Home-page: https://github.com/informaticsmatters/squonk2-python-client
Author: Alan Christie
Author-email: achristie@informaticsmatters.com
License: MIT
Keywords: api
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Other Environment
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Operating System :: POSIX :: Linux
Requires-Python: >=3
License-File: LICENSE
Requires-Dist: authlib (==1.0.1)
Requires-Dist: requests (>=2.28.0)
Requires-Dist: wrapt (==1.14.1)

Informatics Matters Squonk2 Python Client
=========================================

.. image:: https://badge.fury.io/py/squonk2-client.svg
   :target: https://badge.fury.io/py/squonk2-client
   :alt: PyPI package (latest)

.. image:: https://readthedocs.org/projects/squonk2-python-client/badge/?version=latest
   :target: https://squonk2-python-client.readthedocs.io/en/latest/?badge=latest
   :alt: Documentation Status

A Python 3 package that provides simplified access to key parts of the
Informatics Matters Squonk2 service, consisting of the Authentication, and
Data Manager and Account Server REST interfaces. The functions provide
access to some of the key API methods, implemented initially to support
execution of Jobs from a Fragalysis stack `backend`_.

Simplified Authentication
=========================
The following Squonk2 Authentication functions are available: -

- ``Auth.get_access_token()``

Simplified Data Manager API
===========================
The following Squonk2 Data Manager API functions are available: -

- ``DmApi.set_api_url()``
- ``DmApi.get_api_url()``

- ``DmApi.ping()``

- ``DmApi.create_project()``
- ``DmApi.delete_instance()``
- ``DmApi.delete_instance_token()``
- ``DmApi.delete_project()``
- ``DmApi.delete_unmanaged_project_files()``
- ``DmApi.get_available_jobs()``
- ``DmApi.get_available_projects()``
- ``DmApi.get_job()``
- ``DmApi.get_job_by_version()``
- ``DmApi.get_instance()``
- ``DmApi.get_project()``
- ``DmApi.get_project_instances()``
- ``DmApi.get_task()``
- ``DmApi.get_unmanaged_project_file()``
- ``DmApi.get_unmanaged_project_file_with_token()``
- ``DmApi.get_version()``
- ``DmApi.list_project_files()``
- ``DmApi.put_unmanaged_project_files()``
- ``DmApi.start_job_instance()``
- ``DmApi.set_admin_state()``

A ``namedtuple`` is used as the return value for many of the methods: -

- ``DmApiRv``

It contains a boolean ``success`` field and a dictionary ``msg`` field. The
``msg`` typically contains the underlying REST API response content
(rendered as a Python dictionary), or an error message if the call failed.

Simplified Account Server API
=============================
..  note::
    The Squonk2 Account Server API is not currently supported.

Installation
============
The Squonk2 package is published on `PyPI`_ and can be installed from
there::

    pip install im-squonk2-client

Documentation
=============
Documentation is available in the `squonk2-python-client`_ project on
**Read the Docs**

Get in touch
============

- Report bugs, suggest features or view the source code `on GitHub`_.

.. _on GitHub: https://github.com/informaticsmatters/squonk2-python-client
.. _backend: https://github.com/xchem/fragalysis-backend
.. _squonk2-python-client: https://squonk2-python-client.readthedocs.io/en/latest/
.. _PyPI: https://pypi.org/project/squonk2-python-client
