References

R2T2 works by decorating functions, classes or methods with @add_reference where particular algorithms described in a paper are implemented or data stored in a repository is used.

In Function

from r2t2 import add_reference


@add_reference(short_purpose="Original implementation of R2T2",
               reference="Diego Alonso-Álvarez, et al."
               "(2018, February 27). Solcore (Version 5.1.0). Zenodo."
               "http://doi.org/10.5281/zenodo.1185316")
def my_great_function():
    pass


if __name__ == "__main__":
    my_great_function()

In Class

from r2t2 import add_reference


@add_reference(short_purpose="Original implementation of R2T2",
               reference="Diego Alonso-Álvarez, et al."
               "(2018, February 27). Solcore (Version 5.1.0). Zenodo."
               "http://doi.org/10.5281/zenodo.1185316")
class MyGreatClass():
    pass

In Method

from r2t2 import add_reference


class MyGreatClass():

    @add_reference(short_purpose="Original implementation of R2T2",
                   reference="Diego Alonso-Álvarez, et al."
                   "(2018, February 27). Solcore (Version 5.1.0). Zenodo."
                   "http://doi.org/10.5281/zenodo.1185316")
    def my_great_function(self):
        pass

Two or More References

from r2t2 import add_reference


@add_reference(short_purpose="some comment", reference="Reference 1")
@add_reference(short_purpose="another comment", reference="Reference 2")
def my_great_function():
    pass

As Docstring

R2T2 will parse the docstring searching for the DOI.

def my_great_function():
    """
    Original implementation of R2T2
    Diego Alonso-Álvarez, et al.
    (2018, February 27). Solcore (Version 5.1.0). Zenodo.
    http://doi.org/10.5281/zenodo.1185316
    """
    pass

R2T2 will also search for Sphinx’s cite directive.

def my_great_function():
    """
    See :cite:`1987:nelson` for an introduction to non-standard analysis.
    """
    pass