diff --git a/.gitignore b/.gitignore index cb3ec68d0..c14f6d6be 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ *csv *xlsx *png +*pdf # Apple file system *.DS_STORE diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst index 94445ed26..bd47ea737 100644 --- a/CONTRIBUTING.rst +++ b/CONTRIBUTING.rst @@ -1,14 +1,21 @@ -Contributor Guidelines -====================== + +Have a question? Get in touch! +------------------------------ + +- Report bugs, suggest features or view the source code `on GitHub`_. +- For less well defined questions or ideas, use the `mailing list`_. + +.. _mailing list: https://groups.google.com/forum/#!forum/pyam +.. _on GitHub: http://github.com/IAMconsortium/pyam + + +Interested in Contributing? Welcome to the team! +------------------------------------------------ The pyam package has been developed with the explicit aim to facilitate open and collaborative analysis of integrated assessment and climate models. We appreciate contributions to the code base and development of new features. -The community mailing list for questions and discussions on new features is -hosted by Googlegroups. Please join at `groups.google.com/d/forum/pyam`_ -and use to send an email to the *pyam* community. - Please use the GitHub *Issues* feature to raise questions concerning potential bugs or to propose new features, but search and read resolved/closed topics on similar subjects before raising a new issue. @@ -23,6 +30,4 @@ believe that when posting ideas or submitting code to an open-source project, it should be obvious and self-evident that any such contributions are made in the spirit of open collaborative development. -.. _`groups.google.com/d/forum/pyam` : https://groups.google.com/d/forum/pyam - .. _`pep8`: https://www.python.org/dev/peps/pep-0008/ diff --git a/doc/source/conf.py b/doc/source/conf.py index bab06bd28..fb2a87958 100644 --- a/doc/source/conf.py +++ b/doc/source/conf.py @@ -43,6 +43,7 @@ 'sphinxcontrib.programoutput', 'sphinx.ext.mathbase', 'sphinx_gallery.gen_gallery', + 'sphinxcontrib.bibtex', ] sphinx_gallery_conf = { diff --git a/doc/source/index.rst b/doc/source/index.rst index 61ad36b2e..744189d5d 100644 --- a/doc/source/index.rst +++ b/doc/source/index.rst @@ -34,10 +34,6 @@ Release v\ |version|. The **pyam** Python package provides a range of diagnostic tools and functions for analyzing and visualizing data from your favorite assessment model(s). -The *community mailing* list for questions and discussions on new features is -hosted by Googlegroups. Please join at `groups.google.com/d/forum/pyam`_ -and use to send an email to the *pyam* community. - The source code for **pyam** is available on `Github`_. .. _`Github`: @@ -79,20 +75,11 @@ Documentation examples/index api - -Get in touch ------------- - -- Report bugs, suggest features or view the source code `on GitHub`_. -- For less well defined questions or ideas, use the `mailing list`_. - -.. _mailing list: https://groups.google.com/forum/#!forum/pyam -.. _on GitHub: http://github.com/IAMconsortium/pyam +.. include:: ../../CONTRIBUTING.rst License ------- :code:`pyam` is available under the open source `Apache License`_. -.. _Apache LIcense: http://www.apache.org/licenses/LICENSE-2.0.html - +.. _Apache License: http://www.apache.org/licenses/LICENSE-2.0.html diff --git a/doc/source/install.rst b/doc/source/install.rst index 33eadc9c9..bfed19b31 100644 --- a/doc/source/install.rst +++ b/doc/source/install.rst @@ -27,6 +27,15 @@ From Source Depedencies ~~~~~~~~~~~ +Like any software project, we stand on the shoulders of giants. Our particular +giants include :code:`numpy` :cite:`numpy`, :code:`matplotlib` +:cite:`matplotlib`, and :code:`pandas` :cite:`pandas`. Explicit requirements are +fully enumerated below. + +The required depedencies for :code:`pyam` are: + + .. program-output:: python -c 'import sys; sys.path.append("../.."); import requirements; requirements.display()' + The optional depedencies for :code:`pyam` are: .. include:: ../../requirements.txt @@ -38,3 +47,10 @@ The depedencies for building this documentation are: .. include:: ../requirements.txt :start-line: 0 :literal: + +References +********** + +.. bibliography:: refs.bib + :style: plain + :all: diff --git a/doc/source/refs.bib b/doc/source/refs.bib new file mode 100644 index 000000000..948b7b33b --- /dev/null +++ b/doc/source/refs.bib @@ -0,0 +1,33 @@ + +@Misc{numpy, +author = {Travis Oliphant}, +title = {{NumPy}: A guide to {NumPy}}, +year = {2006--}, +howpublished = {USA: Trelgol Publishing}, +url = "http://www.numpy.org/" +} + +@Article{matplotlib, +Author = {Hunter, J. D.}, +Title = {Matplotlib: A 2D graphics environment}, +Journal = {Computing In Science \& Engineering}, +Volume = {9}, +Number = {3}, +Pages = {90--95}, +abstract = {Matplotlib is a 2D graphics package used for Python +for application development, interactive scripting, and +publication-quality image generation across user +interfaces and operating systems.}, +publisher = {IEEE COMPUTER SOC}, +doi = {10.1109/MCSE.2007.55}, +year = 2007 +} + +@InProceedings{pandas, + author = {Wes McKinney}, + title = {Data Structures for Statistical Computing in Python}, + booktitle = {Proceedings of the 9th Python in Science Conference}, + pages = {51 - 56}, + year = {2010}, + editor = {Stefan van der Walt and Jarrod Millman} +} diff --git a/requirements.py b/requirements.py new file mode 100644 index 000000000..1fdeb6cf8 --- /dev/null +++ b/requirements.py @@ -0,0 +1,17 @@ +install_requirements = [ + "argparse", + "numpy", + "requests", + "pandas >=0.21.0", + "PyYAML", + "xlrd", + "xlsxwriter", + "matplotlib", + "seaborn", + "six", +] + + +def display(): + for x in install_requirements: + print(x) diff --git a/setup.py b/setup.py index 4e2155300..83cf825b8 100755 --- a/setup.py +++ b/setup.py @@ -9,6 +9,8 @@ from setuptools import setup, Command from subprocess import call +import requirements + # Thanks to http://patorjk.com/software/taag/ logo = r""" ______ __ __ ______ __ __ @@ -64,18 +66,7 @@ def main(): package_data = { 'pyam': ['region_mappings/*'], } - install_requirements = [ - "argparse", - "numpy", - "requests", - "pandas >=0.21.0", - "PyYAML", - "xlrd", - "xlsxwriter", - "matplotlib", - "seaborn", - "six", - ] + install_requirements = requirements.install_requirements extra_requirements = { 'tests': ['coverage', 'pytest', 'pytest-cov', 'pytest-mpl'], 'docs': ['sphinx', 'sphinx_rtd_theme'],