Metadata-Version: 2.0
Name: agavepy
Version: 0.2
Summary: SDK for Agave
Home-page: https://bitbucket.org/taccaci/agavepy
Author: Joe Stubbs, Walter Moreira
Author-email: jstubbs@tacc.utexas.edu, wmoreira@tacc.utexas.edu
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Requires-Dist: Jinja2 (==2.7.3)
Requires-Dist: backports.ssl-match-hostname (==3.4.0.2)
Requires-Dist: py (==1.4.26)
Requires-Dist: pytest (==2.7.0)
Requires-Dist: python-dateutil (==2.4.2)
Requires-Dist: requests (==2.6.0)
Requires-Dist: six (==1.9.0)
Requires-Dist: websocket-client (==0.29.0)
Requires-Dist: wsgiref (==0.1.2)

=======
AgavePy
=======

A simple Python binding for the `Agave API`_.


Installation
============

Install from PyPI_::

    pip install agavepy


Using agavepy in Docker
========================

This repository includes a ``Dockerfile`` and a ``docker-compose.yml``
file, which allows a zero installation version of ``agavepy``.

The only requirement is Docker_ and `docker-compose`_, most likely
already installed in your system.

Then, clone this repository and execute ``docker-compose`` as follows:

.. code-block:: bash

   $ git clone https://bitbucket.org/taccaci/agavepy.git
   $ cd agavepy
   $ docker-compose build
   $ docker-compose up

(a bug in ``docker-compose`` is preventing to run just ``up``. The steps ``build`` and ``up`` have to be done separately.)
Navigate to http://localhost:8888 and access the Jupyter_ notebook
with password ``agavepy``.  The notebook ``Example.ipynb`` contains a
full example of use.


Quickstart
==========

The first step is to create an ``agave`` Python object pointing to
your tenant:

.. code-block:: pycon

   >>> from agavepy.agave import Agave
   >>> my_agave = Agave(api_server='https://agave.iplantc.org',
   ...                  username='myusername', password='mypassword')

Once the object is instantiated, interact with it according to the
methods in the API documentation.

For example, create a new client with:

.. code-block:: pycon

   >>> my_agave.clients.create(body={'clientName': 'my_client'})

Access any endpoint with:

.. code-block:: pycon

   >>> my_agave.systems.list()
   >>> my_agave.jobs.manage(...)

Once a client is created, it is used by default to access the API.

To make use of an existing client, pass the client's credentials into the Agave constructor:

.. code-block:: pycon

   >>> from agavepy.agave import Agave
   >>> my_agave = Agave(api_server='https://agave.iplantc.org',
   ...                  username='myusername', password='mypassword', client_name='my_client', api_key='123', api_secret='abc')

Alternatively, the SDK will attempt to recover the client credentials from the client name if they are stored
in the user's ``.agavepy`` file, in which case just passing the ``client_name`` will suffice:

.. code-block:: pycon

   >>> from agavepy.agave import Agave
   >>> my_agave = Agave(api_server='https://agave.iplantc.org',
   ...                  username='myusername', password='mypassword', client_name='my_client')



.. _Agave API: http://agaveapi.co/
.. _PyPI: https://pypi.python.org/pypi


License
=======

Agavepy is licensed under the MIT license.

Swagger.py is copyright of Digium, Inc., and licensed under BSD 3-Clause License.

.. _Docker: https://docs.docker.com/installation/#installation
.. _docker-compose: https://docs.docker.com/compose/install/
.. _Jupyter: http://ipython.org/


