An overview of the code#
Let’s dive into the code and see what is where. Almost all the files that you will work with are in the subdirectory pyscf_step, so change into that directory and look at the files:
(seamm-dev) psaxe@PaulsPersonal pyscf_step % ls -l
ls -l
total 96
-rw-r--r-- 1 psaxe staff 661 Aug 23 10:11 __init__.py
drwxr-xr-x 8 psaxe staff 256 Aug 23 11:46 __pycache__
-rw-r--r-- 1 psaxe staff 18471 Aug 23 10:11 _version.py
drwxr-xr-x 3 psaxe staff 96 Aug 23 10:11 data
-rw-r--r-- 1 psaxe staff 5298 Aug 23 11:39 pyscf.py
-rw-r--r-- 1 psaxe staff 3618 Aug 23 11:39 pyscf_parameters.py
-rw-r--r-- 1 psaxe staff 2887 Aug 23 10:11 pyscf_step.py
-rw-r--r-- 1 psaxe staff 6582 Aug 23 10:11 tk_pyscf.py
(seamm-dev) psaxe@PaulsPersonal pyscf_step % ls -l data
ls -l data
total 8
-rw-r--r-- 1 psaxe staff 1558 Aug 23 10:11 references.bib
- pyscf_step.py
This file contains factories for creating the graphical and non-graphical classes for the PySCF step. You shouldn’t change anything in this file other than the description:
my_description = { "description": "An interface for PySCF", "group": "Simulations", "name": "PySCF", }
The only part of this that is used at the moment is the group, which defines where in the left hand panel of SEAMM this plug-in appears. By default it is “Simulations”, which is why our brand new plug-in showed up in the simulation section. When you make plug-ins, you might want to change this to an appropriate area for your plug-in. You can either use one of the existing groupings, or create a new one by typing a new name.
- pyscf_parameters.py
This file defines the parameters that the plug-in provides to control what it does. The skeleton created by the cookiecutter has one parameter as an example:
parameters = { "time": { "default": 100.0, "kind": "float", "default_units": "ps", "enumeration": tuple(), "format_string": ".1f", "description": "Simulation time:", "help_text": ("The time to simulate in the dynamics run."), }, }
That is why the dialog showed a parameters for Simulation time. We’ll edit this in a minute.
- tk_pyscf.py
This contains the TkPySCF class, which defines the GUI for the plug-in. Generally any file in SEAMM starting with “tk_” is part of the GUI.
- pyscf.py
This contains the PySCF class, which handles running PySCF when the flowchart is executed. We’ll also come back to this file.
- data/references.bib
Contains the references that users should cite when using this plug-in. This will be covered in another tutorial; however, a reference to the plug-in has been automatically generated from the questions the cookiecutter asked, and will be printed when this step is irun.