Skip to main content

Parser/transformator for MAD-X sequences

Project description

Build Status Coverage Latest Version Downloads License

Description

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

Dependencies

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

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


Release history Release notifications

History Node

0.4.4

History Node

0.4.3

History Node

0.4.2

This version
History Node

0.4.1

History Node

0.4.0

History Node

0.3.2

History Node

0.3.1

History Node

0.3

History Node

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
madseq-0.4.1.tar.gz (13.8 kB) Copy SHA256 hash SHA256 Source None May 3, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page