跳转到主要内容

遵循epics-base的宏工具

项目描述

https://img.shields.io/travis/pcdshub/epicsmacrolib.svg https://img.shields.io/pypi/v/epicsmacrolib.svg

遵循epics-base的宏工具。

什么?

您想要epics-base兼容的宏展开,以及它的所有特性吗?

不?我想您不会。这是一个非常无聊的项目,您可能不需要它。

那么为什么?

这将是在whatrecord中宏和IOC shell拆分工具的未来,将不再依赖于Cython和epicscorelibs。

示例

macros_from_string

from epicsmacrolib import macros_from_string

macros_from_string("A=5,  B=$(A=3)")
# -> {'A': '5', 'B': '$(A=3)'}

MacroContext

from epicsmacrolib import MacroContext

ctx = MacroContext(use_environment=True)
ctx.define(TEST="A")
print(ctx.expand("TEST=$(TEST) SHELL=$(SHELL)"))
# TEST=A SHELL=/bin/bash

ctx = MacroContext(use_environment=False)
ctx.define_from_string("A=5,B=6")
ctx.define(C="7")
print(ctx.expand("$(A) $(B) ${C} ${D=5} ${E}"))
# -> 5 6 7 5 $(E)

ctx = MacroContext(use_environment=False, show_warnings=True)
ctx.define_from_string("A=5,B=6")
ctx.define(C="7")
print(ctx.expand("$(A) $(B) ${C} ${D=5} ${E}"))
# -> 5 6 7 5 $(E,undefined)

ctx.define_from_string("A=5,B=$(B)")
print(ctx.expand("$(A) $(B)"))
# -> 5 $(B,recursive)

with ctx.scoped(A="10", B="0"):
    print(ctx.expand("$(A)"))
    # -> 10
    with ctx.scoped(A="0"):
        print(ctx.expand("$(A)"))
        # -> 0
    print(ctx.expand("$(A)"))
    # -> 10

split_iocsh_line(类似于shlex.split

from epicsmacrolib import split_iocsh_line
split_iocsh_line("dbLoadRecords > output_filename")
# -> IocshSplit(
#     argv=["dbLoadRecords"],
#     redirects={1: IocshRedirect(fileno=1, name="output_filename", mode="w")},
#     error=None,
# )

许可证

此代码的Python部分受BSD-3条款许可(LicenseRef-BSD-3-Clause-SLAC,见LICENSE)约束。epics-base的部分已按其原始许可证在src中保留(见src/LICENSE)。

项目详细信息


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分布

epicsmacrolib-0.6.1.tar.gz (197.8 kB 查看散列值)

上传时间 源代码

构建分布

epicsmacrolib-0.6.1-pp39-pypy39_pp73-win_amd64.whl (237.5 kB 查看散列值)

上传时间 PyPy Windows x86-64

epicsmacrolib-0.6.1-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (251.1 kB 查看散列值)

上传时间 PyPy manylinux: glibc 2.17+ x86-64

epicsmacrolib-0.6.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (254.7 kB 查看散列值)

上传时间 PyPy manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

epicsmacrolib-0.6.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (236.8 kB 查看散列值)

上传时间 PyPy macOS 10.9+ x86-64

epicsmacrolib-0.6.1-cp311-cp311-win_amd64.whl (249.6 kB 查看散列值)

上传时间 CPython 3.11 Windows x86-64

epicsmacrolib-0.6.1-cp311-cp311-win32.whl (239.4 kB 查看散列值)

上传时间 CPython 3.11 Windows x86

epicsmacrolib-0.6.1-cp311-cp311-musllinux_1_1_x86_64.whl (670.7 kB 查看散列值)

上传时间 CPython 3.11 musllinux: musl 1.1+ x86-64

epicsmacrolib-0.6.1-cp311-cp311-musllinux_1_1_i686.whl (647.6 kB 查看散列值)

上传于 CPython 3.11 musllinux: musl 1.1+ i686

epicsmacrolib-0.6.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (670.4 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ x86-64

epicsmacrolib-0.6.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (648.0 kB 查看哈希值)

上传于 CPython 3.11 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

epicsmacrolib-0.6.1-cp311-cp311-macosx_10_9_x86_64.whl (257.9 kB 查看哈希值)

上传于 CPython 3.11 macOS 10.9+ x86-64

epicsmacrolib-0.6.1-cp310-cp310-win_amd64.whl (248.5 kB 查看哈希值)

上传于 CPython 3.10 Windows x86-64

epicsmacrolib-0.6.1-cp310-cp310-win32.whl (238.8 kB 查看哈希值)

上传于 CPython 3.10 Windows x86

epicsmacrolib-0.6.1-cp310-cp310-musllinux_1_1_x86_64.whl (633.2 kB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ x86-64

epicsmacrolib-0.6.1-cp310-cp310-musllinux_1_1_i686.whl (611.0 kB 查看哈希值)

上传于 CPython 3.10 musllinux: musl 1.1+ i686

epicsmacrolib-0.6.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.8 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ x86-64

epicsmacrolib-0.6.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (611.3 kB 查看哈希值)

上传于 CPython 3.10 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

epicsmacrolib-0.6.1-cp310-cp310-macosx_10_9_x86_64.whl (256.5 kB 查看哈希值)

上传于 CPython 3.10 macOS 10.9+ x86-64

epicsmacrolib-0.6.1-cp39-cp39-win_amd64.whl (248.5 kB 查看哈希值)

上传于 CPython 3.9 Windows x86-64

epicsmacrolib-0.6.1-cp39-cp39-win32.whl (238.9 kB 查看哈希值)

上传于 CPython 3.9 Windows x86

epicsmacrolib-0.6.1-cp39-cp39-musllinux_1_1_x86_64.whl (631.1 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ x86-64

epicsmacrolib-0.6.1-cp39-cp39-musllinux_1_1_i686.whl (612.1 kB 查看哈希值)

上传于 CPython 3.9 musllinux: musl 1.1+ i686

epicsmacrolib-0.6.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (628.1 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ x86-64

epicsmacrolib-0.6.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl (610.4 kB 查看哈希值)

上传于 CPython 3.9 manylinux: glibc 2.17+ i686 manylinux: glibc 2.5+ i686

epicsmacrolib-0.6.1-cp39-cp39-macosx_10_9_x86_64.whl (256.7 kB 查看哈希值)

上传于 CPython 3.9 macOS 10.9+ x86-64

支持者