跳转到主要内容

用于文件系统探索和自动构建的实用程序

项目描述

关于Pox

pox 提供了一套用于导航和操作文件系统的实用程序。该模块旨在简化在远程主机上探索文件系统时的一些低级别操作系统交互,例如 “文件系统的根是什么?”“用户名是什么?”“首选的登录shell是什么?” 这些查询对于允许远程用户像本地登录一样工作至关重要。虽然 pox 与内置的 osshutil 模块类似,但它的许多功能是独特的,并补充了这两个模块。

pox 提供了几个Unix shell命令的Python等效命令,如 whichfind。这些命令允许自动发现操作系统上已安装的内容以及重要工具的位置。这种能力不仅适用于探索远程主机,还作为自动化构建和安装的辅助工具在本地很有用。

还提供了对文件和文件系统的高级操作。例如:查找已安装Python包的位置,确定源代码在文件系统中的位置和存储方式,以及确定已安装包的版本。

pox 还提供了实用程序来启用向远程文件系统发送命令的抽象。与环境变量和已安装实用程序的注册表结合使用,pox 允许用户像在本地登录一样与远程文件系统进行交互。

poxpathos 的一部分,一个用于异构计算的 Python 框架。由于 pox 正在积极开发中,因此任何用户反馈、错误报告、评论或建议都备受赞赏。问题列表位于 https://github.com/uqfoundation/pox/issues,历史列表维护在 https://uqfoundation.github.io/project/pathos/query

主要功能

pox 提供了用于发现用户环境的实用程序

  • 返回用户名、当前shell和用户主目录的路径

  • 从用户的 $PATH 中删除重复条目

  • ${VAR}value 查找和展开环境变量

pox 还提供了用于文件系统探索和操作的实用程序

  • 发现文件、可执行文件、目录或符号链接的路径

  • 发现已安装包的路径

  • 解析操作系统命令以进行远程shell调用

  • 将文本文件转换为平台特定的格式

当前版本

最新发布的 pox 版本可在以下网址获取:

https://pypi.ac.cn/project/pox

pox 在 3 条条款的 BSD 许可下分发。

开发版本

您可以从以下网址获取具有所有最新功能的最新开发版本:

https://github.com/uqfoundation

如果您有新的贡献,请提交拉取请求。

安装

pox 可以使用 pip 安装

$ pip install pox

要求

pox 需要

  • python(或 pypy),>=3.8

  • setuptools>=42

基本用法

pox 包含一些基本实用程序,用于连接并自动化对本地和远程文件系统的探索。有一些基本功能用于发现重要位置

>>> import pox
>>> pox.homedir()
'/Users/mmckerns'
>>> pox.rootdir()
'/'

或者,您可以与本地和全局环境变量进行交互

>>> local = {'DEV':'${HOME}/dev', 'FOO_VERSION':'0.1', 'BAR_VERSION':'1.0'}
>>> pox.getvars('${DEV}/lib/foo-${FOO_VERSION}', local)
{'DEV': '${HOME}/dev', 'FOO_VERSION': '0.1'}
>>> pox.expandvars('${DEV}/lib/foo-${FOO_VERSION}', local)
'${HOME}/dev/lib/foo-0.1'
>>> pox.expandvars('${HOME}/dev/lib/foo-0.1')
'/Users/mmckerns/dev/lib/foo-0.1'
>>> pox.env('HOME')
{'HOME': '/Users/mmckerns'}

并执行一些基本搜索功能

>>> pox.find('python3.9', recurse=5, root='/opt')
['/opt/local/bin/python3.9']
>>> pox.which('python3.9')
'/opt/local/bin/python3.9'

pox 还有一个专门的 which 命令,专门用于 Python

>>> pox.which_python()
'/opt/local/bin/python3.9'
>>> pox.which_python(lazy=True, version=True)
'`which python3.9`'

您可以从命令行启动任何 pox 函数,这有助于在并行和分布式管道(如 pathos.connection.Pipepathos.secure.connection.Pipe)中执行命令

>>> import pathos
>>> p = pathos.connection.Pipe()
>>> p(command="python -m pox 'which_python()'")
>>> p.launch()
>>> print(p.response())
'/usr/bin/python'
>>> p.kill()

pox 中帮助使与文件系统和环境变量的交互程序化和抽象的功能,在尝试远程执行复杂命令时变得特别相关。

更多信息

开始的最佳方式可能是查看以下文档:[http://pox.rtfd.io](http://pox.rtfd.io)。还可以查看pox.tests,以了解如何使用pox与操作系统交互的一组脚本。您可以使用python -m pox.tests运行测试套件。所有pox实用工具都可以通过操作系统终端直接启动,使用pox脚本(或使用python -m pox)。源代码也通常有很好的文档,因此您可以通过检查代码本身来解决进一步的问题。请随时在github上提交工单,或在stackoverflow上提问(@Mike McKerns)。如果您想分享如何在工作中使用pox,请发送电子邮件(至mmckerns at uqfoundation dot org)。

引用

如果您使用pox进行的研究导致发表,我们要求您在出版物中引用以下内容以承认使用pox

M.M. McKerns, L. Strand, T. Sullivan, A. Fang, M.A.G. Aivazis,
"Building a framework for predictive science", Proceedings of
the 10th Python in Science Conference, 2011;
http://arxiv.org/pdf/1202.1056

Michael McKerns and Michael Aivazis,
"pathos: a framework for heterogeneous computing", 2010- ;
https://uqfoundation.github.io/project/pathos

请参阅[https://uqfoundation.github.io/project/pathos](https://uqfoundation.github.io/project/pathos)或[http://arxiv.org/pdf/1202.1056](http://arxiv.org/pdf/1202.1056)获取更多信息。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

pox-0.3.5.tar.gz (119.5 kB 查看哈希值)

上传时间

构建分发

pox-0.3.5-py3-none-any.whl (29.5 kB 查看哈希值)

上传时间 Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面