Metadata-Version: 2.1
Name: pyUSIrest
Version: 0.3.1
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
Description: ==============================
        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.1 (2020-01-27)
        ------------------
        
        * fix a bug when patching a sample: deal with team in relationship
        * raise ``USIDataError`` on ``40x`` status code
        * Change ``Auth.__str__()``: now it returns ``Token for Foo Bar will expire in HH:MM:SS``
        * add ``Auth.get_domains`` which returns ``self.claims['domains']``
        
        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
        
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
