Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
Starting with version 0.12.0, this project implements a version of Semantic Versioning described here called “Realistic” Semantic Versioning.
Unreleased¶
Added¶
autojob.task.TaskMetadata.model_dump_legacy(): for the creation of (legacy) calculation metadata dictionariestask.Task.write_script(): write the main run scriptautojob.coordinator.coordinator.Coordinator.ase_calculator: a property for getting the ASE calculator corresponding to the CalculatorTypeautojob.coordinator.coordinator.submission_parameters_to_scheduler_inputs(): convert the submission parameters as represented in the GUI toautojob.hpc.SchedulerInputsautojob.coordinator.filters: Utilities for filtering parameter dictionaries by their valuesautojob.coordinator.gui.gui.CoordinatorTabs: aTypedDictrepresenting the GUI notebook tabsautojob.coordinator.gui.job_submission.JobSubmissionParameters: aTypedDictrepresenting the GUI defined scheduler inputsautojob.coordinator.gui.groups.CalculationParameterGroup.get_sets(): get all permutations of the parameter values specified in aautojob.coordinator.gui.groups.CalculationParameterGroupautojob.study.Study.to_directory()andautojob.study.Study.from_directory(): utility functions for study directoriesautojob.legacy: legacy mode classesCustom serialization for writing
autojob.study.Studymetadata filesstudy_group.StudyGroup.to_directory()andstudy_group.StudyGroup.from_directory()default script template:
default.sh.j2settings for default script template and save filename
autojob.utils.get_loader(): replacement forautojob.coordinator.scripter.Scripter.get_loader()--destCLI option forautojob coordinatorRe-added the cpu2021-bf05 partition (see the commit message from commit 85c4092980e01963586702c2f4ee443f0313244a for details)
--destCLI option forautojob harvest,autojob.harvest.harvest.harvest(), andautojob.harvest.archive.archive()support for Quantum Espresso
progress bar for harvesting calculations with
autojob.harvest.harvest.harvest()
Changed¶
autojob.advance.advance.create_new_task_tree()changed toautojob.task.Task.create_new_task_tree()“filename” key of output atoms info dictionary is now automatically set to the input filename when retrieving a calculation using
Calculation.get_output_atoms()orCalculation.to_directory()calculation.Calculation.write_python_script()uses"filename"key of inputAtomsobject orSETTINGS.INPUT_ATOMSas default structure filenamecalculation.Calculation.write_slurm_script()changed tocalculation.Calculation.write_script()and no longer accepts thecompute_canada_formatandslurm_scriptargumentsmagmomsare retrieved from the calculatorresultsdictionary instead of withase.atoms.Atoms.get_magnetic_moments()inTask.prepare_input_atoms()task.TaskInputs.extract_files_to_copy()can extract the files to copy from the environment variables:AUTOJOB_FILES_TO_COPYandAUTOJOB_COPY_TO_SCRATCHdefault
TaskMetadata._build_classchanged totask.Taskautojob.study.Studyandautojob.study_group.StudyGroupimplemented as PydanticBaseModelautojob.study.StudyTypemoved toautojob.legacymoduleTask metadata is now only read from the job file (set by
SETTINGS.JOB_FILE)Job directories are created using
autojob.study_group.StudyGroup.to_directory()autojob.parametrizations.VariableReference.set_input_value()accepts both an object in addition to a mapping forshellautojob.harvest.patch.build_metadata_patches()implements a “Strategy” design pattern to enable applicability for all types of metadataautojob.harvest.chargemoved toautojob.calculation.chargethe
whitelistandblacklistarguments toautojob harvestandharvest()are renamed towhitelistsandblacklistsin better agreement with their implementationsSchedulerOutputs.partitionis typed and validated as a string
Fixed¶
Pydantic warnings emitted when calling
SchedulerInputs.model_dump()(see commit fda0e7eb7c3af3f3e9f7772fc9f04b15e9ccc851)task.TaskMetadata.calculation_type,task.TaskMetadata.calculator_type, andtask.TaskMetadata.study_typeare serialized as None when NoneAll DDEC6 charge data is loaded instead of a subset, if present
autojob.parametrizations.VariableReference.set_input_value()previously (and incorrectly) checked the type ofshellto decide how to set and delete attributes/keys, resulting in attempting to set nonexistent attributes on a dictionarySchedulerOutputsnow correctly recognizes “Partition” as an alias forSchedulerOutputs.partitionSchedulerInputsare now included in the result offlatten_calculations()
Removed¶
autojob.advance.advance.write_calculation_metadata()autojob.study.StudyType:study_typewill only be a field name for legacy modeCalculation.write_input_atoms: useautojob.task.Task.write_inputs()Calculation.to_directory: useautojob.task.Task.to_directory()autojob.study.TASK_FILESStudyGroup.as_dict,StudyGroup.from_dict,StudyGroup.from_path,StudyGroup.create_directory,StudyGroup.addstudies,StudyGroup.removestudiesandStudyGroup.studiespropertyautojob.coordinator.scripter: script writing handled byautojob.task.Task.write_inputs()autojob.harvest.patch.build_calculation_patches(): useautojob.harvest.patch.build_metadata_patches()withmetadata_type="calculation"autojob.harvest.patch.build_study_patches(): useautojob.harvest.patch.build_metadata_patches()withmetadata_type="study"autojob.schemas: charge data consolidated inautojob.calculation.charge
0.12.0b1 (2024-08-21)¶
Added¶
LORBITVasp INCAR tag toautojob.coordinator.vaspsupport for Gaussian-powered calculations
support for custom Python script templates
default template for infrared calculations
New modules:
autojob.advance: incremental job controlautojob.harvest: data assimilation convenience functions & CLIautojob.harvest.harvest: utilities for harvesting task dataautojob.harvest.patch: utilities for patching task data
autojob.cli.restart_relaxation,autojob.next.relaxationand corresponding CLI command restart-relaxationautojob.cli.run_vibration,autojob.next.vibrationand corresponding CLI command run-vibration: create metadata preserving thermodynamic calculation directoriesautojob.cli.init: enable shell completion forautojobautojob.study,autojob.study_group,autojob.hpc,autojob.settings,autojob.schemas,autojob.parametrizationsautojob.calculation: representations/manipulation of calculation data
New dependencies:
Pydantic & pydantic-settings: for data validation/data model
cclib: for calculation output parsing
Changed¶
Deprecated modules:
autojob.coordinator.calculation: useautojob.calculationautojob.coordinator.study: useautojob.study
vasp.shtemplate no longer removes wildcard files upon cleaning up the scratch directorySwitched to Hatch for build backend and testing (no more Poetry/tox)
autojob.cli.restart: move toautojob.nextDropped support for Python <3.10
Python and SLURM script templates
Minimum
ccudependency is v0.0.5
Removed¶
autojob.accountantandautojob.auditorhave been removed in favour of using Pydantic for validation and deserializationautojob.coordinator.archas been removed; useautojob.hpcinsteadautojob.coordinator.calculationhas been removed; useautojob.calculationandautojob.taskinsteadautojob.coordinator.studyhas been removed; useautojob.studyinsteadautojob.coordinator.submission_configuration.ParameterSelectionComboboxhas been removedautojob.utils.validate_idhas been removed
0.11.1 (2022-12-02)¶
Added¶
autojob.details
Removed¶
findfile.find_details()findfile.infer_details()findfile.determine_entry_type()findfile.find_studies()
0.11.0 (2022-12-01)¶
Added¶
AMIX,AMIX_MAG,BMIX,BMIX_MAG,IMIXVasp INCAR tags toautojob.coordinator.vaspfindfile.get_slurm_job_id()findfile.find_last_submitted_jobs()
Changed¶
ParseError`s are caught by :meth:.Restarter.characterize_jobs`Default buffer time (i.e., time that a Vasp calculation is stopped prior to the actual end time) is increased from 5% to 10%
findfile.find_template_dir()renamed tofindfile._find_template_dir()(i.e., made private to module)
Fixed¶
Parsing of structure name in
Restarter.create_restart_jobs()New job names returned by
Restarter.create_restart_jobs()instead of old job names
0.10.6 (2022-11-28)¶
Added¶
docstrings for
autojob.accountant.parsingfunctionsOptional keyword argument parameter (
with_wavecar) toautojob.cli.restart.Restarter.create_restart_jobs()Optional inclusion of
WAVECARin restarted jobs fromautojob restartautojob.cli.restart.Restarter.characterize_jobs()
Changed¶
study group ID, study ID, calculation ID, and job ID included in
accountant.AccountingErrorraised byparsing.parse_job_results()gammakey added to first dictionary returned byparsing.parse_job_results()Different printing of not added study groups in
Accountant.create_study_group(),Accountant.create_study(),Accountant.create_calculation()depending on verbosityAccountant.create_study_group(),Accountant.create_study(),Accountant.create_calculation()print unknown errors to console
Fixed¶
values argument to
job.CalculationParameterforLDAUTYPEandNSW
0.10.5 (2022-11-22)¶
Changed¶
Memory limit specified per core instead of per node
Fixed¶
rendering of k-pts in
run.py
0.10.4 (2022-11-15)¶
Added¶
Option to format the
vasp.shfor running on ComputeCanada clusters
Removed¶
removed support for dictionaries in
validation.iter_to_native()
0.10.3 (2022-11-14)¶
Added¶
validation.iter_to_native()supports dictionaries
Changed¶
autojob.coordinator.gui.groups.CalculationParameterGroupstores values as native Python values instead of strings
Fixed¶
Fixed issue with distinguishing calculation parameters in submission parameter tab
0.10.2 (2022-11-12)¶
Added¶
Add docstrings for
findfile.find_study_group_dirs(),findfile.find_study_dirs(),findfile.find_calculation_dirs(), andfindfile.find_job_dirs()docstrings for
AuditorAuditor.audit()Auditor.format()Auditor.prune()Auditor.prune_calculation_directories()autojob auditorCLI subcommands (add, format, prune)Jinja2 dependency
Changed¶
render run.py and vasp.sh using Jinja2 templates
0.10.1 (2022-11-12)¶
Changed¶
The structure name for a restart job is determined from the run.py file
0.10.0 (2022-11-06)¶
Added¶
outline of
autojob.auditorsubpackage
Changed¶
JobStats.parse_max_rss()parses memory appropriately according to unitsdest variable not passed to
Accountant.export()
Fixed¶
Accountant.add()now correctly callsAccountant.create_study()instead ofAccountant.create_study_group()Accountant.export()no longer passes dest as positional argument toAccountant._export_jobs(),Accountant._export_calculations(),Accountant._export_studies(), andAccountant._export_study_groups()parsing.parse_job_results()handlesIndexErrorfrom parsing vasprun.xml
0.9.7 (2022-10-18)¶
Removed¶
pymongo dependency
0.9.6 (2022-10-18)¶
Changed¶
–memory-scale CLI option for autojob restart was renamed to –memory-multiplier
Fixed¶
autojob restart now prints the new job ID instead of the old ID when listing newly created jobs
0.9.5 (2022-10-17)¶
Changed¶
autojob restart prints all newly created jobs
New memory requirements are printed with the ‘GB’ suffix
Fixed¶
the correct directories were not found due to the regex used in
findfile.find_study_group_dirs(),findfile.find_study_dirs(),findfile.find_calculation_dirs(), andfindfile.find_job_dirs()the vasp.sh file is now correctly opened instead of attempting to open the old job directory
0.9.4 (2022-10-17)¶
Added¶
docstring added for
TreeviewFrame.clear_treeview()docstrings added for
autojob.coordinator.gui.submission_configuration
Changed¶
Coordinator.calc_params_for()andCoordinator.calc_param_values_for()accept a list ofPath`s for the `structuresparameters instead of a list of stringsCoordinator.structure_groups_with()accepts an iterable ofpathlib.Path`s for the `structuresparameters instead of an iterable of strings
Removed¶
ParameterSelectionPanel
0.9.3 (2022-10-17)¶
Changed¶
Restart jobs are printed as calculationID/newjobID
0.9.2 (2022-10-17)¶
Changed¶
Logic of autojob restart moved into
autojob.cli.restart.Restarterclass
0.9.1 (2022-10-17)¶
Added¶
autojob.accountant.findfile.find_study_group_dirs()autojob.accountant.findfile.find_study_dirs()autojob.accountant.findfile.find_calculation_dirs()autojob.accountant.findfile.find_job_dirs()autojob.accountant.findfile.find_template_dir()
0.9.0 (2022-10-16)¶
Changed¶
autojob restart (and related API functions) support scaling the memory limit in the restart job and changing the verbosity
0.8.1 (2022-10-13)¶
Added¶
User can elect to update database entries instead of overwrite when using autojob accountant add, using the -u`CLI option, or :meth:`autojob.accountant.accountant.Accountant.add by setting the update attribute to True
Changed¶
Formatting of filename returned by
autojob.accountant.findfile.get_filename()autojob accountant add prints added entries by default
Long CLI options for specifying export files with autojob accountant add have double hyphen prefixes
0.8.0 (2022-10-13)¶
Added¶
autojob.accountant.findfile.get_filename()CLI option –dest for autojob accountant export subcommand
User can specify filenames to output .csv files for jobs, calculations, studies, and study groups with -jf, -cf, -sf, and -gf CLI options, respectively
verbose option (-v) added for autojob accountant export subcommand
Changed¶
autojob.accountant.parsing.parse_job_results()raisesAccountingErrorif no valid vasprun.xml foundautojob.accountant.accountant.export()has new positional arguments dest and filenames
0.7.5 (2022-10-13)¶
Changed¶
The job ID of the source job is recorded in the job.json file of the restart job by
autojob.cli.restart
0.7.4 (2022-10-13)¶
Changed¶
ParameterSelectionTab.calc_params()values areCalculationParameterGroup’svalues in dictionary return by
ParameterSelectionTab.load_calc_params()areCalculationParameterGroup’s
Fixed¶
bool values are cast correctly in
ParameterSelectionTab
0.7.3 (2022-10-12)¶
Fixed¶
AttributeErrordue to calling extend method of values parameter passed toCalculationParameterGroup.add_values()byParameterPanel.add_parameter_values()
0.7.2 (2022-10-12)¶
Changed¶
Jobs that are not added to database by
autojob.accountant.accountant.add()are printed outaccountant.AccountingErrorraised ifparsing.parse_job_results()unable to parse vasprun.xml file twice
0.7.1 (2022-10-12)¶
Added¶
DFT+U and magnetization
CalculationParameter`s in :mod:`autojob.coordinator.vasp
Changed¶
FileNotFoundErroris handled byautojob.cli.restart.create_restart_calculation()
0.7.0 (2022-10-11)¶
Added¶
autojob.coordinator.groups.CalculationParameterGroup.defined_values()SubmissionParameterGroupautojob.cli.restartand correspondind CLI subcommand
Fixed¶
Duplicate
CalculationParameter`s in :class:`CalculationParameterGroupExtra argument supplied to load methods of tabs
Return value from
SelectionFrame.structures()is now a list of strings instead of a list ofpathlib.Path’s
Removed¶
Coordinator.next_calc_params()
0.6.1 (2022-10-09)¶
Added¶
Version option for CLI
0.6.0 (2022-10-09)¶
Added¶
Changed¶
JobSubmissionTab,ParameterSelectionTab,StructureSelectionTab,StudyConfigurationTab,SubmissionConfigurationTab, andSummaryTabconstructors no longer require notebook parameterautojob.coordinator.job.InputParameterrenamed toCalculationParameter
0.5.1 (2022-09-30)¶
Added¶
docstrings for
Accountant.add()call stack
0.5.0 (2022-09-28)¶
Added¶
autojob.accountant.accountant.export()is implemented in API and CLI
Changed¶
as_dict, as_flat_dict, and from_dict moved from must be implemented by subclasses (e.g.,
autojob.coordinator.vasp.VaspJob)structure-related keys in input_parameters return value from autojob.accountant.parsing
the dictionary return from
Calculation.as_dict()includes the keys @module and @class
0.4.1 (2022-09-28)¶
Added¶
Inputs, Outputs, @module, @class keys in return value dictionary in
Job.as_dict()
Removed¶
k-pts, and Results keys in return value dictionary in
Job.as_dict
0.4.0 (2022-09-26)¶
Added¶
CLI with coordinator and accountant subcommands
DetailEncoderPartition.from_name()parsing.match_xml_tags()parsing.parse_job_results()Calculation.as_dict()Study.as_dictStudyGroup.as_dictAccountant.create_study_group()Accountant.create_study()Accountant.create_calculation()Accountant.create_job()Accountant.load_db()Accountant.add_to_database()Jobaccepts None for results and job_stats parameters
Changed¶
MainApplicationrenamed toGUIstrict parameter renamed to update in
autojob.accountant.accountantautojob.accountant.accountantCLI methods moved toautojob.accountant.cliCalculationaccepts a list of strings instead of a list ofJob’sStudyaccepts a list of strings instead of a list ofCalculation’sStudyGroupaccepts a list of strings instead of a list ofStudy’sCalculationType,CalculatorType,StudyTypedo not capitalize __str__ return valueAccountantconstructor requires three positional arguments (exclusive, update, verbose)exclusive, update, verbose are stored as instance attributes of
Accountantobjects and are no longer passed as arguments toAccountant.add()autojob.accountant.parsing.parse_job_stats_file()raisesAccountingErroris unable to parse job stats fileparsing.parse_job_stats_file()raises ValueError is headers missing in job stats fileJobproperties changed to attributesStudy.study_typeproperty changed to attributeStudyGroup.date_createdproperty changed to attributeCalculationproperties (except job) changed to attributes
0.3.0 (2022-09-13)¶
Added¶
isym as a vasp parameter
Changed¶
Properties of
Coordinatorare no longer cached
0.2.0 (2022-09-12)¶
Added¶
autojob.accountantautojob.coordinator.scriptermonty.json.MSONablemethods toCalculation,Job,Study, andStudyGroup
Changed¶
Refactored tests
Moved package to src/ directory
scripting capabilities located in
autojob.coordinator.scripter
0.1.2 (2022-09-08)¶
Removed¶
pymatgen-db, acat, wulffpack, scipy, pandas dependencies
Changed¶
The list containing GUI pages has been re-implemented as a dictionary
0.1.1 (2022-09-07)¶
Added¶
The Job Submission tab allows for different submission parameters for each
ParameterGroupStructure groups
Summary Tab in GUI
Changed¶
0.1.0 (2022-09-02)¶
First version.