summaryrefslogtreecommitdiffstats
path: root/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info
diff options
context:
space:
mode:
authornoptuno <repollo.marrero@gmail.com>2023-04-28 02:40:47 +0200
committernoptuno <repollo.marrero@gmail.com>2023-04-28 02:40:47 +0200
commit6f6a73987201c9c303047c61389b82ad98b15597 (patch)
treebf67eb590d49979d6740bc1e94b4018df48bce98 /venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info
parentResolved merge conflicts and merged pr_218 into STREAMLIT_CHAT_IMPLEMENTATION (diff)
parentMerging PR_218 openai_rev package with new streamlit chat app (diff)
downloadgpt4free-6f6a73987201c9c303047c61389b82ad98b15597.tar
gpt4free-6f6a73987201c9c303047c61389b82ad98b15597.tar.gz
gpt4free-6f6a73987201c9c303047c61389b82ad98b15597.tar.bz2
gpt4free-6f6a73987201c9c303047c61389b82ad98b15597.tar.lz
gpt4free-6f6a73987201c9c303047c61389b82ad98b15597.tar.xz
gpt4free-6f6a73987201c9c303047c61389b82ad98b15597.tar.zst
gpt4free-6f6a73987201c9c303047c61389b82ad98b15597.zip
Diffstat (limited to 'venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info')
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/AUTHORS73
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/COPYING14
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/INSTALLER1
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/LICENSE202
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/METADATA752
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/RECORD63
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/REQUESTED0
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/WHEEL5
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/entry_points.txt2
-rw-r--r--venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/top_level.txt2
10 files changed, 1114 insertions, 0 deletions
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/AUTHORS b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/AUTHORS
new file mode 100644
index 00000000..de94646c
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/AUTHORS
@@ -0,0 +1,73 @@
+Original Project Lead:
+----------------------
+Yesudeep Mangalapilly <yesudeep@google.com>
+
+Current Project Lead:
+---------------------
+Mickaël Schoentgen <contact@tiger-222.fr>
+
+Contributors in alphabetical order:
+-----------------------------------
+Adrian Tejn Kern <tejnkern@gmail.com>
+Andrew Schaaf <andrew@andrewschaaf.com>
+Danilo de Jesus da Silva Bellini <danilo.bellini@gmail.com>
+David LaPalomento <dlapalomento@gmail.com>
+Filip Noetzel <filip@j03.de>
+Gary van der Merwe <garyvdm@garyvdm.localdomain>
+Gora Khargosh <gora.khargosh@gmail.com>
+Hannu Valtonen <hannu.valtonen@ohmu.fi>
+Jesse Printz <jesse@jonypawks.net>
+Kurt McKee <contactme@kurtmckee.org>
+Léa Klein <lklein@nuxeo.com>
+Luke McCarthy <luke@iogopro.co.uk>
+Lukáš Lalinský <lalinsky@gmail.com>
+Malthe Borch <mborch@gmail.com>
+Martin Kreichgauer <kreichgauer@gmail.com>
+Martin Kreichgauer <martin@kreichgauer.com>
+Mike Lundy <mike@fluffypenguin.org>
+Raymond Hettinger <python@rcn.com>
+Roman Ovchinnikov <coolthecold@gmail.com>
+Rotem Yaari <vmalloc@gmail.com>
+Ryan Kelly <ryan@rfk.id.au>
+Senko Rasic <senko.rasic@dobarkod.hr>
+Senko Rašić <senko@senko.net>
+Shane Hathaway <shane@hathawaymix.org>
+Simon Pantzare <simon@pewpewlabs.com>
+Simon Pantzare <simpa395@student.liu.se>
+Steven Samuel Cole <steven.samuel.cole@gmail.com>
+Stéphane Klein <stephane@harobed.org>
+Thomas Guest <tag@wordaligned.org>
+Thomas Heller <theller@ctypes.org>
+Tim Cuthbertson <tim+github@gfxmonk.net>
+Todd Whiteman <toddw@activestate.com>
+Will McGugan <will@willmcgugan.com>
+Yesudeep Mangalapilly <gora.khargosh@gmail.com>
+Yesudeep Mangalapilly <yesudeep@google.com>
+dvogel <dvogel@wlscapi.uwsc.wisc.edu>
+gfxmonk <tim3d.junk@gmail.com>
+
+
+We would like to thank these individuals for ideas:
+---------------------------------------------------
+Tim Golden <mail@timgolden.me.uk>
+Sebastien Martini <seb@dbzteam.org>
+
+Initially we used the flask theme for the documentation which was written by
+----------------------------------------------------------------------------
+Armin Ronacher <armin.ronacher@active-4.com>
+
+
+Watchdog also includes open source libraries or adapted code
+from the following projects:
+
+- MacFSEvents - https://github.com/malthe/macfsevents
+- watch_directory.py - http://timgolden.me.uk/python/downloads/watch_directory.py
+- pyinotify - https://github.com/seb-m/pyinotify
+- fsmonitor - https://github.com/shaurz/fsmonitor
+- echo - http://wordaligned.org/articles/echo
+- Lukáš Lalinský's ordered set queue implementation:
+ https://stackoverflow.com/questions/1581895/how-check-if-a-task-is-already-in-python-queue
+- Armin Ronacher's flask-sphinx-themes for the documentation:
+ https://github.com/mitsuhiko/flask-sphinx-themes
+- pyfilesystem - https://github.com/PyFilesystem/pyfilesystem
+- get_FILE_NOTIFY_INFORMATION - http://blog.gmane.org/gmane.comp.python.ctypes/month=20070901
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/COPYING b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/COPYING
new file mode 100644
index 00000000..8eedbe98
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/COPYING
@@ -0,0 +1,14 @@
+Copyright 2011 Yesudeep Mangalapilly <yesudeep@gmail.com>
+Copyright 2012 Google, Inc & contributors.
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/INSTALLER b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/INSTALLER
new file mode 100644
index 00000000..a1b589e3
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/INSTALLER
@@ -0,0 +1 @@
+pip
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/LICENSE b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/LICENSE
new file mode 100644
index 00000000..d6456956
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/LICENSE
@@ -0,0 +1,202 @@
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/METADATA b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/METADATA
new file mode 100644
index 00000000..f5b208d8
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/METADATA
@@ -0,0 +1,752 @@
+Metadata-Version: 2.1
+Name: watchdog
+Version: 3.0.0
+Summary: Filesystem events monitoring
+Home-page: https://github.com/gorakhargosh/watchdog
+Author: Yesudeep Mangalapilly
+Author-email: yesudeep@gmail.com
+License: Apache License 2.0
+Project-URL: Documentation, https://python-watchdog.readthedocs.io/en/stable/
+Project-URL: Source, https://github.com/gorakhargosh/watchdog/
+Project-URL: Issues, https://github.com/gorakhargosh/watchdog/issues
+Project-URL: Changelog, https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst
+Keywords: python filesystem monitoring monitor FSEvents kqueue inotify ReadDirectoryChangesW polling DirectorySnapshot
+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 Vista
+Classifier: Operating System :: Microsoft :: Windows :: Windows 7
+Classifier: Operating System :: Microsoft :: Windows :: Windows 8
+Classifier: Operating System :: Microsoft :: Windows :: Windows 8.1
+Classifier: Operating System :: Microsoft :: Windows :: Windows 10
+Classifier: Operating System :: Microsoft :: Windows :: Windows 11
+Classifier: Operating System :: OS Independent
+Classifier: Programming Language :: Python
+Classifier: Programming Language :: Python :: 3
+Classifier: Programming Language :: Python :: 3 :: Only
+Classifier: Programming Language :: Python :: 3.7
+Classifier: Programming Language :: Python :: 3.8
+Classifier: Programming Language :: Python :: 3.9
+Classifier: Programming Language :: Python :: 3.10
+Classifier: Programming Language :: Python :: 3.11
+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
+Requires-Python: >=3.7
+Description-Content-Type: text/x-rst
+License-File: LICENSE
+License-File: COPYING
+License-File: AUTHORS
+Provides-Extra: watchmedo
+Requires-Dist: PyYAML (>=3.10) ; extra == 'watchmedo'
+
+Watchdog
+========
+
+|Build Status|
+|CirrusCI Status|
+
+Python API and shell utilities to monitor file system events.
+
+Works on 3.7+.
+
+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)
+ finally:
+ observer.stop()
+ observer.join()
+
+
+Shell Utilities
+---------------
+
+Watchdog comes with an *optional* 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 \
+ --verbose \
+ .
+
+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.
+
+Installation
+------------
+Install from PyPI using ``pip``:
+
+.. code-block:: bash
+
+ $ python -m pip install -U watchdog
+
+ # or to install the watchmedo utility:
+ $ python -m pip install -U "watchdog[watchmedo]"
+
+Install from source:
+
+.. code-block:: bash
+
+ $ python -m pip install -e .
+
+ # or to install the watchmedo utility:
+ $ python -m pip install -e ".[watchmedo]"
+
+
+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
+`stackoverflow`_ with tag `python-watchdog`.
+
+Create and activate your virtual environment, then::
+
+ python -m pip install pytest pytest-cov
+ python -m pip install -e ".[watchmedo]"
+ python -m pytest tests
+
+If you are making a substantial change, add an entry to the "Unreleased" section
+of the `changelog`_.
+
+Supported Platforms
+-------------------
+
+* Linux 2.6 (inotify)
+* macOS (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 appropriately to disable
+this feature.
+
+
+About using watchdog with CIFS
+------------------------------
+
+When you want to watch changes in CIFS, you need to explicitly tell watchdog to
+use ``PollingObserver``, that is, instead of letting watchdog decide an
+appropriate observer like in the example above, do::
+
+ from watchdog.observers.polling import PollingObserver as Observer
+
+
+Dependencies
+------------
+
+1. Python 3.7 or above.
+2. XCode_ (only on macOS when installing from sources)
+3. PyYAML_ (only for ``watchmedo``)
+
+Licensing
+---------
+
+Watchdog is licensed under the terms of the `Apache License, version 2.0`_.
+
+Copyright 2011 `Yesudeep Mangalapilly`_.
+
+Copyright 2012 Google, Inc & contributors.
+
+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_
+* treewatcher_
+* `file.monitor`_
+* pyfilesystem_
+
+.. links:
+.. _Yesudeep Mangalapilly: yesudeep@gmail.com
+.. _source code: https://github.com/gorakhargosh/watchdog
+.. _issue tracker: https://github.com/gorakhargosh/watchdog/issues
+.. _Apache License, version 2.0: https://www.apache.org/licenses/LICENSE-2.0
+.. _documentation: https://python-watchdog.readthedocs.io/
+.. _stackoverflow: https://stackoverflow.com/questions/tagged/python-watchdog
+.. _repository: https://github.com/gorakhargosh/watchdog
+.. _issue tracker: https://github.com/gorakhargosh/watchdog/issues
+.. _changelog: https://github.com/gorakhargosh/watchdog/blob/master/changelog.rst
+
+.. _PyYAML: https://www.pyyaml.org/
+.. _XCode: https://developer.apple.com/technologies/tools/xcode.html
+
+.. _pnotify: http://mark.heily.com/pnotify
+.. _unison fsmonitor: https://webdav.seas.upenn.edu/viewvc/unison/trunk/src/fsmonitor.py?view=markup&pathrev=471
+.. _fsmonitor: https://github.com/shaurz/fsmonitor
+.. _guard: https://github.com/guard/guard
+.. _pyinotify: https://github.com/seb-m/pyinotify
+.. _inotify-tools: https://github.com/rvoicilas/inotify-tools
+.. _jnotify: http://jnotify.sourceforge.net/
+.. _treewatcher: https://github.com/jbd/treewatcher
+.. _file.monitor: https://github.com/pke/file.monitor
+.. _pyfilesystem: https://github.com/PyFilesystem/pyfilesystem
+
+.. |Build Status| image:: https://github.com/gorakhargosh/watchdog/workflows/Tests/badge.svg
+ :target: https://github.com/gorakhargosh/watchdog/actions?query=workflow%3ATests
+.. |CirrusCI Status| image:: https://api.cirrus-ci.com/github/gorakhargosh/watchdog.svg
+ :target: https://cirrus-ci.com/github/gorakhargosh/watchdog/
+
+
+.. :changelog:
+
+Changelog
+---------
+
+3.0.0
+~~~~~
+
+2023-03-20 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.3.1...v3.0.0>`__
+
+- Drop support for Python 3.6.
+- ``watchdog`` is now PEP 561 compatible, and tested with ``mypy``
+- Fix missing ``>`` in ``FileSystemEvent.__repr__()`` (`#980 <https://github.com/gorakhargosh/watchdog/pull/980>`__)
+- [ci] Lots of improvements
+- [inotify] Return from ``InotifyEmitter.queue_events()`` if not launched when thread is inactive (`#963 <https://github.com/gorakhargosh/watchdog/pull/963>`__)
+- [tests] Stability improvements
+- [utils] Remove handling of ``threading.Event.isSet`` spelling (`#962 <https://github.com/gorakhargosh/watchdog/pull/962>`__)
+- [watchmedo] Fixed tricks YAML generation (`#965 <https://github.com/gorakhargosh/watchdog/pull/965>`__)
+- Thanks to our beloved contributors: @kurtmckee, @altendky, @agroszer, @BoboTiG
+
+2.3.1
+~~~~~
+
+2023-02-28 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.3.0...v2.3.1>`__
+
+- Run ``black`` on the entire source code
+- Bundle the ``requirements-tests.txt`` file in the source distribution (`#939 <https://github.com/gorakhargosh/watchdog/pull/939>`__)
+- [watchmedo] Exclude ``FileOpenedEvent`` events from ``AutoRestartTrick``, and ``ShellCommandTrick``, to restore watchdog < 2.3.0 behavior. A better solution should be found in the future. (`#949 <https://github.com/gorakhargosh/watchdog/pull/949>`__)
+- [watchmedo] Log ``FileOpenedEvent``, and ``FileClosedEvent``, events in ``LoggerTrick``
+- Thanks to our beloved contributors: @BoboTiG
+
+2.3.0
+~~~~~
+
+2023-02-23 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.2.1...v2.3.0>`__
+
+- [inotify] Add support for ``IN_OPEN`` events: a ``FileOpenedEvent`` event will be fired (`#941 <https://github.com/gorakhargosh/watchdog/pull/941>`__)
+- [watchmedo] Add optional event debouncing for ``auto-restart``, only restarting once if many events happen in quick succession (``--debounce-interval``) (`#940 <https://github.com/gorakhargosh/watchdog/pull/940>`__)
+- [watchmedo] Exit gracefully on ``KeyboardInterrupt`` exception (Ctrl+C) (`#945 <https://github.com/gorakhargosh/watchdog/pull/945>`__)
+- [watchmedo] Add option to not auto-restart the command after it exits (``--no-restart-on-command-exit``) (`#946 <https://github.com/gorakhargosh/watchdog/pull/946>`__)
+- Thanks to our beloved contributors: @BoboTiG, @dstaple, @taleinat, @cernekj
+
+2.2.1
+~~~~~
+
+2023-01-01 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.2.0...v2.2.1>`__
+
+- Enable ``mypy`` to discover type hints as specified in PEP 561 (`#933 <https://github.com/gorakhargosh/watchdog/pull/933>`__)
+- [ci] Set the expected Python version when building release files
+- [ci] Update actions versions in use
+- [watchmedo] [regression] Fix usage of missing ``signal.SIGHUP`` attribute on non-Unix OSes (`#935 <https://github.com/gorakhargosh/watchdog/pull/935>`__)
+- Thanks to our beloved contributors: @BoboTiG, @simon04, @piotrpdev
+
+2.2.0
+~~~~~
+
+2022-12-05 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.9...v2.2.0>`__
+
+- [build] Wheels are now available for Python 3.11 (`#932 <https://github.com/gorakhargosh/watchdog/pull/932>`__)
+- [documentation] HTML documentation builds are now tested for errors (`#902 <https://github.com/gorakhargosh/watchdog/pull/902>`__)
+- [documentation] Fix typos here, and there (`#910 <https://github.com/gorakhargosh/watchdog/pull/910>`__)
+- [fsevents2] The ``fsevents2`` observer is now deprecated (`#909 <https://github.com/gorakhargosh/watchdog/pull/909>`__)
+- [tests] The error message returned by musl libc for error code ``-1`` is now allowed (`#923 <https://github.com/gorakhargosh/watchdog/pull/923>`__)
+- [utils] Remove unnecessary code in ``dirsnapshot.py`` (`#930 <https://github.com/gorakhargosh/watchdog/pull/930>`__)
+- [watchmedo] Handle shutdown events from ``SIGHUP`` (`#912 <https://github.com/gorakhargosh/watchdog/pull/912>`__)
+- Thanks to our beloved contributors: @kurtmckee, @babymastodon, @QuantumEnergyE, @timgates42, @BoboTiG
+
+2.1.9
+~~~~~
+
+2022-06-10 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.8...v2.1.9>`__
+
+- [fsevents] Fix flakey test to assert that there are no errors when stopping the emitter.
+- [inotify] Suppress occasional ``OSError: [Errno 9] Bad file descriptor`` at shutdown. (`#805 <https://github.com/gorakhargosh/watchdog/issues/805>`__)
+- [watchmedo] Make ``auto-restart`` restart the sub-process if it terminates. (`#896 <https://github.com/gorakhargosh/watchdog/pull/896>`__)
+- [watchmedo] Avoid zombie sub-processes when running ``shell-command`` without ``--wait``. (`#405 <https://github.com/gorakhargosh/watchdog/issues/405>`__)
+- Thanks to our beloved contributors: @samschott, @taleinat, @altendky, @BoboTiG
+
+2.1.8
+~~~~~
+
+2022-05-15 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.7...v2.1.8>`__
+
+- Fix adding failed emitters on observer schedule. (`#872 <https://github.com/gorakhargosh/watchdog/issues/872>`__)
+- [inotify] Fix hang when unscheduling watch on a path in an unmounted filesystem. (`#869 <https://github.com/gorakhargosh/watchdog/pull/869>`__)
+- [watchmedo] Fix broken parsing of ``--kill-after`` argument for the ``auto-restart`` command. (`#870 <https://github.com/gorakhargosh/watchdog/issues/870>`__)
+- [watchmedo] Fix broken parsing of boolean arguments. (`#887 <https://github.com/gorakhargosh/watchdog/issues/887>`__)
+- [watchmedo] Fix broken parsing of commands from ``auto-restart``, and ``shell-command``. (`#888 <https://github.com/gorakhargosh/watchdog/issues/888>`__)
+- [watchmedo] Support setting verbosity level via ``-q/--quiet`` and ``-v/--verbose`` arguments. (`#889 <https://github.com/gorakhargosh/watchdog/pull/889>`__)
+- Thanks to our beloved contributors: @taleinat, @kianmeng, @palfrey, @IlayRosenberg, @BoboTiG
+
+2.1.7
+~~~~~
+
+2022-03-25 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.6...v2.1.7>`__
+
+- Eliminate timeout in waiting on event queue. (`#861 <https://github.com/gorakhargosh/watchdog/pull/861>`__)
+- [inotify] Fix ``not`` equality implementation for ``InotifyEvent``. (`#848 <https://github.com/gorakhargosh/watchdog/pull/848>`__)
+- [watchmedo] Fix calling commands from within a Python script. (`#879 <https://github.com/gorakhargosh/watchdog/pull/879>`__)
+- [watchmedo] ``PyYAML`` is loaded only when strictly necessary. Simple usages of ``watchmedo`` are possible without the module being installed. (`#847 <https://github.com/gorakhargosh/watchdog/pull/847>`__)
+- Thanks to our beloved contributors: @sattlerc, @JanzenLiu, @BoboTiG
+
+2.1.6
+~~~~~
+
+2021-10-01 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.5...v2.1.6>`__
+
+- [bsd] Fixed returned paths in ``kqueue.py`` and restored the overall results of the test suite. (`#842 <https://github.com/gorakhargosh/watchdog/pull/842>`__)
+- [bsd] Updated FreeBSD CI support .(`#841 <https://github.com/gorakhargosh/watchdog/pull/841>`__)
+- [watchmedo] Removed the ``argh`` dependency in favor of the builtin ``argparse`` module. (`#836 <https://github.com/gorakhargosh/watchdog/pull/836>`__)
+- [watchmedo] Removed unexistant ``WindowsApiAsyncObserver`` references and ``--debug-force-winapi-async`` arguments.
+- [watchmedo] Improved the help output.
+- Thanks to our beloved contributors: @knobix, @AndreaRe9, @BoboTiG
+
+2.1.5
+~~~~~
+
+2021-08-23 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.4...v2.1.5>`__
+
+- Fix regression introduced in 2.1.4 (reverted "Allow overriding or adding custom event handlers to event dispatch map. (`#814 <https://github.com/gorakhargosh/watchdog/pull/814>`__)"). (`#830 <https://github.com/gorakhargosh/watchdog/pull/830>`__)
+- Convert regexes of type ``str`` to ``list``. (`831 <https://github.com/gorakhargosh/watchdog/pull/831>`__)
+- Thanks to our beloved contributors: @unique1o1, @BoboTiG
+
+2.1.4
+~~~~~
+
+2021-08-19 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.3...v2.1.4>`__
+
+- [watchmedo] Fix usage of ``os.setsid()`` and ``os.killpg()`` Unix-only functions. (`#809 <https://github.com/gorakhargosh/watchdog/pull/809>`__)
+- [mac] Fix missing ``FileModifiedEvent`` on permission or ownership changes of a file. (`#815 <https://github.com/gorakhargosh/watchdog/pull/815>`__)
+- [mac] Convert absolute watch path in ``FSEeventsEmitter`` with ``os.path.realpath()``. (`#822 <https://github.com/gorakhargosh/watchdog/pull/822>`__)
+- Fix a possible ``AttributeError`` in ``SkipRepeatsQueue._put()``. (`#818 <https://github.com/gorakhargosh/watchdog/pull/818>`__)
+- Allow overriding or adding custom event handlers to event dispatch map. (`#814 <https://github.com/gorakhargosh/watchdog/pull/814>`__)
+- Fix tests on big endian platforms. (`#828 <https://github.com/gorakhargosh/watchdog/pull/828>`__)
+- Thanks to our beloved contributors: @replabrobin, @BoboTiG, @SamSchott, @AndreiB97, @NiklasRosenstein, @ikokollari, @mgorny
+
+2.1.3
+~~~~~
+
+2021-06-26 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.2...v2.1.3>`__
+
+- Publish macOS ``arm64`` and ``universal2`` wheels. (`#740 <https://github.com/gorakhargosh/watchdog/pull/740>`__)
+- Thanks to our beloved contributors: @kainjow, @BoboTiG
+
+2.1.2
+~~~~~
+
+2021-05-19 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.1...v2.1.2>`__
+
+- [mac] Fix relative path handling for non-recursive watch. (`#797 <https://github.com/gorakhargosh/watchdog/pull/797>`__)
+- [windows] On PyPy, events happening right after ``start()`` were missed. Add a workaround for that. (`#796 <https://github.com/gorakhargosh/watchdog/pull/796>`__)
+- Thanks to our beloved contributors: @oprypin, @CCP-Aporia, @BoboTiG
+
+2.1.1
+~~~~~
+
+2021-05-10 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.1.0...v2.1.1>`__
+
+- [mac] Fix callback exceptions when the watcher is deleted but still receiving events (`#786 <https://github.com/gorakhargosh/watchdog/pull/786>`__)
+- Thanks to our beloved contributors: @rom1win, @BoboTiG, @CCP-Aporia
+
+
+2.1.0
+~~~~~
+
+2021-05-04 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.0.3...v2.1.0>`__
+
+- [inotify] Simplify ``libc`` loading (`#776 <https://github.com/gorakhargosh/watchdog/pull/776>`__)
+- [mac] Add support for non-recursive watches in ``FSEventsEmitter`` (`#779 <https://github.com/gorakhargosh/watchdog/pull/779>`__)
+- [watchmedo] Add support for ``--debug-force-*`` arguments to ``tricks`` (`#781 <https://github.com/gorakhargosh/watchdog/pull/781>`__)
+- Thanks to our beloved contributors: @CCP-Aporia, @aodj, @UnitedMarsupials, @BoboTiG
+
+
+2.0.3
+~~~~~
+
+2021-04-22 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.0.2...v2.0.3>`__
+
+- [mac] Use ``logger.debug()`` instead of ``logger.info()`` (`#774 <https://github.com/gorakhargosh/watchdog/pull/774>`__)
+- Updated documentation links (`#777 <https://github.com/gorakhargosh/watchdog/pull/777>`__)
+- Thanks to our beloved contributors: @globau, @imba-tjd, @BoboTiG
+
+
+2.0.2
+~~~~~
+
+2021-02-22 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.0.1...v2.0.2>`__
+
+- [mac] Add missing exception objects (`#766 <https://github.com/gorakhargosh/watchdog/pull/766>`__)
+- Thanks to our beloved contributors: @CCP-Aporia, @BoboTiG
+
+
+2.0.1
+~~~~~
+
+2021-02-17 • `full history <https://github.com/gorakhargosh/watchdog/compare/v2.0.0...v2.0.1>`__
+
+- [mac] Fix a segmentation fault when dealing with unicode paths (`#763 <https://github.com/gorakhargosh/watchdog/pull/763>`__)
+- Moved the CI from Travis-CI to GitHub Actions (`#764 <https://github.com/gorakhargosh/watchdog/pull/764>`__)
+- Thanks to our beloved contributors: @SamSchott, @BoboTiG
+
+
+2.0.0
+~~~~~
+
+2021-02-11 • `full history <https://github.com/gorakhargosh/watchdog/compare/v1.0.2...v2.0.0>`__
+
+- Avoid deprecated ``PyEval_InitThreads`` on Python 3.7+ (`#746 <https://github.com/gorakhargosh/watchdog/pull/746>`__)
+- [inotify] Add support for ``IN_CLOSE_WRITE`` events. A ``FileCloseEvent`` event will be fired. Note that ``IN_CLOSE_NOWRITE`` events are not handled to prevent much noise. (`#184 <https://github.com/gorakhargosh/watchdog/pull/184>`__, `#245 <https://github.com/gorakhargosh/watchdog/pull/245>`__, `#280 <https://github.com/gorakhargosh/watchdog/pull/280>`__, `#313 <https://github.com/gorakhargosh/watchdog/pull/313>`__, `#690 <https://github.com/gorakhargosh/watchdog/pull/690>`__)
+- [inotify] Allow to stop the emitter multiple times (`#760 <https://github.com/gorakhargosh/watchdog/pull/760>`__)
+- [mac] Support coalesced filesystem events (`#734 <https://github.com/gorakhargosh/watchdog/pull/734>`__)
+- [mac] Drop support for macOS 10.12 and earlier (`#750 <https://github.com/gorakhargosh/watchdog/pull/750>`__)
+- [mac] Fix an issue when renaming an item changes only the casing (`#750 <https://github.com/gorakhargosh/watchdog/pull/750>`__)
+- Thanks to our beloved contributors: @bstaletic, @lukassup, @ysard, @SamSchott, @CCP-Aporia, @BoboTiG
+
+
+1.0.2
+~~~~~
+
+2020-12-18 • `full history <https://github.com/gorakhargosh/watchdog/compare/v1.0.1...v1.0.2>`__
+
+- Wheels are published for GNU/Linux, macOS and Windows (`#739 <https://github.com/gorakhargosh/watchdog/pull/739>`__)
+- [mac] Fix missing ``event_id`` attribute in ``fsevents`` (`#721 <https://github.com/gorakhargosh/watchdog/pull/721>`__)
+- [mac] Return byte paths if a byte path was given in ``fsevents`` (`#726 <https://github.com/gorakhargosh/watchdog/pull/726>`__)
+- [mac] Add compatibility with old macOS versions (`#733 <https://github.com/gorakhargosh/watchdog/pull/733>`__)
+- Uniformize event for deletion of watched dir (`#727 <https://github.com/gorakhargosh/watchdog/pull/727>`__)
+- Thanks to our beloved contributors: @SamSchott, @CCP-Aporia, @di, @BoboTiG
+
+
+1.0.1
+~~~~~
+
+2020-12-10 • Fix version with good metadatas.
+
+
+1.0.0
+~~~~~
+
+2020-12-10 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.4...v1.0.0>`__
+
+- Versioning is now following the `semver <https://semver.org/>`__
+- Drop support for Python 2.7, 3.4 and 3.5
+- [mac] Regression fixes for native ``fsevents`` (`#717 <https://github.com/gorakhargosh/watchdog/pull/717>`__)
+- [windows] ``winapi.BUFFER_SIZE`` now defaults to ``64000`` (instead of ``2048``) (`#700 <https://github.com/gorakhargosh/watchdog/pull/700>`__)
+- [windows] Introduced ``winapi.PATH_BUFFER_SIZE`` (defaults to ``2048``) to keep the old behavior with path-realted functions (`#700 <https://github.com/gorakhargosh/watchdog/pull/700>`__)
+- Use ``pathlib`` from the standard library, instead of pathtools (`#556 <https://github.com/gorakhargosh/watchdog/pull/556>`__)
+- Allow file paths on Unix that don't follow the file system encoding (`#703 <https://github.com/gorakhargosh/watchdog/pull/703>`__)
+- Removed the long-time deprecated ``events.LoggingFileSystemEventHandler`` class, use ``LoggingEventHandler`` instead
+- Thanks to our beloved contributors: @SamSchott, @bstaletic, @BoboTiG, @CCP-Aporia
+
+
+0.10.4
+~~~~~~
+
+2020-11-21 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.3...v0.10.4>`__
+
+- Add ``logger`` parameter for the ``LoggingEventHandler`` (`#676 <https://github.com/gorakhargosh/watchdog/pull/676>`__)
+- Replace mutable default arguments with ``if None`` implementation (`#677 <https://github.com/gorakhargosh/watchdog/pull/677>`__)
+- Expand tests to Python 2.7 and 3.5-3.10 for GNU/Linux, macOS and Windows
+- [mac] Performance improvements for the ``fsevents`` module (`#680 <https://github.com/gorakhargosh/watchdog/pull/680>`__)
+- [mac] Prevent compilation of ``watchdog_fsevents.c`` on non-macOS machines (`#687 <https://github.com/gorakhargosh/watchdog/pull/687>`__)
+- [watchmedo] Handle shutdown events from ``SIGTERM`` and ``SIGINT`` more reliably (`#693 <https://github.com/gorakhargosh/watchdog/pull/693>`__)
+- Thanks to our beloved contributors: @Sraw, @CCP-Aporia, @BoboTiG, @maybe-sybr
+
+
+0.10.3
+~~~~~~
+
+2020-06-25 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.2...v0.10.3>`__
+
+- Ensure ``ObservedWatch.path`` is a string (`#651 <https://github.com/gorakhargosh/watchdog/pull/651>`__)
+- [inotify] Allow to monitor single file (`#655 <https://github.com/gorakhargosh/watchdog/pull/655>`__)
+- [inotify] Prevent raising an exception when a file in a monitored folder has no permissions (`#669 <https://github.com/gorakhargosh/watchdog/pull/669>`__, `#670 <https://github.com/gorakhargosh/watchdog/pull/670>`__)
+- Thanks to our beloved contributors: @brant-ruan, @rec, @andfoy, @BoboTiG
+
+
+0.10.2
+~~~~~~
+
+2020-02-08 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.1...v0.10.2>`__
+
+- Fixed the ``build_ext`` command on macOS Catalina (`#628 <https://github.com/gorakhargosh/watchdog/pull/628>`__)
+- Fixed the installation of macOS requirements on non-macOS OSes (`#635 <https://github.com/gorakhargosh/watchdog/pull/635>`__)
+- Refactored ``dispatch()`` method of ``FileSystemEventHandler``,
+ ``PatternMatchingEventHandler`` and ``RegexMatchingEventHandler``
+- [bsd] Improved tests support on non Windows/Linux platforms (`#633 <https://github.com/gorakhargosh/watchdog/pull/633>`__, `#639 <https://github.com/gorakhargosh/watchdog/pull/639>`__)
+- [bsd] Added FreeBSD CI support (`#532 <https://github.com/gorakhargosh/watchdog/pull/532>`__)
+- [bsd] Restored full support (`#638 <https://github.com/gorakhargosh/watchdog/pull/638>`__, `#641 <https://github.com/gorakhargosh/watchdog/pull/641>`__)
+- Thanks to our beloved contributors: @BoboTiG, @evilham, @danilobellini
+
+
+0.10.1
+~~~~~~
+
+2020-01-30 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.10.0...v0.10.1>`__
+
+- Fixed Python 2.7 to 3.6 installation when the OS locale is set to POSIX (`#615 <https://github.com/gorakhargosh/watchdog/pull/615>`__)
+- Fixed the ``build_ext`` command on macOS (`#618 <https://github.com/gorakhargosh/watchdog/pull/618>`__, `#620 <https://github.com/gorakhargosh/watchdog/pull/620>`__)
+- Moved requirements to ``setup.cfg`` (`#617 <https://github.com/gorakhargosh/watchdog/pull/617>`__)
+- [mac] Removed old C code for Python 2.5 in the `fsevents` C implementation
+- [snapshot] Added ``EmptyDirectorySnapshot`` (`#613 <https://github.com/gorakhargosh/watchdog/pull/613>`__)
+- Thanks to our beloved contributors: @Ajordat, @tehkirill, @BoboTiG
+
+
+0.10.0
+~~~~~~
+
+2020-01-26 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.9.0...v0.10.0>`__
+
+**Breaking Changes**
+
+- Dropped support for Python 2.6, 3.2 and 3.3
+- Emitters that failed to start are now removed
+- [snapshot] Removed the deprecated ``walker_callback`` argument,
+ use ``stat`` instead
+- [watchmedo] The utility is no more installed by default but via the extra
+ ``watchdog[watchmedo]``
+
+**Other Changes**
+
+- Fixed several Python 3 warnings
+- Identify synthesized events with ``is_synthetic`` attribute (`#369 <https://github.com/gorakhargosh/watchdog/pull/369>`__)
+- Use ``os.scandir()`` to improve memory usage (`#503 <https://github.com/gorakhargosh/watchdog/pull/503>`__)
+- [bsd] Fixed flavors of FreeBSD detection (`#529 <https://github.com/gorakhargosh/watchdog/pull/529>`__)
+- [bsd] Skip unprocessable socket files (`#509 <https://github.com/gorakhargosh/watchdog/issue/509>`__)
+- [inotify] Fixed events containing non-ASCII characters (`#516 <https://github.com/gorakhargosh/watchdog/issues/516>`__)
+- [inotify] Fixed the way ``OSError`` are re-raised (`#377 <https://github.com/gorakhargosh/watchdog/issues/377>`__)
+- [inotify] Fixed wrong source path after renaming a top level folder (`#515 <https://github.com/gorakhargosh/watchdog/pull/515>`__)
+- [inotify] Removed delay from non-move events (`#477 <https://github.com/gorakhargosh/watchdog/pull/477>`__)
+- [mac] Fixed a bug when calling ``FSEventsEmitter.stop()`` twice (`#466 <https://github.com/gorakhargosh/watchdog/pull/466>`__)
+- [mac] Support for unscheduling deleted watch (`#541 <https://github.com/gorakhargosh/watchdog/issue/541>`__)
+- [mac] Fixed missing field initializers and unused parameters in
+ ``watchdog_fsevents.c``
+- [snapshot] Don't walk directories without read permissions (`#408 <https://github.com/gorakhargosh/watchdog/pull/408>`__)
+- [snapshot] Fixed a race condition crash when a directory is swapped for a file (`#513 <https://github.com/gorakhargosh/watchdog/pull/513>`__)
+- [snasphot] Fixed an ``AttributeError`` about forgotten ``path_for_inode`` attr (`#436 <https://github.com/gorakhargosh/watchdog/issues/436>`__)
+- [snasphot] Added the ``ignore_device=False`` parameter to the ctor (`597 <https://github.com/gorakhargosh/watchdog/pull/597>`__)
+- [watchmedo] Fixed the path separator used (`#478 <https://github.com/gorakhargosh/watchdog/pull/478>`__)
+- [watchmedo] Fixed the use of ``yaml.load()`` for ``yaml.safe_load()`` (`#453 <https://github.com/gorakhargosh/watchdog/issues/453>`__)
+- [watchmedo] Handle all available signals (`#549 <https://github.com/gorakhargosh/watchdog/issue/549>`__)
+- [watchmedo] Added the ``--debug-force-polling`` argument (`#404 <https://github.com/gorakhargosh/watchdog/pull/404>`__)
+- [windows] Fixed issues when the observed directory is deleted (`#570 <https://github.com/gorakhargosh/watchdog/issues/570>`__ and `#601 <https://github.com/gorakhargosh/watchdog/pull/601>`__)
+- [windows] ``WindowsApiEmitter`` made easier to subclass (`#344 <https://github.com/gorakhargosh/watchdog/pull/344>`__)
+- [windows] Use separate ctypes DLL instances
+- [windows] Generate sub created events only if ``recursive=True`` (`#454 <https://github.com/gorakhargosh/watchdog/pull/454>`__)
+- Thanks to our beloved contributors: @BoboTiG, @LKleinNux, @rrzaripov,
+ @wildmichael, @TauPan, @segevfiner, @petrblahos, @QuantumEnergyE,
+ @jeffwidman, @kapsh, @nickoala, @petrblahos, @julianolf, @tonybaloney,
+ @mbakiev, @pR0Ps, javaguirre, @skurfer, @exarkun, @joshuaskelly,
+ @danilobellini, @Ajordat
+
+
+0.9.0
+~~~~~
+
+2018-08-28 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.8.3...v0.9.0>`__
+
+- Deleting the observed directory now emits a ``DirDeletedEvent`` event
+- [bsd] Improved the platform detection (`#378 <https://github.com/gorakhargosh/watchdog/pull/378>`__)
+- [inotify] Fixed a crash when the root directory being watched by was deleted (`#374 <https://github.com/gorakhargosh/watchdog/pull/374>`__)
+- [inotify] Handle systems providing uClibc
+- [linux] Fixed a possible ``DirDeletedEvent`` duplication when
+ deleting a directory
+- [mac] Fixed unicode path handling ``fsevents2.py`` (`#298 <https://github.com/gorakhargosh/watchdog/pull/298>`__)
+- [watchmedo] Added the ``--debug-force-polling`` argument (`#336 <https://github.com/gorakhargosh/watchdog/pull/336>`__)
+- [windows] Fixed the ``FILE_LIST_DIRECTORY`` constant (`#376 <https://github.com/gorakhargosh/watchdog/pull/376>`__)
+- Thanks to our beloved contributors: @vulpeszerda, @hpk42, @tamland, @senden9,
+ @gorakhargosh, @nolsto, @mafrosis, @DonyorM, @anthrotype, @danilobellini,
+ @pierregr, @ShinNoNoir, @adrpar, @gforcada, @pR0Ps, @yegorich, @dhke
+
+
+0.8.3
+~~~~~
+
+2015-02-11 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.8.2...v0.8.3>`__
+
+- Fixed the use of the root logger (`#274 <https://github.com/gorakhargosh/watchdog/issues/274>`__)
+- [inotify] Refactored libc loading and improved error handling in
+ ``inotify_c.py``
+- [inotify] Fixed a possible unbound local error in ``inotify_c.py``
+- Thanks to our beloved contributors: @mmorearty, @tamland, @tony,
+ @gorakhargosh
+
+
+0.8.2
+~~~~~
+
+2014-10-29 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.8.1...v0.8.2>`__
+
+- Event emitters are no longer started on schedule if ``Observer`` is not
+ already running
+- [mac] Fixed usued arguments to pass clang compilation (`#265 <https://github.com/gorakhargosh/watchdog/pull/265>`__)
+- [snapshot] Fixed a possible race condition crash on directory deletion (`#281 <https://github.com/gorakhargosh/watchdog/pull/281>`__)
+- [windows] Fixed an error when watching the same folder again (`#270 <https://github.com/gorakhargosh/watchdog/pull/270>`__)
+- Thanks to our beloved contributors: @tamland, @apetrone, @Falldog,
+ @theospears
+
+
+0.8.1
+~~~~~
+
+2014-07-28 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.8.0...v0.8.1>`__
+
+- Fixed ``anon_inode`` descriptors leakage (`#249 <https://github.com/gorakhargosh/watchdog/pull/249>`__)
+- [inotify] Fixed thread stop dead lock (`#250 <https://github.com/gorakhargosh/watchdog/issues/250>`__)
+- Thanks to our beloved contributors: @Witos, @adiroiban, @tamland
+
+
+0.8.0
+~~~~~
+
+2014-07-02 • `full history <https://github.com/gorakhargosh/watchdog/compare/v0.7.1...v0.8.0>`__
+
+- Fixed ``argh`` deprecation warnings (`#242 <https://github.com/gorakhargosh/watchdog/pull/242>`__)
+- [snapshot] Methods returning internal stats info were replaced by
+ ``mtime()``, ``inode()`` and ``path()`` methods
+- [snapshot] Deprecated the ``walker_callback`` argument
+- [watchmedo] Fixed ``auto-restart`` to terminate all children processes (`#225 <https://github.com/gorakhargosh/watchdog/pull/225>`__)
+- [watchmedo] Added the ``--no-parallel`` argument (`#227 <https://github.com/gorakhargosh/watchdog/issues/227>`__)
+- [windows] Fixed the value of ``INVALID_HANDLE_VALUE`` (`#123 <https://github.com/gorakhargosh/watchdog/issues/123>`__)
+- [windows] Fixed octal usages to work with Python 3 as well (`#223 <https://github.com/gorakhargosh/watchdog/issues/223>`__)
+- Thanks to our beloved contributors: @tamland, @Ormod, @berdario, @cro,
+ @BernieSumption, @pypingou, @gotcha, @tommorris, @frewsxcv
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/RECORD b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/RECORD
new file mode 100644
index 00000000..c35bc26b
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/RECORD
@@ -0,0 +1,63 @@
+../../../bin/watchmedo,sha256=J-m3S7EoiWmI-Te11MRTDk0AF8r7wfD0ORSg3IlhQrg,264
+_watchdog_fsevents.cpython-39-darwin.so,sha256=zQ1UPeanM8fajtm_acAamoAJ7I_IlHSVrmFm3yttsJA,45752
+watchdog-3.0.0.dist-info/AUTHORS,sha256=gDi-g3FfUuViWOtmZ_QDsucGBISUxaC2OpsDGD9Evo0,2880
+watchdog-3.0.0.dist-info/COPYING,sha256=Ash2D5iKdukqnWy1JUVqhvew_RlThw3Ukd5ZVcuXTUE,625
+watchdog-3.0.0.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4
+watchdog-3.0.0.dist-info/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
+watchdog-3.0.0.dist-info/METADATA,sha256=d3XeMnRbZbat7d4BHMGpN2DYPTvyTgXU3G92HAp_4Gs,36513
+watchdog-3.0.0.dist-info/RECORD,,
+watchdog-3.0.0.dist-info/REQUESTED,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+watchdog-3.0.0.dist-info/WHEEL,sha256=UlNw_PQRbc8y2O60L5paNCXmEdKCjgP3umWDtB6RxVY,109
+watchdog-3.0.0.dist-info/entry_points.txt,sha256=qt_Oe2U5Zlfz7LNA3PHipn3_1zlfRTp9dk3wTS3Ivb8,66
+watchdog-3.0.0.dist-info/top_level.txt,sha256=JYP7SvqSWBmdMDcnBwaMd48Ngr9V0t8UbNvmAQ9LTdc,28
+watchdog/__init__.py,sha256=FslnbeodNBt4aVEqkpKGrY0KqsG4hCkvsH-hDLujjQI,651
+watchdog/__pycache__/__init__.cpython-39.pyc,,
+watchdog/__pycache__/events.cpython-39.pyc,,
+watchdog/__pycache__/version.cpython-39.pyc,,
+watchdog/__pycache__/watchmedo.cpython-39.pyc,,
+watchdog/events.py,sha256=p4gaGmmU2zB23u509TCJIiF11g1bqzdd2WDr1sy3HOM,16579
+watchdog/observers/__init__.py,sha256=NhIRYdulInxCNYQisZt5Kam75YdJxvIHPnO0UG_w_Ic,3533
+watchdog/observers/__pycache__/__init__.cpython-39.pyc,,
+watchdog/observers/__pycache__/api.cpython-39.pyc,,
+watchdog/observers/__pycache__/fsevents.cpython-39.pyc,,
+watchdog/observers/__pycache__/fsevents2.cpython-39.pyc,,
+watchdog/observers/__pycache__/inotify.cpython-39.pyc,,
+watchdog/observers/__pycache__/inotify_buffer.cpython-39.pyc,,
+watchdog/observers/__pycache__/inotify_c.cpython-39.pyc,,
+watchdog/observers/__pycache__/kqueue.cpython-39.pyc,,
+watchdog/observers/__pycache__/polling.cpython-39.pyc,,
+watchdog/observers/__pycache__/read_directory_changes.cpython-39.pyc,,
+watchdog/observers/__pycache__/winapi.cpython-39.pyc,,
+watchdog/observers/api.py,sha256=VMAr8p3psEf7Ak9CpstwX89WOpGBdd_sMjg8XxQQgz4,12074
+watchdog/observers/fsevents.py,sha256=TKCgERx4Jifx0lctGM9C6rsTij3KpixjeAzVbsST_nc,14100
+watchdog/observers/fsevents2.py,sha256=O90zJg7fDzpelSvN7F_HmVJ97DGVyWwfVQ46CENfdD0,9594
+watchdog/observers/inotify.py,sha256=6te5ZAo29SLrDsdHadXoii2I8htxtkHenhUaeEF2fC4,9543
+watchdog/observers/inotify_buffer.py,sha256=Et5VcdDXS4FJ0KAdBZvMMucH4Dds0Ejvhbcy-WHsDTk,4747
+watchdog/observers/inotify_c.py,sha256=l51sJMFVFYtPK-0dyZzKnbe7gBcv0epqjRgDE3zp0g8,19739
+watchdog/observers/kqueue.py,sha256=br4btdKx-_8BeynkkofV3JnjBvYH04UtZ7Tc82_elKA,23950
+watchdog/observers/polling.py,sha256=DvRlUzyq81pIjci3VOxY88gBWrmuyr_B6nxEKURGqkg,4810
+watchdog/observers/read_directory_changes.py,sha256=2LoLtE0VFw-ammpHIRR66EvT3KlohNZ7BI5Cq40D4MA,5863
+watchdog/observers/winapi.py,sha256=QR19laneSNfBw1Yr7XMIIuBS3pBWuzQ-iglBAAm4iPk,13682
+watchdog/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
+watchdog/tricks/__init__.py,sha256=lo1tsPwxjQ_aXyBb4w_H00krl8prIVXFJBo5AFBo2oE,9792
+watchdog/tricks/__pycache__/__init__.cpython-39.pyc,,
+watchdog/utils/__init__.py,sha256=rnaRJZoCPo1bxLD10ge36uEXzDapCGYB4IO0J4P4fKg,4498
+watchdog/utils/__pycache__/__init__.cpython-39.pyc,,
+watchdog/utils/__pycache__/bricks.cpython-39.pyc,,
+watchdog/utils/__pycache__/delayed_queue.cpython-39.pyc,,
+watchdog/utils/__pycache__/dirsnapshot.cpython-39.pyc,,
+watchdog/utils/__pycache__/echo.cpython-39.pyc,,
+watchdog/utils/__pycache__/event_debouncer.cpython-39.pyc,,
+watchdog/utils/__pycache__/patterns.cpython-39.pyc,,
+watchdog/utils/__pycache__/platform.cpython-39.pyc,,
+watchdog/utils/__pycache__/process_watcher.cpython-39.pyc,,
+watchdog/utils/bricks.py,sha256=auTxkTI2tvKTTwc5bH8HrZjPdjgx8gqHSksike30DSw,2885
+watchdog/utils/delayed_queue.py,sha256=jhdsAWgc3d5JDLt2zZi-p98AIfn4DZ59l7iQdIfJ1YU,3073
+watchdog/utils/dirsnapshot.py,sha256=_ZsFkAUJu1-tIZtbQVNeN1icnXoT7sckIewTgJQ5HrY,11829
+watchdog/utils/echo.py,sha256=5Se1Wieh3oCycRADMr_P0toNzYRZfu0zCL2jDx7vnE0,5173
+watchdog/utils/event_debouncer.py,sha256=Vc9bJMtysfl4ChQGdPWCnqzoCm0h_MR6AYcV-DfncRQ,1797
+watchdog/utils/patterns.py,sha256=_m4Z89Rx2DGxHvft3CAfATDlkZI2RgWnDKCyELc1LKQ,3940
+watchdog/utils/platform.py,sha256=qwQ4bM27Etv6Ytws-kbB5WcGO04MMWAJafNaEYQT5vQ,1515
+watchdog/utils/process_watcher.py,sha256=qq2Dg3qbIU3Ul-UNlEnsVYcU9BGsXDXJxMDG7JRFNqg,715
+watchdog/version.py,sha256=N5ovp8Y7CSPu5QG6Jrbx2Oq2oA5xvoe7nuYLmtOIo24,1002
+watchdog/watchmedo.py,sha256=RO3QxjCgoVPGbbIu_9KgaEm7nksRFJVnTyPh5XFUsXY,25210
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/REQUESTED b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/REQUESTED
new file mode 100644
index 00000000..e69de29b
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/REQUESTED
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/WHEEL b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/WHEEL
new file mode 100644
index 00000000..2e266ab9
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/WHEEL
@@ -0,0 +1,5 @@
+Wheel-Version: 1.0
+Generator: bdist_wheel (0.38.4)
+Root-Is-Purelib: false
+Tag: cp39-cp39-macosx_10_9_x86_64
+
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/entry_points.txt b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/entry_points.txt
new file mode 100644
index 00000000..b05809e4
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/entry_points.txt
@@ -0,0 +1,2 @@
+[console_scripts]
+watchmedo = watchdog.watchmedo:main [watchmedo]
diff --git a/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/top_level.txt b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/top_level.txt
new file mode 100644
index 00000000..dceeb4d0
--- /dev/null
+++ b/venv/lib/python3.9/site-packages/watchdog-3.0.0.dist-info/top_level.txt
@@ -0,0 +1,2 @@
+_watchdog_fsevents
+watchdog