Parser/transformator for MAD-X sequences
Project description
Description
Script to parse MAD-X sequences from a source file and perform simple transformations on the elements.
Dependencies
Installation
The setup is to be performed as follows
python setup.py install
Usage
The command should be called as follows:
Usage: madseq.py [-j|-y] [-s <slice>] [<input>] [<output>] madseq.py (--help | --version) Options: -j, --json Use JSON as output format -y, --yaml Use YAML as output format -s <slice>, --slice=<slice> Set slicing definition file -h, --help Show this help -v, --version Show version information
If <input> is not specified the standard input stream will be used to read the input file. Respectively, the standard output stream will be used if <output> is not specified.
The slicing definition defines a list of slicing instructions where each entry is a dictionary with the following groups of mutually exclusive keys:
str type: match only elements with the specified type str name: match only elements with the specified name bool use_at: use manually entered AT values, default is True float density: slice element with the specified number of slices per meter int slice: slice element using a fixed count, default=1 bool makethin: whether to convert the slices to MULTIPOLE bool template: whether to put a template for the element in front str style: slicing style, either 'uniform' or 'loop', defaults to 'uniform'
Example file:
- type: drift
density: 10
- name: B1DK1
slice: 10
makethin: true
style: uniform
Note, that even if an element is matched by multiple rules, only the first one will be used.
Caution
Do not use multi line commands in the input sequences. At the moment these are not parsed correctly!
Do not add any at= position arguments in the input sequences. The madseq script takes care of this responsibility.
Changelog
0.4.3
fix some sliced multipole coefficients
handle QUADRUPOLE.K1S in makethin
fix a naming problem when slicing with template
fix python3 problems
0.4.2
allow .json files to be passed as the -s parameter (extension is used to distinguish .json from .yaml)
0.4.1
use different names for slices
fix sequence name in comment before templates
0.4.0
add ‘use_at’ slicing option that enables to use AT values
0.3.2
internal: remove attribute access for Element properties
fix bugged Element.copy and .__contains__ regarding to base elements
fix JSON/YAML serialization errors
fix bugged implementation for predefined elements
fix bugged LOOP style
fix bugged makethin
fix bugged use_optics
rename ‘use_optics’ => ‘template’. technically, this is a change in the public interface, but we are still in 0.X and furthermore the feature was not working before anyway.
0.3.1
use semantic versioning <http://semver.org/>
fix deep attribute lookup for elements
0.3
redesigned command line
fix erroneous parsing of MAD-X arrays, like KNL={…}
remove inline attributes for slicing
extended slicing via slicing configuration file
fix usability of template (predefined) elements
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
File details
Details for the file madseq-0.4.3.tar.gz
.
File metadata
- Download URL: madseq-0.4.3.tar.gz
- Upload date:
- Size: 18.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 566448c81a2013b36da7a5af361c95f31a83df002b85cc66e246c76bf63872d6 |
|
MD5 | a10f9153900589d998a3ef5426951115 |
|
BLAKE2b-256 | b9445fa44f93c5b969016e73f44fe61120f0c649e9e47b1eb795303829d1be39 |