Metadata-Version: 1.1
Name: pu
Version: 0.6.7
Summary: Python utils
Home-page: https://github.com/huyx/pu
Author: yuxin
Author-email: ycyuxin@gmail.com
License: GNU Library or Lesser General Public License (LGPL)
Description: Python Utilities
        ================
        
        Python 编程工具集，本着实用、简单的原则，尽量减少对其他模块的依赖。
        
        由于内容比较杂，所以并不过分追求兼容性。
        
        pu.aio
        ------
        
        asyncio 相关扩展和工具。
        
        pu.aio.util
        
        - file_get_contents: 读取文件内容或下载 http 页面内容
        
        pu.aio.timer
        ~~~~~~~~~~~~
        
        提供一个简单的 Timer。
        
        - class Timer
        
        pu.aio.client
        ~~~~~~~~~~~~~
        
        简单的 Client 类和支持重连的 ReconnectingClient
        
        - class Client
        - class ReconnectingClient
        
        pu.aio.dummyprotocol
        ~~~~~~~~~~~~~~~~~~~~~~
        
        支持动态协议识别，根据收到的数据判断连接实际采用的协议。
        
        - class DummyProtocolFactory
        - class DummyProtocol
        
        pu.aio.virtualprotocol
        ~~~~~~~~~~~~~~~~~~~~~~
        
        !! 请使用 dummyprotocol
        
        支持动态协议识别，根据收到的数据判断连接实际采用的协议，动态协议需要继承自 RealProtocol。
        
        - class VirtualProtocolFactory
        - class VirtualProtocol
        - class RealProtocol
        
        pu.util
        ----
        
        - shorten
        
        pu.dictutil
        -----------
        
        - repr_dict
        - Dot
        - DotDict
        - OrderedDict
        - DotOrderedDict
        
        pu.manager
        ----------
        
        - class Manager: 对象管理器
        
        
        用法::
        
            manager = Manager()
        
            manager.register(1, 'ONE')
        
            @manager.register
            def a(): pass
        
            @manager.named('funcb', 'FUNCB')
            def b(): pass
        
            @manager.register
            class A: pass
        
            @manager.named('clsb', 'CLSB')
            class B: pass
        
        pu.datatype
        -----------
        
        自定义数据类型
        
        - class pretty_bytes -- 支持 hex 格式
        
        示例::
        
            pb = pretty_bytes(b'\xaa\xbb')
            assert '{0:hex}'.format(pb) == 'aabb'
        
        pu.pcap
        -------
        
        网络抓包工具，参考:
        
        - http://www.binarytides.com/python-packet-sniffer-code-linux/
        
        命令行用法::
        
            python -m pu.pcap				# Windows/Linux
            python -m pu.pcap eth1			# Linux
            python -m pu.pcap lo			# Linux
            python -m pu.pcap 192.168.0.100	# Windows
        
        程序中的用法::
        
            from pu.pcap import pcap
        
            for packet in pcap('eth1'):
                 print(packet)
        
        pu.simplefilter
        ---------------
        
        简单的过滤器，支持的语法::
        
            <filter1> && <filter2> || <filter3> && <filter4> ...
        
        每个 filter 的格式::
        
            <name><op><pattern>
        
        其中 op:
        
        - = -- 存在且相等
        - != -- 不存在或不等于
        - ~= -- 匹配(支持 * ?)
        - !~= -- 不匹配(支持 * ?)
        
        如果 op 加一个前缀 `#`, 表示 pattern 以 hex 字符串格式指定。
        
        示例::
        
            sip = 192.168.0.1 && dport = 80 || dport = 8080

        

        

        0.6.7(2014-11-12)
        -----------------
        
        BUGFIX: pu.dictutil.DotOrderedDict 继承类中自定义 __repr__ 引起错误（因为内部异常处理中引用了 %r）
        
        0.6.6(2014-11-12)
        -----------------
        
        - pu.util.deep_encode -- 深入数据结构内部，尽可能把字符串编码
        - pu.util.deep_decode -- 深入数据结构内部，尽可能把 bytes 解码
        
        0.6.5(2014-11-12)
        -----------------
        
        - iterattrs -- 增加参数，控制是否返回保护属性
        
        0.6.4(2014-11-12)
        -----------------
        
        - pu.util.iterattrs -- 返回指定对象的属性列表
        
        0.6.3(2014-11-07)
        -----------------
        
        - BUGFIX: pu.pcap IP 包构造错误
        
        0.6.2(2014-11-07)
        -----------------
        
        - 读取 http 文件出现错误时抛出异常
        
        
        0.6.1(2014-11-07)
        -----------------
        
        - BUGFIX: pu.pcap TCP flags 分析错误
        - 添加 pu.simplefilter -- 简单过滤器
        - 添加 example\pcap.py
        
        0.6.0(2014-11-06)
        -----------------
        
        - 添加 class pu.datatype.pretty_bytes
        - pu.pcap: 网络抓包工具
        
        0.5.5(2014-11-01)
        -----------------
        
        - pu.util.bytes_fromhex: 允许比 bytes.fromhex 更宽松的输入
        
        0.5.4(2014-11-01)
        -----------------
        
        - BUGFIX: pu.aio.timer.Timer 添加类成员 __timer
        
        0.5.3(2014-11-01)
        -----------------
        
        - 添加 pu.aio.util.file_get_contents
        
        
        0.5.2(2014-10-31)
        -----------------
        
        - dictutil: Dot 增加 __contains__
        
        0.5.1(2014-10-31)
        -----------------
        
        - dictutil: 改进 Dot 的 __repr__ 和 __str__
        
        0.5.0(2014-10-31)
        -----------------
        
        - 增加 dummyprotocol, 取代 virtualprotocol
        
        0.4.4(2014-10-30)
        -----------------
        
        - aio 中各个模块采用自己的 logger
        
        0.4.3(2014-10-30)
        -----------------
        
        - dictutil.Dot: 添加 get 和 setdefault 方法
        
        0.4.3(2014-10-30)
        -----------------
        
        - client.Client: 修改 connect 方法为 coroutine
        - 版本: Alpha 改为 Beta
        
        0.4.2(2014-10-29)
        -----------------
        
        - 允许指定 yaml 文件编码（缺省为 utf-8）
        
        0.4.1(2014-10-29)
        -----------------
        
        - virtualprotocol: 允许指定缺省协议，去除原来一个应用只能使用一个虚拟协议的限制
        
        0.4.0(2014-10-28)
        -----------------
        
        - 添加 manager 模块
        
        0.3.2(2014-10-27)
        -----------------
        
        - BUGFIX: dictutil.Dot 应该支持 [key] 方式访问
        
        0.3.1(2014-10-27)
        -----------------
        
        - 完善软件包版本信息
        
        0.3.0(2014-10-26)
        -----------------
        
        - dictutil -- repr_dict, Dot, DotDict, OrderedDict, DotOrderedDict
        
        0.2.0(2014-10-25)
        -----------------
        
        - yamlfile -- add !include tag
        
        0.1.1(2014-10-25)
        -----------------
        
        - Add MANIFEST.in
        
        0.1.0(2014-10-25)
        -----------------
        
        - pu.aio.client
        - pu.aio.timer
        - pu.aio.virtualprotocol
        
        - pu.util.shorten
Keywords: python,util
Platform: UNKNOWN
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Software Development :: Libraries :: Python Modules
