Skip to main content

Filesystem events monitoring

Project description

Build Status CirrusCI Status

This is a fork of https://github.com/gorakhargosh/watchdog with some specific tweaks for [Callisto Jupyter D1 Servers](https://pypi.org/project/callisto-jupyter-d1/), you should install [watchdog](https://pypi.org/project/watchdog/) instead if you’re looking for a stable API

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.

Callisto Watchdog Differences

  • BaseObserver.schedule takes an exclude_dirs parameter that is a list of directories

    that watchdog will not descend into and observe, at the moment it only works on Linux. Any directory with one of those names in the directory tree will be ignored. Implementation is based on <https://github.com/gorakhargosh/watchdog/issues/212#issuecomment-1078267199>

  • This package gets published as callisto_watchdog to pypi

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 macOS, 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)

  • 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.6 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:

Changelog

2.1.10

2022-xx-xx • full history

  • [documentation] HTML documentation builds are now tested for errors.

  • Thanks to our beloved contributors: @kurtmckee

2.1.9

2022-06-10 • full history

  • [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)

  • [watchmedo] Make auto-restart restart the sub-process if it terminates. (#896)

  • [watchmedo] Avoid zombie sub-processes when running shell-command without --wait. (#405)

  • Thanks to our beloved contributors: @samschott, @taleinat, @altendky, @BoboTiG

2.1.8

2022-05-15 • full history

  • Fix adding failed emitters on observer schedule. (#872)

  • [inotify] Fix hang when unscheduling watch on a path in an unmounted filesystem. (#869)

  • [watchmedo] Fix broken parsing of --kill-after argument for the auto-restart command. (#870)

  • [watchmedo] Fix broken parsing of boolean arguments. (#887)

  • [watchmedo] Fix broken parsing of commands from auto-restart, and shell-command. (#888)

  • [watchmedo] Support setting verbosity level via -q/--quiet and -v/--verbose arguments. (#889)

  • Thanks to our beloved contributors: @taleinat, @kianmeng, @palfrey, @IlayRosenberg, @BoboTiG

2.1.7

2022-03-25 • full history

  • Eliminate timeout in waiting on event queue. (#861)

  • [inotify] Fix not equality implementation for InotifyEvent. (#848)

  • [watchmedo] Fix calling commands from within a Python script. (#879)

  • [watchmedo] PyYAML is loaded only when strictly necessary. Simple usages of watchmedo are possible without the module being installed. (#847)

  • Thanks to our beloved contributors: @sattlerc, @JanzenLiu, @BoboTiG

2.1.6

2021-10-01 • full history

  • [bsd] Fixed returned paths in kqueue.py and restored the overall results of the test suite. (#842)

  • [bsd] Updated FreeBSD CI support .(#841)

  • [watchmedo] Removed the argh dependency in favor of the builtin argparse module. (#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

  • Fix regression introduced in 2.1.4 (reverted “Allow overriding or adding custom event handlers to event dispatch map. (#814)”). (#830)

  • Convert regexes of type str to list. (831)

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

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

  • Wheels are published for GNU/Linux, macOS and Windows (#739)

  • [mac] Fix missing event_id attribute in fsevents (#721)

  • [mac] Return byte paths if a byte path was given in fsevents (#726)

  • [mac] Add compatibility with old macOS versions (#733)

  • Uniformize event for deletion of watched dir (#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

  • 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

callisto_watchdog-0.0.1.tar.gz (118.9 kB view details)

Uploaded Source

Built Distributions

callisto_watchdog-0.0.1-py3-none-win_ia64.whl (79.2 kB view details)

Uploaded Python 3 Windows ia64

callisto_watchdog-0.0.1-py3-none-win_amd64.whl (79.2 kB view details)

Uploaded Python 3 Windows x86-64

callisto_watchdog-0.0.1-py3-none-win32.whl (79.1 kB view details)

Uploaded Python 3 Windows x86

callisto_watchdog-0.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl (87.5 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

callisto_watchdog-0.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl (87.5 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

callisto_watchdog-0.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl (87.5 kB view details)

Uploaded PyPy macOS 10.9+ x86-64

callisto_watchdog-0.0.1-cp311-cp311-macosx_11_0_arm64.whl (88.8 kB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

callisto_watchdog-0.0.1-cp311-cp311-macosx_10_9_x86_64.whl (88.3 kB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

callisto_watchdog-0.0.1-cp311-cp311-macosx_10_9_universal2.whl (97.6 kB view details)

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

callisto_watchdog-0.0.1-cp310-cp310-macosx_11_0_arm64.whl (88.8 kB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

callisto_watchdog-0.0.1-cp310-cp310-macosx_10_9_x86_64.whl (88.3 kB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

callisto_watchdog-0.0.1-cp310-cp310-macosx_10_9_universal2.whl (97.6 kB view details)

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

callisto_watchdog-0.0.1-cp39-cp39-macosx_11_0_arm64.whl (88.8 kB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

callisto_watchdog-0.0.1-cp39-cp39-macosx_10_9_x86_64.whl (88.3 kB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

callisto_watchdog-0.0.1-cp39-cp39-macosx_10_9_universal2.whl (97.6 kB view details)

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

callisto_watchdog-0.0.1-cp38-cp38-macosx_11_0_arm64.whl (88.8 kB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

callisto_watchdog-0.0.1-cp38-cp38-macosx_10_9_x86_64.whl (88.2 kB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

callisto_watchdog-0.0.1-cp38-cp38-macosx_10_9_universal2.whl (97.6 kB view details)

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

callisto_watchdog-0.0.1-cp37-cp37m-macosx_10_9_x86_64.whl (88.2 kB view details)

Uploaded CPython 3.7m macOS 10.9+ x86-64

callisto_watchdog-0.0.1-cp36-cp36m-macosx_10_9_x86_64.whl (88.3 kB view details)

Uploaded CPython 3.6m macOS 10.9+ x86-64

File details

Details for the file callisto_watchdog-0.0.1.tar.gz.

File metadata

  • Download URL: callisto_watchdog-0.0.1.tar.gz
  • Upload date:
  • Size: 118.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.9.13

File hashes

Hashes for callisto_watchdog-0.0.1.tar.gz
Algorithm Hash digest
SHA256 f59d70011fc9b66982a4b3b30d8a0d2b79219e6d75b11241d4b90be0a8f7c676
MD5 4781e7216f3efad8f1cac89ba928b9f4
BLAKE2b-256 faf65b71752ec8699e30a0740ad5df3e44a4fec8f683ec1e86750bd7c93f80de

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-win_ia64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-win_ia64.whl
Algorithm Hash digest
SHA256 f3beb0d1fdfe5d8439c4863d0632eef3781bf9880d93216f4b8d64d6b8e090c9
MD5 5ff024c005d7ee4c65617426e1804e80
BLAKE2b-256 bc00f07c241d9127c528d0f0fc7e9eb1fbe3e901a1f0ed8fb4061b5b42cc6f03

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 38a79dbee0aeb14f4d952a0cd4c776b1a44b884455a2cf083561418f8572bd5c
MD5 ab2f0bc7bf383e58a50380619f069ce5
BLAKE2b-256 71390cfb5bf1f7e99073dc886a54a8b468c60ad900b5745bc48b3e9ded537f58

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-win32.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-win32.whl
Algorithm Hash digest
SHA256 a2c62e6b1e6d5a16c6c7e6264f2c6ca5e2816db5957ca5b77a435e9c90b76dcf
MD5 8a2b620e8e2597d64930be71e666c5ca
BLAKE2b-256 e4d0cda3885d000726280d31ab846167a04024eb786b07310d3607466e740349

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ff538dbd34122be76d218d7e08e65ec429f76c9f5b3d590f082ff5f665447106
MD5 9c05358e68aff04de3f93c05f8fec627
BLAKE2b-256 217344d6fbd44686563278dc7cf80a19e07afdb43811db87d517772d11eef080

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-manylinux2014_s390x.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-manylinux2014_s390x.whl
Algorithm Hash digest
SHA256 45dd3ae87d78afe9a90665dfe4243d0fa31e1df99cb944a33dab74edd6c4514c
MD5 ddcd26ea24ae2abc2c327a7b07b0badd
BLAKE2b-256 abaa52b3d2f745e1a4d311fda0657644ebfa9a1ab52866f5891b08eea0ac9c7e

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-manylinux2014_ppc64le.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-manylinux2014_ppc64le.whl
Algorithm Hash digest
SHA256 4be544c765a121d63ec143f04997848e94e16e89a77f5244a2407fb2f0c061ff
MD5 a45a393646f9a8ba44a43b08a6969cf0
BLAKE2b-256 5aaed1833058bfe2dfe4e8fc9b3d7822d875f4ac98bfd46227a26afc3e530499

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-manylinux2014_ppc64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-manylinux2014_ppc64.whl
Algorithm Hash digest
SHA256 0662c9cc20c1a9199e94e793060d14dfed68e5505807f4dd2b030cb3cde3d0dc
MD5 03e0e36d36b26d256129dfe03b37d905
BLAKE2b-256 d11e39381edef208e2654978188f8854a8dfe1a844807382a89890814a1c3f3e

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-manylinux2014_i686.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-manylinux2014_i686.whl
Algorithm Hash digest
SHA256 60d4f850713d6844e432d7b297732be88e9c86cbe600ee7decacf6110065dab3
MD5 0db3b1d96bf874275091b4ec37b6bdf1
BLAKE2b-256 219dc85790735a23b5ab0bd2d49b21de4afb2b11582f1d1c519542246fc01c0f

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 dd3736b791634fc2d54f49e26e993d3476e684d88e3d1afdcbc072974f37cf92
MD5 80046258b54eca99b4d7364d2e50ac36
BLAKE2b-256 2bec3d8dc21433fc8b9a7825a1e6a9ddd00df7ab1c76be3a6ed9a75467445aca

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-py3-none-manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-py3-none-manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 dd28169ab3609cf90fc5cc54081e86ebf95207c1663fd4cb779cd1a810138cc8
MD5 d6917cb43f0005f3a5c3a29fc03f1c72
BLAKE2b-256 d9da21d2dc18a51decd6bb70ada273f2fb3b0309ed8993ddc49f6bfe4efe0956

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3c25fc8f02ffd271f4e70d46b4a219dcd7357cb889fdc497116d11a6d7692b7d
MD5 9de025a0ac6091ca2d026bb5d686babc
BLAKE2b-256 af7a2deba996e02934a322a0cc3f306527042b15e125c6e201e774cb9a962797

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 aea9e53e992722dc46c04ad24171d19c780fccfc544f0ca11ba2616294a9ec77
MD5 a679d230c9219e04360ba8d3761ac368
BLAKE2b-256 9d1f820f93ff26955e2da9e410e20559a5566f31a3f97d6d7b199ec43dda387f

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 351d2681bf7f93a2c6fa0d9263fcf09d1fba082927135e951d5410d11d48ff9e
MD5 a8254c2ee99d9cd8a730ae68a09c2f2b
BLAKE2b-256 6858926f24a36d9cfb882ce51083052763eb8df5779cf511b0acd14865f03da6

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1b7408c83b13f925363741b98f8bb86480afc063f649038a2d31b0df667c327b
MD5 126a229546f85892fda52a34c8e15491
BLAKE2b-256 96f3e11a0c7946b0a058cb85c0d9853a77eb1b3f8366e02a97741e91977c675f

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 cef49f78284daed9fa70a1b87baa52d42f62edbba493d6372805d4743da4d1f8
MD5 c778cdb69426c51dc57d4273452a17e9
BLAKE2b-256 cd66682d10cd5eaa08af57ffd3043fdeb560c742898c2ff145e190facb028129

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b154439173120032b36d057c78dc9f857743840140a512e7bf2a454bf17cce93
MD5 d336c344fddaa3fefe2b6333af7a280c
BLAKE2b-256 d4ede12a8b896e6f87bfb35935584959c120125f508437e08b08a98cd4b43798

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f97bb8bb532971294edf4a9b9d6f7d2071e72b1597bea30d67d6f48b61442b00
MD5 b28538addf3706f7fce455dd68895af3
BLAKE2b-256 b35efe3716bb5ae2649111bcd455c54a512ea0c9aacc65712c3f71f2fa8c4dfb

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 1514b87127d705db30fdf1a72404a9df6d9e0efe3b5df78c6413e9a571a6a322
MD5 f1975625486dea68be3162e17d0923a0
BLAKE2b-256 79f182d76e345a66512013ee6fdb0fadc4ff7ad78f01e6393b9f1c473aed2efc

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 d774ea0b03dc151b333183a4df0f372f12f81a3ae04392ce41b9ec92ea40cdbe
MD5 5af543e3008e8755277bcd2ba3015f39
BLAKE2b-256 04deada914d7487563811a8824b1857e53d5ace6b20861a1e5f44013689d3d28

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d9758db44cd1d84152cfe3c895b52e7d4b84543b08e8b1474877ee6e7a35c015
MD5 225241c7f6376e3cb7726135487c3650
BLAKE2b-256 aa39b413e451c0e655795897ff55c9614da90f2051a05d88bcbdb4596a12adac

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 71ab1aa9fa2312c6d19971b602918d65f6ff4a54c386d5f5b1e57e7149140c78
MD5 9189d15801ce84dc98af058cf315454c
BLAKE2b-256 a66cdd3efaa8859c2a7692d7b685eeff90c7955fc5023e7da79bf799af8e33cd

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 aaa05cd23d7a070015aa2614238ee8679d5d463b42668724d2a590fa8198d56d
MD5 6b64a7f5fa11ae62a52537dee862902c
BLAKE2b-256 60972a9646fe93c47d14d05b3bd7caa8dac6d191445610c81490cbeab7da16c3

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ce070485275c54da06095bf0ded469f7f163fc4d83e71ab1cc0415be4926caa9
MD5 e8fb92e1a322b58457690989a2d556e5
BLAKE2b-256 fe1c70bec270d00a36f71cce2f2109429271efaced7d092fe2578496ce7b8910

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d7203811238473a4a6b7a4df57de3cc9355b25ca82389cf8ae81eca752b5fb53
MD5 7f12813f471a79cf970d918c7759649d
BLAKE2b-256 92b8d165bffcf83d0a8d63552aa5a38eabada70ef05a9a8f7315eb39ebbdd416

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 c425ff6a706df5ecc2b3e0b16bb64aa8d629c755a5c8083976bd162d82e6101f
MD5 dccbd932bb1178064d46d893fab0c464
BLAKE2b-256 9c3826921f229659030a830771bfd1a581626dac262ed63dee6f742dabeca132

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp37-cp37m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e7c2646d76b153480e8779b71fe86c0459d00c3686defbc39f1560cd9d2226ec
MD5 c0b60052742ff35642d2d9971025a83f
BLAKE2b-256 25020384d666f923b9f83e9dbd9583269dc041a4621b36d944a398cdef554c5c

See more details on using hashes here.

File details

Details for the file callisto_watchdog-0.0.1-cp36-cp36m-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for callisto_watchdog-0.0.1-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 92f4b91e78c15ae3a5d09e7b46a38e665199e14c747ecab8cb0cc234c8dd6d36
MD5 292260017f98477b436fa68ee8da8141
BLAKE2b-256 135f056a37aff97f1a74e658276ace51af81fb53ed60a7ab0d65131921531c0d

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