Metadata-Version: 1.1
Name: patrol
Version: 0.3
Summary: Trigger custom commands from filesystem events.
Home-page: https://github.com/crdoconnor/patrol
Author: Colm O'Connor
Author-email: colm.oconnor.github@gmail.com
License: MIT
Description: Patrol
        ======
        
        Trigger methods from changed files - e.g. selectively rebuild your project or
        run tests as soon as you hit the save button on your text editor or IDE.
        
        Patrol works well with ProjectKey_.
        
        
        Use
        ===
        
        To install::
        
            pip install patrol
        
        Example code:
        
        .. code-block:: python
        
            import patrol
        
            def build(filenames):
                touch("output/build_started")
                time.sleep(2)
                touch("output/build_finished")
        
            def run_test(filenames):
                touch("output/test_started")
                time.sleep(30)
                touch("output/test_finished")
        
            patrol.watch([
                    patrol.Trigger(
                        build,
                        includes=["data/*", ],
                        excludes=['data/exclude/*', 'output/*', ],
                    ),
                    patrol.Trigger(
                        run_test,
                        includes=["data/*", ],
                        excludes=['data/exclude/*', 'output/*', ],
                        reaper=patrol.Reaper(),         # If triggered while method is in progress, this will stop it and start it again.
                        fire_on_initialization=True,    # When the watch is initiated, this trigger will also fire.
                    ),
                ],
                directory=os.getcwd(),            # By default it patrols the present working directory.
                lockfiles=[".git/index.lock", ],  # This will wait until git has finished its operations before firing any triggers
            )
        
        
        
        Features
        ========
        
        * Patrol does not use polling to detect file changes. It uses libuv_, which creates event driven hooks to filesystem events using epoll, kqueue or IOCP.
        * You can queue up triggers when a specified lockfile is present - e.g. you can use to prevent triggers from firing until git operations are done.
        * Patrol comes with a customized Reaper class that can be used to specify how a process is stopped.
        
        .. _ProjectKey: https://github.com/crdoconnor/projectkey
        
        .. _libuv: https://github.com/libuv/libuv
        
Keywords: development environment tool pyuv epoll build
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Topic :: Software Development :: Build Tools
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.6
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.1
Classifier: Programming Language :: Python :: 3.2
Classifier: Programming Language :: Python :: 3.3
