跳转到主要内容

缓存通常为Python程序的行和文件信息

项目描述

CircleCI Pypi Installs License Supported Python Versions

packagestatus

摘要

pyficache模块允许用户从任何文件中获取任何行,并在首次访问文件时缓存该文件的行。尽管文件可以是任何文件,但此软件包更适合文件是Python脚本的情况。

在此,文件被解析以确定语句边界,并且还将保存文件语法高亮显示的副本。

还保存了文件信息,例如文件最后修改的时间和文件的SHA1值。这些信息在确定文件是否已更改和验证文件内容时非常有用。

通过缓存内容,在从单个文件中读取少量随机行时,可以提高访问速度,尤其是在调试器中显示源行时。

可以将文件路径重新映射到另一个路径。例如,在远程调试时,远程文件路径可能与本地文件系统的路径不同。在trepan3trepan2调试器中,将evalexec字符串保存在临时文件中,然后伪文件名<string>被重新映射到该临时文件名。

同样,文件内的行也可以重新映射到其他行。这可能在预处理器或模板系统中很有用,在这些系统中,用户希望将模板文件与作为调试器或分析器等工具中看到的展开后的Python文件进行对应。

摘要

::

import pyficache filename = __file__ # 例如 '/tmp/myprogram' # 返回filename的所有行作为数组 lines = pyficache.getlines(filename)

# 返回第6行,并在文件更改时重新加载所有行 line = pyficache.getline(filename, 6, {'reload_on_change': True})

# 使用样式 'emacs' 对第6行进行语法高亮显示 line = pyficache.getline(filename, 6, {'style': 'emacs'})

pyficache.remap_file('/tmp/myprogram.py', 'another-name') line_from_alias = pyficache.getline('another-name', 6)

assert __file__, pyficache.remove_remap_file('another-name')

# 'another-name'不再是'/tmp/myprogram'的别名 assert None, pyficache.remove_remap_file('another-name')

# 清除__file__的缓存 pyficache.clear_file_cache(__file__)

# 清除所有缓存的文件 pyficache.clear_file_cache()

# 检查所有缓存的文件的修改 pyficache.update_cache()

致谢

这是一个将我的Ruby linecache 模块移植到Python的版本,该模块基于Python的linecache模块。

xdis 提供了查找包含Python语句的行的酷炫功能。

项目详情


下载文件

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

源分发

pyficache-2.3.1.tar.gz (33.7 kB 查看哈希)

上传时间

构建分发

pyficache-2.3.1-py3-none-any.whl (31.3 kB 查看哈希)

上传时间 Python 3

pyficache-2.3.1-py2-none-any.whl (33.1 kB 查看哈希)

上传时间 Python 2

支持者

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误日志StatusPageStatusPage状态页面