Changelog¶
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to a form of Semantic Versioning called Realistic (or Practical) Semantic Versioning.
0.0.6 (2025-09-10)¶
Added¶
ccu.adsorption.sites.SiteFinderprotocol and built-in implementationsccu.adsorption.sites.HubSpokeFinderandccu.adsorption.sites.Triangulatormodule-level variables
HUB_TAG,SPOKE_TAG, andSITE_TAGforSiteFinderimplementationsccu.adsorption.orientation.CenterFactoryand implementationscom_centerer(),special_centerer(),atomic_centerer()ccu.adsorption.orientation.OrientationFactoryimplementations:Transformerand subclasses (OctahedralFactory)auto-annotation feature in
ccu.fancyplotsccu.workflows: a subpackage containing computational workflowsccu.workflows.infrared: infrared workflowUsers can now seed
FancyPlotswith free energies only using the--dataCLI optionlabelkeyword argument toccu.workflows.calculation.run_calculation()function
enable shell completion with
ccu initallow users to supply a style file to
ccu fedDEV: *
cleancommand added todocshatch environment * testing and test coverage split into separate commandstestandtest-cov
Changed¶
Atoms objects created from
ccu.adsorption.complexes.generate_complexes()have metadata describing the adsorbate, site, and orientation in addition to the structureMoved
generate_figuretoccu.fancyplots.plottingbadermodule renamed topopYou can now pass the
annotationsparameter ofccu.fancyplots.plotting.generate_figure()as a list of appropriately typed tuplesccu.adsorption.adsorbatecomplexrenamed toccu.adsorption.complexccu.adsorption.sitefinderrenamed toccu.adsorption.sitesccu.adsorption.adsorbateorientationrenamed toccu.adsorption.orientationAdsorbateOrientationFactoryreplaced with protocol,OrientationFactoryccu.adsorption.adsorbateorientation.AdsorbateOrientationreplaced withccu.structure.geometry.MolecularOrientationccu.adsorption.adsorbates.ALLrenamed toccu.adsorption.adsorbates.ALL_ADSORBATESccu.adsorption.complexes.AdsorbateComplexFactory:constructor overhauled; see new signature/docstring for details
AdsorbateComplexFactory.next_complexreplaced withAdsorbateComplexFactory.generate_complexesremoved:
AdsorbateComplexFactory.adsorbate_orientations,AdsorbateComplexFactory.orient_adsorbateAdsorbateComplexFactory.place_adsorbateno longer accepts thecentreargument but instead accepts asiteargument and shifts the asdorbate position by site positionstructureis no longer an attribute but is passed as an argument to.generate_complexesand.place_adsorbate
-
generate_complexesno longer saves the adsorption complexes to files; this can be accomplished usingwrite_complexes(); accordingly, thedestinationargument was removeda list of
Atomsobjects is returned instead of a list of tuplesspecial_centresargument removed and replaced with similar argument,centerssymmetricargument removed and replaced with similar argument,symmetryThe
finderargument now accepts adherents to theSiteFinderprotocol instead of strings (as a consequence, theverticalargument has been removed since these being returned is controlled by thefinder)adsorbate_tagargument has been added
ccu.adsorption.adsorbates: thespecial centreskey has been changed tospecial_centresdocumentation refactored (inspired by diataxis)
expanded development guide to include dedicated sections for documentation and maintenance
calculate_normmoved toccu.structure.geometryCLI
CLI-related modules/packages have been privatized by appending leading underscores
ccu adsorbccu adsorption place-adsorbatecommand renamed toccu adsorbadded
--tagoption toccu adsorb--special-centresoption renamed to--centersand changed from flag option to value-accepting option--symmetricoption changed to on/off flag--no-symmetry/--symmetryremoved
--verticaloptionadded
--finderoption
ccu.structure.symmetry.SymmetryOperationremoved and replaced withccu.structure.symmetry.Transformationonly annotations with text are added in FancyPlots
GUI subpackage is now private
ccu.fed._gui
Fixed¶
FancyPlots
Fixed dashed lines in FED
AttributeErrorwhen setting title inccu.fancyplots.plotting.format_primary_axes()The format of the easter egg has been fixed
Fix plotting transition states in
ccu.fancyplotssaving annotations in FancyPlots
duplicate annotations are not added in FancyPlots
Removed¶
AdsorbateComplexclassAdsorbateOrientationFactoryccu.structure.symmetry.Symmetryandccu.structure.symmetry.RotationSymmetryccu.hubbardsubpackage
0.0.5 (2024-06-11)¶
Added¶
Fixed¶
Removed¶
.plotting.plot_solid_lines().plotting.plot_dashed_lines()
0.0.4 (2024-06-06)¶
Added¶
logging via a rotating file handler
Fixed¶
fixed bug where the legend wasn’t rendered
fixed bug in FancyPlots when incrementing number of pathways after defining the number of steps (see commit c188153d)
0.0.3 (2024-06-03)¶
Added¶
ccu.fancyplots.validation: classes and functions for validating user inputtooltip.Tooltip: a robust tooltip class.gui.root.Windows:TypedDictcontaining allFancyPlotssubwindows.gui.root.Sections:TypedDictcontaining the immediate subframes of aFancyPlotsapplictionccu.fancyplots.data: data models for importing/exportingFancyPlotsdataccu.fancyplots.data.FancyCache: simplified interface for importing data into and exporting data fromFancyPlots
ccu.fancyplots.gui.annotation: GUI elements for the annotation sectionccu.fancyplots.gui.energy: GUI elements for the free energy declaration windowccu.fancyplots.gui.formatting: GUI elements for the formatting parameters sectionccu.fancyplots.gui.frames: custom GUI elements with built-in validation and custom event generation (<<Validation>>)ccu.fancyplots.gui.instructions: GUI elements for displaying instructionsccu.fancyplots.gui.mechanism: GUI elements for defining reaction mechanismsccu.fancyplots.gui.palette: GUI elements for displaying thematplotlibcolour paletteccu.fancyplots.styles: custom Tkinter styles for themed widgetsccu.fancyplots.gui.utils.open_image(): open Tkinter-compatible imageccu.fancyplots.gui.utils.print_easter_egg(): print Easter eggccu.fancyplots.validation: lightweight, Pydantic-like validation from type-hintsccu adsorption place-adsorbate:
--listCLI optionccu.thermo.chempot.ChemPotDatabase: database of chemical potential parametrization dataccu.thermo.chempot.ChemPotCalculator: class encapsulating chemical potential calculation logiclogging and terminal printing control for all CLI commands via
ccu --log-level,ccu-thermo-gibbs --log-file,ccu --verbose, andccu --quietCLI options that can be passed alongside any subcommand optionsccu.cli.utils: utilities for CLI commands
Changed¶
FancyPlotsre-written withttk.root.FancyPlotsGUIreplacesRoot~ccu.fancyplots.gui.root.FancyPlotsGUIrefactored to encompass all GUI elements as childrenredefined as
~tkinter.ttk.LabelFrameor~tkinter.Framesubclassesccu.fancyplots.gui.annotation.AnnotationSectionccu.fancyplots.gui.footer.FooterSection
redefined as
~tkinter.Toplevelsubclassesccu.fancyplots.gui.energy.EnergyWindowccu.fancyplots.gui.fed.FreeEnergyDiagram
ccu.fancyplots.gui.menu.make_textmenu()renamed toccu.fancyplots.gui.menu.create_edit_menu()ccu.fancyplots.gui.menu.show_textmenu()renamed toccu.fancyplots.gui.menu.show_edit_menu()and re-written as factoryccu.fancyplots.gui.fancyplotsrenamed toccu.fancyplots.gui.plottingfunctions no longer depend on global variables
main function (
init) renamed toccu.fancyplots.gui.plotting.generate_figure()
ccu.fancyplots.gui.utils.mouse_coordinatesmoved to instance methodccu.fancyplots.gui.fed.FreeEnergyDiagram.mouse_coordinates()ccu thermo chempot-calculatorrefactored and renamed toccu thermo chempot; parametrized data moved to resource; CLI options added for molecule, temperature and pressure
Removed¶
.tooltip.ToolTip: useccu.fancyplots.gui.tooltip.Tooltipccu.fancyplots.gui.defaults: useccu.fancyplots.datainsteadccu.fancyplots.gui.utils.add_path.add_text_converter.convert_path_to_list.get_path.obtain_boxsizes
ccu-thermo-gibbs --verboseandccu-bader-sum --verbose(useccu --verboseinstead; e.g.,ccu --verbose thermo gibbs)Reordering steps in FancyPlots is temporarily removed until further notice
0.0.2 (2024-05-23)¶
Added¶
Changelog descriptions for release 0.0.1.
ccu structure permute: create permutations of atoms within a structureccu fed: a GUI utility for creating free energy diagramsccu adsorption place-adsorbatenow includes additional intermediatesccu bader: CLI utility for Bader charge analysisccu.hubbard: calculation of Hubbard U parameter by the linear response method of M. Cococcioni and S. de Gironcoli, Phys. Rev. B 71, 035105 (2005).ccu.relaxation: standard function for running DFT calculation with ASEccu.thermo: CLI utility and Python API for thermochemistry
Changed¶
Format changelog in Keep a Changelog style.
Testing with Tox to Nox
.sitefinder.MOFSiteFinderno longer includes between-linker sites by default, passbetween_linkers=Trueto obtain previous behaviour
0.0.1 (2023-06-22)¶
Added¶
First release on PyPI.
Created
ccu.adsorptionandccu.structuresubpackages and unit tests