Skip to main content

Asynchronous file operations.

Project description

Travis CI Latest Version https://img.shields.io/pypi/wheel/aiofile.svg https://img.shields.io/pypi/pyversions/aiofile.svg https://img.shields.io/pypi/l/aiofile.svg

Real asynchronous file operations with asyncio support.

Status

Development - Stable

Features

  • AIOFile has no internal pointer. You should pass offset and chunk_size for each operation or use helpers (Reader or Writer).

  • For POSIX (MacOS X and Linux) using implementaion based on aio.h (with Cython).

  • For non-POSIX systems using thread-based implementation

Code examples

All code examples requires python 3.5+.

Write and Read

import asyncio
from aiofile import AIOFile, Reader, Writer


async def main():
    async with AIOFile("/tmp/hello.txt", 'w+') as afp:
        await afp.write("Hello ")
        await afp.write("world", offset=7)
        await afp.fsync()

        print(await afp.read())


loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Write and read with helpers

import asyncio
from aiofile import AIOFile, Reader, Writer


async def main():
    async with AIOFile("/tmp/hello.txt", 'w+') as afp
        writer = Writer(afp)
        reader = Reader(afp, chunk_size=8)

        await writer("Hello")
        await writer(" ")
        await writer("World")
        await afp.flush()

        async for chunk in reader:
            print(chunk)


loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Read file line by line

import asyncio
from aiofile import AIOFile, LineReader, Writer


async def main():
    async with AIOFile("/tmp/hello.txt", 'w+') as afp
        writer = Writer(afp)

        await writer("Hello")
        await writer(" ")
        await writer("World")
        await writer("\n")
        await writer("\n")
        await writer("From async world")
        await afp.flush()

        async for line in LineReader(afp):
            print(line)


loop = asyncio.get_event_loop()
loop.run_until_complete(main())

Project details


Download files

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

Source Distribution

aiofile-1.2.6.tar.gz (75.4 kB view details)

Uploaded Source

Built Distributions

aiofile-1.2.6-cp36-cp36m-manylinux1_x86_64.whl (183.9 kB view details)

Uploaded CPython 3.6m

aiofile-1.2.6-cp36-cp36m-macosx_10_6_intel.whl (98.0 kB view details)

Uploaded CPython 3.6m macOS 10.6+ intel

aiofile-1.2.6-cp35-cp35m-manylinux1_x86_64.whl (184.6 kB view details)

Uploaded CPython 3.5m

aiofile-1.2.6-cp35-cp35m-macosx_10_6_intel.whl (96.8 kB view details)

Uploaded CPython 3.5m macOS 10.6+ intel

aiofile-1.2.6-cp34-cp34m-manylinux1_x86_64.whl (189.8 kB view details)

Uploaded CPython 3.4m

aiofile-1.2.6-cp34-cp34m-macosx_10_6_intel.whl (97.1 kB view details)

Uploaded CPython 3.4m macOS 10.6+ intel

File details

Details for the file aiofile-1.2.6.tar.gz.

File metadata

  • Download URL: aiofile-1.2.6.tar.gz
  • Upload date:
  • Size: 75.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for aiofile-1.2.6.tar.gz
Algorithm Hash digest
SHA256 40aa8f9bb2a31d547dc80898ae371d3a4376f5de69fc0b4634987d55c00c7849
MD5 1db197f02d17f0df3eb7608a2758bf4e
BLAKE2b-256 ba728ed2f375abfcd2306e2c09a81cc02da88da54d957afbdb226ef316aaf811

See more details on using hashes here.

File details

Details for the file aiofile-1.2.6-cp36-cp36m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for aiofile-1.2.6-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 95ef9a09a15367b5e954db945a9b215ecc9561b1afa6fb02f2548f9b6149945e
MD5 eab25fe712e509d1cd957fa536272338
BLAKE2b-256 9912c81ad0d6b796d1b0a026f3b0d1cc7d3a933b7ab90660a0da54d5e1cbc318

See more details on using hashes here.

File details

Details for the file aiofile-1.2.6-cp36-cp36m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for aiofile-1.2.6-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 40cad5dc435632e429761272b1e364f8846f42d79e9ea1fa5ba2febeef18fff1
MD5 47959508eb9b657c4114c3dfcb234eb7
BLAKE2b-256 d4cb616ffaacae6b28b79602f2e8b5a23a4ca69572464c362d93badd0f06efc4

See more details on using hashes here.

File details

Details for the file aiofile-1.2.6-cp35-cp35m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for aiofile-1.2.6-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 7c53a1d6ff569a1279090a05a3109ac960a8223ef7d017586ba62516fb36160e
MD5 b5d9c31438f0c52c8930bbf748134793
BLAKE2b-256 1838390950b846a4e408068d5c0bc6da041a5e2eee962410d16cfb8d11059e37

See more details on using hashes here.

File details

Details for the file aiofile-1.2.6-cp35-cp35m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for aiofile-1.2.6-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 0ecd17ee1c01c1db44bed83bdc1e6fb1d286b31d309a05c4060ccd6aaaba7852
MD5 6f90f0c7abd8348438ad48599cbb5961
BLAKE2b-256 bf3ce16e79762ee47708fb8b503445f5256f9dda4d2e40307c01c49cfd8168e2

See more details on using hashes here.

File details

Details for the file aiofile-1.2.6-cp34-cp34m-manylinux1_x86_64.whl.

File metadata

File hashes

Hashes for aiofile-1.2.6-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 47f3eb610d68bd63b0b87ed9d15b30c85a6b5c6a4c301eb5d3e747f1e0d107d6
MD5 a2ff54ce099b2910845e036194d161a9
BLAKE2b-256 b6bad10b3eaa52a67f2610f36ad23f13fa60523bf025d7135de5d5de04188a94

See more details on using hashes here.

File details

Details for the file aiofile-1.2.6-cp34-cp34m-macosx_10_6_intel.whl.

File metadata

File hashes

Hashes for aiofile-1.2.6-cp34-cp34m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 044132edad66df04f18fcb98d3dff50a7a4bb58c01ae73f82c3c16e158cce8ec
MD5 edb26470969acf349335c6f6b7235fca
BLAKE2b-256 067ba838a1dd43f7c03793257fb001296da407657dc26473d38b42c78415bf70

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