duecredit


Nameduecredit JSON
Version 0.9.3 PyPI version JSON
download
home_pagehttps://github.com/duecredit/duecredit
SummaryPublications (and donations) tracer
upload_time2023-11-12 15:57:03
maintainer
docs_urlNone
authorYaroslav Halchenko, Matteo Visconti di Oleggio Castello
requires_python>=3.6
license2-clause BSD License
keywords citation tracing
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # duecredit


[![Build Status](https://travis-ci.org/duecredit/duecredit.svg?branch=master)](https://travis-ci.org/duecredit/duecredit)
[![Coverage Status](https://coveralls.io/repos/duecredit/duecredit/badge.svg)](https://coveralls.io/r/duecredit/duecredit)
[![DOI](https://zenodo.org/badge/DOI/110.5281/zenodo.3376260.svg)](https://doi.org/10.5281/zenodo.3376260)
[![PyPI version fury.io](https://badge.fury.io/py/duecredit.svg)](https://pypi.python.org/pypi/duecredit/)

duecredit is being conceived to address the problem of inadequate
citation of scientific software and methods, and limited visibility of
donation requests for open-source software.

It provides a simple framework (at the moment for Python only) to
embed publication or other references in the original code so they are
automatically collected and reported to the user at the necessary
level of reference detail, i.e. only references for actually used
functionality will be presented back if software provides multiple
citeable implementations.

## Installation

Duecredit is easy to install via pip, simply type:
 
 `pip install duecredit`

## Examples

### To cite the modules and methods you are using 

You can already start "registering" citations using duecredit in your
Python modules and even registering citations (we call this approach "injections")
for modules which do not (yet) use duecredit.  duecredit will remain an optional
dependency, i.e. your software will work correctly even without duecredit installed.

For example, list citations of the modules and methods `yourproject` uses with few simple commands:
```bash
cd /path/to/yourmodule # for ~/yourproject
cd yourproject # change directory into where the main code base is
python -m duecredit yourproject.py
```
Or you can also display them in BibTex format, using:
```bash
duecredit summary --format=bibtex
```
See this gif animation for better illustration:
![Example](examples/duecredit_example.gif)


### To let others cite your software


For using duecredit in your software

1. Copy `duecredit/stub.py` to your codebase, e.g.

        wget -q -O /path/tomodule/yourmodule/due.py \
          https://raw.githubusercontent.com/duecredit/duecredit/master/duecredit/stub.py


    **Note** that it might be better to avoid naming it duecredit.py to avoid shadowing
    installed duecredit.

2. Then use `duecredit` import due and necessary entries in your code as

        from .due import due, Doi, BibTeX

     To provide reference for the entire module just use e.g.

         due.cite(Doi("1.2.3/x.y.z"), description="Solves all your problems", path="magicpy")

     To provide a reference for a function or a method, use `dcite` decorator

         @due.dcite(Doi("1.2.3/x.y.z"), description="Resolves constipation issue")
         def pushit():
             ...

    You can easily obtain DOI for your software using Zenodo.org and few other DOI providers.

References can also be entered as BibTeX entries

        due.cite(BibTeX("""
                @article{mynicearticle,
                title={A very cool paper},
                author={Happy, Author and Lucky, Author},
                journal={The Journal of Serendipitous Discoveries}
                }
                """), 
                description="Solves all your problems", path="magicpy")
        
## Now what
        
### Do the due

Once you obtained the references in the duecredit output, include them in in the references section of your paper or software, which used the cited software.
        
### Add injections for other existing modules

We hope that eventually this somewhat cruel approach will not be necessary. But
until other packages support duecredit "natively" we have provided a way to "inject"
citations for modules and/or functions and methods via injections: citations will be
added to the corresponding functionality upon those modules import.

All injections are collected under
[duecredit/injections](https://github.com/duecredit/duecredit/tree/master/duecredit/injections).
See any file there with `mod_` prefix for a complete example. But
overall it is just a regular Python module defining a function
`inject(injector)` which will then add new entries to the injector,
which will in turn add those entries to the duecredit whenever the
corresponding module gets imported.


## User-view


By default `duecredit` does exactly nothing -- all decorators do not
decorate, all `cite` functions just return, so there should be no fear
that it would break anything. Then whenever anyone runs their analysis
which uses your code and sets `DUECREDIT_ENABLE=yes` environment
variable or uses `python -m duecredit`, and invokes any of the cited
function/methods, at the end of the run all collected bibliography
will be presented to the screen and pickled into `.duecredit.p` file
in current directory:

    $> python -m duecredit examples/example_scipy.py
    I: Simulating 4 blobs
    I: Done clustering 4 blobs

    DueCredit Report:
    - Scientific tools library / numpy (v 1.10.4) [1]
    - Scientific tools library / scipy (v 0.14) [2]
      - Single linkage hierarchical clustering / scipy.cluster.hierarchy:linkage (v 0.14) [3]

    2 packages cited
    0 modules cited
    1 function cited

    References
    ----------

    [1] Van Der Walt, S., Colbert, S.C. & Varoquaux, G., 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science & Engineering, 13(2), pp.22–30.
    [2] Jones, E. et al., 2001. SciPy: Open source scientific tools for Python.
    [3] Sibson, R., 1973. SLINK: an optimally efficient algorithm for the single-link cluster method. The Computer Journal, 16(1), pp.30–34.


Incremental runs of various software would keep enriching that file.
Then you can use `duecredit summary` command to show that information
again (stored in `.duecredit.p` file) or export it as a BibTeX file
ready for reuse, e.g.:

    $> duecredit summary --format=bibtex
    @article{van2011numpy,
            title={The NumPy array: a structure for efficient numerical computation},
            author={Van Der Walt, Stefan and Colbert, S Chris and Varoquaux, Gael},
            journal={Computing in Science \& Engineering},
            volume={13},
            number={2},
            pages={22--30},
            year={2011},
            publisher={AIP Publishing}
            }
    @Misc{JOP+01,
          author =    {Eric Jones and Travis Oliphant and Pearu Peterson and others},
          title =     {{SciPy}: Open source scientific tools for {Python}},
          year =      {2001--},
          url = "http://www.scipy.org/",
          note = {[Online; accessed 2015-07-13]}
        }
    @article{sibson1973slink,
            title={SLINK: an optimally efficient algorithm for the single-link cluster method},
            author={Sibson, Robin},
            journal={The Computer Journal},
            volume={16},
            number={1},
            pages={30--34},
            year={1973},
            publisher={Br Computer Soc}
        }


and if by default only references for "implementation" are listed, we
can enable listing of references for other tags as well (e.g. "edu"
depicting instructional materials -- textbooks etc. on the topic):

    $> DUECREDIT_REPORT_TAGS=* duecredit summary
    
    DueCredit Report:
    - Scientific tools library / numpy (v 1.10.4) [1]
    - Scientific tools library / scipy (v 0.14) [2]
      - Hierarchical clustering / scipy.cluster.hierarchy (v 0.14) [3, 4, 5, 6, 7, 8, 9]
      - Single linkage hierarchical clustering / scipy.cluster.hierarchy:linkage (v 0.14) [10, 11]

    2 packages cited
    1 module cited
    1 function cited

    References
    ----------

    [1] Van Der Walt, S., Colbert, S.C. & Varoquaux, G., 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science & Engineering, 13(2), pp.22–30.
    [2] Jones, E. et al., 2001. SciPy: Open source scientific tools for Python.
    [3] Sneath, P.H. & Sokal, R.R., 1962. Numerical taxonomy. Nature, 193(4818), pp.855–860.
    [4] Batagelj, V. & Bren, M., 1995. Comparing resemblance measures. Journal of classification, 12(1), pp.73–90.
    [5] Sokal, R.R., Michener, C.D. & University of Kansas, 1958. A Statistical Method for Evaluating Systematic Relationships, University of Kansas.
    [6] Jain, A.K. & Dubes, R.C., 1988. Algorithms for clustering data, Prentice-Hall, Inc..
    [7] Johnson, S.C., 1967. Hierarchical clustering schemes. Psychometrika, 32(3), pp.241–254.
    [8] Edelbrock, C., 1979. Mixture model tests of hierarchical clustering algorithms: the problem of classifying everybody. Multivariate Behavioral Research, 14(3), pp.367–384.
    [9] Fisher, R.A., 1936. The use of multiple measurements in taxonomic problems. Annals of eugenics, 7(2), pp.179–188.
    [10] Gower, J.C. & Ross, G., 1969. Minimum spanning trees and single linkage cluster analysis. Applied statistics, pp.54–64.
    [11] Sibson, R., 1973. SLINK: an optimally efficient algorithm for the single-link cluster method. The Computer Journal, 16(1), pp.30–34.
    
The `DUECREDIT_REPORT_ALL` flag allows one to output all the references
for the modules that lack objects or functions with citations.
Compared to the previous example, the following output additionally 
shows a reference for scikit-learn since `example_scipy.py` uses 
an uncited function from that package.

    $> DUECREDIT_REPORT_TAGS=* DUECREDIT_REPORT_ALL=1 duecredit summary

    DueCredit Report:
    - Scientific tools library / numpy (v 1.10.4) [1]
    - Scientific tools library / scipy (v 0.14) [2]
      - Hierarchical clustering / scipy.cluster.hierarchy (v 0.14) [3, 4, 5, 6, 7, 8, 9]
      - Single linkage hierarchical clustering / scipy.cluster.hierarchy:linkage (v 0.14) [10, 11]
    - Machine Learning library / sklearn (v 0.15.2) [12]

    3 packages cited
    1 module cited
    1 function cited

    References
    ----------

    [1] Van Der Walt, S., Colbert, S.C. & Varoquaux, G., 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science & Engineering, 13(2), pp.22–30.
    [2] Jones, E. et al., 2001. SciPy: Open source scientific tools for Python.
    [3] Sneath, P.H. & Sokal, R.R., 1962. Numerical taxonomy. Nature, 193(4818), pp.855–860.
    ...

## Tags


You are welcome to introduce new tags specific for your citations but we hope
that for consistency across projects, you would use following tags

- `implementation` (default) — an implementation of the cited method
- `reference-implementation` — the original implementation (ideally by
  the authors of the paper) of the cited method
- `another-implementation` — some other implementation of
   the method, e.g. if you would like to provide citation for another
   implementation of the method you have implemented in your code and for
   which you have already provided `implementation` or
   `reference-implementation` tag
- `use` — publications demonstrating a worthwhile noting use of the
  method
- `edu` — tutorials, textbooks and other materials useful to learn
  more about cited functionality
- `donate` — should be commonly used with Url entries to point to the
  websites  describing how to contribute some funds to the referenced
  project
- `funding` — to point to the sources of funding which provided support
  for a given functionality implementation and/or method development
- `dataset` - for datasets

## Ultimate goals


### Reduce demand for prima ballerina projects

**Problem**: Scientific software is often developed to gain citations for
original publication through the use of the software implementing it.
Unfortunately such established procedure discourages contributions
to existing projects and fosters new projects to be developed from
scratch.

**Solution**: With easy ways to provide all-and-only relevant references
for used functionality within a large(r) framework, scientific
developers will prefer to contribute to already existing projects.

**Benefits**: As a result, scientific developers will immediately benefit
from adhering to proper development procedures (codebase structuring,
testing, etc) and already established delivery and deployment channels
existing projects already have.  This will increase efficiency and
standardization of scientific software development, thus addressing
many (if not all) core problems with scientific software development
everyone likes to bash about (reproducibility, longevity, etc.).

### Adequately reference core libraries

**Problem**: Scientific software often, if not always, uses 3rd party
libraries (e.g., NumPy, SciPy, atlas) which might not even be visible
at the user level.  Therefore they are rarely referenced in the
publications despite providing the fundamental core for solving a
scientific problem at hands.

**Solution**: With automated bibliography compilation for all used
libraries, such projects and their authors would get a chance to
receive adequate citability.

**Benefits**: Adequate appreciation of the scientific software
developments.  Coupled with a solution for "prima ballerina" problem,
more contributions will flow into the core/foundational projects
making new methodological developments readily available to even wider
audiences without proliferation of the low quality scientific software.


## Similar/related projects

[sempervirens](https://github.com/njsmith/sempervirens) -- *an
experimental prototype for gathering anonymous, opt-in usage data for
open scientific software*.  Eventually in duecredit we aim either to
provide similar functionality (since we are collecting such
information as well) or just interface/report to sempervirens.

[citepy](https://github.com/clbarnes/citepy) -- Easily cite software libraries using information from automatically gathered from their package repository.

## Currently used by

This is a running list of projects that use DueCredit natively. If you
are using DueCredit, or plan to use it, please consider sending a pull
request and add your project to this list. Thanks to
[@fedorov](https://github.com/fedorov) for the idea.

- [PyMVPA](http://www.pymvpa.org)
- [fatiando](https://github.com/fatiando/fatiando)
- [Nipype](https://github.com/nipy/nipype)
- [QInfer](https://github.com/QInfer/python-qinfer)
- [shablona](https://github.com/uwescience/shablona)
- [gfusion](https://github.com/mvdoc/gfusion)
- [pybids](https://github.com/INCF/pybids)
- [Quickshear](https://github.com/nipy/quickshear)
- [meqc](https://github.com/emdupre/meqc)
- [MDAnalysis](https://www.mdanalysis.org)
- [bctpy](https://github.com/aestrivex/bctpy)
- [TorchIO](https://github.com/fepegar/torchio)

Last updated 2020-04-07.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/duecredit/duecredit",
    "name": "duecredit",
    "maintainer": "",
    "docs_url": null,
    "requires_python": ">=3.6",
    "maintainer_email": "",
    "keywords": "citation tracing",
    "author": "Yaroslav Halchenko, Matteo Visconti di Oleggio Castello",
    "author_email": "yoh@onerussian.com",
    "download_url": "https://files.pythonhosted.org/packages/76/9b/b1f90dbd74af683b1e53c8799246acf17be01167d0bdd9cd22be8232010f/duecredit-0.9.3.tar.gz",
    "platform": null,
    "description": "# duecredit\n\n\n[![Build Status](https://travis-ci.org/duecredit/duecredit.svg?branch=master)](https://travis-ci.org/duecredit/duecredit)\n[![Coverage Status](https://coveralls.io/repos/duecredit/duecredit/badge.svg)](https://coveralls.io/r/duecredit/duecredit)\n[![DOI](https://zenodo.org/badge/DOI/110.5281/zenodo.3376260.svg)](https://doi.org/10.5281/zenodo.3376260)\n[![PyPI version fury.io](https://badge.fury.io/py/duecredit.svg)](https://pypi.python.org/pypi/duecredit/)\n\nduecredit is being conceived to address the problem of inadequate\ncitation of scientific software and methods, and limited visibility of\ndonation requests for open-source software.\n\nIt provides a simple framework (at the moment for Python only) to\nembed publication or other references in the original code so they are\nautomatically collected and reported to the user at the necessary\nlevel of reference detail, i.e. only references for actually used\nfunctionality will be presented back if software provides multiple\nciteable implementations.\n\n## Installation\n\nDuecredit is easy to install via pip, simply type:\n \n `pip install duecredit`\n\n## Examples\n\n### To cite the modules and methods you are using \n\nYou can already start \"registering\" citations using duecredit in your\nPython modules and even registering citations (we call this approach \"injections\")\nfor modules which do not (yet) use duecredit.  duecredit will remain an optional\ndependency, i.e. your software will work correctly even without duecredit installed.\n\nFor example, list citations of the modules and methods `yourproject` uses with few simple commands:\n```bash\ncd /path/to/yourmodule # for ~/yourproject\ncd yourproject # change directory into where the main code base is\npython -m duecredit yourproject.py\n```\nOr you can also display them in BibTex format, using:\n```bash\nduecredit summary --format=bibtex\n```\nSee this gif animation for better illustration:\n![Example](examples/duecredit_example.gif)\n\n\n### To let others cite your software\n\n\nFor using duecredit in your software\n\n1. Copy `duecredit/stub.py` to your codebase, e.g.\n\n        wget -q -O /path/tomodule/yourmodule/due.py \\\n          https://raw.githubusercontent.com/duecredit/duecredit/master/duecredit/stub.py\n\n\n    **Note** that it might be better to avoid naming it duecredit.py to avoid shadowing\n    installed duecredit.\n\n2. Then use `duecredit` import due and necessary entries in your code as\n\n        from .due import due, Doi, BibTeX\n\n     To provide reference for the entire module just use e.g.\n\n         due.cite(Doi(\"1.2.3/x.y.z\"), description=\"Solves all your problems\", path=\"magicpy\")\n\n     To provide a reference for a function or a method, use `dcite` decorator\n\n         @due.dcite(Doi(\"1.2.3/x.y.z\"), description=\"Resolves constipation issue\")\n         def pushit():\n             ...\n\n    You can easily obtain DOI for your software using Zenodo.org and few other DOI providers.\n\nReferences can also be entered as BibTeX entries\n\n        due.cite(BibTeX(\"\"\"\n                @article{mynicearticle,\n                title={A very cool paper},\n                author={Happy, Author and Lucky, Author},\n                journal={The Journal of Serendipitous Discoveries}\n                }\n                \"\"\"), \n                description=\"Solves all your problems\", path=\"magicpy\")\n        \n## Now what\n        \n### Do the due\n\nOnce you obtained the references in the duecredit output, include them in in the references section of your paper or software, which used the cited software.\n        \n### Add injections for other existing modules\n\nWe hope that eventually this somewhat cruel approach will not be necessary. But\nuntil other packages support duecredit \"natively\" we have provided a way to \"inject\"\ncitations for modules and/or functions and methods via injections: citations will be\nadded to the corresponding functionality upon those modules import.\n\nAll injections are collected under\n[duecredit/injections](https://github.com/duecredit/duecredit/tree/master/duecredit/injections).\nSee any file there with `mod_` prefix for a complete example. But\noverall it is just a regular Python module defining a function\n`inject(injector)` which will then add new entries to the injector,\nwhich will in turn add those entries to the duecredit whenever the\ncorresponding module gets imported.\n\n\n## User-view\n\n\nBy default `duecredit` does exactly nothing -- all decorators do not\ndecorate, all `cite` functions just return, so there should be no fear\nthat it would break anything. Then whenever anyone runs their analysis\nwhich uses your code and sets `DUECREDIT_ENABLE=yes` environment\nvariable or uses `python -m duecredit`, and invokes any of the cited\nfunction/methods, at the end of the run all collected bibliography\nwill be presented to the screen and pickled into `.duecredit.p` file\nin current directory:\n\n    $> python -m duecredit examples/example_scipy.py\n    I: Simulating 4 blobs\n    I: Done clustering 4 blobs\n\n    DueCredit Report:\n    - Scientific tools library / numpy (v 1.10.4) [1]\n    - Scientific tools library / scipy (v 0.14) [2]\n      - Single linkage hierarchical clustering / scipy.cluster.hierarchy:linkage (v 0.14) [3]\n\n    2 packages cited\n    0 modules cited\n    1 function cited\n\n    References\n    ----------\n\n    [1] Van Der Walt, S., Colbert, S.C. & Varoquaux, G., 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science & Engineering, 13(2), pp.22\u201330.\n    [2] Jones, E. et al., 2001. SciPy: Open source scientific tools for Python.\n    [3] Sibson, R., 1973. SLINK: an optimally efficient algorithm for the single-link cluster method. The Computer Journal, 16(1), pp.30\u201334.\n\n\nIncremental runs of various software would keep enriching that file.\nThen you can use `duecredit summary` command to show that information\nagain (stored in `.duecredit.p` file) or export it as a BibTeX file\nready for reuse, e.g.:\n\n    $> duecredit summary --format=bibtex\n    @article{van2011numpy,\n            title={The NumPy array: a structure for efficient numerical computation},\n            author={Van Der Walt, Stefan and Colbert, S Chris and Varoquaux, Gael},\n            journal={Computing in Science \\& Engineering},\n            volume={13},\n            number={2},\n            pages={22--30},\n            year={2011},\n            publisher={AIP Publishing}\n            }\n    @Misc{JOP+01,\n          author =    {Eric Jones and Travis Oliphant and Pearu Peterson and others},\n          title =     {{SciPy}: Open source scientific tools for {Python}},\n          year =      {2001--},\n          url = \"http://www.scipy.org/\",\n          note = {[Online; accessed 2015-07-13]}\n        }\n    @article{sibson1973slink,\n            title={SLINK: an optimally efficient algorithm for the single-link cluster method},\n            author={Sibson, Robin},\n            journal={The Computer Journal},\n            volume={16},\n            number={1},\n            pages={30--34},\n            year={1973},\n            publisher={Br Computer Soc}\n        }\n\n\nand if by default only references for \"implementation\" are listed, we\ncan enable listing of references for other tags as well (e.g. \"edu\"\ndepicting instructional materials -- textbooks etc. on the topic):\n\n    $> DUECREDIT_REPORT_TAGS=* duecredit summary\n    \n    DueCredit Report:\n    - Scientific tools library / numpy (v 1.10.4) [1]\n    - Scientific tools library / scipy (v 0.14) [2]\n      - Hierarchical clustering / scipy.cluster.hierarchy (v 0.14) [3, 4, 5, 6, 7, 8, 9]\n      - Single linkage hierarchical clustering / scipy.cluster.hierarchy:linkage (v 0.14) [10, 11]\n\n    2 packages cited\n    1 module cited\n    1 function cited\n\n    References\n    ----------\n\n    [1] Van Der Walt, S., Colbert, S.C. & Varoquaux, G., 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science & Engineering, 13(2), pp.22\u201330.\n    [2] Jones, E. et al., 2001. SciPy: Open source scientific tools for Python.\n    [3] Sneath, P.H. & Sokal, R.R., 1962. Numerical taxonomy. Nature, 193(4818), pp.855\u2013860.\n    [4] Batagelj, V. & Bren, M., 1995. Comparing resemblance measures. Journal of classification, 12(1), pp.73\u201390.\n    [5] Sokal, R.R., Michener, C.D. & University of Kansas, 1958. A Statistical Method for Evaluating Systematic Relationships, University of Kansas.\n    [6] Jain, A.K. & Dubes, R.C., 1988. Algorithms for clustering data, Prentice-Hall, Inc..\n    [7] Johnson, S.C., 1967. Hierarchical clustering schemes. Psychometrika, 32(3), pp.241\u2013254.\n    [8] Edelbrock, C., 1979. Mixture model tests of hierarchical clustering algorithms: the problem of classifying everybody. Multivariate Behavioral Research, 14(3), pp.367\u2013384.\n    [9] Fisher, R.A., 1936. The use of multiple measurements in taxonomic problems. Annals of eugenics, 7(2), pp.179\u2013188.\n    [10] Gower, J.C. & Ross, G., 1969. Minimum spanning trees and single linkage cluster analysis. Applied statistics, pp.54\u201364.\n    [11] Sibson, R., 1973. SLINK: an optimally efficient algorithm for the single-link cluster method. The Computer Journal, 16(1), pp.30\u201334.\n    \nThe `DUECREDIT_REPORT_ALL` flag allows one to output all the references\nfor the modules that lack objects or functions with citations.\nCompared to the previous example, the following output additionally \nshows a reference for scikit-learn since `example_scipy.py` uses \nan uncited function from that package.\n\n    $> DUECREDIT_REPORT_TAGS=* DUECREDIT_REPORT_ALL=1 duecredit summary\n\n    DueCredit Report:\n    - Scientific tools library / numpy (v 1.10.4) [1]\n    - Scientific tools library / scipy (v 0.14) [2]\n      - Hierarchical clustering / scipy.cluster.hierarchy (v 0.14) [3, 4, 5, 6, 7, 8, 9]\n      - Single linkage hierarchical clustering / scipy.cluster.hierarchy:linkage (v 0.14) [10, 11]\n    - Machine Learning library / sklearn (v 0.15.2) [12]\n\n    3 packages cited\n    1 module cited\n    1 function cited\n\n    References\n    ----------\n\n    [1] Van Der Walt, S., Colbert, S.C. & Varoquaux, G., 2011. The NumPy array: a structure for efficient numerical computation. Computing in Science & Engineering, 13(2), pp.22\u201330.\n    [2] Jones, E. et al., 2001. SciPy: Open source scientific tools for Python.\n    [3] Sneath, P.H. & Sokal, R.R., 1962. Numerical taxonomy. Nature, 193(4818), pp.855\u2013860.\n    ...\n\n## Tags\n\n\nYou are welcome to introduce new tags specific for your citations but we hope\nthat for consistency across projects, you would use following tags\n\n- `implementation` (default) \u2014 an implementation of the cited method\n- `reference-implementation` \u2014 the original implementation (ideally by\n  the authors of the paper) of the cited method\n- `another-implementation` \u2014 some other implementation of\n   the method, e.g. if you would like to provide citation for another\n   implementation of the method you have implemented in your code and for\n   which you have already provided `implementation` or\n   `reference-implementation` tag\n- `use` \u2014 publications demonstrating a worthwhile noting use of the\n  method\n- `edu` \u2014 tutorials, textbooks and other materials useful to learn\n  more about cited functionality\n- `donate` \u2014 should be commonly used with Url entries to point to the\n  websites  describing how to contribute some funds to the referenced\n  project\n- `funding` \u2014 to point to the sources of funding which provided support\n  for a given functionality implementation and/or method development\n- `dataset` - for datasets\n\n## Ultimate goals\n\n\n### Reduce demand for prima ballerina projects\n\n**Problem**: Scientific software is often developed to gain citations for\noriginal publication through the use of the software implementing it.\nUnfortunately such established procedure discourages contributions\nto existing projects and fosters new projects to be developed from\nscratch.\n\n**Solution**: With easy ways to provide all-and-only relevant references\nfor used functionality within a large(r) framework, scientific\ndevelopers will prefer to contribute to already existing projects.\n\n**Benefits**: As a result, scientific developers will immediately benefit\nfrom adhering to proper development procedures (codebase structuring,\ntesting, etc) and already established delivery and deployment channels\nexisting projects already have.  This will increase efficiency and\nstandardization of scientific software development, thus addressing\nmany (if not all) core problems with scientific software development\neveryone likes to bash about (reproducibility, longevity, etc.).\n\n### Adequately reference core libraries\n\n**Problem**: Scientific software often, if not always, uses 3rd party\nlibraries (e.g., NumPy, SciPy, atlas) which might not even be visible\nat the user level.  Therefore they are rarely referenced in the\npublications despite providing the fundamental core for solving a\nscientific problem at hands.\n\n**Solution**: With automated bibliography compilation for all used\nlibraries, such projects and their authors would get a chance to\nreceive adequate citability.\n\n**Benefits**: Adequate appreciation of the scientific software\ndevelopments.  Coupled with a solution for \"prima ballerina\" problem,\nmore contributions will flow into the core/foundational projects\nmaking new methodological developments readily available to even wider\naudiences without proliferation of the low quality scientific software.\n\n\n## Similar/related projects\n\n[sempervirens](https://github.com/njsmith/sempervirens) -- *an\nexperimental prototype for gathering anonymous, opt-in usage data for\nopen scientific software*.  Eventually in duecredit we aim either to\nprovide similar functionality (since we are collecting such\ninformation as well) or just interface/report to sempervirens.\n\n[citepy](https://github.com/clbarnes/citepy) -- Easily cite software libraries using information from automatically gathered from their package repository.\n\n## Currently used by\n\nThis is a running list of projects that use DueCredit natively. If you\nare using DueCredit, or plan to use it, please consider sending a pull\nrequest and add your project to this list. Thanks to\n[@fedorov](https://github.com/fedorov) for the idea.\n\n- [PyMVPA](http://www.pymvpa.org)\n- [fatiando](https://github.com/fatiando/fatiando)\n- [Nipype](https://github.com/nipy/nipype)\n- [QInfer](https://github.com/QInfer/python-qinfer)\n- [shablona](https://github.com/uwescience/shablona)\n- [gfusion](https://github.com/mvdoc/gfusion)\n- [pybids](https://github.com/INCF/pybids)\n- [Quickshear](https://github.com/nipy/quickshear)\n- [meqc](https://github.com/emdupre/meqc)\n- [MDAnalysis](https://www.mdanalysis.org)\n- [bctpy](https://github.com/aestrivex/bctpy)\n- [TorchIO](https://github.com/fepegar/torchio)\n\nLast updated 2020-04-07.\n",
    "bugtrack_url": null,
    "license": "2-clause BSD License",
    "summary": "Publications (and donations) tracer",
    "version": "0.9.3",
    "project_urls": {
        "Homepage": "https://github.com/duecredit/duecredit"
    },
    "split_keywords": [
        "citation",
        "tracing"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1be91177c7fcc7a6bc60efb397686a8cf4d5a8b5a9c0f867988976ef9532e078",
                "md5": "5782d593a70831c576b548b1a3c158ca",
                "sha256": "5ec1df6f2cfabd2255181b70ab0766cd96b540f9770fd63fd98132303f5da16d"
            },
            "downloads": -1,
            "filename": "duecredit-0.9.3-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5782d593a70831c576b548b1a3c158ca",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.6",
            "size": 86629,
            "upload_time": "2023-11-12T15:57:01",
            "upload_time_iso_8601": "2023-11-12T15:57:01.978695Z",
            "url": "https://files.pythonhosted.org/packages/1b/e9/1177c7fcc7a6bc60efb397686a8cf4d5a8b5a9c0f867988976ef9532e078/duecredit-0.9.3-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "769bb1f90dbd74af683b1e53c8799246acf17be01167d0bdd9cd22be8232010f",
                "md5": "7242ef193d64c98a4aff9217a017bbb7",
                "sha256": "f8378ea90d11f9752592e487c92163da80d9a9ff39993eb83c08bf2ed4eca372"
            },
            "downloads": -1,
            "filename": "duecredit-0.9.3.tar.gz",
            "has_sig": false,
            "md5_digest": "7242ef193d64c98a4aff9217a017bbb7",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.6",
            "size": 80753,
            "upload_time": "2023-11-12T15:57:03",
            "upload_time_iso_8601": "2023-11-12T15:57:03.798229Z",
            "url": "https://files.pythonhosted.org/packages/76/9b/b1f90dbd74af683b1e53c8799246acf17be01167d0bdd9cd22be8232010f/duecredit-0.9.3.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-11-12 15:57:03",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "duecredit",
    "github_project": "duecredit",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "appveyor": true,
    "requirements": [],
    "tox": true,
    "lcname": "duecredit"
}
        
Elapsed time: 0.13250s