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.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.3.tar.gz (109.1 kB view details)

Uploaded Source

Built Distributions

watchdog-2.1.3-py3-none-win_ia64.whl (75.0 kB view details)

Uploaded Python 3 Windows ia64

watchdog-2.1.3-py3-none-win_amd64.whl (75.0 kB view details)

Uploaded Python 3 Windows x86-64

watchdog-2.1.3-py3-none-win32.whl (75.0 kB view details)

Uploaded Python 3 Windows x86

watchdog-2.1.3-py3-none-manylinux2014_x86_64.whl (75.0 kB view details)

Uploaded Python 3

watchdog-2.1.3-py3-none-manylinux2014_s390x.whl (75.0 kB view details)

Uploaded Python 3

watchdog-2.1.3-py3-none-manylinux2014_ppc64le.whl (75.0 kB view details)

Uploaded Python 3

watchdog-2.1.3-py3-none-manylinux2014_ppc64.whl (75.0 kB view details)

Uploaded Python 3

watchdog-2.1.3-py3-none-manylinux2014_i686.whl (75.0 kB view details)

Uploaded Python 3

watchdog-2.1.3-py3-none-manylinux2014_armv7l.whl (75.0 kB view details)

Uploaded Python 3

watchdog-2.1.3-py3-none-manylinux2014_aarch64.whl (75.0 kB view details)

Uploaded Python 3

watchdog-2.1.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (83.4 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

watchdog-2.1.3-pp36-pypy36_pp73-macosx_10_9_x86_64.whl (83.4 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

watchdog-2.1.3-cp39-cp39-macosx_11_0_arm64.whl (84.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

watchdog-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl (84.1 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

watchdog-2.1.3-cp39-cp39-macosx_10_9_universal2.whl (93.5 kB view details)

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

watchdog-2.1.3-cp38-cp38-macosx_11_0_arm64.whl (84.7 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

watchdog-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl (84.1 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

watchdog-2.1.3-cp38-cp38-macosx_10_9_universal2.whl (93.5 kB view details)

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

watchdog-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl (84.1 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

watchdog-2.1.3-cp36-cp36m-macosx_10_9_x86_64.whl (84.1 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

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

File metadata

  • Download URL: watchdog-2.1.3.tar.gz
  • Upload date:
  • Size: 109.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3.tar.gz
Algorithm Hash digest
SHA256 e5236a8e8602ab6db4b873664c2d356c365ab3cac96fbdec4970ad616415dd45
MD5 3e9acce9968291fb33fd25ec4a3ee542
BLAKE2b-256 f5c2d1ff8343cd38138561d2f08aba7b0566020485346097019f3a87773c96fc

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-win_ia64.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3, Windows ia64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-win_ia64.whl
Algorithm Hash digest
SHA256 0bcdf7b99b56a3ae069866c33d247c9994ffde91b620eaf0306b27e099bd1ae0
MD5 5738f6dc193e1314cdcf9c011476fa12
BLAKE2b-256 a4439a809da05f33ccb02c3752df81266afac7185c30a17130a6b4cfa1d01d34

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-win_amd64.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 44acad6f642996a2b50bb9ce4fb3730dde08f23e79e20cd3d8e2a2076b730381
MD5 66994c8cac5f330fb5603d71d3421a8c
BLAKE2b-256 b91983a81a3a703c4feef4b4932025550d64ffd932569d1c0e9cfdbfdf43e950

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-win32.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-win32.whl
Algorithm Hash digest
SHA256 b5fc5c127bad6983eecf1ad117ab3418949f18af9c8758bd10158be3647298a9
MD5 af9121189f5406be39c6d5e667f13638
BLAKE2b-256 a7bfb48578585022860ae9b7e059b1cc7b001151231bc12c457f15043da07523

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-manylinux2014_x86_64.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 54e057727dd18bd01a3060dbf5104eb5a495ca26316487e0f32a394fd5fe725a
MD5 2145dcd7e56f7dc59361908636d593cb
BLAKE2b-256 6bd1b0a1e69af06d2f6f47a11238ca115667d858cbb30baf6b6df03f1b874163

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-manylinux2014_s390x.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 3a7d242a7963174684206093846537220ee37ba9986b824a326a8bb4ef329a33
MD5 58813611e87e779ace08788a39293e03
BLAKE2b-256 b36f246c83231209f8c977207c65fc61ff347c81759f28dcf01e144495df1ab5

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-manylinux2014_ppc64le.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 201cadf0b8c11922f54ec97482f95b2aafca429c4c3a4bb869a14f3c20c32686
MD5 4441c66fbef7afca046ab9bdda8f8e00
BLAKE2b-256 0eea68b0698aba624110db00035b3cf5776fc1d389f99d6f3010fc041611ed9e

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-manylinux2014_ppc64.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 e4929ac2aaa2e4f1a30a36751160be391911da463a8799460340901517298b13
MD5 c5143a4e156975b72b0a8c3f842683a3
BLAKE2b-256 05b07adc66053f77c21aa2325c01a84dee2f31419ad912247844838f97140ca7

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-manylinux2014_i686.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 431a3ea70b20962e6dee65f0eeecd768cd3085ea613ccb9b53c8969de9f6ebd2
MD5 ed2d03577bdc318c78bc41b467241331
BLAKE2b-256 872b7ea3ac2b61d88ec0e4fdb0f20ed8786929ce1c484cda8667ffdb8cdc04e2

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-manylinux2014_armv7l.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 3e305ea2757f81d8ebd8559d1a944ed83e3ab1bdf68bcf16ec851b97c08dc035
MD5 217c9e8bd32411f40d55c994b1e2023a
BLAKE2b-256 4b10d634b369ba1e784b95e2e2f11dbcc95b8fbbebc0587ad3ea12f9d08c7a1e

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-py3-none-manylinux2014_aarch64.whl
  • Upload date:
  • Size: 75.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 8805a5f468862daf1e4f4447b0ccf3acaff626eaa57fbb46d7960d1cf09f2e6d
MD5 d44479d42e527124b154e949de4834b4
BLAKE2b-256 0a4dbf24cae38ed5b811786eafe1f684f058766a9a6cf22612ec5174a6ec1724

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 83.4 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b8ddb2c9f92e0c686ea77341dcb58216fa5ff7d5f992c7278ee8a392a06e86bb
MD5 146e94f8a8d990fb0e879a9bcece80af
BLAKE2b-256 430fbf01fff88fdf8904c1c8a768f60724c775bd17c0ab0543b540bc0c78de98

See more details on using hashes here.

Provenance

File details

Details for the file watchdog-2.1.3-pp36-pypy36_pp73-macosx_10_9_x86_64.whl.

File metadata

  • Download URL: watchdog-2.1.3-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 83.4 kB
  • Tags: PyPy, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-pp36-pypy36_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 bf84bd94cbaad8f6b9cbaeef43080920f4cb0e61ad90af7106b3de402f5fe127
MD5 f61188b56527a53b3eae3847eadc0047
BLAKE2b-256 2051513f582bc6c436cd284712c5fe82f6e04dfa3f78b1155a5b3f0fda32ac70

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp39-cp39-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 84.7 kB
  • Tags: CPython 3.9, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 0bcfe904c7d404eb6905f7106c54873503b442e8e918cc226e1828f498bdc0ca
MD5 f8015ab161a0ea988cf00e0792ae2a46
BLAKE2b-256 c5e577830cc27989d4c3628834c1b1e492fd61c8015a8aaca2eb04ef5b695ca6

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.1 kB
  • Tags: CPython 3.9, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fd8c595d5a93abd441ee7c5bb3ff0d7170e79031520d113d6f401d0cf49d7c8f
MD5 88d6af282099cc86658b09fba68cae16
BLAKE2b-256 0de1d7a7d734c1d35ffc62ef57357cf79556b638f7a28942fcea5b754d480f6d

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp39-cp39-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 93.5 kB
  • Tags: CPython 3.9, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d9456f0433845e7153b102fffeb767bde2406b76042f2216838af3b21707894e
MD5 19933a7cb4de9460dc07e687de03f988
BLAKE2b-256 ab2d4fb2af677ee0c9c3198da779e299efbcad24e5cdd940ae4fb40ae7f8d21a

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp38-cp38-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 84.7 kB
  • Tags: CPython 3.8, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6fe9c8533e955c6589cfea6f3f0a1a95fb16867a211125236c82e1815932b5d7
MD5 77565bdf6c2c011aa5fc40e9eb1c767c
BLAKE2b-256 560cdfab6be4d229e88a9145165c015ab0c3c2c5d99ea31dbb2e7884be3d94d8

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.1 kB
  • Tags: CPython 3.8, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a12539ecf2478a94e4ba4d13476bb2c7a2e0a2080af2bb37df84d88b1b01358a
MD5 4333ab2098fe2fadf6b5c1ed6d7599dc
BLAKE2b-256 af839278622541b5288352918729abd9a83881882a469f5009fbff28bb0905cb

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp38-cp38-macosx_10_9_universal2.whl
  • Upload date:
  • Size: 93.5 kB
  • Tags: CPython 3.8, macOS 10.9+ universal2 (ARM64, x86-64)
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 85b851237cf3533fabbc034ffcd84d0fa52014b3121454e5f8b86974b531560c
MD5 7468cd8e0e12c062a75b62c912a7a970
BLAKE2b-256 ff4820ad7a5d26111456d5a91a33f9002ab884d6522ea938187492916b99f8aa

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.1 kB
  • Tags: CPython 3.7m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 acc4e2d5be6f140f02ee8590e51c002829e2c33ee199036fcd61311d558d89f4
MD5 a5a78f3e194c54b4d2595e391305e23b
BLAKE2b-256 a4497a61179530ba7d61ce77e643e2a9e0f55a5f9df25ce5d0484185f273f756

See more details on using hashes here.

Provenance

File details

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

File metadata

  • Download URL: watchdog-2.1.3-cp36-cp36m-macosx_10_9_x86_64.whl
  • Upload date:
  • Size: 84.1 kB
  • Tags: CPython 3.6m, macOS 10.9+ x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.5.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.61.1 CPython/3.9.5

File hashes

Hashes for watchdog-2.1.3-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9628f3f85375a17614a2ab5eac7665f7f7be8b6b0a2a228e6f6a2e91dd4bfe26
MD5 d182c8cf95d0db8b83f74329a77994cc
BLAKE2b-256 66e2c48cb83a1d2dfb2bc2fc4de6671456947eb6be34a1053b3bc8fe2e298c8a

See more details on using hashes here.

Provenance

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