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
drwxr-xr-x  8 psaxe  staff    256 Aug 23 11:46 __pycache__
-rw-r--r--  1 psaxe  staff  18471 Aug 23 10:11
drwxr-xr-x  3 psaxe  staff     96 Aug 23 10:11 data
-rw-r--r--  1 psaxe  staff   5298 Aug 23 11:39
-rw-r--r--  1 psaxe  staff   3618 Aug 23 11:39
-rw-r--r--  1 psaxe  staff   2887 Aug 23 10:11
-rw-r--r--  1 psaxe  staff   6582 Aug 23 10:11

(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

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.

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.

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.

This contains the PySCF class, which handles running PySCF when the flowchart is executed. We’ll also come back to this file.


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.