added a flask venv
This commit is contained in:
@@ -0,0 +1,334 @@
|
||||
Metadata-Version: 1.1
|
||||
Name: watchdog
|
||||
Version: 0.9.0
|
||||
Summary: Filesystem events monitoring
|
||||
Home-page: http://github.com/gorakhargosh/watchdog
|
||||
Author: Yesudeep Mangalapilly
|
||||
Author-email: yesudeep@gmail.com
|
||||
License: Apache License 2.0
|
||||
Description: Watchdog
|
||||
========
|
||||
Python API and shell utilities to monitor file system events.
|
||||
|
||||
|
||||
Example API Usage
|
||||
-----------------
|
||||
A simple program that uses watchdog to monitor directories specified
|
||||
as command-line arguments and logs events generated:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
import sys
|
||||
import time
|
||||
import logging
|
||||
from watchdog.observers import Observer
|
||||
from watchdog.events import LoggingEventHandler
|
||||
|
||||
if __name__ == "__main__":
|
||||
logging.basicConfig(level=logging.INFO,
|
||||
format='%(asctime)s - %(message)s',
|
||||
datefmt='%Y-%m-%d %H:%M:%S')
|
||||
path = sys.argv[1] if len(sys.argv) > 1 else '.'
|
||||
event_handler = LoggingEventHandler()
|
||||
observer = Observer()
|
||||
observer.schedule(event_handler, path, recursive=True)
|
||||
observer.start()
|
||||
try:
|
||||
while True:
|
||||
time.sleep(1)
|
||||
except KeyboardInterrupt:
|
||||
observer.stop()
|
||||
observer.join()
|
||||
|
||||
|
||||
Shell Utilities
|
||||
---------------
|
||||
Watchdog comes with a utility script called ``watchmedo``.
|
||||
Please type ``watchmedo --help`` at the shell prompt to
|
||||
know more about this tool.
|
||||
|
||||
Here is how you can log the current directory recursively
|
||||
for events related only to ``*.py`` and ``*.txt`` files while
|
||||
ignoring all directory events:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
watchmedo log \
|
||||
--patterns="*.py;*.txt" \
|
||||
--ignore-directories \
|
||||
--recursive \
|
||||
.
|
||||
|
||||
You can use the ``shell-command`` subcommand to execute shell commands in
|
||||
response to events:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
watchmedo shell-command \
|
||||
--patterns="*.py;*.txt" \
|
||||
--recursive \
|
||||
--command='echo "${watch_src_path}"' \
|
||||
.
|
||||
|
||||
Please see the help information for these commands by typing:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
watchmedo [command] --help
|
||||
|
||||
|
||||
About ``watchmedo`` Tricks
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
``watchmedo`` can read ``tricks.yaml`` files and execute tricks within them in
|
||||
response to file system events. Tricks are actually event handlers that
|
||||
subclass ``watchdog.tricks.Trick`` and are written by plugin authors. Trick
|
||||
classes are augmented with a few additional features that regular event handlers
|
||||
don't need.
|
||||
|
||||
An example ``tricks.yaml`` file:
|
||||
|
||||
.. code-block:: yaml
|
||||
|
||||
tricks:
|
||||
- watchdog.tricks.LoggerTrick:
|
||||
patterns: ["*.py", "*.js"]
|
||||
- watchmedo_webtricks.GoogleClosureTrick:
|
||||
patterns: ['*.js']
|
||||
hash_names: true
|
||||
mappings_format: json # json|yaml|python
|
||||
mappings_module: app/javascript_mappings
|
||||
suffix: .min.js
|
||||
compilation_level: advanced # simple|advanced
|
||||
source_directory: app/static/js/
|
||||
destination_directory: app/public/js/
|
||||
files:
|
||||
index-page:
|
||||
- app/static/js/vendor/jquery*.js
|
||||
- app/static/js/base.js
|
||||
- app/static/js/index-page.js
|
||||
about-page:
|
||||
- app/static/js/vendor/jquery*.js
|
||||
- app/static/js/base.js
|
||||
- app/static/js/about-page/**/*.js
|
||||
|
||||
The directory containing the ``tricks.yaml`` file will be monitored. Each trick
|
||||
class is initialized with its corresponding keys in the ``tricks.yaml`` file as
|
||||
arguments and events are fed to an instance of this class as they arrive.
|
||||
|
||||
Tricks will be included in the 0.5.0 release. I need community input about them.
|
||||
Please file enhancement requests at the `issue tracker`_.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
Installing from PyPI using ``pip``:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ pip install watchdog
|
||||
|
||||
Installing from PyPI using ``easy_install``:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ easy_install watchdog
|
||||
|
||||
Installing from source:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ python setup.py install
|
||||
|
||||
|
||||
Installation Caveats
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
The ``watchmedo`` script depends on PyYAML_ which links with LibYAML_,
|
||||
which brings a performance boost to the PyYAML parser. However, installing
|
||||
LibYAML_ is optional but recommended. On Mac OS X, you can use homebrew_
|
||||
to install LibYAML:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ brew install libyaml
|
||||
|
||||
On Linux, use your favorite package manager to install LibYAML. Here's how you
|
||||
do it on Ubuntu:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
$ sudo aptitude install libyaml-dev
|
||||
|
||||
On Windows, please install PyYAML_ using the binaries they provide.
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
You can browse the latest release documentation_ online.
|
||||
|
||||
Contribute
|
||||
----------
|
||||
Fork the `repository`_ on GitHub and send a pull request, or file an issue
|
||||
ticket at the `issue tracker`_. For general help and questions use the official
|
||||
`mailing list`_ or ask on `stackoverflow`_ with tag `python-watchdog`.
|
||||
|
||||
Create and activate your virtual environment, then::
|
||||
|
||||
pip install pytest
|
||||
pip install -e .
|
||||
py.test tests
|
||||
|
||||
|
||||
Supported Platforms
|
||||
-------------------
|
||||
* Linux 2.6 (inotify)
|
||||
* Mac OS X (FSEvents, kqueue)
|
||||
* FreeBSD/BSD (kqueue)
|
||||
* Windows (ReadDirectoryChangesW with I/O completion ports;
|
||||
ReadDirectoryChangesW worker threads)
|
||||
* OS-independent (polling the disk for directory snapshots and comparing them
|
||||
periodically; slow and not recommended)
|
||||
|
||||
Note that when using watchdog with kqueue, you need the
|
||||
number of file descriptors allowed to be opened by programs
|
||||
running on your system to be increased to more than the
|
||||
number of files that you will be monitoring. The easiest way
|
||||
to do that is to edit your ``~/.profile`` file and add
|
||||
a line similar to::
|
||||
|
||||
ulimit -n 1024
|
||||
|
||||
This is an inherent problem with kqueue because it uses
|
||||
file descriptors to monitor files. That plus the enormous
|
||||
amount of bookkeeping that watchdog needs to do in order
|
||||
to monitor file descriptors just makes this a painful way
|
||||
to monitor files and directories. In essence, kqueue is
|
||||
not a very scalable way to monitor a deeply nested
|
||||
directory of files and directories with a large number of
|
||||
files.
|
||||
|
||||
About using watchdog with editors like Vim
|
||||
------------------------------------------
|
||||
Vim does not modify files unless directed to do so.
|
||||
It creates backup files and then swaps them in to replace
|
||||
the files you are editing on the disk. This means that
|
||||
if you use Vim to edit your files, the on-modified events
|
||||
for those files will not be triggered by watchdog.
|
||||
You may need to configure Vim to appropriately to disable
|
||||
this feature.
|
||||
|
||||
|
||||
Dependencies
|
||||
------------
|
||||
1. Python 2.6 or above.
|
||||
2. pathtools_
|
||||
3. select_backport_ (select.kqueue replacement for 2.6 on BSD/Mac OS X)
|
||||
4. XCode_ (only on Mac OS X)
|
||||
5. PyYAML_ (only for ``watchmedo`` script)
|
||||
6. argh_ (only for ``watchmedo`` script)
|
||||
|
||||
|
||||
Licensing
|
||||
---------
|
||||
Watchdog is licensed under the terms of the `Apache License, version 2.0`_.
|
||||
|
||||
Copyright 2011 `Yesudeep Mangalapilly`_.
|
||||
|
||||
Copyright 2012 Google, Inc.
|
||||
|
||||
Project `source code`_ is available at Github. Please report bugs and file
|
||||
enhancement requests at the `issue tracker`_.
|
||||
|
||||
Why Watchdog?
|
||||
-------------
|
||||
Too many people tried to do the same thing and none did what I needed Python
|
||||
to do:
|
||||
|
||||
* pnotify_
|
||||
* `unison fsmonitor`_
|
||||
* fsmonitor_
|
||||
* guard_
|
||||
* pyinotify_
|
||||
* `inotify-tools`_
|
||||
* jnotify_
|
||||
* treewalker_
|
||||
* `file.monitor`_
|
||||
* pyfilesystem_
|
||||
|
||||
.. links:
|
||||
.. _Yesudeep Mangalapilly: yesudeep@gmail.com
|
||||
.. _source code: http://github.com/gorakhargosh/watchdog
|
||||
.. _issue tracker: http://github.com/gorakhargosh/watchdog/issues
|
||||
.. _Apache License, version 2.0: http://www.apache.org/licenses/LICENSE-2.0
|
||||
.. _documentation: http://packages.python.org/watchdog/
|
||||
.. _stackoverflow: http://stackoverflow.com/questions/tagged/python-watchdog
|
||||
.. _mailing list: http://groups.google.com/group/watchdog-python
|
||||
.. _repository: http://github.com/gorakhargosh/watchdog
|
||||
.. _issue tracker: http://github.com/gorakhargosh/watchdog/issues
|
||||
|
||||
.. _homebrew: http://mxcl.github.com/homebrew/
|
||||
.. _select_backport: http://pypi.python.org/pypi/select_backport
|
||||
.. _argh: http://pypi.python.org/pypi/argh
|
||||
.. _PyYAML: http://www.pyyaml.org/
|
||||
.. _XCode: http://developer.apple.com/technologies/tools/xcode.html
|
||||
.. _LibYAML: http://pyyaml.org/wiki/LibYAML
|
||||
.. _pathtools: http://github.com/gorakhargosh/pathtools
|
||||
|
||||
.. _pnotify: http://mark.heily.com/pnotify
|
||||
.. _unison fsmonitor: https://webdav.seas.upenn.edu/viewvc/unison/trunk/src/fsmonitor.py?view=markup&pathrev=471
|
||||
.. _fsmonitor: http://github.com/shaurz/fsmonitor
|
||||
.. _guard: http://github.com/guard/guard
|
||||
.. _pyinotify: http://github.com/seb-m/pyinotify
|
||||
.. _inotify-tools: http://github.com/rvoicilas/inotify-tools
|
||||
.. _jnotify: http://jnotify.sourceforge.net/
|
||||
.. _treewalker: http://github.com/jbd/treewatcher
|
||||
.. _file.monitor: http://github.com/pke/file.monitor
|
||||
.. _pyfilesystem: http://code.google.com/p/pyfilesystem
|
||||
|
||||
|
||||
.. :changelog:
|
||||
|
||||
API changes
|
||||
-----------
|
||||
|
||||
0.8.2
|
||||
~~~~~
|
||||
|
||||
- Event emitters are no longer started on schedule if ``Observer`` is not
|
||||
already running.
|
||||
|
||||
|
||||
0.8.0
|
||||
~~~~~
|
||||
|
||||
- ``DirectorySnapshot``: methods returning internal stat info replaced by
|
||||
``mtime``, ``inode`` and ``path`` methods.
|
||||
- ``DirectorySnapshot``: ``walker_callback`` parameter deprecated.
|
||||
|
||||
Keywords: python filesystem monitoring monitor FSEvents kqueue inotify ReadDirectoryChangesW polling DirectorySnapshot
|
||||
Platform: UNKNOWN
|
||||
Classifier: Development Status :: 3 - Alpha
|
||||
Classifier: Environment :: Console
|
||||
Classifier: Intended Audience :: Developers
|
||||
Classifier: Intended Audience :: System Administrators
|
||||
Classifier: License :: OSI Approved :: Apache Software License
|
||||
Classifier: Natural Language :: English
|
||||
Classifier: Operating System :: POSIX :: Linux
|
||||
Classifier: Operating System :: MacOS :: MacOS X
|
||||
Classifier: Operating System :: POSIX :: BSD
|
||||
Classifier: Operating System :: Microsoft :: Windows :: Windows NT/2000
|
||||
Classifier: Operating System :: OS Independent
|
||||
Classifier: Programming Language :: Python
|
||||
Classifier: Programming Language :: Python :: 2.6
|
||||
Classifier: Programming Language :: Python :: 2.7
|
||||
Classifier: Programming Language :: Python :: 3
|
||||
Classifier: Programming Language :: Python :: 3.2
|
||||
Classifier: Programming Language :: Python :: 3.3
|
||||
Classifier: Programming Language :: Python :: 3.4
|
||||
Classifier: Programming Language :: Python :: 3.5
|
||||
Classifier: Programming Language :: Python :: 3.6
|
||||
Classifier: Programming Language :: Python :: 3.7
|
||||
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
||||
Classifier: Programming Language :: C
|
||||
Classifier: Topic :: Software Development :: Libraries
|
||||
Classifier: Topic :: System :: Monitoring
|
||||
Classifier: Topic :: System :: Filesystems
|
||||
Classifier: Topic :: Utilities
|
||||
@@ -0,0 +1,75 @@
|
||||
AUTHORS
|
||||
COPYING
|
||||
LICENSE
|
||||
MANIFEST.in
|
||||
README.rst
|
||||
changelog.rst
|
||||
setup.cfg
|
||||
setup.py
|
||||
docs/Makefile
|
||||
docs/dependencies.txt
|
||||
docs/echo.py.txt
|
||||
docs/eclipse_cdt_style.xml
|
||||
docs/make.bat
|
||||
docs/source/api.rst
|
||||
docs/source/conf.py
|
||||
docs/source/global.rst.inc
|
||||
docs/source/hacking.rst
|
||||
docs/source/index.rst
|
||||
docs/source/installation.rst
|
||||
docs/source/quickstart.rst
|
||||
docs/source/examples/logger.py
|
||||
docs/source/examples/patterns.py
|
||||
docs/source/examples/simple.py
|
||||
docs/source/examples/tricks.json
|
||||
docs/source/examples/tricks.yaml
|
||||
src/watchdog_fsevents.c
|
||||
src/watchdog/__init__.py
|
||||
src/watchdog/events.py
|
||||
src/watchdog/version.py
|
||||
src/watchdog/watchmedo.py
|
||||
src/watchdog.egg-info/PKG-INFO
|
||||
src/watchdog.egg-info/SOURCES.txt
|
||||
src/watchdog.egg-info/dependency_links.txt
|
||||
src/watchdog.egg-info/entry_points.txt
|
||||
src/watchdog.egg-info/not-zip-safe
|
||||
src/watchdog.egg-info/requires.txt
|
||||
src/watchdog.egg-info/top_level.txt
|
||||
src/watchdog/observers/__init__.py
|
||||
src/watchdog/observers/api.py
|
||||
src/watchdog/observers/fsevents.py
|
||||
src/watchdog/observers/fsevents2.py
|
||||
src/watchdog/observers/inotify.py
|
||||
src/watchdog/observers/inotify_buffer.py
|
||||
src/watchdog/observers/inotify_c.py
|
||||
src/watchdog/observers/kqueue.py
|
||||
src/watchdog/observers/polling.py
|
||||
src/watchdog/observers/read_directory_changes.py
|
||||
src/watchdog/observers/winapi.py
|
||||
src/watchdog/tricks/__init__.py
|
||||
src/watchdog/utils/__init__.py
|
||||
src/watchdog/utils/bricks.py
|
||||
src/watchdog/utils/compat.py
|
||||
src/watchdog/utils/decorators.py
|
||||
src/watchdog/utils/delayed_queue.py
|
||||
src/watchdog/utils/dirsnapshot.py
|
||||
src/watchdog/utils/echo.py
|
||||
src/watchdog/utils/event_backport.py
|
||||
src/watchdog/utils/importlib2.py
|
||||
src/watchdog/utils/platform.py
|
||||
src/watchdog/utils/unicode_paths.py
|
||||
src/watchdog/utils/win32stat.py
|
||||
tests/__init__.py
|
||||
tests/shell.py
|
||||
tests/test_delayed_queue.py
|
||||
tests/test_emitter.py
|
||||
tests/test_inotify_buffer.py
|
||||
tests/test_inotify_c.py
|
||||
tests/test_observer.py
|
||||
tests/test_skip_repeats_queue.py
|
||||
tests/test_snapshot_diff.py
|
||||
tests/legacy/test_watch_observers_winapi.py
|
||||
tests/legacy/test_watchdog_events.py
|
||||
tests/legacy/test_watchdog_observers_api.py
|
||||
tests/legacy/test_watchdog_observers_polling.py
|
||||
tests/legacy/utils.py
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
[console_scripts]
|
||||
watchmedo = watchdog.watchmedo:main
|
||||
|
||||
@@ -0,0 +1,64 @@
|
||||
../../../../bin/watchmedo
|
||||
../watchdog/__init__.py
|
||||
../watchdog/__pycache__/__init__.cpython-36.pyc
|
||||
../watchdog/__pycache__/events.cpython-36.pyc
|
||||
../watchdog/__pycache__/version.cpython-36.pyc
|
||||
../watchdog/__pycache__/watchmedo.cpython-36.pyc
|
||||
../watchdog/events.py
|
||||
../watchdog/observers/__init__.py
|
||||
../watchdog/observers/__pycache__/__init__.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/api.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/fsevents.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/fsevents2.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/inotify.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/inotify_buffer.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/inotify_c.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/kqueue.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/polling.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/read_directory_changes.cpython-36.pyc
|
||||
../watchdog/observers/__pycache__/winapi.cpython-36.pyc
|
||||
../watchdog/observers/api.py
|
||||
../watchdog/observers/fsevents.py
|
||||
../watchdog/observers/fsevents2.py
|
||||
../watchdog/observers/inotify.py
|
||||
../watchdog/observers/inotify_buffer.py
|
||||
../watchdog/observers/inotify_c.py
|
||||
../watchdog/observers/kqueue.py
|
||||
../watchdog/observers/polling.py
|
||||
../watchdog/observers/read_directory_changes.py
|
||||
../watchdog/observers/winapi.py
|
||||
../watchdog/tricks/__init__.py
|
||||
../watchdog/tricks/__pycache__/__init__.cpython-36.pyc
|
||||
../watchdog/utils/__init__.py
|
||||
../watchdog/utils/__pycache__/__init__.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/bricks.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/compat.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/decorators.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/delayed_queue.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/dirsnapshot.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/echo.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/event_backport.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/importlib2.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/platform.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/unicode_paths.cpython-36.pyc
|
||||
../watchdog/utils/__pycache__/win32stat.cpython-36.pyc
|
||||
../watchdog/utils/bricks.py
|
||||
../watchdog/utils/compat.py
|
||||
../watchdog/utils/decorators.py
|
||||
../watchdog/utils/delayed_queue.py
|
||||
../watchdog/utils/dirsnapshot.py
|
||||
../watchdog/utils/echo.py
|
||||
../watchdog/utils/event_backport.py
|
||||
../watchdog/utils/importlib2.py
|
||||
../watchdog/utils/platform.py
|
||||
../watchdog/utils/unicode_paths.py
|
||||
../watchdog/utils/win32stat.py
|
||||
../watchdog/version.py
|
||||
../watchdog/watchmedo.py
|
||||
PKG-INFO
|
||||
SOURCES.txt
|
||||
dependency_links.txt
|
||||
entry_points.txt
|
||||
not-zip-safe
|
||||
requires.txt
|
||||
top_level.txt
|
||||
@@ -0,0 +1 @@
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
PyYAML>=3.10
|
||||
argh>=0.24.1
|
||||
pathtools>=0.1.1
|
||||
@@ -0,0 +1 @@
|
||||
watchdog
|
||||
Reference in New Issue
Block a user