Installation ============ Required dependencies --------------------- pandaSDMX is a pure `Python `_ package requiring Python 3.7 or higher, which can be installed: - from `the Python website `_, or - using a scientific Python distribution that includes other packages useful for data analysis, such as `Anaconda `_, `Canopy `_, or others listed on `the Python wiki `_. pandaSDMX also depends on: - `pandas `_ for data structures, - `pydantic `_ to implement the IM, - `requests `_ for HTTP requests, and - `lxml `_ for XML processing. Optional dependencies for extra features ---------------------------------------- - for ``cache``, allowing the caching of SDMX messages in memory, MongoDB, Redis, and more: `requests-cache `_. - for ``doc``, to build the documentation: `sphinx `_ and `IPython `_. - for ``test``, to run the test suite: `pytest `_, `pytest-remotedata `_, and `requests-mock `_. Instructions ------------ 0. (optional) If using Anaconda, use ``source activate [ENV]`` to activate the environment in which to install pandaSDMX. 1. From the command line, issue:: $ pip install pandasdmx To also install optional dependencies, use commands like:: $ pip install pandasdmx[cache] # just requests-cache $ pip install pandasdmx[cache,doc,test] # all extras From source ~~~~~~~~~~~ 1. Download the latest code: - `from PyPI `_, - `from Github `_ as a zip archive, or - by cloning the Github repository:: $ git clone git@github.com:dr-leo/pandaSDMX.git 2. In the package directory, issue:: $ pip install . .. note:: The build process adheres to `PEP 517 `_ using `flit `_ as build backend. To also install optional dependencies, use commands like:: $ pip install .[cache] # just requests-cache $ pip install .[cache,doc,test] # all extras Running tests ------------- Install from source, including the ``tests`` optional dependencies. Then, in the package directory, issue:: $ py.test By default, tests that involve retrieving data over the network are skipped. To also run these tests, use:: $ py.test --remote-data pytest offers many command-line options to control test invocation; see ``py.test --help`` or the `documentation `_.