[Python-ideas] Add a __cite__ method for scientific packages

Nathan Goldbaum nathan12343 at gmail.com
Wed Jun 27 19:00:36 EDT 2018

This is an interesting proposal. Speaking as a developer of scientific
software packages it would be really cool to have support for something
like this in the language itself.

The software sustainability institute in the UK have written several blog
posts advocating the use of CITATION files containing this sort of metadata:


A github code search for __citation__ also gets 127 hits that mostly seem
to be research software that are using this attribute more or less as
suggested here:


It's also worth pointing out http://citeas.org/ which is sort of a citation
search engine for software projects. It uses a number of heuristics to
figure out what the appropriate citation for a piece of software is.

On Wed, Jun 27, 2018 at 5:49 PM, Guido van Rossum <guido at python.org> wrote:

> While I'm not personally in need of citations (and never felt I was) I can
> easily understand the point -- sometimes citations can make or break a
> career and having written a popular software package should be acknowledged.
> Are there other languages or software communities that do something like
> this? It would be nice not to have to invent this wheel. Eventually a PEP
> and an implementation should be presented, but first the idea needs to be
> explored more.
> --Guido
> On Wed, Jun 27, 2018 at 3:30 PM Andrei Kucharavy <
> andrei.kucharavy at gmail.com> wrote:
>> Over the last 10 years, Python has slowly inched towards becoming the
>> most popular scientific computing language, beating or seriously
>> challenging Matlab, R, Mathematica and many specialized languages (S, SAS,
>> ...) in numerous applications.
>> A large part of this growth is driven by amazing community packages, such
>> as numpy, scipy, scikits-learn, scikits-image, seaborn or pandas, just to
>> name a few. Development of such packages represents a significant time
>> investment by people working in academic environments. To be able to
>> justify the investment of time into such package development and support,
>> the developers usually associated them with a scientific article. The
>> number of citations of those articles are considered as measures of the
>> usefulness of articles and are required to justify the time spent on them.
>> Unfortunately, as of now, a significant issue is that such packages are
>> not cited despite being extensively used. Part of this is due to the
>> difficulties with compiling the list of proper citations for each module
>> (and, for libraries associated with multiple update publications, selecting
>> the relevant citation). Part of this is due to users not realizing which of
>> the modules they are using have associated publications and should be cited.
>> To remediate to that situation, I suggest a __citation__ method
>> associated to each package installation and import. Called from the
>> __main__, __citation__() would scan __citation__ of all imported packages
>> and return the list of all relevant top-level citations associated to the
>> packages.
>> As a scientific package developer working in academia, the problem is
>> quite serious, and the solution seems relatively straightforward.
>> What does Python core team think about addition and long-term maintenance
>> of such a feature to the import and setup mechanisms? What do other users
>> and scientific package developers think of such a mechanism for citations
>> retrieval?
>> Best,
>> *Andrei Kucharavy*Post-Doc @ *Joel S. Bader*
>> * Lab*Johns Hopkins University, Baltimore, USA.
>> _______________________________________________
>> Python-ideas mailing list
>> Python-ideas at python.org
>> https://mail.python.org/mailman/listinfo/python-ideas
>> Code of Conduct: http://python.org/psf/codeofconduct/
> --
> --Guido van Rossum (python.org/~guido)
> _______________________________________________
> Python-ideas mailing list
> Python-ideas at python.org
> https://mail.python.org/mailman/listinfo/python-ideas
> Code of Conduct: http://python.org/psf/codeofconduct/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20180627/db1788a3/attachment-0001.html>

More information about the Python-ideas mailing list