Skip to main content

A high level abstraction above native file system watcher APIs (like inotify, fanotify, etc)

Project description

kanshipy

An easy-to-use, efficient, and performant filesystem watcher

Kanshipy is a high level abstraction above native file system watcher APIs (like inotify, fanotify, etc).

Kanshi listens for events on a separate thread from the Rust side. As such, it functions asyncronously even in syncronous contexts. This library does not function any differently when run in a normal context or using asyncio. All subscriptions will be notified whenever an event is received on the Rust side.

Supported Platforms

  1. Linux
  2. Darwin (MacOS) - Core Services' File System Events API

Kanshi.js currently does not support Windows. Windows support is planned.

Installation

$ pip install kanshipy

Usage

from kanshipy import KanshiPy
import time

# Set up a callback. Your callback can be any Python Callable.
def on_event(event):
  print("Received an event:")
  print(f"Type: {event.event_type}")
  print(f"Path: {event.target.path}")
  print(f"Target Kind: {event.target.kind}")

# Create Kanshi Instance
kanshi = KanshiPy()

# Watch "my_directory"
kanshi.watch("./my_directory")

# Subscribe to file system events
kanshi.subscribe(on_event)

# Start the Kanshi listener
kanshi.start()

# Wait 10 seconds
time.sleep(10)

# Close the Kanshi Listener
kanshi.close()

Docs

Kanshipy exports 3 classes: KanshiPy, KanshiEvent and KanshiEventTarget. The Kanshi constructor optionally takes the following parameters:

from kanshipy import KanshiPy

kanshi = KanshiPy(
  force_engine="fanotify"
)
  • force_engine - Forces Kanshi to use a specific underlying engine. Accepted values depends on your environment. This option is currently only useful on Linux.

On Linux, Kanshi will use inotify for non-root users, and fanotify for root users. Fanotify is more performant than inotify, however requires Root (or CAP_SYS_ADMIN) privileges. If you want Kanshi running as Root to use inotify, or an unprivileged Kanshi to use Fanotify, the force_engine option would be useful.

On MacOS, force_engine is useless as it only accepts fsevents. I may choose to support the kqueue interface from FreeBSD at some point, in which this option will allow you to use kqueue over fsevents. Apple currently encourages the use of their Core Services File System Events API (fsevents) here.

kanshi.watch(dir: str)

Watches the specified directory. The dir can be an absolute path or a relative path.

kan = KanshiPy()

try:
  kan.watch(".")
except RuntimeError e:
  print("An error occurred watching the directory: " + e)

This method is a syncronous error that returns None. It is possible for this method to raise a RuntimeError. A RuntimeError usually occurs if the directory you're trying to watch doesn't exist, or if you lack the permissions to watch the directory.

kanshi.subscribe(callback: Callable[[KanshiEvent], None])

Subscribes to this Kanshi instance. Use this to receive events from your Kanshi listener.

The callback argument can be any python object that conforms to Callable. This includes pure functions, class methods and lambdas.

The callback callable should conform to this signature: callback(event: KanshiEvent).

KanshiEvent has the following properties:

  • event_type - Can be "move", "create", "delete", "moved_from", "moved_to", "modify", "unknown"
  • target - A KanshiEventTarget instance. This can be None.

KanshiEventTarget has the following properties:

  • path - Absolute path to the directory item that produced the event.
  • kind - The kind of directory item that produced the event. This can be "directory" or "file".
  • previous_path - This is None unless the event_type is "moved_from", in which this will contain the absolute path of the file's previous location.
  • new_path - This is None unless the event_type is "moved_to", in which this will contain the absolute path of the file's new location.

All events types except for "unknown" is expected to have a target. An "unknown" event shouldn't occur in normal usage. Please open an issue if you encountered an "unknown" event.

There are 3 possible move eventTypes that Kanshi can produce:

  1. moved_to - The directory item that exists at path has been moved to another watched location. The item's new location can be accessed at event.target.moved_to.
  2. moved_from - The directory item that exists at path was moved from another watched location. The item's old location can be accessed at event.target.moved_from.
  3. move - This has 2 possible meanings:
    1. The directory item that exists at path was moved somewhere else that is not currently watched.
    2. The directory item at path was just moved here from somewhere else that is not currently watched.

Example:

Given a directory tree of:

- index.js
- folderA
| - hello.txt
- folderB
| - byebye.txt

main.py:

from kanshipy import KanshiPy
import os

kan = KanshiPy()

def on_event(event):
  print("Received an event:")
  print(f"Type: {event.event_type}")
  print(f"Path: {event.target.path}")
  print(f"Target Kind: {event.target.kind}")

kan.subscribe(on_event)
kan.watch("./folderA")
kan.start()

# This will cause a "moved_to" THEN a "moved_from" event
os.rename("./folderA/hello.txt", "./folderA/howdy.txt");

# This will cause a "move" event where "path" is "folderA/howdy.txt"
os.rename("./folderA/howdy.txt", "./folderB/howdy.txt");

# This will cause a "move" event where "path" is "folderA/adios.txt"
os.rename("./folderB/byebye.txt", "./folderA/adios.txt");

kanshi.start()

This method starts the Kanshi listener.

from kanshipy import KanshiPy

kan = KanshiPy()

kan.watch(".")
kan.start()

Once a Kanshi instance has been started, you cannot watch any new directories.

kanshi.close() -> boolean

This method closes the Kanshi listener. Calling this method will deregister all event listeners.

Once a Kanshi instance is closed, it cannot be reused.

Contributing

PRs are welcomed! Any help is appreciated. Please refer to the main Kanshi project for more information.

License

Copyright © 2025, Carl Ian Voller. Released under the BSD-3-Clause License.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

kanshipy-0.0.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

kanshipy-0.0.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

kanshipy-0.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

kanshipy-0.0.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

kanshipy-0.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded PyPymusllinux: musl 1.2+ x86-64

kanshipy-0.0.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded PyPymusllinux: musl 1.2+ ARM64

kanshipy-0.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded PyPymanylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ x86-64

kanshipy-0.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.13tmusllinux: musl 1.2+ ARM64

kanshipy-0.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.13tmanylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-cp313-cp313-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ x86-64

kanshipy-0.0.1-cp313-cp313-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.13musllinux: musl 1.2+ ARM64

kanshipy-0.0.1-cp313-cp313-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-cp313-cp313-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-cp313-cp313-macosx_11_0_arm64.whl (371.4 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

kanshipy-0.0.1-cp313-cp313-macosx_10_12_x86_64.whl (383.1 kB view details)

Uploaded CPython 3.13macOS 10.12+ x86-64

kanshipy-0.0.1-cp312-cp312-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ x86-64

kanshipy-0.0.1-cp312-cp312-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.12musllinux: musl 1.2+ ARM64

kanshipy-0.0.1-cp312-cp312-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-cp312-cp312-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-cp312-cp312-macosx_11_0_arm64.whl (371.8 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

kanshipy-0.0.1-cp312-cp312-macosx_10_12_x86_64.whl (383.3 kB view details)

Uploaded CPython 3.12macOS 10.12+ x86-64

kanshipy-0.0.1-cp311-cp311-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ x86-64

kanshipy-0.0.1-cp311-cp311-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.11musllinux: musl 1.2+ ARM64

kanshipy-0.0.1-cp311-cp311-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-cp311-cp311-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-cp311-cp311-macosx_11_0_arm64.whl (375.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

kanshipy-0.0.1-cp311-cp311-macosx_10_12_x86_64.whl (385.9 kB view details)

Uploaded CPython 3.11macOS 10.12+ x86-64

kanshipy-0.0.1-cp310-cp310-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ x86-64

kanshipy-0.0.1-cp310-cp310-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.10musllinux: musl 1.2+ ARM64

kanshipy-0.0.1-cp310-cp310-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-cp310-cp310-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-cp39-cp39-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ x86-64

kanshipy-0.0.1-cp39-cp39-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.9musllinux: musl 1.2+ ARM64

kanshipy-0.0.1-cp39-cp39-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-cp39-cp39-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.28+ ARM64

kanshipy-0.0.1-cp38-cp38-musllinux_1_2_x86_64.whl (3.0 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ x86-64

kanshipy-0.0.1-cp38-cp38-musllinux_1_2_aarch64.whl (3.0 MB view details)

Uploaded CPython 3.8musllinux: musl 1.2+ ARM64

kanshipy-0.0.1-cp38-cp38-manylinux_2_28_x86_64.whl (2.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ x86-64

kanshipy-0.0.1-cp38-cp38-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded CPython 3.8manylinux: glibc 2.28+ ARM64

File details

Details for the file kanshipy-0.0.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp311-pypy311_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ccf5cd8848e6b3aab9505f97325669c05904e4b8170f963c13981eca8a0c63df
MD5 20daf64fb2ab6aadaf10b87f037b97eb
BLAKE2b-256 eeef60fbb60a62b07ccf019d7e60966f39015554d2e7761920f72734a4552ebb

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp311-pypy311_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 df38274b05562081cf14d1ceab0c0fdb68cd094d5a65c2ddc1a03b59a2f36185
MD5 41dfd405026f5fe2a972c06e62fbd833
BLAKE2b-256 68a876f5bd497c29f7fbd5e425e8eb026c386450debec8f4d0bba899551889b7

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp311-pypy311_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 1947f78c69420c9361cce59c1d0e57261689936e97b6fc4f653dd01b59e008c8
MD5 1e5a5dcc4a57a950b7f7cd57f8332907
BLAKE2b-256 4b470d597d89fcb10add1dde1d08aaa9356dee2230329607dde42a0cfb83e2e8

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp311-pypy311_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 a0b62d899506fc112dc95b1deb511c4ee566482d1fc295e3c2e5395372ff0a02
MD5 befe2212dff7367bf76af05a51037a1c
BLAKE2b-256 a761f363c5e58ebe2ac709f0f5543b284cbab42bfb28df42b7becaca72048cfe

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp310-pypy310_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 ab9c0d74ca93a988fd21c9a9ae5fa08ee6245813629553e5defe71913bea5d02
MD5 4bae48eb62017a360b9de908ba51f543
BLAKE2b-256 82b7fd9c1fab4affaf9bf57cec8c468bae28fc9a7cf69d57fdded753dfc43744

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp310-pypy310_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 92c2a0f65144d6f6445ed1609e7f512c46e772bb0c6b3d98930f2dd36ad81029
MD5 402e5b5e4e319a57cfb7e8842f6ae78f
BLAKE2b-256 7e3e4f075b371ab789a668fe0e743550eb076eabf8b1a6f2cc476aef040c99b3

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5f7c916726db9bc716c086f767c48cb485d9e989d2294f7c0be6238e7ad3e34
MD5 f394794928317557a360f09d423c8636
BLAKE2b-256 e645fe3b8c18cea739d3aaa09d7a35c8592ed529feae88d1acd46cda5ffb3ea0

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 205071580929bcba0ffd41e70aac853c100a0e0df6bc493f072854b2d99a4669
MD5 f45907e598180f885bd6845ebe0b1360
BLAKE2b-256 e2f5c8609f182f6f33a31a2865c76371599b802950bf92f041005c5a8065e784

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp39-pypy39_pp73-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58190f6075f35681495f944050bff125612b1761944e72f6c2d63b7b5b4b7e90
MD5 17bac456d893225a7c3ca217af9eeeed
BLAKE2b-256 3117375da3dcff0fd2b25e5fa307c24fffd7ba5de0847b01a171a5cf74b1d4f5

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp39-pypy39_pp73-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 fc5385c35fc4c3cb2aaf10667ebf3df62caad7f7380e41878de75b9ecb97c644
MD5 79e7487aff9019e36b87e9e422d9b8f1
BLAKE2b-256 baf1a4247521378cfcf59209aab20cf4e7b4e471ad36bde170c96813406f3851

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4545534bd152039fd103fc99c6d5c702517cc93895536b6bafa6a0174c9b1fac
MD5 16892462a85b3eac7b66ef548ca92307
BLAKE2b-256 d711dcb8116789a022e7fcc9521be4b7c45d67e51771cd40dfc2431c563186c4

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313t-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 58dffb2ab2317841b623331c5a3c807a3b9e9a7944d42e712a58533c82b86b27
MD5 d063f62aa8a5a81dcc276f4bd563486f
BLAKE2b-256 eaca8f72a3b0f3e7a829b7a84a2787a4bd19f876e99402f7fd969e1197e4fdae

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313t-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 d505f91e3e16804362f4abee1b9095004df94e5dfa330052670eaa1684eef6f7
MD5 2098104990f2a496ba3763b17b78cad9
BLAKE2b-256 6b6634d2e8cfd58edc9de7ef1bf2cb14365024a57f89e7d09851cc8ed32f0c1e

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313t-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 6b54445b7641cb6578e9f08fb6ccca17fe3d1533205b8ef7adb9e9429141f5f7
MD5 0157835186992d6cb97014b6cd9ebd47
BLAKE2b-256 4492d7e2eb02692189404826838fb0ff6d610e5dffb5da9d129b444ecd5bf55b

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 f2f42098b17c4af74b161c6b621544c7e4da3e66245c38665d749d4940898480
MD5 e8009a376be62e758246ff97e2c35f6a
BLAKE2b-256 af42983f63c10879c2352f5c6421b72acadf904693ae8e4d47d9774142256507

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 895a216296b15e202cdf302c4740930fcea6da502fe26c47ba303fb91e1d81ac
MD5 9b9ad23d29e024398aa6fa73e9dab67c
BLAKE2b-256 cdb1376c6314c9a12665d23153c5fdbbb1a20495c8c7d8d9618f8910fef251fb

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 59aca27d4022c87f0964404aa09015627eae9a870b5a1f7281523e26e724aa7a
MD5 4dc1b45e15ba92992700e8d2c08122f7
BLAKE2b-256 63f3577b12e5889d56f33772ad9f2c14c8bc02b00f152addfc5c2728fcec799f

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8312b807251f3828fb8f84d329d9881ef0f2d837cdf9eac71412a81d99e55d70
MD5 c90338f222e30f92e03d35d1143a9e5f
BLAKE2b-256 26e1beb9dedc610ddbb6e9a280cd10603dde2775a28b22a96fe62b825a19969d

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3cef0ccfda4a18e2c54051ea4e64cce429b50817df787272bfca0bc1202aa7b3
MD5 56c6cc546cc06a008e13249bed47eb95
BLAKE2b-256 29f052b04b28663d66a4bb50699f39f96a065a4f37af950e6fca79f443810e0a

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp313-cp313-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp313-cp313-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 2d11e3ad6fc162a1c3d19ed00b6379f2d1fb1720a39051ccf3ace8cbe7e9b853
MD5 c41ec469054b920e7e1ecca3ff520f5e
BLAKE2b-256 473b8ea3536036220875b4735c638f8c51ba496f2e8186130e2efa3ecc81ebc4

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp312-cp312-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp312-cp312-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 bbf444929210d859a1c13be8e205e67159f9b34059321f59726c5aa8a38bbcc2
MD5 a5cb9321df208d9d80ee888a11d46129
BLAKE2b-256 620ba9a7a9e4e0c039fe216776b6772c3b7a1c3c1cc01b025f614f62d86fc07d

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp312-cp312-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b18e65a4c4c24a56fa9a27d4edf6683d40a09f73b09256f117adb8f8fe0c13ef
MD5 cbf8cefeb067bc10bc0740c5140894b4
BLAKE2b-256 8ff9161fda2729a0892ae1fcd918b28598f714438c9aa00e6e204128d9d1f570

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 86568827fd6022b6e6615d2db2fa71ff53a5afbbafcd2d53b8a81f7ac41bbb7f
MD5 8c83ff5f0ccc41420e26edc4668066d5
BLAKE2b-256 e4bd79c8ff560b43632f198ff6e7ebc488c770785e47494af40e379baea3f589

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2470e9eaa1d5a9c14728836062ce8214348fb69c80729549356e42573191438f
MD5 e33c5d4d7590c9e3588d4fa5d2916df1
BLAKE2b-256 049d6b2849bf842049a8750160c6f2f5700291313b67d1485fd555fb5276247e

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2feb54a6f7b222a20fbe4c7a77ec6c82bad934eedc6874e7758d447b308e7465
MD5 1ae1cdfb7f2ae0ae7d7c71ef8c37ad20
BLAKE2b-256 723251d464fdf264e7a541a24129e8655928b1f1acd805064e96ab41d4c2cb02

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp312-cp312-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp312-cp312-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 34aa1e958840e6bcefaf9c5aa3393fcdcb4693eb08928f162d65d9ac5024d478
MD5 ba9d3a736d3190570ddce26f9bad71ac
BLAKE2b-256 154442fe79fb07c1206d106d3ee7d4c5c93c922d0c17c2e5403b6c61e8bc53f0

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp311-cp311-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp311-cp311-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 af4b8bea2768be71658064c729590b97b98a7bd062f5cd95dc9a8b1fa6ffe6f5
MD5 9d8db134aa9f077f381035f535de68cc
BLAKE2b-256 06f6e672ef4d8eb7f01e38a40259caf0e9fc7cd3f100cc8f10c613318b06c14e

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp311-cp311-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 b661037c3b06d52c57eb091006dabee2397665e2104b1c551d6204d368b597b1
MD5 774c8f14378e211ff00f7d93580c98d8
BLAKE2b-256 c4ce609909341c717c2775ea323220139446a11d09845fa7848f0b58e4e18a58

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9a166f87bc0029bd4a8f2d639b2f2627b688093b7cca80a2b52f3e6da4a96369
MD5 6ae8a9d4789e7310a2b5ed74c341b705
BLAKE2b-256 80a3f8c91e3f09700d324c84020121a5f22a37129dbc7a14477366ee793962eb

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 be1588c071ec66bd7a09426aaecbae673ccf7765d7aff59efeca01ddf7b28f3b
MD5 c8ce10708d7f427ac791b07b88139b5c
BLAKE2b-256 06ffbdc8dec962e86739474ae3b48f421206f718d7d70165e3b6c32fca281abc

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8a2b4e8d14fc37dea89dd435fdc9095e22df95946f9f9820476d3f9454e088fe
MD5 c8fc6a43341aa8b2ed2ba8f916441f7f
BLAKE2b-256 f29b7ea9dee97cad4755802ec210da46d3e97a9713ca6110f38e74c424d04211

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp311-cp311-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp311-cp311-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3d2d68b3c69517f5c81fe1860c5cae356c71a81f55848e0a3b2ed5e6a0f368aa
MD5 70a8cd1a1acb50d5782943580b62337a
BLAKE2b-256 87da323d4ce071d54d67123962b6af178e8086814336497fa62d128ab700adc2

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp310-cp310-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp310-cp310-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 520ec402bc34ad0b5a53c621866a874657e505f3c2a57b94aae3b7a1bc821cf2
MD5 d005057fbadffc4d998a4de83c85cc96
BLAKE2b-256 ee82d3f9024331ec766b2d6a20b710d2ff51f02656417359a7ce0fd2ec0562aa

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp310-cp310-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 1d4e7020f78577bf3b930b2254ad89fe6841a59aa85cfd02a3c15d787f2f6121
MD5 341c17c80963562a5e9e7006b9a3fed7
BLAKE2b-256 26e78f19c6e14d0f9fe2c09790aee26fb9f90be13a4501c5610765d06758d30a

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 65cbf41f7fbf93c6cff7fd5bfc830a7277bbee55490c637d5b780e9b9979ffd1
MD5 afa6068c07e39d2126aceb4a2a4222d4
BLAKE2b-256 bb225174fea00ecbe215bc00994d039016037f50c557db6fdf2c932718c0832f

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 1cb8e440ff31e0a6027198c5be36f935fa8cf2bf5115447fdbf6cf37f95471dd
MD5 33842704c5c6b25a086cc8b4b8c8ce0a
BLAKE2b-256 2ec5504608cb160898afd252ce35ed3b778d58ba13c4eef8a48b5c18e3115506

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp39-cp39-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp39-cp39-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 9e23deb675ad2d6832a7513da55be5add7fc3cf6e62672c681bc5b9b3504e44a
MD5 601fe8801aed4c3204f5844ceac88e53
BLAKE2b-256 b0eb8c7817602b06a6e8856e2ad6853ef5f4d8d386b1c524a0617a87ac4637d8

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp39-cp39-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 92e402e03274f9ebe185bcb2260a65abb065159e4242c0d1958effab619e7381
MD5 40788a7abb9a305990d09f22c2977113
BLAKE2b-256 dd3e44a2c29d197adf6529d8482f26d8e0988fc1882dd2fe9b68541011e2ae31

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5ad3cba632ea6d895fba875078a6ab10fdc72d33ecd616a8826c489baf213f87
MD5 fae50fa2a6268ece1dcfa3be8e70aadd
BLAKE2b-256 aa85ad7c5a7704e83020a8e71c0010d0a8e23743045e64a7a7e071ff2125c76b

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e7d7e9062e8c7da937e19106d64af9c3f63b5d66d547f047fbfbe44c15eb9e27
MD5 ca3d2b8de675abd60772a2088e3bef1e
BLAKE2b-256 4e754da38a7b90c6566b0771f0a132f2a56b51d4d130c7686ddcb1c8003999af

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp38-cp38-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp38-cp38-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 4b59a5d74d13c3ad5cc62decd9a7b93926f8dbf4a4c17c46440172c9746ccef9
MD5 b478c40d87bef01dd46bdc76356e93b6
BLAKE2b-256 bf557e27f5950041fccc2664ec77ef3179156cf0289d12064bf345d7a00e56d8

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp38-cp38-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 abac43af3af835cf80758574e06db9cb0d7a3cc2ca786a60b849aeac2d8d0fa3
MD5 b2b0cf8c15107de71126a248274571f9
BLAKE2b-256 80e41413a37dc9ffef7cc4eb2cb9812f941b32bdfb2806839498142d18fe241d

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 53b3a88f415c6473b9b61b214c410a5f4e9f03650bea2b200158e9e417d09aa0
MD5 8ec6a0276e4b0e71d16e24ce6c102ebd
BLAKE2b-256 97bb08076a11b353e94e5ea90144cec05171973723c920eb79a35ec8b126d8e8

See more details on using hashes here.

File details

Details for the file kanshipy-0.0.1-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for kanshipy-0.0.1-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 96e8556cf25a7a691cc7818727205788421f490a400c24614a92612fef64e774
MD5 40eb74be2ca98cd39a3b65244dcd2578
BLAKE2b-256 0aa2a88372166d89b0634b051713df0cae1d2c420c21d608417209aac64c8618

See more details on using hashes here.

Supported by

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