与版本无关的字节链
byt的Python项目详细描述
Name: | byt |
---|---|
Website: | https://github.com/ceyzeriat/byt |
Author: | Guillaume Schworer |
Version: | 1.1 |
尽管新的python3字符串/字节链可以说比python2更简洁,但使用它们编写代码(与两个版本兼容)几乎是一场噩梦。这个包试图在两个主要的python版本(2.7+和3.5+)之间消除字符串和字节链管理中的主要不连续性。
byt是python2中的str和python3中的bytes的包子类。它的主要设计重点是行为完全相同,无论使用的是python版本。为了实现这种行为,byt是非常保守的:byt对象只能与其他byt对象(连接、查找、替换等)一起工作。这是(不幸的?)必须确保有些松散的python2字符串和字节链混合起来,其工作方式与python3相同。
这个包还修复了python3bytes(tryb'test'[0:1] == b'test'[0])的一些奇怪行为,并提供了新的方便方法或属性。
它由Guillaume Schworer建造,并根据 gnu通用公共许可v3或更高版本(gplv3+)许可证(请参见LICENSE)。
安装
只需运行
pip install byt
以获得最新的稳定版本。
用法
这两个入口点是byt.Byt和byt.DByt类,它们自动 根据运行的python版本加载。
Byt和DByt之间的唯一区别是str(Byt)将打印ascii 当str(DByt)–d like display–将打印其 对应的十六进制值。这些类是完全互操作的。
你就这样使用它:
from byt import Byt >> b = Byt('hello world!') >> print(b) Byt('hello world!') >> (Byt(1,2) + Byt("\x01\x02") + Byt([1,2])).hex() '01 02 01 02 01 02' >> print(b.hex()) 68 65 6c 6c 6f 20 77 6f 72 6c 64 21 >> eval(repr(b)) == b True >> print(Byt('str1') + 'str2') TypeError: can't concat Byt to str >> byt.Byt('str1')[2:].ints() [114, 49] from byt import DByt >> b = DByt('hello world!') >> print(b) 68 65 6c 6c 6f 20 77 6f 72 6c 64 21 >> eval(repr(b)) == b True # inter-compatibility >> DByt('yes') == Byt('yes') True >> DByt('yes') + Byt('no') DByt('yesno') >> print(DByt('yes') + Byt('no')) 79 65 73 6e 6f
文档
所有选项都记录在类的docstrings中。可以在python shell中使用:
>> from byt import Byt, DByt >> print(Byt.__doc__) >> print(DByt.__doc__)
或者,在ipython中使用:
>> from byt import Byt >> Byt? >> DByt?
许可证
版权所有2017 Guillaume Schworer
PatienceBar是GNU General提供的免费软件 公共许可证v3或更高版本(gplv3+)许可证(请参见LICENSE)。
更改日志
1.1.0(2017-11-12)
- 添加了文档和测试
- byt/dbyt对象的新初始化:byt(1,2,3)
1.0.12(2017-08-12)
- 将dbyt十六进制添加为默认的str,而repr则保持基于ascii
- 新方法“str”
1.0.8(2017-06-26)
- 固定repr方法和反斜杠
1.0.6(2017-03-22)
- 通过pip修复了安装错误
1.0.4(2017-03-22)
- 添加了fromHex类方法
1.0.3(2017-02-22)
- 修复了在BYT对象上调用IsInstance时出现的错误
1.0.0(2017-02-19)
- 初次发布。