[Python-modules-commits] [python-hupper] 01/02: Import Upstream version 0.4.2

Takaki Taniguchi takaki at moszumanska.debian.org
Fri Feb 3 03:15:53 UTC 2017


This is an automated email from the git hooks/post-receive script.

takaki pushed a commit to branch master
in repository python-hupper.

commit c4cc5843dd8cc90f04d0ffb1cfd09cb507207a44
Author: TANIGUCHI Takaki <takaki at asis.media-as.org>
Date:   Fri Feb 3 12:15:20 2017 +0900

    Import Upstream version 0.4.2
---
 .coveragerc                              |  16 ++
 .gitignore                               |  63 +++++++
 .travis.yml                              |  30 ++++
 CHANGES.rst                              |  99 +++++++++++
 CONTRIBUTING.rst                         | 111 ++++++++++++
 LICENSE.txt                              |  19 ++
 MANIFEST.in                              |  13 ++
 PKG-INFO                                 | 188 ++++++++++++++++++++
 README.rst                               |  64 +++++++
 appveyor.yml                             |  27 +++
 docs/Makefile                            | 177 +++++++++++++++++++
 docs/_static/.keep                       |   0
 docs/api.rst                             |  42 +++++
 docs/changes.rst                         |   5 +
 docs/conf.py                             | 280 +++++++++++++++++++++++++++++
 docs/contributing.rst                    |   1 +
 docs/index.rst                           | 139 +++++++++++++++
 docs/make.bat                            | 242 ++++++++++++++++++++++++++
 rtd.txt                                  |   1 +
 setup.cfg                                |  19 ++
 setup.py                                 |  55 ++++++
 src/hupper.egg-info/PKG-INFO             | 188 ++++++++++++++++++++
 src/hupper.egg-info/SOURCES.txt          |  47 +++++
 src/hupper.egg-info/dependency_links.txt |   1 +
 src/hupper.egg-info/entry_points.txt     |   3 +
 src/hupper.egg-info/not-zip-safe         |   1 +
 src/hupper.egg-info/requires.txt         |  11 ++
 src/hupper.egg-info/top_level.txt        |   1 +
 src/hupper/__init__.py                   |  12 ++
 src/hupper/cli.py                        |  21 +++
 src/hupper/compat.py                     |  55 ++++++
 src/hupper/interfaces.py                 |  46 +++++
 src/hupper/ipc.py                        |  62 +++++++
 src/hupper/polling.py                    |  62 +++++++
 src/hupper/reloader.py                   | 290 +++++++++++++++++++++++++++++++
 src/hupper/watchdog.py                   |  47 +++++
 src/hupper/winapi.py                     | 154 ++++++++++++++++
 src/hupper/worker.py                     | 263 ++++++++++++++++++++++++++++
 tests/__init__.py                        |   0
 tests/conftest.py                        |  37 ++++
 tests/myapp/__init__.py                  |   0
 tests/myapp/__main__.py                  |   4 +
 tests/myapp/cli.py                       |  56 ++++++
 tests/myapp/foo.ini                      |   0
 tests/test_it.py                         |  32 ++++
 tests/test_reloader.py                   |  80 +++++++++
 tests/util.py                            | 104 +++++++++++
 tox.ini                                  |  43 +++++
 48 files changed, 3211 insertions(+)

diff --git a/.coveragerc b/.coveragerc
new file mode 100644
index 0000000..f9fb7ce
--- /dev/null
+++ b/.coveragerc
@@ -0,0 +1,16 @@
+[run]
+parallel = true
+source =
+    hupper
+    tests
+omit =
+    hupper/winapi.py
+
+[paths]
+source =
+    src/hupper
+    */site-packages/hupper
+
+[report]
+show_missing = true
+precision = 2
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..bf0bf4d
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,63 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+env/
+env*/
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+*.egg-info/
+.installed.cfg
+*.egg
+
+# PyInstaller
+#  Usually these files are written by a python script from a template
+#  before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*,cover
+.hypothesis/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+target/
+
+.idea
+cover
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..a37a4ea
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,30 @@
+sudo: false
+
+cache:
+  directories:
+    - $HOME/.cache/pip
+
+language: python
+
+matrix:
+  include:
+    - python: '3.6'
+      env: TOXENV=py36
+    - python: '3.5'
+      env: TOXENV=py35
+    - python: '3.4'
+      env: TOXENV=py34
+    - python: '2.7'
+      env: TOXENV=py27
+    - python: 'pypy'
+      env: TOXENV=pypy
+    - python: '3.5'
+      env: TOXENV=py27,py35,coverage
+    - python: '3.5'
+      env: TOXENV=docs
+    - python: '3.5'
+      env: TOXENV=pep8
+
+install: pip install tox
+
+script: tox
diff --git a/CHANGES.rst b/CHANGES.rst
new file mode 100644
index 0000000..d071d2c
--- /dev/null
+++ b/CHANGES.rst
@@ -0,0 +1,99 @@
+0.4.2 (2017-01-24)
+==================
+
+- Pause briefly after receiving a SIGINT to allow the worker to kill itself.
+  If it does not die then it is terminated.
+  See https://github.com/Pylons/hupper/issues/11
+
+- Python 3.6 compatibility.
+
+0.4.1 (2017-01-03)
+==================
+
+- Handle errors that may occur when using watchdog to observe non-existent
+  folders.
+
+0.4.0 (2017-01-02)
+==================
+
+- Support running any Python module via ``hupper -m <module>``. This is
+  equivalent to ``python -m`` except will fully reload the process when files
+  change. See https://github.com/Pylons/hupper/pull/8
+
+0.3.6 (2016-12-18)
+==================
+
+- Read the traceback for unknown files prior to crashing. If an import
+  crashes due to a module-scope exception the file that caused the crash would
+  not be tracked but this should help.
+
+0.3.5 (2016-12-17)
+==================
+
+- Attempt to send imported paths to the monitor process before crashing to
+  avoid cases where the master is waiting for changes in files that it never
+  started monitoring.
+
+0.3.4 (2016-11-21)
+==================
+
+- Add support for globbing using the stdlib ``glob`` module. On Python 3.5+
+  this allows recursive globs using ``**``. Prior to this, the globbing is
+  more limited.
+
+0.3.3 (2016-11-19)
+==================
+
+- Fixed a runtime failure on Windows 32-bit systems.
+
+0.3.2 (2016-11-15)
+==================
+
+- Support triggering reloads via SIGHUP when hupper detected a crash and is
+  waiting for a file to change.
+
+- Setup the reloader proxy prior to importing the worker's module. This
+  should allow some work to be done at module-scope instead of in the
+  callable.
+
+0.3.1 (2016-11-06)
+==================
+
+- Fix package long description on PyPI.
+
+- Ensure that the stdin file handle is inheritable incase the "spawn" variant
+  of multiprocessing is enabled.
+
+0.3 (2016-11-06)
+================
+
+- Disable bytecode compiling of files imported by the worker process. This
+  should not be necessary when developing and it was causing the process to
+  restart twice on Windows due to how it handles pyc timestamps.
+
+- Fix hupper's support for forwarding stdin to the worker processes on
+  Python < 3.5 on Windows.
+
+- Fix some possible file descriptor leakage.
+
+- Simplify the ``hupper.interfaces.IFileMonitor`` interface by internalizing
+  some of the hupper-specific integrations. They can now focus on just
+  looking for changes.
+
+- Add the ``hupper.interfaces.IFileMonitorFactory`` interface to improve
+  the documentation for the ``callback`` argument required by
+  ``hupper.interfaces.IFileMonitor``.
+
+0.2 (2016-10-26)
+================
+
+- Windows support!
+
+- Added support for `watchdog <https://pypi.org/project/watchdog/>`_ if it's
+  installed to do inotify-style file monitoring. This is an optional dependency
+  and ``hupper`` will fallback to using polling if it's not available.
+
+0.1 (2016-10-21)
+================
+
+- Initial release.
diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst
new file mode 100644
index 0000000..b92b8ac
--- /dev/null
+++ b/CONTRIBUTING.rst
@@ -0,0 +1,111 @@
+.. highlight:: shell
+
+============
+Contributing
+============
+
+Contributions are welcome, and they are greatly appreciated! Every
+little bit helps, and credit will always be given.
+
+You can contribute in many ways:
+
+Types of Contributions
+----------------------
+
+Report Bugs
+~~~~~~~~~~~
+
+Report bugs at https://github.com/Pylons/hupper/issues.
+
+If you are reporting a bug, please include:
+
+* Your operating system name and version.
+* Any details about your local setup that might be helpful in troubleshooting.
+* Detailed steps to reproduce the bug.
+
+Fix Bugs
+~~~~~~~~
+
+Look through the GitHub issues for bugs. Anything tagged with "bug"
+is open to whoever wants to implement it.
+
+Implement Features
+~~~~~~~~~~~~~~~~~~
+
+Look through the GitHub issues for features. Anything tagged with "feature"
+is open to whoever wants to implement it.
+
+Write Documentation
+~~~~~~~~~~~~~~~~~~~
+
+hupper could always use more documentation, whether as part of the
+official hupper docs, in docstrings, or even on the web in blog posts,
+articles, and such.
+
+Submit Feedback
+~~~~~~~~~~~~~~~
+
+The best way to send feedback is to file an issue at
+https://github.com/Pylons/hupper/issues.
+
+If you are proposing a feature:
+
+* Explain in detail how it would work.
+* Keep the scope as narrow as possible, to make it easier to implement.
+* Remember that this is a volunteer-driven project, and that contributions
+  are welcome :)
+
+Get Started!
+------------
+
+Ready to contribute? Here's how to set up `hupper` for local development.
+
+1. Fork the `hupper` repo on GitHub.
+2. Clone your fork locally::
+
+    $ git clone git at github.com:your_name_here/hupper.git
+
+3. Install your local copy into a virtualenv::
+
+    $ python3 -m venv env
+    $ env/bin/pip install -e .[docs,testing]
+    $ env/bin/pip install tox
+
+4. Create a branch for local development::
+
+    $ git checkout -b name-of-your-bugfix-or-feature
+
+   Now you can make your changes locally.
+
+5. When you're done making changes, check that your changes pass flake8 and
+   the tests, including testing other Python versions with tox::
+
+    $ env/bin/tox
+
+6. Commit your changes and push your branch to GitHub::
+
+    $ git add .
+    $ git commit -m "Your detailed description of your changes."
+    $ git push origin name-of-your-bugfix-or-feature
+
+7. Submit a pull request through the GitHub website.
+
+Pull Request Guidelines
+-----------------------
+
+Before you submit a pull request, check that it meets these guidelines:
+
+1. The pull request should include tests.
+2. If the pull request adds functionality, the docs should be updated. Put
+   your new functionality into a function with a docstring, and add the
+   feature to the list in README.rst.
+3. The pull request should work for Python 2.7, 3.4 and 3.5, and for PyPy. Check
+   https://travis-ci.org/Pylons/hupper/pull_requests
+   and make sure that the tests pass for all supported Python versions.
+
+Tips
+----
+
+To run a subset of tests::
+
+$ env/bin/py.test tests.test_hupper
diff --git a/LICENSE.txt b/LICENSE.txt
new file mode 100644
index 0000000..b39acb9
--- /dev/null
+++ b/LICENSE.txt
@@ -0,0 +1,19 @@
+Copyright (c) 2017 Michael Merickel
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/MANIFEST.in b/MANIFEST.in
new file mode 100644
index 0000000..0432c95
--- /dev/null
+++ b/MANIFEST.in
@@ -0,0 +1,13 @@
+graft src
+graft tests
+graft docs
+
+include README.rst
+include CHANGES.rst
+include LICENSE.txt
+include CONTRIBUTING.rst
+
+include .coveragerc
+include tox.ini appveyor.yml .travis.yml rtd.txt
+
+recursive-exclude * __pycache__ *.py[cod]
diff --git a/PKG-INFO b/PKG-INFO
new file mode 100644
index 0000000..89cf2d8
--- /dev/null
+++ b/PKG-INFO
@@ -0,0 +1,188 @@
+Metadata-Version: 1.1
+Name: hupper
+Version: 0.4.2
+Summary: Integrated process monitor for developing servers.
+Home-page: https://github.com/Pylons/hupper
+Author: Michael Merickel
+Author-email: michael at merickel.org
+License: UNKNOWN
+Description: ======
+        hupper
+        ======
+        
+        .. image:: https://img.shields.io/pypi/v/hupper.svg
+            :target: https://pypi.python.org/pypi/hupper
+        
+        .. image:: https://img.shields.io/travis/Pylons/hupper.svg
+            :target: https://travis-ci.org/Pylons/hupper
+        
+        .. image:: https://readthedocs.org/projects/hupper/badge/?version=latest
+            :target: https://readthedocs.org/projects/hupper/?badge=latest
+            :alt: Documentation Status
+        
+        ``hupper`` is an integrated process monitor that will track changes to
+        any imported Python files in ``sys.modules`` as well as custom paths. When
+        files are changed the process is restarted.
+        
+        Command-line Usage
+        ==================
+        
+        Hupper can load any Python code similar to ``python -m <module>`` by using the
+        ``hupper -m <module>`` program.
+        
+        .. code-block:: console
+        
+           $ hupper -m myapp
+           Starting monitor for PID 23982.
+        
+        API Usage
+        =========
+        
+        Start by defining an entry point for your process. This must be an importable
+        path in string format. For example, ``myapp.scripts.serve.main``.
+        
+        .. code-block:: python
+        
+            # myapp/scripts/serve.py
+        
+            import sys
+            import hupper
+            import waitress
+        
+            def wsgi_app(environ, start_response):
+                start_response('200 OK', [('Content-Type', 'text/plain'])
+                yield [b'hello']
+        
+            def main(args=sys.argv[1:]):
+                if '--reload' in args:
+                    # start_reloader will only return in a monitored subprocess
+                    reloader = hupper.start_reloader('myapp.scripts.serve.main')
+        
+                    # monitor an extra file
+                    reloader.watch_files(['foo.ini'])
+        
+                waitress.serve(wsgi_app)
+        
+        Acknowledgments
+        ===============
+        
+        ``hupper`` is inspired by initial work done by Carl J Meyer and David Glick
+        during a Pycon sprint and is built to be a more robust and generic version of
+        Ian Bicking's excellent PasteScript ``paste serve --reload`` and Pyramid's
+        ``pserve --reload``.
+        
+        
+        0.4.2 (2017-01-24)
+        ==================
+        
+        - Pause briefly after receiving a SIGINT to allow the worker to kill itself.
+          If it does not die then it is terminated.
+          See https://github.com/Pylons/hupper/issues/11
+        
+        - Python 3.6 compatibility.
+        
+        0.4.1 (2017-01-03)
+        ==================
+        
+        - Handle errors that may occur when using watchdog to observe non-existent
+          folders.
+        
+        0.4.0 (2017-01-02)
+        ==================
+        
+        - Support running any Python module via ``hupper -m <module>``. This is
+          equivalent to ``python -m`` except will fully reload the process when files
+          change. See https://github.com/Pylons/hupper/pull/8
+        
+        0.3.6 (2016-12-18)
+        ==================
+        
+        - Read the traceback for unknown files prior to crashing. If an import
+          crashes due to a module-scope exception the file that caused the crash would
+          not be tracked but this should help.
+        
+        0.3.5 (2016-12-17)
+        ==================
+        
+        - Attempt to send imported paths to the monitor process before crashing to
+          avoid cases where the master is waiting for changes in files that it never
+          started monitoring.
+        
+        0.3.4 (2016-11-21)
+        ==================
+        
+        - Add support for globbing using the stdlib ``glob`` module. On Python 3.5+
+          this allows recursive globs using ``**``. Prior to this, the globbing is
+          more limited.
+        
+        0.3.3 (2016-11-19)
+        ==================
+        
+        - Fixed a runtime failure on Windows 32-bit systems.
+        
+        0.3.2 (2016-11-15)
+        ==================
+        
+        - Support triggering reloads via SIGHUP when hupper detected a crash and is
+          waiting for a file to change.
+        
+        - Setup the reloader proxy prior to importing the worker's module. This
+          should allow some work to be done at module-scope instead of in the
+          callable.
+        
+        0.3.1 (2016-11-06)
+        ==================
+        
+        - Fix package long description on PyPI.
+        
+        - Ensure that the stdin file handle is inheritable incase the "spawn" variant
+          of multiprocessing is enabled.
+        
+        0.3 (2016-11-06)
+        ================
+        
+        - Disable bytecode compiling of files imported by the worker process. This
+          should not be necessary when developing and it was causing the process to
+          restart twice on Windows due to how it handles pyc timestamps.
+        
+        - Fix hupper's support for forwarding stdin to the worker processes on
+          Python < 3.5 on Windows.
+        
+        - Fix some possible file descriptor leakage.
+        
+        - Simplify the ``hupper.interfaces.IFileMonitor`` interface by internalizing
+          some of the hupper-specific integrations. They can now focus on just
+          looking for changes.
+        
+        - Add the ``hupper.interfaces.IFileMonitorFactory`` interface to improve
+          the documentation for the ``callback`` argument required by
+          ``hupper.interfaces.IFileMonitor``.
+        
+        0.2 (2016-10-26)
+        ================
+        
+        - Windows support!
+        
+        - Added support for `watchdog <https://pypi.org/project/watchdog/>`_ if it's
+          installed to do inotify-style file monitoring. This is an optional dependency
+          and ``hupper`` will fallback to using polling if it's not available.
+        
+        0.1 (2016-10-21)
+        ================
+        
+        - Initial release.
+        
+Keywords: server daemon autoreload reloader hup file watch process
+Platform: UNKNOWN
+Classifier: Development Status :: 4 - Beta
+Classifier: Intended Audience :: Developers
+Classifier: License :: OSI Approved :: MIT License
+Classifier: Natural Language :: English
+Classifier: Programming Language :: Python :: 2
+Classifier: Programming Language :: Python :: 2.7
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3.4
+Classifier: Programming Language :: Python :: 3.5
+Classifier: Programming Language :: Python :: 3.6
+Classifier: Programming Language :: Python :: Implementation :: CPython
+Classifier: Programming Language :: Python :: Implementation :: PyPy
diff --git a/README.rst b/README.rst
new file mode 100644
index 0000000..e421547
--- /dev/null
+++ b/README.rst
@@ -0,0 +1,64 @@
+======
+hupper
+======
+
+.. image:: https://img.shields.io/pypi/v/hupper.svg
+    :target: https://pypi.python.org/pypi/hupper
+
+.. image:: https://img.shields.io/travis/Pylons/hupper.svg
+    :target: https://travis-ci.org/Pylons/hupper
+
+.. image:: https://readthedocs.org/projects/hupper/badge/?version=latest
+    :target: https://readthedocs.org/projects/hupper/?badge=latest
+    :alt: Documentation Status
+
+``hupper`` is an integrated process monitor that will track changes to
+any imported Python files in ``sys.modules`` as well as custom paths. When
+files are changed the process is restarted.
+
+Command-line Usage
+==================
+
+Hupper can load any Python code similar to ``python -m <module>`` by using the
+``hupper -m <module>`` program.
+
+.. code-block:: console
+
+   $ hupper -m myapp
+   Starting monitor for PID 23982.
+
+API Usage
+=========
+
+Start by defining an entry point for your process. This must be an importable
+path in string format. For example, ``myapp.scripts.serve.main``.
+
+.. code-block:: python
+
+    # myapp/scripts/serve.py
+
+    import sys
+    import hupper
+    import waitress
+
+    def wsgi_app(environ, start_response):
+        start_response('200 OK', [('Content-Type', 'text/plain'])
+        yield [b'hello']
+
+    def main(args=sys.argv[1:]):
+        if '--reload' in args:
+            # start_reloader will only return in a monitored subprocess
+            reloader = hupper.start_reloader('myapp.scripts.serve.main')
+
+            # monitor an extra file
+            reloader.watch_files(['foo.ini'])
+
+        waitress.serve(wsgi_app)
+
+Acknowledgments
+===============
+
+``hupper`` is inspired by initial work done by Carl J Meyer and David Glick
+during a Pycon sprint and is built to be a more robust and generic version of
+Ian Bicking's excellent PasteScript ``paste serve --reload`` and Pyramid's
+``pserve --reload``.
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..e712007
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,27 @@
+environment:
+  matrix:
+    - PYTHON: "C:\\Python36"
+      TOXENV: "py36"
+    - PYTHON: "C:\\Python35"
+      TOXENV: "py35"
+    - PYTHON: "C:\\Python27"
+      TOXENV: "py27"
+    - PYTHON: "C:\\Python36-x64"
+      TOXENV: "py36"
+    - PYTHON: "C:\\Python35-x64"
+      TOXENV: "py35"
+    - PYTHON: "C:\\Python27-x64"
+      TOXENV: "py27"
+
+cache:
+    - '%LOCALAPPDATA%\pip\Cache'
+
+version: '{branch}.{build}'
+
+install:
+  - "%PYTHON%\\python.exe -m pip install tox"
+
+build: off
+
+test_script:
+  - "%PYTHON%\\Scripts\\tox.exe"
diff --git a/docs/Makefile b/docs/Makefile
new file mode 100644
index 0000000..86787d6
--- /dev/null
+++ b/docs/Makefile
@@ -0,0 +1,177 @@
+# Makefile for Sphinx documentation
+#
+
+# You can set these variables from the command line.
+SPHINXOPTS    =
+SPHINXBUILD   = sphinx-build
+PAPER         =
+BUILDDIR      = _build
+
+# User-friendly check for sphinx-build
+ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1)
+$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/)
+endif
+
+# Internal variables.
+PAPEROPT_a4     = -D latex_paper_size=a4
+PAPEROPT_letter = -D latex_paper_size=letter
+ALLSPHINXOPTS   = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+# the i18n builder cannot share the environment and doctrees with the others
+I18NSPHINXOPTS  = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) .
+
+.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext
+
+help:
+	@echo "Please use \`make <target>' where <target> is one of"
+	@echo "  html       to make standalone HTML files"
+	@echo "  dirhtml    to make HTML files named index.html in directories"
+	@echo "  singlehtml to make a single large HTML file"
+	@echo "  pickle     to make pickle files"
+	@echo "  json       to make JSON files"
+	@echo "  htmlhelp   to make HTML files and a HTML help project"
+	@echo "  qthelp     to make HTML files and a qthelp project"
+	@echo "  devhelp    to make HTML files and a Devhelp project"
+	@echo "  epub       to make an epub"
+	@echo "  latex      to make LaTeX files, you can set PAPER=a4 or PAPER=letter"
+	@echo "  latexpdf   to make LaTeX files and run them through pdflatex"
+	@echo "  latexpdfja to make LaTeX files and run them through platex/dvipdfmx"
+	@echo "  text       to make text files"
+	@echo "  man        to make manual pages"
+	@echo "  texinfo    to make Texinfo files"
+	@echo "  info       to make Texinfo files and run them through makeinfo"
+	@echo "  gettext    to make PO message catalogs"
+	@echo "  changes    to make an overview of all changed/added/deprecated items"
+	@echo "  xml        to make Docutils-native XML files"
+	@echo "  pseudoxml  to make pseudoxml-XML files for display purposes"
+	@echo "  linkcheck  to check all external links for integrity"
+	@echo "  doctest    to run all doctests embedded in the documentation (if enabled)"
+
+clean:
+	rm -rf $(BUILDDIR)/*
+
+html:
+	$(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/html."
+
+dirhtml:
+	$(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml
+	@echo
+	@echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml."
+
+singlehtml:
+	$(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml
+	@echo
+	@echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml."
+
+pickle:
+	$(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle
+	@echo
+	@echo "Build finished; now you can process the pickle files."
+
+json:
+	$(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json
+	@echo
+	@echo "Build finished; now you can process the JSON files."
+
+htmlhelp:
+	$(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp
+	@echo
+	@echo "Build finished; now you can run HTML Help Workshop with the" \
+	      ".hhp project file in $(BUILDDIR)/htmlhelp."
+
+qthelp:
+	$(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp
+	@echo
+	@echo "Build finished; now you can run "qcollectiongenerator" with the" \
+	      ".qhcp project file in $(BUILDDIR)/qthelp, like this:"
+	@echo "# qcollectiongenerator $(BUILDDIR)/qthelp/hupper.qhcp"
+	@echo "To view the help file:"
+	@echo "# assistant -collectionFile $(BUILDDIR)/qthelp/hupper.qhc"
+
+devhelp:
+	$(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp
+	@echo
+	@echo "Build finished."
+	@echo "To view the help file:"
+	@echo "# mkdir -p $$HOME/.local/share/devhelp/hupper"
+	@echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/hupper"
+	@echo "# devhelp"
+
+epub:
+	$(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub
+	@echo
+	@echo "Build finished. The epub file is in $(BUILDDIR)/epub."
+
+latex:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo
+	@echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex."
+	@echo "Run \`make' in that directory to run these through (pdf)latex" \
+	      "(use \`make latexpdf' here to do that automatically)."
+
+latexpdf:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through pdflatex..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+latexpdfja:
+	$(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex
+	@echo "Running LaTeX files through platex and dvipdfmx..."
+	$(MAKE) -C $(BUILDDIR)/latex all-pdf-ja
+	@echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex."
+
+text:
+	$(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text
+	@echo
+	@echo "Build finished. The text files are in $(BUILDDIR)/text."
+
+man:
+	$(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man
+	@echo
+	@echo "Build finished. The manual pages are in $(BUILDDIR)/man."
+
+texinfo:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo
+	@echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo."
+	@echo "Run \`make' in that directory to run these through makeinfo" \
+	      "(use \`make info' here to do that automatically)."
+
+info:
+	$(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo
+	@echo "Running Texinfo files through makeinfo..."
+	make -C $(BUILDDIR)/texinfo info
+	@echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo."
+
+gettext:
+	$(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale
+	@echo
+	@echo "Build finished. The message catalogs are in $(BUILDDIR)/locale."
+
+changes:
+	$(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes
+	@echo
+	@echo "The overview file is in $(BUILDDIR)/changes."
+
+linkcheck:
+	$(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck
+	@echo
+	@echo "Link check complete; look for any errors in the above output " \
+	      "or in $(BUILDDIR)/linkcheck/output.txt."
+
+doctest:
+	$(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest
+	@echo "Testing of doctests in the sources finished, look at the " \
+	      "results in $(BUILDDIR)/doctest/output.txt."
+
+xml:
+	$(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml
+	@echo
+	@echo "Build finished. The XML files are in $(BUILDDIR)/xml."
+
+pseudoxml:
+	$(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml
+	@echo
+	@echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml."
diff --git a/docs/_static/.keep b/docs/_static/.keep
new file mode 100644
index 0000000..e69de29
diff --git a/docs/api.rst b/docs/api.rst
new file mode 100644
index 0000000..9d68fa8
--- /dev/null
+++ b/docs/api.rst
@@ -0,0 +1,42 @@
+==================
+:mod:`hupper` API
+==================
+
+.. automodule:: hupper
+
+  .. autofunction:: start_reloader
+
+  .. autofunction:: is_active
+
+  .. autofunction:: get_reloader
+
+  .. autofunction:: is_watchdog_supported
+
+.. automodule:: hupper.reloader
+
+  .. autoclass:: Reloader
+    :members:
+
+.. automodule:: hupper.interfaces
+
+  .. autoclass:: IReloaderProxy
+    :members:
+    :special-members:
+
+  .. autoclass:: IFileMonitor
+    :members:
+    :special-members:
+
+  .. autoclass:: IFileMonitorFactory
+    :members:
+    :special-members:
+
+.. automodule:: hupper.polling
+
+  .. autoclass:: PollingFileMonitor
+     :members:
+
+.. automodule:: hupper.watchdog
+
+  .. autoclass:: WatchdogFileMonitor
+     :members:
diff --git a/docs/changes.rst b/docs/changes.rst
new file mode 100644
index 0000000..5ba0a60
--- /dev/null
+++ b/docs/changes.rst
@@ -0,0 +1,5 @@
+=======
+Changes
+=======
+
+.. include:: ../CHANGES.rst
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 0000000..2886e21
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,280 @@
+#!/usr/bin/env python
+# -*- coding: utf-8 -*-
+#
... 2544 lines suppressed ...

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/python-modules/packages/python-hupper.git



More information about the Python-modules-commits mailing list