Python UTILS
yxp的Python项目详细描述
在python2.7和python3.4中测试。
卡利特
您可以这样做:
from __future__ import print_function print('x', 'y', sep=',')
但我做不到:
from __future__ import print_function parameters = ('x', 'y', sep=',') print(parameters)
有了Callit,我可以做类似的事情:
from __future__ import print_function from yxpy.callit import CallIt parameters = CallIt('x', 'y', sep=',') parameters(print)
有时,您可以使用参数(类似于callit):
from __future__ import print_function from yxpy.callit import Parameters parameters = Parameters('x', 'y', sep=',') parameters(format)
是否
通常,字典可以这样使用:
d = dict(a=1) d['b'] = 2 x = d['a'] + d['b']
字典中的成员只能通过[]访问,但在其他一些字典中 语言(如javascript),它们可以通过:
访问d.b = 2 x = d.a + d.b
有了doit,你可以用同样的方式做同样的事情,doit提供 上课去做。
点滴:
from dotit import DotDict d = DotDict(a=1) d.b = 2 x = d.a + d.b
dotOrderedDict,从集合继承。orderedDict:
... # similar to DotDict
dodit,如果您已经有一个类似dict的对象,可以用dodit包装:
d = dict(a=1, b=2) ... d = DotIt(d) x = d.a + d.b
它还可以处理嵌套指令:
d = dict(a=dict(aa=1, ab=2), b=2) ... d = DotIt(d) x = d.a.aa + d.a.ab
加载
加载或重新加载python对象
导入模块:
import loadit
加载模块:
mod = loadit.load_it('mymodule')
加载功能:
func = loadit.load_it('mymodule.func')
加载类:
MyClass = loadit.load_it('mymodule.MyClass')
重新加载模块:
new_mod = loadit.reload_it(mod)
重新加载功能:
new_func = loadit.reload_it(func)
重新加载类:
NewMyClass = loadit.reload_it(MyClass)
yamlfile
从yaml文件加载配置,添加include标记。
main.yaml:
a: !include a.yaml
山药:
name: a
用法:
from yxpy import yamlfile yamlfile.load('main.yaml')
日志处理程序
- sockethandler(主机,端口)
- datagramhandler(主机,端口)
- redisthandler(list_name,list_maxsize=1024,host='localhost',port=6379,password=none)
- redispublishhandler(self,channel,host='localhost',port=6379,password=none)
sockethandler&datagramhandler
日志包提供了许多处理程序,包括 datagramhandler,但发送到服务器的数据打包为二进制文件,这 模块privide simular处理程序将纯文本传输到服务器。
示例:
socket_handler = SocketHandler(host, port) ... datagram_handler = DatagramHandler(host, port) ...
redisthandler&redispublishhandler
使用redis作为日志服务器,两个处理程序只提供一个单独的redis路径。 服务器。为了保持简单,处理程序会检查redis的响应。
示例:
handler = RedisListHandler(list_name=’logtest’, list_maxsize=100, password=’test’) … handler = RedisPublishHandler(channel=’logtest’, password=’test’) …
更改
0.1.5(2014-10-11)
- 重构:在重新加载中导入语句
0.1.3(2014-09-26)
- 是否支持嵌套指令。
0.1.2(2014-09-26)
- 添加dodit:include dodit,dotdict,dotOrderedDict
0.1.1(2014-09-19)
- 添加日志处理程序: -短袜工 -数据记录器 -重新发现处理程序 -重新发布处理程序
0.1.0(2014-09-18)
- 卡利特
- 加载
- yamlfile