Skip to main content

A lazy-loading, seekable, remote file object using http range requests

Project description

seekablehttpfile

This project provides a file-like object that fetches parts of a file using HTTP range requests as needed.

>>> from seekablehttpfile import SeekableHttpFile
>>> from zipfile import ZipFile

>>> f = SeekableHttpFile("https://files.pythonhosted.org/packages/cb/90/599c79a248dcae6935331113649de5d75427e320efde21b583648b498584/tensorflow_intel-2.14.0-cp310-cp310-win_amd64.whl")  # 284MB
>>> # use as normal, for example with ZipFile
>>> z = ZipFile(f)
>>> len(z.namelist())
9414
>>> # find out how much we actually read
>>> f.stats
{'num_requests': 4, 'optimistic_bytes_read': 256000, 'lazy_bytes_read': 1078669, 'satisfied_from_cache': 2}

Version Compatibility

Users of this library should be able to use Python 3.7 or above. This is validated by tests, and is the version encoded in Requires-Python.

Development requires Python 3.12 (or 3.13), realistically. CI validates that it works on 3.10 and above, but you will get less checking in flake8. Expect older versions to be dropped as soon as there is a version of mypy, black, etc that is not simultaneously compatible with all development versions.

Notably, this means that while this project might function (and pass tests) on Python 3.7, it's likely that you can't typecheck against it.

License

seekablehttpfile is copyright Tim Hatch, and licensed under the MIT license. I am providing code in this repository to you under an open source license. This is my personal repository; the license you receive to my code is from me and not from my employer. See the LICENSE file for details.

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

seekablehttpfile-0.1.0.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

seekablehttpfile-0.1.0-py3-none-any.whl (10.1 kB view details)

Uploaded Python 3

File details

Details for the file seekablehttpfile-0.1.0.tar.gz.

File metadata

  • Download URL: seekablehttpfile-0.1.0.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.9

File hashes

Hashes for seekablehttpfile-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4874c6cb0d32c4c5654ecde9fe7f8056370329b6f38bea2d4eb8062cf4411f8e
MD5 bbafd54a96a3ed0d1121c7f059caf36e
BLAKE2b-256 33aaeb533142a47d18ab5a6e1c430337b476bd11adfae221da96bc757fcb7079

See more details on using hashes here.

File details

Details for the file seekablehttpfile-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for seekablehttpfile-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4225719c04e4fd509d2611dad0800b42dee13dc1c844a37dc2a055f4fec3ffbf
MD5 aa20e62409bff828608314871d41b236
BLAKE2b-256 0e4ae9884a2ba7892f64b5768e552fcc31f140fdfa2bd63f9a044f26b5514a57

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