# urlopen2
## Description
Improvement for the `urllib.request.urlopen` function.
## Install
```shell
pip install urlopen2
```
## Using
### Synchronous
```python
from urlopen2 import URLFile
url = "https://example.com/file.bin"
with URLFile.open(url) as urlfile:
urlfile.read(128)
# In this case, 128 bytes of the file will be loaded.
urlfile.seek(0)
# Move the caret to the beginning of the file
data = urlfile.read(128)
# Since we are taking the same 128 bytes that have already been loaded, they will be received from the buffer.
print(data)
```
### Asynchronous
```python
import asyncio
import aiofiles
from urlopen2 import AsyncURLFile
url = "https://example.com/file.bin"
async def main():
async with aiofiles.open(*AsyncURLFile.gbuf()) as abuffer:
async with AsyncURLFile.open(url, abuffer) as aurlfile:
await aurlfile.read(128)
# In this case, 128 bytes of the file will be loaded.
await aurlfile.seek(0)
# Move the caret to the beginning of the file
data = await aurlfile.read(128)
# Since we are taking the same 128 bytes that have already been loaded, they will be received from the buffer.
print(data)
if __name__ == "__main__":
asyncio.run(main())
```
Raw data
{
"_id": null,
"home_page": "",
"name": "urlopen2",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.7,<3.12",
"maintainer_email": "",
"keywords": "urlopen,urllib.request,urlfile,readable,seekable",
"author": "Romanin",
"author_email": "semina054@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/df/38/688dd2bd952bfeabd386532268a5d5f8705bd748e77ffbf750fafbc4b6b9/urlopen2-1.4.0.tar.gz",
"platform": null,
"description": "# urlopen2\n## Description\nImprovement for the `urllib.request.urlopen` function.\n\n## Install\n```shell\npip install urlopen2\n```\n\n## Using\n### Synchronous\n```python\nfrom urlopen2 import URLFile\n\nurl = \"https://example.com/file.bin\"\n\nwith URLFile.open(url) as urlfile:\n urlfile.read(128)\n # In this case, 128 bytes of the file will be loaded.\n urlfile.seek(0)\n # Move the caret to the beginning of the file\n data = urlfile.read(128)\n # Since we are taking the same 128 bytes that have already been loaded, they will be received from the buffer.\n\nprint(data)\n```\n\n### Asynchronous\n```python\nimport asyncio\nimport aiofiles\nfrom urlopen2 import AsyncURLFile\n\nurl = \"https://example.com/file.bin\"\n\nasync def main():\n async with aiofiles.open(*AsyncURLFile.gbuf()) as abuffer:\n async with AsyncURLFile.open(url, abuffer) as aurlfile:\n await aurlfile.read(128)\n # In this case, 128 bytes of the file will be loaded.\n await aurlfile.seek(0)\n # Move the caret to the beginning of the file\n data = await aurlfile.read(128)\n # Since we are taking the same 128 bytes that have already been loaded, they will be received from the buffer.\n \n print(data)\n\nif __name__ == \"__main__\":\n asyncio.run(main())\n```\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Improvement for the `urllib.request.urlopen` function.",
"version": "1.4.0",
"project_urls": null,
"split_keywords": [
"urlopen",
"urllib.request",
"urlfile",
"readable",
"seekable"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "5b0dbf492d7ca2cb97413b0b77037d721572e75a02b1f28f6da9586a635c9be2",
"md5": "fdcf574051fb559ed0daedee94992159",
"sha256": "ad46485fb4e3146db16571736b1e60ea21e6fa1ebbf98500df95621097d47cc9"
},
"downloads": -1,
"filename": "urlopen2-1.4.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "fdcf574051fb559ed0daedee94992159",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.7,<3.12",
"size": 6256,
"upload_time": "2023-12-15T19:20:03",
"upload_time_iso_8601": "2023-12-15T19:20:03.103958Z",
"url": "https://files.pythonhosted.org/packages/5b/0d/bf492d7ca2cb97413b0b77037d721572e75a02b1f28f6da9586a635c9be2/urlopen2-1.4.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "df38688dd2bd952bfeabd386532268a5d5f8705bd748e77ffbf750fafbc4b6b9",
"md5": "161f90368e5347a01b6789a649ca8995",
"sha256": "cd3caad48a2383adecfb67fd3f510f32ac48b9d9d2d4b249b6e64aa32b460d89"
},
"downloads": -1,
"filename": "urlopen2-1.4.0.tar.gz",
"has_sig": false,
"md5_digest": "161f90368e5347a01b6789a649ca8995",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.7,<3.12",
"size": 3918,
"upload_time": "2023-12-15T19:20:05",
"upload_time_iso_8601": "2023-12-15T19:20:05.348850Z",
"url": "https://files.pythonhosted.org/packages/df/38/688dd2bd952bfeabd386532268a5d5f8705bd748e77ffbf750fafbc4b6b9/urlopen2-1.4.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-15 19:20:05",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "urlopen2"
}