pyiron_base
pyiron_base copied to clipboard
list_publications with different priority
So far we handle the listing of publications in a flat hierarchy and inconsistent:
We include ase if we have called an ase
function from pyiron
. However, our Atoms
is derived from ase.atoms
and thus ase probably should be part of the publication list every time we use a structure.
Of course we also rely on numpy
, pandas
, etc., which could also be included in the publication list.
However, the priority to cite numpy
is probably really small if someone is performing a 'standard' LAMMPS calculation using pyiron. Therefore, we should return a prioritized list/dict of publications like
from pyiron_atomistics import Project
pr = Project('Lammps')
job = pr.create.job.Lammps('test')
job.structure = pr.create.structure.ase.bulk('Fe', 'fcc', 3.0)
pr.list_publications('dict')
>>> {'prio1': {'pyiron-paper': {...}, 'lammps': {...}},
'prio2': {'ase-paper': {...}, 'numpy-paper': {...}, ... }}
I reached the proposed status in the linked PR (via pr.list_publications('dict', category=1)
). However, there are quite some remaining issues/TODOs with the current implementation:
- the publication dictionary lives on our Settings
- It is not persistent
- It is global for all projects/functions using the current kernel
- The naming of the method arguments to ask for different publication relevance levels is not nice, yet.
- Use properties with nice names to ask for different levels
pr.publications.core
>> List of core publications 'have to cite'
pr.publications.general
>> List of additional publications used, e.g. 'ase' whenever a structure is used, 'nice to cite'
pr.publications.dependencies
>> List of all (used?) dependencies of pyiron, e.g. numpy, pandas, scikit....