- chores
- basissets: add support for new-style All-Electron basis sets
- cp2kgen: add
--zip
option, similar to Python's zip function - reorganize basisset and pseudo datatypes dir (although should remain compatible)
- basissets: add parsing and converting options from CRYSTAL07 format
- reformat code as part of the move from pyflake to ruff
- bump minimal required Python version to 3.9
- update and fix LSP implementation
- update to Pydantic 2+
- resolved some code smells
- fix issue with
base_dir
and click v7'spath_type
, thanks to @yakutovicha for the initial fix - bump pre-commit tools, mypy, fix some style issues
- fix error when parsing values with an 'internal_cp2k' default unit (#54)
- give more info when encountering parser errors for basisset data
PseudopotentialData
/BasisSetData
:
- Ue
pydantic.BaseModel
instead of dataclasses wrapper. - This fixes an issue with default values provided for example for the
nlcc
for Pseudos attribute. from_dict
helper is still provided but deprecated, thetype_hooks
parameter gets ignored.- Some fields can now be loaded with both their name and their alias (
coeffs
vscoefficients
), which was the motivation for thetype_hooks
in the first place. - Drop
dacite
requirement.
PseudopotentialData
/BasisSetData
: expose dacitestype_hooks
for field aliasing- fix a typing issue
- relax click dependency to permit 7.1.x
- updated XML definition to include SIRIUS options
- the
emit_comments
argument of thedatafile_iter
is now properly respected - files generated with
cp2kgen
now have a comment header to indicate how they were generated
- add new
cp2k-datatafile-lint
script to lint/pretty-print CP2K datafiles (pseudos/basissets) - switch to click for CLI generation
- tighten internal parser types by using
dataclasses
andmypy
- include CLI in docs
- fix the language-server-protocol implementation various errors, introduced by pygls update, not detected by running tests due to bogus skip structure
- update CP2K XML schema to get revised libxc sections (#42)
- update jinja2 and sphinx dependencies
- fix bug in the simplified parser where repeated keywords were not emitted properly, again #32 but slightly different. This reintroduced the usage of tuples for multi-word keywords as a way to do repeated keyword and multi-word merging. Mostly visible internally since JSON and YAML do not emit tuples.
- introduce switch to select the string to which a repeated default keyword is mapped to,
as it seems, aiida-cp2k chose
" "
(one space), as requested in #36
- fix bug in the simplified parser where repeated keywords were not emitted properly (#32)
fromcp2k
now has a-f/--format
to select the formatfromcp2k
can now emit an aiida-cp2k calculation run script template- the API now has a
CP2KParserAiiDA
which sets the required options to generate an aiida-cp2k compatible parameter dictionary, as a convenience function instead of the user having to tuneCP2KParserSimplified
- unit parsing is now case insensitive
- the exception thrown by the parser now includes more context by referencing the current Section
- more documentation
- simplified parser: add tuning knobs to adjust tree output for aiida-cp2k
- give proper message for invalid preprocessor variables
- add tests for the language-server
- more tests
- implement support for XCTYPE
- implement support for multiple include directories
.parse()
is now fully idempotent (but not re-entry safe)- the parser object has now a well-defined state after parsing (requirement for using it as a completion engine)
- internal representation change to a tree with dataclasses, and nested dicts (canonical and simplified) are now "views" of that
- adding method to obtain parsed (and unit converted)
COORD
section - preprocessor is now a proper iterator (returning pre-processed lines) with access to its internal state (requirement for improved error messages)
- more tests
- misc bug fixes
- more testing for error cases
- initial release with the language server
- updated URLs after the move to cp2k
- updated version for
transition
dependency
- support setting preprocessor variables and default values for them (introduced in CP2K 8.0)
- update dependencies and add more tests of unit conversions
- don't simplify sections under bool- or int-valued keys
- initial release of the cp2kget tool to fetch values from a CP2K input (restart) file
- initial release with the cp2kgen tool
- added more tests and some bugfixes
- improved documentation
- fix parsing comments starting with # instead of ! (thanks to stanos4)
- switch to ruamel.yaml for proper scientific notation support in YAML
- implement parsing of fractional numbers
- fix logic for simplified possibly ambiguous input
- fix issue with inline comments not properly filtered
- fix issue with preprocessor variable substitution
- fix issue with parsing empty lines
- make API easier to use by moving the default XML path
- add API documentation to README.md
- improve test coverage (a lot)
- implement seperate simplified and canonical formats
- implement different key transformation functions
- implement unit conversion via pint
- resolve ambiguities better in simplified schemes
- fix corner cases
Initial release