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

Uploaded Source

Built Distributions

aiofile-1.2.2-cp36-cp36m-manylinux1_x86_64.whl (183.8 kB view details)

Uploaded CPython 3.6m

aiofile-1.2.2-cp36-cp36m-macosx_10_6_intel.whl (97.9 kB view details)

Uploaded CPython 3.6m macOS 10.6+ intel

aiofile-1.2.2-cp35-cp35m-manylinux1_x86_64.whl (184.5 kB view details)

Uploaded CPython 3.5m

aiofile-1.2.2-cp35-cp35m-macosx_10_6_intel.whl (96.7 kB view details)

Uploaded CPython 3.5m macOS 10.6+ intel

aiofile-1.2.2-cp34-cp34m-manylinux1_x86_64.whl (189.7 kB view details)

Uploaded CPython 3.4m

aiofile-1.2.2-cp34-cp34m-macosx_10_6_intel.whl (97.0 kB view details)

Uploaded CPython 3.4m macOS 10.6+ intel

File details

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

File metadata

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

File hashes

Hashes for aiofile-1.2.2.tar.gz
Algorithm Hash digest
SHA256 7574ff08fc7f0dfb1bbea737fb042368fb269b0ef7cd9a390d512073cfd1e74f
MD5 c229ac7c8082e664ba8a83bfb71cae9d
BLAKE2b-256 de9a57924bb5f8266dfb206b29d5e0227eb542e89a5ba9207d6e1c52f8b02f9f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiofile-1.2.2-cp36-cp36m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 8f86b5c758832c5433103a555b7094283613f73010fbe7bd24f0b9d1ce24ef2e
MD5 9f41fa26936915ea561db55e3bedf8b5
BLAKE2b-256 62451268d1acff7310b9f6b89fdd79a986e438d8fa836b2f55d4f1188896cb87

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiofile-1.2.2-cp36-cp36m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 3e59a9be9ced616f104e93a4f6d37228513ab75e9518342600d4bd536af77385
MD5 728fd96ab185a027949b3e4f0c762274
BLAKE2b-256 6d6835e4963b64b8e20fce5e716846fba7f1f164947526f0270aef14d62e39ed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiofile-1.2.2-cp35-cp35m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 70e39a88789c398b54525da826aaaba8f8451ec35a657f400391856f9075dbfc
MD5 30868d100e4c6f01268c9ed13b506e8b
BLAKE2b-256 33333c963bb769490a11ad3b2c90599080813981591c19e92a16f7713d91d733

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiofile-1.2.2-cp35-cp35m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 514b242d91c1c23a67943e025462a67803e851e90436fd5496ab607f5e706960
MD5 ebe9072607f7cdf359f5c1006aee07e3
BLAKE2b-256 1555ad6c2fd54204305f2799cd1441a2080303c35ead526f83cf478c553f4b17

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiofile-1.2.2-cp34-cp34m-manylinux1_x86_64.whl
Algorithm Hash digest
SHA256 521636e6952d0174518493cad3dbaebeb4016e658669e11b2a81fa6384205ad0
MD5 88068f376660398a6bccd63898ea4622
BLAKE2b-256 f0dd906e53fcb8de777c95f1a5ac5fe19b05df8f2a74e8b58607180e4b55fc05

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for aiofile-1.2.2-cp34-cp34m-macosx_10_6_intel.whl
Algorithm Hash digest
SHA256 ae5d810c09c087cc91c182e3337993ee6ad1de593bfc356cd906985100bb6035
MD5 8bc2a454bc4deece5aaa1392c8b6b977
BLAKE2b-256 7cc618b29e2da40f0029be0665b99013967a44d6f3c60c9c69b61eb7e18cf97e

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