Metadata-Version: 2.1
Name: giotto-tda-nightly
Version: 20200302.12
Summary: Toolbox for Machine Learning using Topological Data Analysis.
Home-page: https://github.com/giotto-ai/giotto-tda
Maintainer: Umberto Lupo, Lewis Tunstall
Maintainer-email: maintainers@giotto.ai
License: GNU AGPLv3
Download-URL: https://github.com/giotto-ai/giotto-tda/tarball/v0.1.4
Keywords: machine learning,topological data analysis,persistent homology,persistence diagrams,Mapper
Platform: UNKNOWN
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved
Classifier: Programming Language :: C++
Classifier: Programming Language :: Python
Classifier: Topic :: Software Development
Classifier: Topic :: Scientific/Engineering
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX
Classifier: Operating System :: Unix
Classifier: Operating System :: MacOS
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/x-rst
Requires-Dist: numpy (>=1.17.0)
Requires-Dist: scipy (>=0.17.0)
Requires-Dist: joblib (>=0.13)
Requires-Dist: scikit-learn (>=0.22.0)
Requires-Dist: python-igraph (>=0.7.1.post6)
Requires-Dist: matplotlib (>=3.0.3)
Requires-Dist: plotly (>=4.4.1)
Requires-Dist: ipywidgets (>=7.5.1)
Provides-Extra: dev
Requires-Dist: hypothesis ; extra == 'dev'
Requires-Dist: sphinx-gallery ; extra == 'dev'
Requires-Dist: jupyter-contrib-nbextensions ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: sphinx-issues ; extra == 'dev'
Requires-Dist: sphinx-rtd-theme ; extra == 'dev'
Requires-Dist: numpydoc ; extra == 'dev'
Requires-Dist: flake8 ; extra == 'dev'
Requires-Dist: pytest-azurepipelines ; extra == 'dev'
Requires-Dist: sphinx ; extra == 'dev'
Requires-Dist: pytest-benchmark ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'
Provides-Extra: doc
Requires-Dist: sphinx ; extra == 'doc'
Requires-Dist: sphinx-gallery ; extra == 'doc'
Requires-Dist: sphinx-issues ; extra == 'doc'
Requires-Dist: sphinx-rtd-theme ; extra == 'doc'
Requires-Dist: numpydoc ; extra == 'doc'
Provides-Extra: examples
Requires-Dist: jupyter ; extra == 'examples'
Requires-Dist: pandas ; extra == 'examples'
Requires-Dist: openml ; extra == 'examples'
Provides-Extra: tests
Requires-Dist: pytest ; extra == 'tests'
Requires-Dist: pytest-cov ; extra == 'tests'
Requires-Dist: pytest-azurepipelines ; extra == 'tests'
Requires-Dist: pytest-benchmark ; extra == 'tests'
Requires-Dist: jupyter-contrib-nbextensions ; extra == 'tests'
Requires-Dist: flake8 ; extra == 'tests'
Requires-Dist: hypothesis ; extra == 'tests'

.. image:: https://www.giotto.ai/static/vector/logo-tda.svg
   :width: 850

|Version|_ |Azure-build|_ |Azure-cov|_ |Azure-test|_ |Twitter-follow|_ |Slack-join|_

.. |Version| image:: https://img.shields.io/pypi/v/giotto-tda
.. _Version:

.. |Azure-build| image:: https://dev.azure.com/maintainers/Giotto/_apis/build/status/giotto-ai.giotto-tda?branchName=master
.. _Azure-build: https://dev.azure.com/maintainers/Giotto/_build?definitionId=6&_a=summary&repositoryFilter=6&branchFilter=141&requestedForFilter=ae4334d8-48e3-4663-af95-cb6c654474ea

.. |Azure-cov| image:: https://img.shields.io/azure-devops/coverage/maintainers/Giotto/6/master
.. _Azure-cov:

.. |Azure-test| image:: https://img.shields.io/azure-devops/tests/maintainers/Giotto/6/master
.. _Azure-test:

.. |Twitter-follow| image:: https://img.shields.io/twitter/follow/giotto_ai?label=Follow%20%40giotto_ai&style=social
.. _Twitter-follow: https://twitter.com/intent/follow?screen_name=giotto_ai

.. |Slack-join| image:: https://img.shields.io/badge/Slack-Join-yellow
.. _Slack-join: https://slack.giotto.ai/

giotto-tda
==========

giotto-tda is a high performance topological machine learning toolbox in Python built on top of
scikit-learn and is distributed under the GNU AGPLv3 license. It is part of the `Giotto <https://github.com/giotto-ai>`_ family of open-source projects.

Project genesis
---------------

giotto-tda is the result of a collaborative effort between `L2F SA
<https://www.l2f.ch/>`_, the `Laboratory for Topology and Neuroscience
<https://www.epfl.ch/labs/hessbellwald-lab/>`_ at EPFL, and the `Institute of Reconfigurable & Embedded Digital Systems (REDS)
<https://heig-vd.ch/en/research/reds>`_ of HEIG-VD.

License
-------

giotto-tda is distributed under the AGPLv3 `license <https://github.com/giotto-ai/giotto-tda/blob/master/LICENSE>`_. 
If you need a different distribution license, please contact the L2F team at 
business@l2f.ch.

Documentation
-------------

- API reference (stable release): https://docs-tda.giotto.ai
- Theory glossary: https://giotto.ai/theory

Getting started
---------------

To get started with giotto-tda, first follow the installations steps below. `This blog post <https://towardsdatascience.com/getting-started-with-giotto-learn-a-python-library-for-topological-machine-learning-451d88d2c4bc>`_, and references therein, offer a friendly introduction to the topic of topological machine learning and to the philosophy behind giotto-tda.

Tutorials and use cases
~~~~~~~~~~~~~~~~~~~~~~~

Simple tutorials can be found in the `examples <https://github.com/giotto-ai/giotto-tda/tree/master/examples>`_ folder. For a wide selection of use cases and application domains, you can visit `this page <https://giotto.ai/learn/course-content>`_.

Installation
------------

Dependencies
~~~~~~~~~~~~

The latest stable version of giotto-tda requires:

- Python (>= 3.6)
- NumPy (>= 1.17.0)
- SciPy (>= 0.17.0)
- joblib (>= 0.13)
- scikit-learn (>= 0.22.0)
- python-igraph (>= 0.7.1.post6)
- matplotlib (>= 3.0.3)
- plotly (>= 4.4.1)
- ipywidgets (>= 7.5.1)

To run the examples, jupyter is required.

User installation
~~~~~~~~~~~~~~~~~

The simplest way to install giotto-tda is using ``pip``   ::

    pip install -U giotto-tda

If necessary, this will also automatically install all the above dependencies. Note: we recommend
upgrading ``pip`` to a recent version as the above may fail on very old versions.

Pre-release, experimental builds containing recently added features, and/or
bug fixes can be installed by running   ::

    pip install -U giotto-tda-nightly

The main difference between giotto-tda-nightly and the developer installation (see the section
on contributing, below) is that the former is shipped with pre-compiled wheels (similarly to the stable
release) and hence does not require any C++ dependencies. As the main library module is called ``gtda`` in
both the stable and nightly versions, giotto-tda and giotto-tda-nightly should not be installed in
the same environment.

Contributing
------------

We welcome new contributors of all experience levels. The Giotto
community goals are to be helpful, welcoming, and effective. To learn more about
making a contribution to giotto-tda, please see the `CONTRIBUTING.rst
<https://github.com/giotto-ai/giotto-tda/blob/master/CONTRIBUTING.rst>`_ file.

Developer installation
~~~~~~~~~~~~~~~~~~~~~~

Installing both the PyPI release and source of giotto-tda in the same environment is not recommended since it is
known to cause conflicts with the C++ bindings.

The developer installation requires three important C++ dependencies:

-  A C++14 compatible compiler
-  CMake >= 3.9
-  Boost >= 1.56

Please refer to your system's instructions and to the `CMake <https://cmake.org/>`_ and
`Boost <https://www.boost.org/doc/libs/1_72_0/more/getting_started/index.html>`_ websites for definitive guidance on how to install these dependencies. The instructions below are unofficial, please follow them at your own risk.

Linux
'''''
Most Linux systems should come with a suitable compiler pre-installed. For the other two dependencies, you may consider using your distribution's package manager, e.g. by running

.. code-block:: bash

    sudo apt-get install cmake libboost-dev

if ``apt-get`` is available in your system.

macOS
'''''
On macOS, you may consider using ``brew`` (https://brew.sh/) to install the dependencies as follows:

.. code-block:: bash

    brew install gcc cmake boost

Windows
'''''''
On Windows, you will likely need to have `Visual Studio <https://visualstudio.microsoft.com/>`_ installed. At present,
it appears to be important to have a recent version of the VS C++ compiler. One way to check whether this is the case
is as follows: 1) open the VS Installer GUI; 2) under the "Installed" tab, click on "Modify" in the relevant VS
version; 3) in the newly opened window, select "Individual components" and ensure that v14.24 or above of the MSVC
"C++ x64/x86 build tools" is selected. The CMake and Boost dependencies are best installed using the latest binary
executables from the websites of the respective projects.


Source code
'''''''''''

You can obtain the latest state of the source code with the command::

    git clone https://github.com/giotto-ai/giotto-tda.git


To install:
'''''''''''

.. code-block:: bash

   cd giotto-tda
   python -m pip install -e ".[dev]"

This way, you can pull the library's latest changes and make them immediately available on your machine.
Note: we recommend upgrading ``pip`` and ``setuptools`` to recent versions before installing in this way.

Testing
~~~~~~~

After installation, you can launch the test suite from outside the
source directory::

    pytest gtda


Changelog
---------

See the `RELEASE.rst <https://github.com/giotto-ai/giotto-tda/blob/master/RELEASE.rst>`__ file
for a history of notable changes to giotto-tda.

Important links
~~~~~~~~~~~~~~~

- Official source code repo: https://github.com/giotto-ai/giotto-tda
- Download releases: https://pypi.org/project/giotto-tda/
- Issue tracker: https://github.com/giotto-ai/giotto-tda/issues

Community
---------

giotto-ai Slack workspace: https://slack.giotto.ai/

Contacts
--------

maintainers@giotto.ai


