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={…})的错误解析
移除切片的行内属性
通过切片配置文件扩展切片
修复模板(预定义)元素的可用性