skip to navigation
skip to content

madseq 0.4.0

Parser/transformator for MAD-X sequences

Latest Version: 0.4.4


Script to parse MAD-X sequences from a source file and perform simple transformations on the elements.


  • docopt to parse command line options
  • pydicti to store and access element attributes
  • pyyaml to parse slicing definition and use YAML output format


The setup is to be performed as follows

python install


The command should be called as follows:

Usage: [-j|-y] [-s <slice>] [<input>] [<output>] (--help | --version)

    -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.


  • 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.



  • add ‘use_at’ slicing option that enables to use AT values


  • 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.


  • use semantic versioning <>
  • fix deep attribute lookup for elements


  • 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
File Type Py Version Uploaded on Size
madseq-0.4.0.tar.gz (md5) Source 2014-05-03 13KB