schrodinger.ui.qt.appframework2.jobnames module

Functions used for updating job names. update_jobname is intended for use outside of AF2.

class schrodinger.ui.qt.appframework2.jobnames.JobnameType(value)

Bases: enum.Enum

Constants describing the three categories of job names

Standard = 1

The standard job name generated by the panel

Modified = 2

The standard job name plus a user-added prefix or suffix (or both)

Custom = 3

A user-generated job name that doesn’t contain the standard job name

schrodinger.ui.qt.appframework2.jobnames.uniquify(jobname, jobtype, uniquify_custom=True, omit_one_from_standard=False, name_list=None)

Uniquify a job name by adding a trailing integer to ensure that there are no conflicting file names in the current working directory. Standard job names will always have an integer added (e.g. jobname_1, jobname_2, jobname_3). Modified job names (and custom job names if uniquify_custom is True) will only have an integer added if necessary (e.g. jobname, jobname_2, jobname_3 - note that there is no “_1”).

Parameters
  • jobname (basestring) – The job name to uniquify

  • jobtype (JobnameType) – The job name type, which will determine the uniquifying behavior

  • uniquify_custom (bool) – Whether we should uniquify custom job name by adding integers to the end. If False, only standard and modified job names will be uniquified.

  • omit_one_from_standard (bool) – If True, standard job names will only have an integer added if necessary (i.e. <jobname> instead of <jobname>_1)

  • name_list (list of basestring) – Optional list of names to uniquify against. If not given, the name will be compared against the directory listing of the CWD

Returns

The uniquified job name

Return type

basestring

schrodinger.ui.qt.appframework2.jobnames.determine_jobtype(current_jobname, old_standard_jobname, new_standard_jobname=None, trim_custom=False)

Classify the current job name type and generate the new non-unique job name. Note that, as a special case, blank job names will be classified as - and replaced with - the standard job name.

Parameters
  • current_jobname (basestring) – The job name to update and classify

  • old_standard_jobname (basestring) – The standard job name used for classifying the current job name

  • new_standard_jobname (basestring) – The standard job name used for generating the new job name. If not given, old_standard_jobname will be used.

  • trim_custom (bool) – If True, any trailing uniquifying integer will be removed from custom job names. If False, custom job names will not be modified.

Returns

A tuple of - The new non-unique job name (basestring) - The job name type (JobnameType)

Return type

tuple

schrodinger.ui.qt.appframework2.jobnames.update_jobname(current_jobname, standard_jobname, uniquify_custom=True, name_list=None)

Update the job name by adding new uniquifying digits at the end

Parameters
  • current_jobname (basestring) – The job name to update

  • standard_jobname – The standard job name for the panel

  • uniquify_custom (bool) – Whether we should uniquify custom job name by adding integers to the end. If False, only standard and modified job names will be uniquified.

  • name_list (list of basestring) – Optional list of names to uniquify against. If not given, the name will be compared against the directory listing of the CWD

Returns

The updated job name

Return type

basestring

schrodinger.ui.qt.appframework2.jobnames.get_next_jobname(jobname, omit_one=False, name_list=None)

Given a job name, choose the next available unique job name based on the names of existing files in the current working directory

Parameters
  • jobname (basestring) – The job name to uniquify

  • omit_one (bool) – If jobname is unique by itself, should we omit appending the “_1”

  • name_list (list of basestring) – Optional list of names to uniquify against. If not given, the name will be compared against the directory listing of the CWD

Returns

The new job name

Return type

basestring

Note

This method will not return <jobname>_1 if a <jobname> file exists. Instead, it will return <jobname>_2 (or whatever the next available integer is). In other words, <jobname> and <jobname>_1 are assumed to be equivalent.