WinSys:Python Windows管理员工具包
winsys的Python项目详细描述
输入WinSys:pythonwindows管理员工具包。收藏 使用一致的方法,包装Windows API pywin32已经公开的调用,添加一些带有ctypes的调用,并将它们 一种Python般的感觉。这里没有你不能做的事 10分钟和一份pywin32和SDK文档。但都已经到了, 更像Python的感觉。在
文档可在:http://winsys.readthedocs.org/en/latest/index.html
设计原则
以下模块有指导性的设计原则 尽可能提供包装:
- 使临时使用成为可能和容易(甚至有吸引力)
- 为常见情况提供合理的默认值,始终允许更复杂的场景
- 将所有常量放在一个位置,根据它们的API用法对它们进行分组
- 在可用的情况下使用pywin32功能,并在需要时用ctypes补充它
- 假设Python的最新版本(在2.6、2.7、3.2、3.3上测试)
- 充分利用上下文管理器(带语句)
- 使每个对象都能够干净地转储其内容及其子对象的内容
- 维护对象方法,但提供方便的模块级功能
- 对类有有用的工厂函数,可靠地接受字符串或对象参数
共同特征
winsys中的大多数对象都是核心的子类 提供合理的默认值并定义公共功能,如转储函数。 此外,许多模块都具有以下功能:
Python命名
这有点争议,但使用了相同的命名约定 在整个过程中,广泛遵循lowercase_with_underscores约定 在Python社区中采用。最普遍的例外是 在constants模块中,其中Windows常量保留 UPPERCASE_WITH_UNDERSCORESnames。在
模块级功能
而Python类被大量使用来包装函数驱动 windowsapi,很多功能都是作为模块级公开的 便利功能。例如,在fs模块中,fs.文件 课程提供fs.File.copy文件功能相同,但方法是公开的 在模块级别,如fs.复制。这样,你就不必实例化 一个或多个仅用于单个操作的对象。在
工厂功能
大多数类都有相应的工厂函数(通常 相同的名称在小写)试图更容易接受什么 它的参数是,并将它们转换为类的 拥有__init__方法。例如,主体类 初始值设定者期望PySID结构具有对应的主体 函数,该函数将使用Sid或用户名或组名,或无或现有 主体对象。在
倾倒
每个从核心派生的对象都有一个dump方法 用于显示其内部结构,可能递归地显示 有些结构本身就是WinSys对象。这是有意的 用于在翻译程序中方便查看的特殊用途,例如 从文件加载的安全结构。在
迭代器和生成器
在可能和有意义的地方,经常使用延迟迭代器 由发电机实现。这从fs模块开始,其中 成千上万的文件被查询以获取信息,但是 在整个方案中被普遍采用。在
上下文管理器
在有意义的地方,上下文管理器已经被使用,或者 或通过将对象定义为它自己的上下文管理器通过__enter__和__exit__方法实现。 上下文管理对象的示例包括邮筒和 <引用>安全。安全对象。修饰函数的示例包括 security.change_权限和安全性.模拟函数。在
托多
显然,有很多事情要做。windowsapi是巨大的;甚至 它被pywin32暴露了,远远超过了我现在的需要和时间 处置。这个包的实施主要是由 Windows系统管理员在日常工作中的特殊需求。我的 目的是以类似的方式继续包装Windows功能, 但是如果有人有特殊需求,或者可以提供附加功能, 让我们听听吧。在
- 项目
标签: