RSC工具所需的杂项基本功能
项目描述
该库包括在其他项目中使用的各种实用模块。
ast_call: 使用asterisk的简单调用管理器:这可以用来发起调用并记录与该调用相关联的所有事件。因此,您可以找到调用状态以及可选的拨号状态。
ast_cdr: asterisk中CDR记录的解析器。我们目前仅使用文本文件,这可能在以后扩展到数据库使用。
ast_probe: 检查正在运行的asterisk的方法
Autosuper魔法(最初来自Guido van Rossum对Python 2.2的公告):对于重构,一个好的想法是每个类都知道其父类(父类不是在upcall中硬编码的),通过添加__super属性来实现。例如,使用self.__super.method来调用父类中的方法。
base_pickler:允许指定一个pickle异常的字典,如果调用pickle时字典中的值在__dict__中,则用异常字典中的值替换__dict__中的值。
bero:bero*fos故障切换开关的配置器。请参阅我的博客文章,了解我为什么要写这个(简要总结:为了解决设备固件中的bug,这些bug没有通过设备随附的配置器代码解决)。
Config_File:用于我的一些项目中Python语法的配置文件。
crm:pacemaker高可用性项目的集群资源管理器的工具。我们允许查询节点、资源和资源错误,以及重置错误和迁移资源。
execute:执行命令和处理IO的模块,这个模块还具有Lock和Log混合功能。现在还有一个用于在管道中执行进程的框架,管道中可以有分支点,一个进程的输出可以为多个管道提供数据。请参阅test_exec.py、test2_exec.py和test3_exec.py。
grepmime:在电子邮件附件中搜索模式(即使它们被编码)
inductance:根据Robert Weaver的方法计算空芯圆柱形扁平绕线线圈的电感http://electronbunker.ca/CalcMethods3b.html
IP_Address:带有子网掩码的IP v4和v6地址
iter_recipes:使用迭代器的魔法。包含Python的itertools的一些向后兼容实现,用于较早的Python版本。
isdn:模拟Asterisk ISDN线路的状态,无论是Linux Call Router (LCR) ISDN线路还是由DAHDI管理的线路。对于提供更多信息的Xorcom模块,这些信息是通过/proc中的Xorcom特定文件而不是原生DAHDI模块提供的,这是一个特殊情况。
lc_resonator:L-C谐振器的频率计算
Math实现了欧几里得算法求最大公约数,以及作为副产品最小公倍数
nmap:nmap扫描输出的解析器(例如,用于生成TeX中的表格)
ocf:用于为heartbeat集群资源管理器编写OCF脚本的简单框架(可能也适用于名为pacemaker的新版本,但目前仅测试了Debian稳定版,即lenny中的版本)。
PDF_Signature:用于检查Adobe PDF文档签名的实验性代码
Phone:解析电话号码(奥地利特定)
PM_Value:可能缺少的值,封装一个可能缺失的数字及其相关算术。
pycompat:在多个Python版本下运行的实用工具
Rational:有理数实现
stateparser:简单的状态机解析器类,用于使用状态机编写基于行的解析器。例如,请参阅nmap。在解析后,结果可以被pickle,但我们失去了从pickle结果中读取后继续解析的能力。
sqlparser:解析来自postgreSQL和mysql的SQL转储,并可选地创建新的(例如匿名化)SQL转储
timeout:使用SIGALRM的简单超时机制
Tex_CSV_Writer:以TeX可以解析的语法写入CVS文件。实现与csv模块相同的接口。仅实现写入。
trafficshape:简单的流量整形配置:目前生成用于流量整形配置的Linux tc命令,使用hfsc进行整形,以及sfq或red作为叶子qdisc。我们还提供了一个从iptables mangle规则(用于流量标记)到tc命令的转换器。如果我们想要进行入站整形,这很有必要。Linux内核不支持入站整形,因此我们需要将所有流量重定向到一个ifb设备。在这个设备上,我们进行出站整形。不幸的是,当使用带有tc filter + action mirred命令将流量发送到ifb设备时,这发生在PREROUTING链之前。这意味着数据包还没有被标记。因此,我们提供了一个解析器,将PREROUTING链中的mangle规则转换为适当的tc命令。为了实现这一点,我们在原始设备中标记数据包(使用tc动作xt(以前称为用于iptables标记的ipt,可以使用向后兼容选项)),然后使用标记信息在ifb设备中发送流量到适当的qdisc。这支持两级方法:匹配数据包标记(使用–mark)的iptables规则被转换为ifb设备中的tc命令(它们依赖于现有的标记)。所有其他规则被转换为tc动作xt(使用-j MARK)和tc动作mirred redirect(将流量发送到ifb设备)的原始设备(例如,eth0重定向到ifb0)。默认情况下,PREROUTING命令直接从运行中的内核中获取(使用“iptables -t mangle -S -v”)
资源
从https://sourceforge.net/projects/rsclib/下载源代码,并使用标准的python setup进行安装,例如
python setup.py install --prefix=/usr/local
或者从pypi获取它,并通过pip安装。
变更
版本0.67:rational和iter_recipes.batched中的错误修复
iter_recipes.batched现在不会返回空批
将Rational模块重命名为rational
修复rational模块中的除法
版本0.66:十六进制转储解析,iter_recipes.batched
添加iter_recipes.batched,它出现在Python 3.12中
十六进制转储解析现在更加宽容
一些被忽视的Python3更改
版本0.65:使用pyproject.toml
使用带有pyproject.toml的新式打包,旧的setup.py仍然可用
使用控制台脚本入口点而不是目录bin中的显式脚本
版本0.64:Small execute.Log更新
添加add_stderr_handler方法以记录到stderr
版本0.63:Python3修复
修复bytes_ord以处理python3中的bytes对象
版本0.62:Python3修复
更多Python3修复
stateparser更新
hexdump/unhexdump
版本0.61:sqlparser
允许在读取sql转储期间进行过滤
版本0.60:Python3修复
hexdump
xrange
兼容bytes迭代器
版本0.59:sqlparser
支持较旧的postgresql版本,已测试9.6
版本0.58:sqlparser
修复sqlparser的python3字符串处理
stateparser中的小修复
版本0.57:isdn
添加beronet GSM模块的解析
支持具有相同编号的多台ber设备
版本0.56:ast_call,isdn
ast_call现在已升级到pyst和asterisk的最新版本
isdn模块现在支持通过isdn网关进行远程isdn
各种python3修复
版本0.55:LOCKDIR
现在可以通过环境变量LOCKDIR设置锁定目录(默认仍为/var/lock,它是现代系统上/run/lock的符号链接)
版本0.54:电感,sqlparser
sqlparser现在可以进行往返(某些项目顺序不同)
更多的电感公式
版本0.53:电感,IPv4地址
将电感引入公制单位(输出为F,输入为m)
修复当地址包含少于3个点时的IPv4地址解析
版本 0.52:小修复
修复 sqlparser 中的 Unicode 问题
版本 0.51:小修复
修复布尔上下文中的 IP 地址
将支持的 Python 版本添加到 setup.py 中
版本 0.50:小增项
将 Rational 修改为默认不打印混合分数
允许在 execute 中设置 Lock_Mixin 的锁定文件名
版本 0.49:Python3 兼容性
移除 ETree、HTML_Parse、PDF_Parse、multipart_form:这些由 BeautifulSoup 或特定 PDF 处理库或 requests 库等库更好地处理
移除 ldap_lib.py:现在它由 ldap3 优雅地支持,并且也具有原生分页搜索迭代器
移除 Freshmeat.py:Freshmeat 现在几乎已经废弃,他们不支持 API 测试,因此正确实现这一点非常困难
将 Firstname(及其所有历史)放入自己的包中,请注意,这需要对网站的最新版本进行更多工作才能运行
大量修复以支持 Python3 兼容性:在存在 doctests 的地方现在通过,但仍有一些未测试的代码和一些 Python3 中缺少库的代码(pyst asterisk 绑定和 openssl 包装器)
版本 0.48:修复 execute
现在我们真正关闭了其他进程中的所有相关管道端,这避免了挂起
向 Process 添加日志记录
版本 0.47:修复 IP_Address;pypi
IP_Address:在比较 IP_Address 实例时放松继承检查
已上传到 pypi 并在 README 中进行了文档说明
版本 0.46:添加到 ast_probe;错误修复
ast_probe 现在具有检查 sip 注册和重新加载 asterisk 中的 sip 子系统的方法
添加一个小脚本,ast_sip_check,用于检查 asterisk 服务器上的 sip 注册,如果某些注册丢失,则重启 sip。
Config_File 修复了 __getattr_ 方法,在失败时返回 AttributeError
版本 0.45:修复 ISDN 端口
字符串表示法中有前导 unicode ‘u’
修复 ISDN 端口的字符串表示法
版本 0.44:使 bero 的行等待可配置
对于 berofos 资源,我们使 ISDN 线的 L1 和 L2 的等待可配置。硬编码的默认值太低。
新配置项 ISDN_WAIT_UP
版本 0.43:支持新的 berofos 固件
新的 berofos(故障转移开关)固件有一些新的低级命令,我们现在在获取设备状态时接受这些命令。
修复 bero.py 以接受新的低级命令
向 bero.py 添加更多文档
在此 README 中添加 ast_probe 的描述
版本 0.42:功能增强
添加 crm 以支持 pacemaker 集群管理,新的 ast_probe 以检查 asterisk 状态。ocf 和 ast_call 的修复
添加 crm.py
添加 ast_probe.py
允许在 ast_call.py 中指定解析后的配置(cfg)
在 ocf.py 中更好地监控 asterisk 和 dahdi 资源
修复 ocf.py 以使用 isdn.py 中的新类
isdn.py 现在如果在配置文件中找到提示,则不会在 isdn.py 中探测 asterisk 以获取使用的 ISDN 堆栈
版本 0.41:微小功能增强
对 Freshmeat、pycompat、sql-dump 解析器进行修复。
修复 mysql 导出中的转义引号解析
Freshmeat
pycompat 修复
版本 0.40:发行版错误修复
README 重命名导致发行版中缺少 README.rst 文件。
修复 MANIFEST.in
版本 0.39:微小功能增强
对 hexdump、unicode 问题(elementtree 包装器、stateparser)进行修复。向 IP_Address 比较添加一些修复。最近版本的 nmap 输出已更改,适应新格式。
使 hexdump 中的地址可配置
修复 IP_Address 子类比较中的错误
ETree 中的 Unicode 支持
stateparser 中的 Unicode 支持
修复 sqlparser 中 PostgreSQL 导出 CSV 输出的尾部空属性的错误
sqlparser 中的 Unicode 支持(使用 stateparser)
解析新的 nmap 格式
修复可配置 Releasetools 位置的错误
版本 0.38:微小功能增强
修复 IP6_Address(和 IP4_Address)的布尔转换。
当尝试进行真值测试时,IP6_Address 会引发错误。添加 __nonzero__(即使对于 0 地址也始终返回 True)。
版本 0.37:功能增强
更改 IP_Address 的排序顺序,使 IP_Address 不可变,使用元类魔法来允许复制构造函数语义。
现在 IP_Address 对象的排序顺序(IPv4 和 IPv6)将反转子网掩码的顺序:如果比较的对象中的 IP 地址部分相同,我们以前是按照 逆 子网掩码进行排序(将具有更高子网掩码的较小网络放在前面)。我们现在将其反转,以与 PostgreSQL cidr 类型对象兼容。
现在将 IP_Address 对象的所有属性都实现为属性,以返回属性的 ‘_’ 变体。因此,IP_Address 对象(在公共接口中使用时)是不可变的。由于我们已经有了一个 __hash__ 方法,这实际上固定了接口,不允许在字典中修改对象。
允许使用另一个 IP_Address 对象调用 IP_Address 构造函数。由于 IP_Address 对象现在是不可变的,我们使用元类技巧来返回传递的对象本身(而不是生成一个副本)。
版本 0.36:功能增强
允许自动转换比较参数。添加父属性和 is_sibling 测试。
现在比较运算符和 ‘in’ 会进行自动转换。
添加父属性(下一个更大的网络)
添加 is_sibling 测试(相同的父对象)
版本 0.35:功能增强
将 'mask_len' 添加为 IP_Address 的 'mask' 的别名。
有时需要网络掩码长度(即前缀长度),作为 mask_len(例如,在 github 上的 FFM 中)。
版本 0.34:功能增强
将 trafficshape 更改为使用新的 tc 语法。为 hexdump 添加标签。
tc 命令已将 ipt 动作重命名为 xt(Linux 通过重构 iptables 引入了 xtables),旧的 ipt 仍在 iproute2 中可用,但我们现在将 xt 设置为默认值。可以使用向后兼容参数来获取旧的行为。
为 iptables 动作解析器添加 save-mark。
现在 hexdump 类可以生成标签。
版本 0.33:功能增强
对 ast_call 的更多修复。
添加来自 asterisk wireshark 跟踪事件的解析器。
为 'real' 测试添加 fail.log。
不要与 Call_Manager 双重注册调用。
允许通过 account-code 进行显式匹配。
版本 0.32:功能增强
对 ast_call 的更多修复。
使用 pyst asterisk 模拟器进行回归测试。
修复 OriginateResponse 立即返回失败的情况。
测试 Hangup 在 OriginateResponse 之前或之后到达的情况。
版本 0.31:功能增强
修复 ast_call 中的立即失败调用。修复 isdn.py 中的 dahdi 通道计算。
修复 ast_call 中的 OriginateResponse 处理。
修复 dahdi 通道计算,不能直接使用 span,使用 basechan 属性。
版本 0.30:功能增强
修复 dahdi 与 mISDN 解释接口和端口的方式。在 mISDN 中,我们可以将多个端口(物理线路)组合成一个接口。在 dahdi 中,两者相同(端口是 dahdi 中的 span)。
从 dahdi isdn 解析器中删除 B- 和 C- 通道的解析。
版本 0.29:功能增强
lcr 模块现在命名为 isdn。它现在可以处理由 Asterisk DAHDI 管理的 isdn 接口,以及 Linux Call Router(LCR)。
版本 0.28:功能增强
修复 Robert Weaver 的电感公式,感谢 Robert 指出我在您的新网站上所做的更正!对于电感模块中的大多数 doctests,错误在于较低的百分比点。向 iter_recipes 添加一个 xxrange 迭代器,可以替换 Python 的原生 xrange 迭代器,但可以与长整数一起工作。这对于 IP_Address 模块中的一些 IPv6 地址操作是必需的。
根据 Robert Weaver 的补丁修复电感计算。
向 iter_recipes 添加 xxrange 迭代器。
在 IP_Address 模块中使用新的 xxrange 代替 xrange,为 IPv6 添加一个失败的大数字测试
版本 0.27:微小的功能增强
将 pageurl 和 pageinfo 属性添加到 HTML_Parser.Page_Tree 中,对 HTML_Parser 进行其他增强。为解析器类添加 pickle 支持。修复 IP_Address 类的比较。
将 pageurl 和 pageinfo 属性添加到 HTML_Parser.Page_Tree 中,用于存储通过 urllib2 的 geturl 和 info 调用检索到的信息。
stateparser.py 和 HTML_Parse.py 中的解析器类不可 pickle,通过在调用 pickle 时删除特定于解析器的属性进行了修复。请注意,从 pickle 读取类后无法继续解析。
添加 base_pickler 模块以允许 pickle 异常
HTML_Parse:将 Parse_Error 改为 ValueError
HTML_Parse:与异常一起抛出行号
HTML_Parse:添加超时
HTML_Parse:使用 url 抛出 Retries_Exceeded
HTML_Parse:url 参数现在可以是 None,不与 site 参数连接
将 pageurl 和 pageinfo 添加到 HTML_Parse
IP_Address:修复比较
NMAP_Parser 类的轻微重构
版本 0.26:微小的功能增强
修复 sqlparser 的双-utf-8-encoding 选项。增强 exec_pipe 的 stderr 处理。
为 fix_double_encode 选项检测到更多损坏的编码
execute.py:将执行命令的错误消息添加到 exec_pipe 抛出的消息中,使非失败情况下的 stderr 输出可用。
版本 0.25:微小的功能增强
添加 sqlparser 以解析 PostgreSQL 和 mysql 的 SQL 导出,添加 Phone 以解析电话号码。
sqlparser 已添加
添加 Phone 以解析电话号码
版本 0.24:微小的功能增强
对 IP_Address 进行更好的语法检查和比较运算符,修复解析器和 IP_Address.IP6_Address 的 __str__ 中的错误。
IP_Address 更好的语法检查
IP_Address 的 __cmp__ 和 __eq__ 改进,以便与其他类型进行比较
为 IP6_Address 添加更多回归测试
修复 __str__ 和 IP6_Address 的解析器中的错误
支持对 netmask 的严格检查(如果 strict_mask 为 True,则 netmask 右侧的所有位都必须为零)
版本 0.23:微小的功能增强
IP4_Address 现在可以放入字典中,为 IP4_Address 添加子网迭代器。重构 IP_Address 并添加 IP6_Address
为 IP_Address 添加 __hash__
新的 IP_Address 子网迭代器遍历子网中的所有 IP。可以指定 netmask。
支持 IPv6 地址
将 IP4_Address 重命名为 IP_Address
版本 0.22:微小的功能增强
允许输入 Unicode IP 地址,希望可以通过 pip 安装 rsclib。
现在传递给 IP4_Address 构造函数的地址可以是 Unicode
将 download_url 添加到 setup.py 以通过 pip 安装
版本 0.21:微小的功能增强
修复 autosuper:允许从非 autosuper 类继承,对 ast_call 和 lcr 解析器进行一些小修复。修复 ETree 美化打印。更新 Freshmeat 到新主机名。将点分网掩码解析添加到 IP4_Address。
由于 Python2.6 中“object”构造函数不允许参数,因此在进行 autosuper 的向上调用时需要删除这些参数。当从非 autosuper 启用的类(例如,class (With_Autosuper, dict))继承时,这将失败,在这种情况下,dict 会获得空参数。新实现会找出我们的向上调用是否指向“object”,仅在那种情况下删除参数。
ast_call 现在在匹配到调用时处理所有挂起的未处理事件。
更新 ast_call.Call 的回归测试
lcr 解析器:修复正则表达式,端口号可以有空名称。
优化 ast_call 中的调用匹配:一旦我们确定唯一标识符,就标记调用为关闭。添加 Account-Code 匹配。
修复 ETree 美化打印:当参数已经转换为其他格式时,不要打印 Unicode 字符串
freshmeat.net 现在是 freecode.com(并且 API 转发到那里),更新 Freshmeat.py 到新主机名(包括 .netrc 凭证,与旧名称兼容)。
IP4_Address 的显式掩码参数现在可以是点分网掩码。
版本 0.20:未在 freshmeat 上宣布
为 ast_cdr 添加数据库值输出,添加电感计算。
ast_cdr:为CDR记录的数据库值添加方法 - CDR的数据库值不同,它们不包括开始、结束、响应时间戳,而是只包含一个calldate,此外amaflags在数据库中是数字的。
添加了电感计算
版本0.19:未在freshmeat上宣布
扩展ETree的walk方法并实现小的ldap库
ETree:添加walk方法遍历树并调用可选的预和后钩子函数
ldap_lib:用户和组搜索的通用ldap任务以及分页搜索的迭代器(与活动目录一起使用)。
版本0.18:未在freshmeat上宣布
ast_call的错误修复和asterisk 1.6的更新,对IP4_Address的小扩展。
ast_call:通过(唯一的)帐户代码匹配调用
ast_call:Newstate事件中的State与ChannelState参数
ast_call:处理来自asterisk的即时错误(例如,权限被拒绝)
IP4_Address:添加netblk(具有子网掩码的地址的起始和结束地址)
版本0.17:未在freshmeat上宣布
从HTML_Parse中提取ETree(扩展ElementTree)。新的Freshmeat模块通过新的freshmeat REST API获取项目信息和提交新版本。新的简单hexdump模块。
新ETree.py(扩展ElementTree)
新Freshmeat.py
新hexdump.py
将lcr模块适配到Linux Call Router的新版本
版本0.16:未在freshmeat上宣布
添加iptables到tc转换器,将iptables PREROUTING链中的mangle规则转换为适当的tc命令(使用iptables操作和mirred重定向操作)。
将iptables到tc转换器添加到trafficshape.py
版本0.15:未在freshmeat上宣布
添加使用linux iproute(tc)进行流量整形框架。iter_recipes的微小更新。
trafficshape.py的初始实现
添加iter_recipes.combinations从python2.6 itertools手册页以实现向后兼容性
版本0.14:未在freshmeat上宣布
添加进程管道执行框架,进程可以是Python方法或外部程序(带有参数列表)。它们可以连接在管道中,管道中可能有T点,此时管道分支为两个或多个由一个进程输出提供支持的管道。
添加进程管道框架
HTML_Parse现在有一个显式的translate钩子,用于在解析之前预处理HTML页面。默认行为是过滤掉损坏HTML中的常见字符。
添加nmap解析器(例如,从nmap扫描生成TeX表)
修复execute模块中的Lock_Mixin以在退出时删除lockfile,这以前依赖于__del__,这在某些情况下会失败。
添加到HTML_Parse的文件上传
版本0.13:未在freshmeat上宣布
错误修复发布:修复timeout.py中的信号处理程序
修复timeout.py中的信号处理程序
版本0.12:未在freshmeat上宣布
使用SIGALRM添加简单的超时机制
添加timeout.py
版本0.11:未在freshmeat上宣布
为asterisk添加CDR记录的解析器。我们目前只使用文本文件,这可能会后来扩展到数据库使用。对ast_call的一些修复,使调用处理更稳健(一些竞争条件会将其他调用的事件识别为我们发起的调用)。添加用于执行命令和IO处理的execute模块,它还具有Lock和Log混合。添加ocf.py,这是一个用于编写heartbeat集群资源管理器OCF脚本的简单框架(可能也适用于名为pacemaker的新版本,但目前仅测试了Debian稳定版即lenny中的版本)。添加lcr.py以模拟Linux Call Router ISDN线路的状态。
添加ast_cdr.py
修复ast_call.py
修复stateparser.py中的上链
添加execute.py
添加ocf.py
添加lcr.py
版本0.10:未在freshmeat上宣布
添加用于asterisk自动拨号的ast_call,对IP4_Address进行的小修复,添加bero*fos配置器,用于检查PDF签名的实验性代码
添加ast_call.py
名字首字母:不要查找长度小于2的名字
IP4地址:一些常见函数的别名
IP4地址:添加__cmp__
bero.py:bero*fos配置器
HTML解析器更新为python 2.5版本
状态解析器更新:默认使用self.matrix
PDF_Signature:用于检查Adobe PDF文档签名的实验性代码
迭代菜谱:使用迭代器的某些魔法
版本0.9:未在freshmeat上发布
将二项式添加到数学包中,添加名字,修复有理数发布版本
二项式(n, m)计算n和m的二项式系数。
名字:检查候选人是否是按流行网站判断的名字候选人。
有理数:在除法中可能会得到负的除数 – 已修复
将Config_File设置为autosuper的子类
版本0.8:未在freshmeat上发布
增加了更多文档。实现了状态机解析器stateparser。添加了有理数算术包。
实现了stateparser(简单的基于行的可配置状态机解析器)
IP4地址的使用示例打印了debian /etc/network/interfaces条目。
添加了数学包(欧几里得算法,gcd,lcm)
有理数算术
对HTML解析器进行cookie处理
对HTML解析器进行基本的HTML身份验证
HTML解析器:移动到urllib2
版本0.7:未在freshmeat上发布
一个小型的Python库,包含各种东西,如配置文件解析(使用Python语法),HTML和PDF解析。
首个发布版本
项目详情
下载文件
下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。
源分布
构建分布
rsclib-0.67.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 65d238dcc6c6a133a9a1098210218933cb3465c52d062ce4fdff6d974833ea18 |
|
MD5 | b687b0eea99419f008329b294996adb7 |
|
BLAKE2b-256 | 77896eebd1752647b39b283e62fc38a22915f0ffd83b0bb6879f9ea4bce1f3c7 |