Metadata-Version: 2.1
Name: pyUSIrest
Version: 0.3.0
Summary: Python USI submission REST API contain all methods to interact with EMBL-EBI Unified Submissions Interface
Home-page: https://github.com/cnr-ibba/pyUSIrest
Author: Paolo Cozzi
Author-email: paolo.cozzi@ibba.cnr.it
License: GNU General Public License v3
Keywords: pyUSIrest
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
Classifier: Natural Language :: English
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Requires-Python: >=3.5
Description-Content-Type: text/x-rst
Requires-Dist: python-jwt
Requires-Dist: requests
Requires-Dist: url-normalize
Requires-Dist: dateutils

==============================
Python USI submission REST API
==============================


.. image:: https://img.shields.io/pypi/v/pyUSIrest.svg
        :target: https://pypi.python.org/pypi/pyUSIrest

.. image:: https://img.shields.io/travis/cnr-ibba/pyUSIrest.svg
        :target: https://travis-ci.org/cnr-ibba/pyUSIrest

.. image:: https://readthedocs.org/projects/pyusirest/badge/?version=latest
        :target: https://pyusirest.readthedocs.io/en/latest/?badge=latest
        :alt: Documentation Status

.. image:: https://coveralls.io/repos/github/cnr-ibba/pyUSIrest/badge.png?branch=master
        :target: https://coveralls.io/github/cnr-ibba/pyUSIrest?branch=master

.. image:: https://img.shields.io/scrutinizer/quality/g/cnr-ibba/pyUSIrest/master
        :target: https://scrutinizer-ci.com/g/cnr-ibba/pyUSIrest/?branch=master
        :alt: Scrutinizer code quality (GitHub/Bitbucket)


Python USI submission REST API contain all methods to interact with EMBL-EBI
Unified Submissions Interface

* Free software: GNU General Public License v3
* Documentation: https://pyusirest.readthedocs.io.


Features
--------

* Deal with EBI AAP_  (Authentication, Authorisation and Profile) service,
  generating tokens and dealing with User and Groups
* Interact with EBI USI (Unified Submission Interface) in order to submit data to
  biosample as described by this guide_. In details:

  * Getting `USI API root`_
  * Selecting a Team_
  * Creating a Submission_
  * Adding `items to Submission`_
  * Checking Biosample `Validation`_
  * Finalising_ a Submission

.. _AAP: https://explore.api.aai.ebi.ac.uk/docs/
.. _guide: https://submission-test.ebi.ac.uk/api/docs/guide_getting_started.html
.. _`USI API root`: https://submission-test.ebi.ac.uk/api/docs/guide_getting_started.html#_start_from_the_root
.. _Team: https://submission-test.ebi.ac.uk/api/docs/guide_getting_started.html#_pick_a_team
.. _Submission: https://submission-test.ebi.ac.uk/api/docs/guide_getting_started.html#_creating_a_submission
.. _`items to Submission`: https://submission-test.ebi.ac.uk/api/docs/guide_getting_started.html#_adding_documents_to_a_submission
.. _Validation: https://submission-test.ebi.ac.uk/api/docs/guide_getting_started.html#_validation
.. _Finalising: https://submission-test.ebi.ac.uk/api/docs/guide_getting_started.html#_finalising_your_submission

API Endpoints
-------------

``pyUSIrest`` is written to exploit the BioSamples test environment endpoints.
You are incuraged to understand how BioSamples submission works before do a
real submission in BioSamples production servers. You can find more information
on how to do a real submission in BioSamples production servers in readthedocs
documentation: https://pyusirest.readthedocs.io

Credits
-------

This package was created with Cookiecutter_ and the `audreyr/cookiecutter-pypackage`_ project template.

.. _Cookiecutter: https://github.com/audreyr/cookiecutter
.. _`audreyr/cookiecutter-pypackage`: https://github.com/audreyr/cookiecutter-pypackage


=======
History
=======

TODO
----

* get a ``Team`` instance from ``Submission`` instance
* ``Submission.has_errors`` make two identical queries, on to determine the
  status and one to search errors, simplify it by doing only a query
* filtering sample by status or error make a lot of queries. Consider writing
  coroutines or reading ValidationResult as pages

0.3.0 (2020-01-14)
------------------

Features
^^^^^^^^

* modelled custom exceptions
* Set a default date if ``releaseDate`` attribute is missing
* improved documentation by describing how to sort and filter objects
* fix bug when adding samples to a submission retrieved with ``team.get_submission()``
* Update documentation. Set ``taxon`` in sample data (mandatory attribute)
* displaying dates when ``print(Submission)`` instances
* ``Root.get_user_submissions()`` and other methods which returned list of objects
  now return iterator objects
* ``str(auth)`` will report duration in ``hh:mm:ss``
* compiling PDF using PNG images (change badges)
* raise no exceptions where no team is found (using ``Root.get_user_teams``)
* Using namespaces to configure API endpoints (``pyUSIrest.settings``)
* move ``Root``, ``User``, ``Domain``, ``Team``, ``Submission``, ``Sample``
  ``ValidationResult`` classes inside ``pyUSIrest.usi`` module

0.2.2 (2019-03-28)
------------------

Features
^^^^^^^^

* Deal with API errors (50x, 40x)

0.2.1 (2019-01-15)
------------------

Features
^^^^^^^^

* test for an empty submission (no samples)
* updated `root.json`, `userSubmission.json` test data
* submissionStatus is no longer an attribute, when feching submission by name
  is present when getting user submissions
* follow submissionStatus link (if necessary)
* update submission status after create a new submission
* update submission status after ``get_submission_by_name``
* update submission status after reload a just finalized submission
* ``Domain.users`` returns ``User`` objects in a list
* improved ``Submission.get_samples`` method

0.2.0 (2018-10-23)
------------------

Features
^^^^^^^^

* Fetch submission by name
* changed library name to ``pyUSIrest``
* published to pypi
* Finalize submission with *PUT*

0.1.0 (2018-10-17)
------------------

Features
^^^^^^^^

* submit into biosample with python methods


