Metadata-Version: 2.1
Name: threddsclient
Version: 0.4.3
Summary: Thredds catalog client
Author: Birdhouse
License: Apache 2.0
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Topic :: Scientific/Engineering :: Atmospheric Science
License-File: LICENCE.txt
License-File: AUTHORS.rst

=========================
Thredds Client for Python
=========================

|Travis Build| |Install with Conda| |Join the Chat|

Installing Thredds Client
=========================

Anaconda
--------

|Version| |Downloads|

Thredds client is available as Anaconda package. Install it with the
following command:

.. code:: bash

    $ conda install -c conda-forge threddsclient

From github
-----------

Check out code from the birdy GitHub repo and start the installation:

.. code:: bash

    $ git clone https://github.com/bird-house/threddsclient.git
    $ cd threddsclient
    $ conda env create -f environment.yml
    $ source activate threddsclient
    $ python setup.py develop

Using Thredds Client
====================

Read the Thredds tutorial on catalogs: `Thredds Catalog
Primer <http://www.unidata.ucar.edu/software/thredds/current/tds/tutorial/CatalogPrimer.html>`__

Get download URLs of a catalog
------------------------------

.. code:: python

        import threddsclient
        urls = threddsclient.download_urls('http://example.com/thredds/catalog.xml')

Get OpenDAP URLs of a catalog
-----------------------------

.. code:: python

        import threddsclient
        urls = threddsclient.opendap_urls('http://example.com/thredds/catalog.xml')

Navigate in catalog
-------------------

Start reading a catalog

.. code:: python

        import threddsclient
        cat = threddsclient.read_url('http://example.com/thredds/catalog.xml')

Get a list of references to other catalogs & follow them

.. code:: python

        refs = cat.references

        print refs[0].name
        cat2 = refs[0].follow()

Get a list of datasets in this catalog

.. code:: python

        data  = cat.datasets

Get flat list of all direct datasets (data files) in the catalog

.. code:: python

        datasets = cat.flat_datasets()

Get flat list of all references in the catalog

.. code:: python

        references = cat.flat_references()

Crawl thredds catalog
---------------------

Crawl recursive all direct datasets in catalog following the catalog
references. Stop recusion at a given depth level.

.. code:: python

       import threddsclient
       for ds in threddsclient.crawl('http://example.com/thredds/catalog.xml', depth=2):
           print ds.name

Development
===========

Install sources
---------------

Check out code from the birdy GitHub repo and start the installation:

.. code-block:: sh

   $ git clone https://github.com/bird-house/threddsclient.git
   $ cd threddsclient
   $ conda env create -f environment.yml
   $ python setup.py develop

Install additional dependencies::

  $ conda install pytest flake8 sphinx bumpversion
  OR
  $ pip install -r requirements_dev.txt

Bump a new version
------------------

Make a new version of Birdy in the following steps:

* Make sure everything is commit to GitHub.
* Update ``CHANGES.rst`` with the next version.
* Dry Run: ``bumpversion --dry-run --verbose --new-version 0.3.4 patch``
* Do it: ``bumpversion --new-version 0.3.4 patch``
* ... or: ``bumpversion --new-version 0.4.0 minor``
* Push it: ``git push --tags``

See the bumpversion_ documentation for details.

.. _bumpversion: https://pypi.org/project/bumpversion/

Examples with IPython Notebook
------------------------------

-  `NOAA Thredds
   Catalog <http://nbviewer.ipython.org/github/bird-house/threddsclient/blob/master/examples/noaa_example.ipynb>`__

.. |Travis Build| image:: https://travis-ci.org/bird-house/threddsclient.svg?branch=master
   :target: https://travis-ci.org/bird-house/threddsclient
.. |Install with Conda| image:: https://anaconda.org/conda-forge/threddsclient/badges/installer/conda.svg
   :target: https://anaconda.org/conda-forge/threddsclient
.. |License| image:: https://anaconda.org/conda-forge/threddsclient/badges/license.svg
   :target: https://anaconda.org/conda-forge/threddsclient
.. |Join the Chat| image:: https://badges.gitter.im/bird-house/birdhouse.svg
   :target: https://gitter.im/bird-house/birdhouse?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
.. |Version| image:: https://anaconda.org/conda-forge/threddsclient/badges/version.svg
   :target: https://anaconda.org/conda-forge/threddsclient
.. |Downloads| image:: https://anaconda.org/conda-forge/threddsclient/badges/downloads.svg
   :target: https://anaconda.org/conda-forge/threddsclient

Authors
=======

*  Scott Wales scott.wales@unimelb.edu.au
*  Carsten Ehbrecht ehbrecht@dkrz.de

=======
Changes
=======

0.4.3 (2023-05-31)
==================

* fix xml parsing for recent versions

0.4.2 (2019-11-20)
==================

* fixed conda links in Readme.

0.4.1 (2019-11-06)
==================

* fixed docs formatting.

0.4.0 (2019-11-06)
==================

* drop Python 2.7 (#5)
* fix pip install (#4)

0.3.5 (2018-10-05)
==================

* support for Python 3.x (#1)

0.3.4 (2015-10-25)
==================

* fixed travis build/tests
* updated docs

0.3.3 (2015-10-24)
==================

* converted docs to rst.
* MANIFEST.in added.

0.3.2 (2015-07-15)
==================

*  append catalog.xml to catalog url if missing
*  crawl method added

0.3.1 (2015-06-14)
==================

*  fixed catalog.follow()
*  using dataset.download_url()
*  added ipython example
*  cleaned up Readme

0.3.0 (2015-06-13)
==================

*  Refactored
*  added catalog.opendap_urls()

0.2.0 (2015-06-08)
==================

*  Refactored
*  using CollectionDataset
*  added catalog.download_urls()

0.1.1 (2015-06-05)
==================

*  Fixed catalog generation.
*  added pytest dependency.

0.1.0 (2015-03-13)
==================

*  Version by https://github.com/ScottWales/threddsclient.
