Skip to main content

Filesystem events monitoring

Project description

Build Status

Python API and shell utilities to monitor file system events.

Works on 3.6+.

If you want to use Python 2.6, you should stick with watchdog < 0.10.0.

If you want to use Python 2.7, 3.4 or 3.5, you should stick with watchdog < 1.0.0.

Example API Usage

A simple program that uses watchdog to monitor directories specified as command-line arguments and logs events generated:

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:

watchmedo log \
    --patterns="*.py;*.txt" \
    --ignore-directories \
    --recursive \
    .

You can use the shell-command subcommand to execute shell commands in response to events:

watchmedo shell-command \
    --patterns="*.py;*.txt" \
    --recursive \
    --command='echo "${watch_src_path}"' \
    .

Please see the help information for these commands by typing:

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:

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:

$ python -m pip install -U watchdog

# or to install the watchmedo utility:
$ python -m pip install -U "watchdog[watchmedo]"

Install from source:

$ python -m pip install -e .

# or to install the watchmedo utility:
$ python -m pip install -e ".[watchmedo]"

Installation Caveats

The watchmedo script depends on PyYAML which links with LibYAML, which brings a performance boost to the PyYAML parser. However, installing LibYAML is optional but recommended. On Mac OS X, you can use homebrew to install LibYAML:

$ brew install libyaml

On Linux, use your favorite package manager to install LibYAML. Here’s how you do it on Ubuntu:

$ sudo apt install libyaml-dev

On Windows, please install PyYAML using the binaries they provide.

Documentation

You can browse the latest release documentation online.

Contribute

Fork the repository on GitHub and send a pull request, or file an issue ticket at the issue tracker. For general help and questions use the official mailing list or ask on stackoverflow with tag python-watchdog.

Create and activate your virtual environment, then:

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)

  • Mac OS X (FSEvents, kqueue)

  • FreeBSD/BSD (kqueue)

  • Windows (ReadDirectoryChangesW with I/O completion ports; ReadDirectoryChangesW worker threads)

  • OS-independent (polling the disk for directory snapshots and comparing them periodically; slow and not recommended)

Note that when using watchdog with kqueue, you need the number of file descriptors allowed to be opened by programs running on your system to be increased to more than the number of files that you will be monitoring. The easiest way to do that is to edit your ~/.profile file and add a line similar to:

ulimit -n 1024

This is an inherent problem with kqueue because it uses file descriptors to monitor files. That plus the enormous amount of bookkeeping that watchdog needs to do in order to monitor file descriptors just makes this a painful way to monitor files and directories. In essence, kqueue is not a very scalable way to monitor a deeply nested directory of files and directories with a large number of files.

About using watchdog with editors like Vim

Vim does not modify files unless directed to do so. It creates backup files and then swaps them in to replace the files you are editing on the disk. This means that if you use Vim to edit your files, the on-modified events for those files will not be triggered by watchdog. You may need to configure Vim 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.6 or above.

  2. XCode (only on macOS when installing from sources)

  3. PyYAML (only for watchmedo)

  4. argh (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:

Changelog

2.1.4

2021-08-19 • full history

  • [watchmedo] Fix usage of os.setsid() and os.killpg() Unix-only functions. (#809)

  • [mac] Fix missing FileModifiedEvent on permission or ownership changes of a file. (#815)

  • [mac] Convert absolute watch path in FSEeventsEmitter with os.path.realpath(). (#822)

  • Fix a possible AttributeError in SkipRepeatsQueue._put(). (#818)

  • Allow overriding or adding custom event handlers to event dispatch map. (#814)

  • Fix tests on big endian platforms. (#828)

  • Thanks to our beloved contributors: @replabrobin, @BoboTiG, @SamSchott, @AndreiB97, @NiklasRosenstein, @ikokollari, @mgorny

2.1.3

2021-06-26 • full history

  • Publish macOS arm64 and universal2 wheels. (#740)

  • Thanks to our beloved contributors: @kainjow, @BoboTiG

2.1.2

2021-05-19 • full history

  • [mac] Fix relative path handling for non-recursive watch. (#797)

  • [windows] On PyPy, events happening right after start() were missed. Add a workaround for that. (#796)

  • Thanks to our beloved contributors: @oprypin, @CCP-Aporia, @BoboTiG

2.1.1

2021-05-10 • full history

  • [mac] Fix callback exceptions when the watcher is deleted but still receiving events (#786)

  • Thanks to our beloved contributors: @rom1win, @BoboTiG, @CCP-Aporia

2.1.0

2021-05-04 • full history

  • [inotify] Simplify libc loading (#776)

  • [mac] Add support for non-recursive watches in FSEventsEmitter (#779)

  • [watchmedo] Add support for --debug-force-* arguments to tricks (#781)

  • Thanks to our beloved contributors: @CCP-Aporia, @aodj, @UnitedMarsupials, @BoboTiG

2.0.3

2021-04-22 • full history

  • [mac] Use logger.debug() instead of logger.info() (#774)

  • Updated documentation links (#777)

  • Thanks to our beloved contributors: @globau, @imba-tjd, @BoboTiG

2.0.2

2021-02-22 • full history

  • [mac] Add missing exception objects (#766)

  • Thanks to our beloved contributors: @CCP-Aporia, @BoboTiG

2.0.1

2021-02-17 • full history

  • [mac] Fix a segmentation fault when dealing with unicode paths (#763)

  • Moved the CI from Travis-CI to GitHub Actions (#764)

  • Thanks to our beloved contributors: @SamSchott, @BoboTiG

2.0.0

2021-02-11 • full history

  • Avoid deprecated PyEval_InitThreads on Python 3.7+ (#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, #245, #280, #313, #690)

  • [inotify] Allow to stop the emitter multiple times (#760)

  • [mac] Support coalesced filesystem events (#734)

  • [mac] Drop support for macOS 10.12 and earlier (#750)

  • [mac] Fix an issue when renaming an item changes only the casing (#750)

  • Thanks to our beloved contributors: @bstaletic, @lukassup, @ysard, @SamSchott, @CCP-Aporia, @BoboTiG

1.0.2

2020-12-18 • full history

1.0.1

2020-12-10 • Fix version with good metadatas.

1.0.0

2020-12-10 • full history

  • Versioning is now following the semver

  • Drop support for Python 2.7, 3.4 and 3.5

  • [mac] Regression fixes for native fsevents (#717)

  • [windows] winapi.BUFFER_SIZE now defaults to 64000 (instead of 2048) (#700)

  • [windows] Introduced winapi.PATH_BUFFER_SIZE (defaults to 2048) to keep the old behavior with path-realted functions (#700)

  • Use pathlib from the standard library, instead of pathtools (#556)

  • Allow file paths on Unix that don’t follow the file system encoding (#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

  • Add logger parameter for the LoggingEventHandler (#676)

  • Replace mutable default arguments with if None implementation (#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)

  • [mac] Prevent compilation of watchdog_fsevents.c on non-macOS machines (#687)

  • [watchmedo] Handle shutdown events from SIGTERM and SIGINT more reliably (#693)

  • Thanks to our beloved contributors: @Sraw, @CCP-Aporia, @BoboTiG, @maybe-sybr

0.10.3

2020-06-25 • full history

  • Ensure ObservedWatch.path is a string (#651)

  • [inotify] Allow to monitor single file (#655)

  • [inotify] Prevent raising an exception when a file in a monitored folder has no permissions (#669, #670)

  • Thanks to our beloved contributors: @brant-ruan, @rec, @andfoy, @BoboTiG

0.10.2

2020-02-08 • full history

  • Fixed the build_ext command on macOS Catalina (#628)

  • Fixed the installation of macOS requirements on non-macOS OSes (#635)

  • Refactored dispatch() method of FileSystemEventHandler, PatternMatchingEventHandler and RegexMatchingEventHandler

  • [bsd] Improved tests support on non Windows/Linux platforms (#633, #639)

  • [bsd] Added FreeBSD CI support (#532)

  • [bsd] Restored full support (#638, #641)

  • Thanks to our beloved contributors: @BoboTiG, @evilham, @danilobellini

0.10.1

2020-01-30 • full history

  • Fixed Python 2.7 to 3.6 installation when the OS locale is set to POSIX (#615)

  • Fixed the build_ext command on macOS (#618, #620)

  • Moved requirements to setup.cfg (#617)

  • [mac] Removed old C code for Python 2.5 in the fsevents C implementation

  • [snapshot] Added EmptyDirectorySnapshot (#613)

  • Thanks to our beloved contributors: @Ajordat, @tehkirill, @BoboTiG

0.10.0

2020-01-26 • full history

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)

  • Use os.scandir() to improve memory usage (#503)

  • [bsd] Fixed flavors of FreeBSD detection (#529)

  • [bsd] Skip unprocessable socket files (#509)

  • [inotify] Fixed events containing non-ASCII characters (#516)

  • [inotify] Fixed the way OSError are re-raised (#377)

  • [inotify] Fixed wrong source path after renaming a top level folder (#515)

  • [inotify] Removed delay from non-move events (#477)

  • [mac] Fixed a bug when calling FSEventsEmitter.stop() twice (#466)

  • [mac] Support for unscheduling deleted watch (#541)

  • [mac] Fixed missing field initializers and unused parameters in watchdog_fsevents.c

  • [snapshot] Don’t walk directories without read permissions (#408)

  • [snapshot] Fixed a race condition crash when a directory is swapped for a file (#513)

  • [snasphot] Fixed an AttributeError about forgotten path_for_inode attr (#436)

  • [snasphot] Added the ignore_device=False parameter to the ctor (597)

  • [watchmedo] Fixed the path separator used (#478)

  • [watchmedo] Fixed the use of yaml.load() for yaml.safe_load() (#453)

  • [watchmedo] Handle all available signals (#549)

  • [watchmedo] Added the --debug-force-polling argument (#404)

  • [windows] Fixed issues when the observed directory is deleted (#570 and #601)

  • [windows] WindowsApiEmitter made easier to subclass (#344)

  • [windows] Use separate ctypes DLL instances

  • [windows] Generate sub created events only if recursive=True (#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

  • Deleting the observed directory now emits a DirDeletedEvent event

  • [bsd] Improved the platform detection (#378)

  • [inotify] Fixed a crash when the root directory being watched by was deleted (#374)

  • [inotify] Handle systems providing uClibc

  • [linux] Fixed a possible DirDeletedEvent duplication when deleting a directory

  • [mac] Fixed unicode path handling fsevents2.py (#298)

  • [watchmedo] Added the --debug-force-polling argument (#336)

  • [windows] Fixed the FILE_LIST_DIRECTORY constant (#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

  • Fixed the use of the root logger (#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

  • Event emitters are no longer started on schedule if Observer is not already running

  • [mac] Fixed usued arguments to pass clang compilation (#265)

  • [snapshot] Fixed a possible race condition crash on directory deletion (#281)

  • [windows] Fixed an error when watching the same folder again (#270)

  • Thanks to our beloved contributors: @tamland, @apetrone, @Falldog, @theospears

0.8.1

2014-07-28 • full history

  • Fixed anon_inode descriptors leakage (#249)

  • [inotify] Fixed thread stop dead lock (#250)

  • Thanks to our beloved contributors: @Witos, @adiroiban, @tamland

0.8.0

2014-07-02 • full history

  • Fixed argh deprecation warnings (#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)

  • [watchmedo] Added the --no-parallel argument (#227)

  • [windows] Fixed the value of INVALID_HANDLE_VALUE (#123)

  • [windows] Fixed octal usages to work with Python 3 as well (#223)

  • Thanks to our beloved contributors: @tamland, @Ormod, @berdario, @cro, @BernieSumption, @pypingou, @gotcha, @tommorris, @frewsxcv

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

watchdog-2.1.4.tar.gz (113.4 kB view details)

Uploaded Source

Built Distributions

watchdog-2.1.4-py3-none-win_ia64.whl (75.5 kB view details)

Uploaded Python 3 Windows ia64

watchdog-2.1.4-py3-none-win_amd64.whl (75.5 kB view details)

Uploaded Python 3 Windows x86-64

watchdog-2.1.4-py3-none-win32.whl (75.5 kB view details)

Uploaded Python 3 Windows x86

watchdog-2.1.4-py3-none-manylinux2014_x86_64.whl (75.5 kB view details)

Uploaded Python 3

watchdog-2.1.4-py3-none-manylinux2014_s390x.whl (75.5 kB view details)

Uploaded Python 3

watchdog-2.1.4-py3-none-manylinux2014_ppc64le.whl (75.5 kB view details)

Uploaded Python 3

watchdog-2.1.4-py3-none-manylinux2014_ppc64.whl (75.5 kB view details)

Uploaded Python 3

watchdog-2.1.4-py3-none-manylinux2014_i686.whl (75.5 kB view details)

Uploaded Python 3

watchdog-2.1.4-py3-none-manylinux2014_armv7l.whl (75.5 kB view details)

Uploaded Python 3

watchdog-2.1.4-py3-none-manylinux2014_aarch64.whl (75.5 kB view details)

Uploaded Python 3

watchdog-2.1.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (83.9 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

watchdog-2.1.4-cp310-cp310-macosx_11_0_arm64.whl (85.2 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

watchdog-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl (84.6 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

watchdog-2.1.4-cp310-cp310-macosx_10_9_universal2.whl (94.0 kB view details)

Uploaded CPython 3.10 macOS 10.9+ universal2 (ARM64, x86-64)

watchdog-2.1.4-cp39-cp39-macosx_11_0_arm64.whl (85.2 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

watchdog-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl (84.6 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

watchdog-2.1.4-cp39-cp39-macosx_10_9_universal2.whl (94.0 kB view details)

Uploaded CPython 3.9 macOS 10.9+ universal2 (ARM64, x86-64)

watchdog-2.1.4-cp38-cp38-macosx_11_0_arm64.whl (85.2 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

watchdog-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl (84.6 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

watchdog-2.1.4-cp38-cp38-macosx_10_9_universal2.whl (94.0 kB view details)

Uploaded CPython 3.8 macOS 10.9+ universal2 (ARM64, x86-64)

watchdog-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl (84.6 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

watchdog-2.1.4-cp36-cp36m-macosx_10_9_x86_64.whl (84.6 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file watchdog-2.1.4.tar.gz.

File metadata

  • Download URL: watchdog-2.1.4.tar.gz
  • Upload date:
  • Size: 113.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4.tar.gz
Algorithm Hash digest
SHA256 438efbbd929b6436add7ce89f3466ca836f31588220433efeb757b5947a9c979
MD5 55ac5ec24aab397abe4f812154eb8c0b
BLAKE2b-256 0e7e799a121f862fcaaf90de1dfb542e88c9113a3e2823ce80f0f755e41203c9

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-win_ia64.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-win_ia64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3, Windows ia64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-win_ia64.whl
Algorithm Hash digest
SHA256 6c58d1cbf01884602afcbc631f79f709812e20ec100a6526c91895d3238d4474
MD5 b5a11d672336b7c6b5a263f1fc03af13
BLAKE2b-256 a249748b8fbfdf1b6708e74f57639dd587065a7b4b9f1855cbcf3513697a5def

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-win_amd64.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-win_amd64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a56c7631dde228d81834466ebf4ebcc8996678b0f794e3e6dc401e9e71e9388d
MD5 42418759a60fa204efb85a237cb27958
BLAKE2b-256 ba1857fd86237923b43ebc9f67742948a4304a9deed63489336a164477820825

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-win32.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-win32.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-win32.whl
Algorithm Hash digest
SHA256 47480f3a82694fe1f4d552b3da8420fecfc5273ba7996d7ceadd838d1970b31a
MD5 8d93ede7441808d9a9a7d583444d27db
BLAKE2b-256 905643fe9ef7e8ee63d5a8a832c525a4b7b9852c9647f22a6a09a5d0d4ecba9a

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-manylinux2014_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 afb03a13c8a75a74f2894a313298ee95ff09fba1f02081ead249e790a5304a18
MD5 49c378197e06ea5b52838a317bd06536
BLAKE2b-256 28260bdae3a1ce9fecfc462b4468410c9146b2e62de7dae720aa4f9e03ce5095

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-manylinux2014_s390x.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-manylinux2014_s390x.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 0d4602a93e404b3b01e249297ce950ed249295a0c124cdb4b3fbc696032918fb
MD5 6ae028a77ba6ebccd202861a8a6a9332
BLAKE2b-256 a13cc1e406f19bb302ab80997633b5b1d40f52370747525bf3d15666f58b077f

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-manylinux2014_ppc64le.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 536bca6bc9661279310e5946ad4c2dfa5b2b1624e44a7acdf8cb37a10cc45f00
MD5 0b05956940c17f6dcdb8f215ed8d1662
BLAKE2b-256 117a059dded9c46fda400d680ee73eafced8cd451486d811a7181daa1b02f26d

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-manylinux2014_ppc64.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-manylinux2014_ppc64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 2cca4c2725112d5a8b5b89ea24a51dad702db7048ae08dba0435b2c382f08e6d
MD5 ebc98d77f14b77566d879b23e6af3df4
BLAKE2b-256 cd98069731f0e931fd0ff6e3735224831bbc56e90bc5e92fe30e40a7aea9a14d

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-manylinux2014_i686.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-manylinux2014_i686.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 60785287032cc2cbd428486c0ff0a4b5c098d1ad256449ffe5fdd69657f5a126
MD5 1a4ed9463f5ca86de026931774ab9c0f
BLAKE2b-256 a88fa15a137e26481e2145d2f455dbbe564ef56354acff86aa01892b863dd308

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-manylinux2014_armv7l.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-manylinux2014_armv7l.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 73782538f9ab7d0fc1f78abd34fe94feea119bd2644c2659d71068d7252a774e
MD5 32f0e85f2aa46a4749173dfc27c74f59
BLAKE2b-256 26b1436f47e39076f1d68f2bd618bf4a8b63bae805df58c1dd77990285840b9d

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-py3-none-manylinux2014_aarch64.whl.

File metadata

  • Download URL: watchdog-2.1.4-py3-none-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 75.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 becbe589b63891cfaa24afe8e31fa7ac0d541701644767c9c28f14da1d5489b7
MD5 eb9a2f4106a895e167c09b0538403276
BLAKE2b-256 11499212d6a271d834d0a7618db937a97f93d9591d3c89f8471f249bbc762dc1

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 83.9 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9b332a20029ebdff605829219fe858070b128471d60a9b6cc4797bb167fe22ff
MD5 07ab02502b78eec5eeb0ef44e1713290
BLAKE2b-256 6fff59f40461b9414d9608d22e71606db74ae09aa016f5c749a60ea6c73aa4a6

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp310-cp310-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 85.2 kB
  • Tags: CPython 3.10, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 34e1517e745b223eb682d09a7ba2532cbb55ce9c8c778daba0955e1af37c903e
MD5 2509e7673d0277630419a14858310008
BLAKE2b-256 a1e382c6430f68ecb1170a0b2df9e39546cdfd21e67bdaee55d096e15f2ce593

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.6 kB
  • Tags: CPython 3.10, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1dd5e0e1577a0f3362f6ab986264d9695e40dfba247b994a522bfab254544fc1
MD5 3f82d395b90a1552c2e85f7def8f6de8
BLAKE2b-256 da3e619026474f6d505831e0792ffbf86eec7176bfbbc1c0564177b259ad73b9

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp310-cp310-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 94.0 kB
  • Tags: CPython 3.10, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 073b379d74aecc7fcba3ee8c2a7b4ac5d56deca52bd47bab024464a47c084d34
MD5 7a1c5c98c94a04cc4afe25e3acd059d8
BLAKE2b-256 a27c1d4b661191cd6e651debd995eefac63a8e6764dafa167dc76d98e0089762

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 85.2 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f743b2581c241f55b716e35b451f53076a07e15e1f2f0a83016c2ecaf6ace78e
MD5 ef403ccf14745ac26092f96bf07a6112
BLAKE2b-256 4ea4b69cb92f35ba60028ac7ac96fb6fb343450005810c13b93d7b16484ac926

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.6 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d8bd7eec21964687b2364e7ab38fda6b4567809d590a0506f74cc48b2a2dfce4
MD5 9c56a5b37a465ee1783cb0564be8f052
BLAKE2b-256 85610743750d9859108a7c7c9fdcd48bb44ea7d4355e713e55531abfb70ea5c3

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 94.0 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 39a0711a6439a6fa8d9c78c93759fbb07bc61bb06378eaa5a32148a1468a8e87
MD5 ae4e2f83d1b953a4687abe898419326e
BLAKE2b-256 46a16f3f32b6e4fd2aeabee83aff418c4f4d80fa967e28b87cea3283083ff668

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 85.2 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 9e0a159fedb9d83dee80b00759a82acd2596a3ed70247088f8a175ce46116096
MD5 4f56f234b5fe1a96842eb4e8280fe2ac
BLAKE2b-256 82ad76300e7e06e9c263026ed54386152e7bddf658b580243b22a0b05b6d8206

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.6 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 78e36af08a94325b7852827004f4bea1a9b472a532498026a4b8529189797a15
MD5 af6b4a431f814621726701ce3716609f
BLAKE2b-256 042631927e0198b38f5d0f34c76e6dec9dc2abbc3e671cf40a40134ab534b9c5

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp38-cp38-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 94.0 kB
  • Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 407524dc30d9e3bb46017987b100574eeb810d9cc50488aabf81a03ae70c4962
MD5 5f5721c82bf8a33192333186da36e479
BLAKE2b-256 f5b10360877626d6f3203a01f018bbd9462388eb65b2ce49c6064e582101623f

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.6 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e6e6b3a9920ca84d6cc22b313c87fac426e92114d1927ade2909ada3de243d45
MD5 97b8ebbdcdaf3d3623ab0266c4aa93d2
BLAKE2b-256 e174a0fc9993c827de545074d0f84a940b3949cd6845e8b2b4535eae274e4bd8

See more details on using hashes here.

File details

Details for the file watchdog-2.1.4-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.4-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.6 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.4 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.1 CPython/3.9.6

File hashes

Hashes for watchdog-2.1.4-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bee7eb674850f052599d19f1efdd4db9bc4690593462b760662a38298f1d65b4
MD5 6d457b85888ffc7cf52d53888903b980
BLAKE2b-256 a348ad7ead9f68baa96d3521ed610839e14c92c035cb25df2b767be4cf9398c9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page