Skip to main content

Cross-platform async file API for Python. Blazing fast like Shameimaru Aya.

Project description


ayafileio

License Python Version Platform Version

当前是英文 | chinese version

"The fastest file I/O in Gensokyo, swift as the Wind God Maiden."
— Aya Shameimaru, always flying at full speed

Cross-platform asynchronous file I/O library using native async I/O where available.
Windows leverages IOCP (I/O Completion Ports), Linux uses io_uring (kernel 5.1+), and macOS uses Dispatch I/O (GCD) for truly non-blocking file operations.

changes

see -> CHANGES

🏆 The Only True Async on All Three Major Platforms

Platform Backend True Async Description
Windows IOCP NT kernel native I/O Completion Ports
Linux io_uring Next-gen async I/O (kernel 5.1+)
macOS Dispatch I/O GCD kernel-level async I/O

ayafileio is the only Python library providing true async file I/O on Windows, Linux, and macOS.

📸 Key Features

Feature Description
🍃 Zero thread overhead No background threads on true async platforms
📰 Kernel-level completion IOCP / io_uring / Dispatch I/O direct to kernel
High concurrency Handles thousands of concurrent file operations
🎴 Familiar API aiofiles-compatible, supports async/await
📖 Text & binary support Automatic encoding/decoding in text modes
🔧 Unified configuration Runtime tunable parameters for all backends
🌍 Cross-platform Windows, Linux, and macOS
🐍 Latest Python Supports 3.10, 3.11, 3.12, 3.13, 3.14

🛠️ Installation

pip install ayafileio

System requirements:

  • Python 3.10+
  • Windows 7+ / Linux (kernel 5.1+ for io_uring) / macOS 10.10+
  • No external dependencies, precompiled wheels available

🚀 Quick Start

import asyncio
import ayafileio

async def main():
    # Write to a file — fast as the wind
    async with ayafileio.open("example.txt", "w") as f:
        await f.write("Hello, async world!\n")

    # Read with automatic decoding
    async with ayafileio.open("example.txt", "r", encoding="utf-8") as f:
        content = await f.read()
        print(content)

    # Binary operations
    async with ayafileio.open("data.bin", "rb") as f:
        data = await f.read(1024)
        await f.seek(0, 0)

asyncio.run(main())

⚡ Performance Best Practice

ayafileio's file open/close overhead is already in the microsecond range, but for maximum performance, avoid reopening the same file in a loop.

# ❌ DO NOT DO THIS: repeated open/close in a loop
for i in range(10000):
    async with ayafileio.open("data.bin", "rb") as f:
        data = await f.read()

# ✅ DO THIS: open once, operate many times
async with ayafileio.open("data.bin", "rb") as f:
    for i in range(10000):
        await f.seek(0)
        data = await f.read()

The latter is ~6x faster — it eliminates 9999 unnecessary coroutine scheduling round-trips.

🔍 Backend Information

Check which backend is currently in use:

import ayafileio

info = ayafileio.get_backend_info()
print(info)
# Windows: {'platform': 'windows', 'backend': 'iocp', 'is_truly_async': True}
# Linux:   {'platform': 'linux', 'backend': 'io_uring', 'is_truly_async': True}
# macOS:   {'platform': 'macos', 'backend': 'dispatch_io', 'is_truly_async': True}

⚙️ Unified Configuration

ayafileio provides a unified configuration system that allows runtime tuning:

import ayafileio

# View current configuration
config = ayafileio.get_config()
print(config)

# Update configuration
ayafileio.configure({
    "io_worker_count": 8,
    "buffer_size": 131072,      # 128KB buffer
    "close_timeout_ms": 2000,
})

# Reset to defaults
ayafileio.reset_config()

Configuration Options

Option Default Description
handle_pool_max_per_key 64 Max cached handles per file (Windows)
handle_pool_max_total 2048 Max total cached handles (Windows)
io_worker_count 0 IO worker threads, 0=auto
buffer_pool_max 512 Max cached buffers
buffer_size 65536 Buffer size in bytes
close_timeout_ms 4000 Close timeout for pending I/O (ms)
io_uring_queue_depth 256 io_uring queue depth (Linux)
io_uring_sqpoll False Enable SQPOLL mode (Linux)

📚 API Reference

AsyncFile class

class AsyncFile(Generic[T]):
    def __init__(
        self, path: str | Path, mode: str = "rb",
        encoding: str | None = None,
        newline: str | None = None,
        errors: str | None = None
    ): ...

    # 读取
    async def read(self, size: int = -1) -> T: ...
    async def readline() -> T: ...
    async def readlines(hint: int = -1) -> list[T]: ...
    async def readall() -> T: ...                        # read(-1) 别名
    async def readinto(buf: bytearray | memoryview) -> int: ...  # 零拷贝 [仅二进制]

    # 写入
    async def write(self, data: str | bytes) -> int: ...
    async def writelines(lines) -> None: ...              # 批量写入

    # 位置
    async def seek(self, offset: int, whence: int = 0) -> int: ...
    async def tell() -> int: ...
    async def truncate(size: int) -> None: ...

    # 控制
    async def flush(self) -> None: ...
    async def close(self) -> None: ...

    # 属性
    @property
    def closed(self) -> bool: ...
    @property
    def name(self) -> str: ...
    @property
    def mode(self) -> str: ...

    # 状态
    def readable() -> bool: ...
    def writable() -> bool: ...
    def seekable() -> bool: ...
    def fileno() -> int: ...
    def isatty() -> bool: ...

    # 迭代器
    def __aiter__(self) -> AsyncFile[T]: ...
    async def __anext__(self) -> T: ...

Supported Modes

Mode Description
"r", "rb" Read (text/binary)
"w", "wb" Write (text/binary)
"a", "ab" Append (text/binary)
"x", "xb" Exclusive create (text/binary)
+ added Read/write combinations

Configuration Functions

def configure(options: dict) -> None: ...      # Unified configuration
def get_config() -> dict: ...                   # Get current configuration
def reset_config() -> None: ...                 # Reset to defaults
def get_backend_info() -> dict: ...             # Get backend information

Pool Management

def drain_handle_pool() -> None: ...            # Drain all cached file handles
def drain_buffer_pool() -> None: ...            # Drain all cached I/O buffers

Use drain_handle_pool() / drain_buffer_pool() to release pooled resources at runtime — useful after bulk tempfile operations or between benchmark rounds.

🧪 Performance Comparison

Simulating Crawlee's Dataset append pattern (5,000 records, 50 concurrent):

Platform ayafileio aiofiles Speedup
Windows (NVMe SSD) 41,336 items/s 9,658 items/s 4.28x
Linux (NVMe SSD) 17,688 items/s 11,455 items/s 1.54x
macOS (NVMe SSD) 29,837 items/s 25,522 items/s 1.17x
Windows (6yr old HDD) 20,251 items/s 13,011 items/s 1.56x

Key findings:

  • On Windows enterprise SSD, ayafileio achieves 42x lower P99 latency (0.044ms vs 1.854ms)
  • aiofiles shows 96.7% jitter under load; ayafileio only 16.2%
  • Even on degraded hardware, ayafileio maintains predictable performance

Test environment: Windows 10/11, Ubuntu 22.04, macOS 14; GitHub Actions enterprise NVMe SSD

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Add tests
  4. Ensure benchmarks pass
  5. Open a pull request

📄 License

MIT License — see LICENSE for details.


"Slow is a crime, right?"
— Aya Shameimaru, editor-in-chief of Bunbunmaru News


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.

ayafileio-1.1.2.post1-cp314-cp314t-win_amd64.whl (97.0 kB view details)

Uploaded CPython 3.14tWindows x86-64

ayafileio-1.1.2.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (115.6 kB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ayafileio-1.1.2.post1-cp314-cp314t-macosx_13_0_x86_64.whl (84.6 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ x86-64

ayafileio-1.1.2.post1-cp314-cp314t-macosx_13_0_arm64.whl (80.1 kB view details)

Uploaded CPython 3.14tmacOS 13.0+ ARM64

ayafileio-1.1.2.post1-cp314-cp314-win_amd64.whl (93.0 kB view details)

Uploaded CPython 3.14Windows x86-64

ayafileio-1.1.2.post1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (113.5 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ayafileio-1.1.2.post1-cp314-cp314-macosx_13_0_x86_64.whl (82.7 kB view details)

Uploaded CPython 3.14macOS 13.0+ x86-64

ayafileio-1.1.2.post1-cp314-cp314-macosx_13_0_arm64.whl (78.2 kB view details)

Uploaded CPython 3.14macOS 13.0+ ARM64

ayafileio-1.1.2.post1-cp313-cp313-win_amd64.whl (90.8 kB view details)

Uploaded CPython 3.13Windows x86-64

ayafileio-1.1.2.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (113.7 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ayafileio-1.1.2.post1-cp313-cp313-macosx_13_0_x86_64.whl (82.7 kB view details)

Uploaded CPython 3.13macOS 13.0+ x86-64

ayafileio-1.1.2.post1-cp313-cp313-macosx_13_0_arm64.whl (78.2 kB view details)

Uploaded CPython 3.13macOS 13.0+ ARM64

ayafileio-1.1.2.post1-cp312-cp312-win_amd64.whl (90.9 kB view details)

Uploaded CPython 3.12Windows x86-64

ayafileio-1.1.2.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (113.7 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ayafileio-1.1.2.post1-cp312-cp312-macosx_13_0_x86_64.whl (82.7 kB view details)

Uploaded CPython 3.12macOS 13.0+ x86-64

ayafileio-1.1.2.post1-cp312-cp312-macosx_13_0_arm64.whl (78.2 kB view details)

Uploaded CPython 3.12macOS 13.0+ ARM64

ayafileio-1.1.2.post1-cp311-cp311-win_amd64.whl (91.7 kB view details)

Uploaded CPython 3.11Windows x86-64

ayafileio-1.1.2.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (114.8 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ayafileio-1.1.2.post1-cp311-cp311-macosx_13_0_x86_64.whl (83.4 kB view details)

Uploaded CPython 3.11macOS 13.0+ x86-64

ayafileio-1.1.2.post1-cp311-cp311-macosx_13_0_arm64.whl (79.3 kB view details)

Uploaded CPython 3.11macOS 13.0+ ARM64

ayafileio-1.1.2.post1-cp310-cp310-win_amd64.whl (91.9 kB view details)

Uploaded CPython 3.10Windows x86-64

ayafileio-1.1.2.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (115.0 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

ayafileio-1.1.2.post1-cp310-cp310-macosx_13_0_x86_64.whl (83.5 kB view details)

Uploaded CPython 3.10macOS 13.0+ x86-64

ayafileio-1.1.2.post1-cp310-cp310-macosx_13_0_arm64.whl (79.4 kB view details)

Uploaded CPython 3.10macOS 13.0+ ARM64

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 e5dac05ee05967becfb0fbabf56c47d32d5baa84c6631318a8893a73da858eb8
MD5 a694329e3926ee871bc39259e3ca642d
BLAKE2b-256 b2dd4c7b55632d0d4567f06f01a4c9efcb1a869469b5526141c4b3b787c7f0cf

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314t-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c667c6aaa51688b9fecaabff4397a41d72cc4ad530c0a31212c8a498c948eda
MD5 bd8ed4bdf6271144673a0b574b2c4d89
BLAKE2b-256 395588a7b3c008d56e4fd3464cd36f70897795fd8eab0a00a6c7bd56f4d99120

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314t-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314t-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 be85a8e1f0e3afbae1f298b78e6121efca1eb002753a77785292d4ceef0237a4
MD5 c943e6cbc4cd91b5dbc0b441782ead69
BLAKE2b-256 c90b9a3e102f8794a9e10bc5160785bb58875497735704742ae0a4dace99a064

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314t-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314t-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 c6eec3623e35cf4bd828ee6fa1839b7472d36d7278448a9c6be6dd1b9307a769
MD5 c0e58a6c5fc7815bd8921331c7c9fe09
BLAKE2b-256 0ae27d8ea9b8bdabf430a2c33559a91858082d21beba7babc9f47f3be0699bff

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 0ef2d11252863942dac55a0d7f575f1405d95c6eee8fd5d4f999d457260ee0b9
MD5 de6428294cde99823aae2338e59c5fdf
BLAKE2b-256 7549fcdc9a462808e0d0ebac21065180140055e083bd112806897ac155985834

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6a7289ea9ca762251e4237932f756c62b21741bd6b9da7ad8a525005468244b3
MD5 4713d430f1d905e8498120dbb89cedc5
BLAKE2b-256 5de49e0b4adab2c199b3c3751ab0aec7c661edeccfe09618787dd62e6d60e637

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 d0b5a2254c4a54c067c6a1ff71cf9f6966b90f6347dd299290c70db17d8d6259
MD5 3d841127615b3ca739fd411df653d7ba
BLAKE2b-256 0602c8a2111ef9310e801b97f27ddf2331517cb0730eb8c34e11a1e73afd9e94

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp314-cp314-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp314-cp314-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 5b018d4b9ad1f62737079346eb8f9830a9b16ddfa1c328fafd469bbbb5416aa2
MD5 1a47a0b37a2a6929f0ffaaa1eed2b138
BLAKE2b-256 57d74c20a1193d7c680bca3b3c1cc6cfd4aa6165a5e8cf5dfedcd0229f6fc228

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 bcf1a8635a11caf455388223774423cabe5e2833c3a6df22949fab3f87ef8495
MD5 3cd647dff66eb71b5dfceb20bc943028
BLAKE2b-256 d0e7b45b5ef1d01cb7b4398777beaea90bcd6dead06ffff85de41efe3c1849c4

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ed640bfcfb496c3c46b15f6312acd72c4ea9cfc8a7fd06a98aae0ca6a07a281
MD5 5de7834e5a53f943a5e4602d8b467868
BLAKE2b-256 0523c95a0e9270a797337db6b1141e2fff9909f398cebd867b7dbafd80c625a5

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp313-cp313-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp313-cp313-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 6fea68aac2538d2cebe46284433b2764ce5b0c71894fde3a298fe5de69822d86
MD5 ec609cf8d61cab82dfe51feb1e6c56c3
BLAKE2b-256 e4948a30f5fdffb6fe1e8d021645356660d66a6c29ecdfb0ca56e08c0b636efe

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp313-cp313-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp313-cp313-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 c75bb6b6d509cbcb9d48eed0a2fd81a98d7c45b4b71d2371e1c56e448b804f4f
MD5 5ad22e66952c1cbb66eec93d6a771c1f
BLAKE2b-256 679d1bac4882138cb87a47dac8b5eec2f311560b0afa7514050cc1ce53d2bc3a

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f38ec50e22b45f2f0de2423756423cdb081a50a165c628067f3980c721e57f21
MD5 968fe3d626414171065fc641a2f020f7
BLAKE2b-256 7046a839d9b24b6e72e25a87c55ba8dd730b9ed7099929ad668541f366a2cbdc

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ea073ac9962b4bd9052f8df40306237f8c39c26c5eae9cf3737952c147525564
MD5 8387c8b4cc45136fb82ee1ad54dcb039
BLAKE2b-256 eb12037087be2696918eee156367382afafc4ff334c074c7ffd11a5cf5e3058a

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp312-cp312-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp312-cp312-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e9c7b474eb36b53e680942dbc66dd13e783e7ce57e0337a4660fc8777a829192
MD5 befe6d66801e87d61d61f5f1c8d87e10
BLAKE2b-256 130f0589d55d98e7c17bd7093994a86e83195cfa48b9ccfee46151518e351344

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp312-cp312-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp312-cp312-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 5a0e4eaac97f8b882d3ec2f7ffeb1f612cdf983f0c34783d47f8f19b57faa580
MD5 22df7828fd5cc5d4e20df2b423368819
BLAKE2b-256 8cc73631fbabdd3a3ed95e01de1f1dcd062fea13825bed0b5c276195af09ee33

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b3f041696d03b093d95aaaf05a0a57519062e40b35d166c1cb0f8cb17916e55f
MD5 fee246a7c92cb491e8fbf8bf750cfa68
BLAKE2b-256 7eaa5b1691b6a19f97b964378555fbea80972805dc937ed2d2599b0bbdfeb385

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e771bb01d20a1adc65e08c22da27b197c03c29fa3c9a4af9f2df7f1e2e27554
MD5 727e4b2cb77567ee6012960fce4ca2e0
BLAKE2b-256 70abb14adb8215c370be3519f8703f92e8b8f2f0614f5f9a2fcbfdedc97a5da7

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp311-cp311-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp311-cp311-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 e27b86eccbb11bc6cf08ee3e01caf2a46ef633bbfa962c1a8676df1dbebabc57
MD5 e75b39ae79ae080e661b44ab0b8b9f55
BLAKE2b-256 e79aa7b3bd6135dcf2cc9be42bed951b7617ba59fc767d0fdf19a1878278ae6d

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp311-cp311-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp311-cp311-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 95aed04f08d8e28c6a06af73fb5fdf3644c9fd5f89d942c5e7124a9165307b53
MD5 30675a318754d8f1fd2beead2f983007
BLAKE2b-256 286d0e00537998ad29c07cf2f58b1060edd5d0c6c6ea3e7abfad309103e51089

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 4f0ff46ffffe8b11c6e2952cbe5a0e647cbfa47a356a6ff62d86f0d74f1960b1
MD5 e868ff261b52deb54be7da126ee0c3ef
BLAKE2b-256 206670ac595efa3d46b5c66e544c482ba6f43c55fc7cb62cce6f4f12d3a014b9

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 74bc1a0e8a4ab8c853b5dc6da3c3f514c4fdc70cb8d8826376041a488b8dcbfe
MD5 1306ff356e8a4da810ac73c70cb6bf57
BLAKE2b-256 d86b1b83c64d5a1b49f3432990c37d2eb4bd4569682c2d34f787475eb5544eb7

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp310-cp310-macosx_13_0_x86_64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp310-cp310-macosx_13_0_x86_64.whl
Algorithm Hash digest
SHA256 b161ca56fa40d96278d80bee10325b84e5f7f24aa81c29fc7ebbe2fc48128548
MD5 06d3e7c9e4e58bfff48515992a2c4655
BLAKE2b-256 3ca02b397415830155701be853cded7d7cf99d19f77bd0ab54a3275e8e01ea5e

See more details on using hashes here.

File details

Details for the file ayafileio-1.1.2.post1-cp310-cp310-macosx_13_0_arm64.whl.

File metadata

File hashes

Hashes for ayafileio-1.1.2.post1-cp310-cp310-macosx_13_0_arm64.whl
Algorithm Hash digest
SHA256 7348a1f44f2647a26848bf9e8ec6f46cdd5940ecb9f865a45e68ab7c10ce943c
MD5 834999026706c7526b9764d3ac9569a2
BLAKE2b-256 2ee4677fa2f17eccda1f1db6cf582f1b2150c2abb68c45dd67b07ee0df6a0300

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