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.