python文件修改跟踪器

modified的Python项目详细描述


摘要

modified跟踪当前运行的应用程序的文件并简化 如果有任何文件已更改,请重新启动。默认情况下,它将跟踪所有python文件, 包括应用程序加载的所有模块如果有其他文件 需要跟踪配置文件、模板等,可以使用 球状图案

最简单的用法是简单地运行hup_钩子。默认情况下,这将生成 所有当前加载的代码文件及其时间戳和寄存器的dict 信号的处理程序。sighup。当应用程序收到信号时。sighup, 钩子将检查是否有任何文件被修改,并发出 signal.sigterm,如果是。

重要:如果文件以结尾,pyc修改后的将尝试检索 而是来自.py文件的时间戳。

>>> import modified
>>> modified.hup_hook()

安装

$> pip install modified

功能

文件()

扫描当前运行的应用程序中的所有模块以创建所有文件的dict 以及他们修改的时间

扫描只在第一次调用此函数时发生。后续通话 只需返回全局指令即可。

>>> import modified
>>> modified.files()
{'.../env32/lib/python3.2/copyreg.py': 1368477498.0,
 '.../env32/lib/python3.2/_weakrefset.py': 1368477497.0,
 '.../env32/lib/python3.2/os.py': 1368477498.0,
 'modified.py': 1384228495.0,
 '.../env32/lib/python3.2/genericpath.py': 1368477498.0,
 '.../env32/lib/python3.2/abc.py': 1368477497.0,
 '.../env32/lib/python3.2/posixpath.py': 1368477498.0,
 '.../env32/lib/python3.2/stat.py': 1368477498.0,
 '.../env32/lib/python3.2/_abcoll.py': 1368477497.0}

模块文件(模块,依赖项dict=none)

扫描模块及其整个依赖树以创建所有文件的dict 以及他们修改的时间。

传递现有的DICT,只添加未扫描的文件或无需创建新的文件 文件dict

>>> import modified
>>> import sh
>>> modified.module_files(sh)
{'.../env32/lib/python3.2/site-packages/sh-1.09-py3.2.egg/sh.py': 1384230023.0}

modified()

返回自初始扫描以来修改的文件列表

>>> import modified
>>> modified.files()
{'.../env32/lib/python3.2/copyreg.py': 1368477498.0,
 '.../env32/lib/python3.2/_weakrefset.py': 1368477497.0,
 '.../env32/lib/python3.2/os.py': 1368477498.0,
 'modified.py': 1384228495.0,
 '.../env32/lib/python3.2/genericpath.py': 1368477498.0,
 '.../env32/lib/python3.2/abc.py': 1368477497.0,
 '.../env32/lib/python3.2/posixpath.py': 1368477498.0,
 '.../env32/lib/python3.2/stat.py': 1368477498.0,
 '.../env32/lib/python3.2/_abcoll.py': 1368477497.0}
>>> open('modified.py', 'a+').close()
>>> modified.modified()
['modified.py']

曲目(*args)

跟踪其他文件。在这里使用glob.glob通常很有用。 例如:

>>> import modified
>>> import glob
>>> modified.track('config.ini', glob.glob('templates/*.pt'), glob.glob('db/*.db'))

hup_hook(signal_or_callable=signal.SIGTERM,verbose=False)

为检查修改过的signal.sighup注册信号处理程序 仅当找到至少一个修改过的文件时才起作用。

您可以为signal\u或\u callable传递信号或可调用。 信号可以由名称或数字指定。如果按名称指定, “sig”部分是可选的。例如,sigint的有效值 包括“int”、“sigint”和“signal.sigint”。

或者,您可以传递一个将与列表一起调用的可调用 更改的文件所以呼叫签名应该是func(list)。回报 可调用的值被忽略。

verbose参数可以是True、False或可调用的true表示 应该打印一条消息。可调用的将被调用,消息为 打印。

>>> import modified
>>> import logging
>>> modified.hup_hook('INT', logging.info)
...
Sending SIGINT because modified.py and 3 other files changed.

可呼叫:

>>> import modified
>>> import logging
>>> shutting_down = False
>>> def set_shutdown():
...     global shutting_down
...     shutting_down = True
>>> modified.hup_hook(set_shutdown)
...
Calling set_shutdown because modified.py and 3 other files changed.

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java的单元测试测试用例库。util。列出实现   java通过超类进行序列化/反序列化   java Android获取设备语言ISO字符串   java如何打开广告的行动。移动   Eclipse IDE for(嵌入式C/C++)开发者202012:经典的深色主题深黑色背景和菜单中的文本   java使用不同的内容动态创建TableView(JavaFX)   java JAXB将多个同名节点解组   java ClassDefNotFoundException,即使类由类加载器加载(服务器上安装了多个应用程序)   java有没有办法关闭在后端生成的MqttClient线程?   html如何在网站上的java小程序中包含图像?   java无法访问已分配给超类引用的子类实例变量   java在TableViewer中双击打开对话框   列出如何创建ListNode。JAVA   java如何从文本中输出的数组中放入随机图像