pyiron_base icon indicating copy to clipboard operation
pyiron_base copied to clipboard

list_publications with different priority

Open niklassiemer opened this issue 3 years ago • 1 comments

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': {...}, ... }}

niklassiemer avatar Apr 16 '21 10:04 niklassiemer

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.... 

niklassiemer avatar May 11 '21 12:05 niklassiemer