A package for extracting information from castep outputs
Project description
Parser for CASTEP output files
castep_outputs parses the output files of castep into a standard form and is able to subsequently dump the processed data into a standard format.
Install
To install castep_outputs simply run:
pip install castep_outputs
To check it is installed run:
python -m castep_outputs -h
Dependencies
castep_outputs is designed to have no external dependencies beyond the standard library, however, it is possible to use either PyYAML or ruamel.yaml to dump in the YAML format.
Command-line
When run as a commandline tool, it attempts to find all files for the given seedname, filtered by inc args (default: all). Explicit files can be passed using longname arguments. castep_outputs can parse most human-readable castep outputs including: .castep, .cell, .param, .geom, .md, .bands, .hug, .phonon, .phonon_dos, .efield, .xrd_sf, .elf_fmt, .chdiff_fmt, .pot_fmt, .den_fmt, .elastic, .ts, .magres, .tddft, .err.
to run in basic mode:
python -m castep_outputs seedname
Which will attempt to detect all found files and dump a .json to stdout, ready for piping.
python -m castep_outputs --inc-castep --inc-param seedname
Will parse only the seedname.castep and seedname.param files if found.
python -m castep_outputs seedname.castep
Will parse the single named file and again dump a .json to stdout.
python -m castep_outputs --castep seedname.param
Will attempt to parse the file seedname.param as though it were a .castep file. While not ordinarily useful it can help with manually renamed files.
python -m castep_outputs -o my_file.yaml -f yaml seedname.castep
Will parse seedname.castep, dump it to my_file.yaml in yaml format using the PyYAML engine if available and the RUAMEL engine if not.
As a module
importing castep_outputs directly puts all of the parsers directly into your local namespace.
The simplest method to use castep_outputs in a tool is to use the parse_single method which attempts to determine the parser from the file extension.
import castep_outputs my_dict = parse_single('my_file.castep')
If you need a specific parser rather than by extension it is possible to pass them as the second argument, or call them directly.
import castep_outputs my_dict = parse_single('my_file', parse_castep_file) with open('my_file', 'r', encoding='utf-8') as inp: my_dict = parse_castep_file(inp)
It is recommended that you use parse_single as it uses special file-handling to give better diagnostics if it fails. It is possible to enable more detailed logging via the logging module:
import castep_outputs import logging my_dict = parse_single('my_file', loglevel=logging.INFO)
The available parsing functions are:
parse_bands_file
parse_castep_file
parse_cell_file
parse_cell_param_file
parse_chdiff_fmt_file
parse_den_fmt_file
parse_efield_file
parse_elastic_file
parse_elf_fmt_file
parse_err_file
parse_geom_file
parse_hug_file
parse_magres_file
parse_md_file
parse_md_geom_file
parse_param_file
parse_phonon_file
parse_phonon_dos_file
parse_pot_fmt_file
parse_tddft_file
parse_tddft_file
parse_ts_file
parse_xrd_sf_file
Which return processed lists of dicts of data ready for use in other applications.
Full usage
usage: castep_outputs [-h] [-V] [-L {DEBUG,INFO,WARNING,ERROR,CRITICAL}] [-o OUTPUT] [-f {json,ruamel,yaml,pprint,print}] [-t] [-A] [--inc-castep] [--inc-cell] [--inc-param] [--inc-geom] [--inc-md] [--inc-bands] [--inc-hug] [--inc-phonon_dos] [--inc-efield] [--inc-xrd_sf] [--inc-elf_fmt] [--inc-chdiff_fmt] [--inc-pot_fmt] [--inc-den_fmt] [--inc-elastic] [--inc-ts] [--inc-magres] [--inc-tddft] [--inc-err] [--inc-phonon] [--castep [CASTEP ...]] [--cell [CELL ...]] [--param [PARAM ...]] [--geom [GEOM ...]] [--md [MD ...]] [--bands [BANDS ...]] [--hug [HUG ...]] [--phonon_dos [PHONON_DOS ...]] [--efield [EFIELD ...]] [--xrd_sf [XRD_SF ...]] [--elf_fmt [ELF_FMT ...]] [--chdiff_fmt [CHDIFF_FMT ...]] [--pot_fmt [POT_FMT ...]] [--den_fmt [DEN_FMT ...]] [--elastic [ELASTIC ...]] [--ts [TS ...]] [--magres [MAGRES ...]] [--tddft [TDDFT ...]] [--err [ERR ...]] [--phonon [PHONON ...]] ... Attempts to find all files for seedname, filtered by `inc` args (default: all). Explicit files can be passed using longname arguments. castep_outputs can parse most human-readable castep outputs including: .castep, .cell, .param, .geom, .md, .bands, .hug, .phonon_dos, .efield, .xrd_sf, .elf_fmt, .chdiff_fmt, .pot_fmt, .den_fmt, .elastic, .ts, .magres, .tddft, .err, .phonon positional arguments: seedname Seed name for data options: -h, --help show this help message and exit -V, --version show program's version number and exit -L {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --log {DEBUG,INFO,WARNING,ERROR,CRITICAL} Verbose output -o OUTPUT, --output OUTPUT File to write output, default: screen -f {json,ruamel,yaml,pprint,print}, --out-format {json,ruamel,yaml,pprint,print} Output format -t, --testing Set testing mode to produce flat outputs -A, --inc-all Extract all available information --inc-castep Extract .castep information --inc-cell Extract .cell information --inc-param Extract .param information --inc-geom Extract .geom information --inc-md Extract .md information --inc-bands Extract .bands information --inc-hug Extract .hug information --inc-phonon_dos Extract .phonon_dos information --inc-efield Extract .efield information --inc-xrd_sf Extract .xrd_sf information --inc-elf_fmt Extract .elf_fmt information --inc-chdiff_fmt Extract .chdiff_fmt information --inc-pot_fmt Extract .pot_fmt information --inc-den_fmt Extract .den_fmt information --inc-elastic Extract .elastic information --inc-ts Extract .ts information --inc-magres Extract .magres information --inc-tddft Extract .tddft information --inc-err Extract .err information --inc-phonon Extract .phonon information --castep [CASTEP ...] Extract from CASTEP as .castep type --cell [CELL ...] Extract from CELL as .cell type --param [PARAM ...] Extract from PARAM as .param type --geom [GEOM ...] Extract from GEOM as .geom type --md [MD ...] Extract from MD as .md type --bands [BANDS ...] Extract from BANDS as .bands type --hug [HUG ...] Extract from HUG as .hug type --phonon_dos [PHONON_DOS ...] Extract from PHONON_DOS as .phonon_dos type --efield [EFIELD ...] Extract from EFIELD as .efield type --xrd_sf [XRD_SF ...] Extract from XRD_SF as .xrd_sf type --elf_fmt [ELF_FMT ...] Extract from ELF_FMT as .elf_fmt type --chdiff_fmt [CHDIFF_FMT ...] Extract from CHDIFF_FMT as .chdiff_fmt type --pot_fmt [POT_FMT ...] Extract from POT_FMT as .pot_fmt type --den_fmt [DEN_FMT ...] Extract from DEN_FMT as .den_fmt type --elastic [ELASTIC ...] Extract from ELASTIC as .elastic type --ts [TS ...] Extract from TS as .ts type --magres [MAGRES ...] Extract from MAGRES as .magres type --tddft [TDDFT ...] Extract from TDDFT as .tddft type --err [ERR ...] Extract from ERR as .err type --phonon [PHONON ...] Extract from PHONON as .phonon type
Current Parsers:
.bands
.castep
.cell
.chdiff_fmt
.den_fmt
.efield
.elastic
.elf_fmt
.err
.geom
.hug
.magres
.md
.param
.phonon
.phonon_dos
.pot_fmt
.tddft
.ts
.xrd_sf
Current dumpers:
json
ruamel.yaml
pyyaml
print
pprint
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file castep_outputs-0.1.7.tar.gz
.
File metadata
- Download URL: castep_outputs-0.1.7.tar.gz
- Upload date:
- Size: 78.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 935c8ec2c1a699640327625348e0c4267983fb47cf9963a872f10ef318c75c11 |
|
MD5 | e529754609501ce31f3869197b725d1c |
|
BLAKE2b-256 | 5c9355396cfc183ba5a0a25f5f800fec3e55fd1ccc77320518d3d23556779bc2 |
File details
Details for the file castep_outputs-0.1.7-py3-none-any.whl
.
File metadata
- Download URL: castep_outputs-0.1.7-py3-none-any.whl
- Upload date:
- Size: 88.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.10.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1ca9d9bfd7efa4f1ec033a972c819d9871ff9c582052db70bdd80a989e9b2ef |
|
MD5 | ed07e3e27fb869a993431937dc6dfcc7 |
|
BLAKE2b-256 | 77fc7dd6e1f0b127dc06abc54294b361d379676adedeeb65c657f295dd7332ad |