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

Alex Walters tritium-list at sdamon.com
Sun Jul 1 16:58:37 EDT 2018


> -----Original Message-----
> From: Python-ideas <python-ideas-bounces+tritium-
> list=sdamon.com at python.org> On Behalf Of Nick Timkovich
> Sent: Sunday, July 1, 2018 12:02 PM
> To: Matt Arcidy <marcidy at gmail.com>
> Cc: python-ideas <python-ideas at python.org>
> Subject: Re: [Python-ideas] Add a __cite__ method for scientific packages

> 
> From an abstract level, however, citing code requires that it's published in
> some form, which is very strongly related to packaging, so I think such
> discussions would best revolve around there. Maybe rolling something into
> pkg_resources that could pull out a short citation string from some package
> metadata (a hypothetical `pkg_resources.get_distribution("numpy").citation`
> that could be wrapped by some helper function if desired)? The actual
> mechanism to convert metadata into something in the repo (a dunder cite
> string in the root module, a separate metadata file, etc.) into the package
> metadata isn't as important as rolling said metadata into something part of
> the distribution package like the version or long_description fields. Once the
> schema of the citation data is defined, you could add it to the metadata spec
> (outgrowth of PEP-566) https://packaging.python.org/specifications/core-
> metadata/

Putting citation information into pyproject.toml makes a lot more sense than putting it in the modules themselves, where they would have to be introspected to be extracted.

* It puts zero burden on the core developers
* It puts near zero burden on the distutils special interest group
* It doesn't consume names from the package namespace
* It's just a TOML file -  you can add sections to it willy-nilly
* It's just a TOML file - there's libraries in almost all ecosystems to handle it.

Nothing has to go into the core metadata specification unless part of your suggestion is that Pypi show the citations.  I don't think that is a good idea for the scope of Pypi and the workload of the warehouse developers.  I don't think it's too much to ask for the scientific community to figure out the solution that works for most people before bringing it back here.  I also don't think its out of scope to suggest taking this to SciPy - yes, not everything depends on SciPy, but you don't need everything, you just momentum.



More information about the Python-ideas mailing list