MAD-X序列解析器/转换器
项目描述
描述
从源文件解析MAD-X序列并对元素执行简单转换的脚本。
依赖项
安装
设置应按以下方式进行
python setup.py install用法
命令应如下调用
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
如果未指定 <input>,则将使用标准输入流来读取输入文件。相应地,如果未指定 <output>,则将使用标准输出流。
切片定义定义了一个切片指令列表,其中每个条目都是一个包含以下互斥键的字典
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'
示例文件
- type: drift
  density: 10
- name: B1DK1
  slice: 10
  makethin: true
  style: uniform注意,即使元素被多个规则匹配,也只会使用第一个。
注意
- 不要在输入序列中使用多行命令。目前这些无法正确解析! 
- 不要在输入序列中添加任何 at= 位置参数。madseq脚本负责这项工作。 
变更日志
0.4.4
- 修复对文件扩展名的检查 
0.4.3
- 修复一些切片多极系数 
- 处理 makethin 中的 QUADRUPOLE.K1S 
- 修复使用模板切片时的命名问题 
- 修复 Python 3 问题 
0.4.2
- 允许将.json文件作为-s参数传递(扩展名用于区分.json和.yaml文件) 
0.4.1
- 为切片使用不同的名称 
- 修复模板前的注释中的序列名称 
0.4.0
- 添加“use_at”切片选项,允许使用AT值 
0.3.2
- 内部:移除Element属性的属性访问 
- 修复Element.copy和.__contains__在基元素方面的错误 
- 修复JSON/YAML序列化错误 
- 修复预定义元素的错误实现 
- 修复LOOP风格的错误 
- 修复makethin的错误 
- 修复use_optics的错误 
- 将‘use_optics’重命名为‘template’。从技术上讲,这是公共接口的变化,但我们仍然处于0.X版本,而且这个功能之前根本不起作用。 
0.3.1
- 使用语义版本控制 
- 修复元素深度属性查找 
0.3
- 重新设计命令行 
- 修复MAD-X数组(如KNL={…})的错误解析 
- 移除切片的行内属性 
- 通过切片配置文件扩展切片 
- 修复模板(预定义)元素的可用性