Releases: hyriver/async-retriever
Releases · hyriver/async-retriever
v0.19.1
Release Notes
Internal Changes
- Replace
max_connection
argument in allretrieve*
functions withlimit_per_host
. This uses theaiohttp
argumentlimit_per_host
to limit the number of connections per host which prevents the server from being overwhelmed with too many connections. The default value is set to 5. - Add
aiofiles
as a new dependency for writing responses to a file in thestream_write
function. This should speed up the writing process and make it more efficient.
Bug Fixes
- Fix an issue with running the library inside IPython terminal. (
50
{.interpreted-text role="issue_async"})
Breaking Changes
- Move
stream_write
function to its own module calledstreaming
. This is to separate the streaming functionality from the main module and make it easier to maintain. - Simplify the
stream_write
function to only accept a list of URLs and a directory path to save the files. It no longer accepts passing keyword arguments and assumes that the user has added the necessary arguments to the URLs itself and is encoded correctly. Additionally, the chunk size by default is set to 1 MB.
v0.19.0
Release Notes
Internal Changes
- Replace
max_connection
argument in allretrieve*
functions withlimit_per_host
. This uses theaiohttp
argumentlimit_per_host
to limit the number of connections per host which prevents the server from being overwhelmed with too many connections. The default value is set to 5. - Add
aiofiles
as a new dependency for writing responses to a file in thestream_write
function. This should speed up the writing process and make it more efficient.
Bug Fixes
- Fix an issue with running the library inside IPython terminal. (
50
{.interpreted-text role="issue_async"})
Breaking Changes
- Move
stream_write
function to its own module calledstreaming
. This is to separate the streaming functionality from the main module and make it easier to maintain. - Simplify the
stream_write
function to only accept a list of URLs and a directory path to save the files. It no longer accepts passing keyword arguments and assumes that the user has added the necessary arguments to the URLs itself and is encoded correctly. Additionally, the chunk size by default is set to 1 MB.
v0.18.0
Release Notes
Bug Fixes
- Pin the minimum version of
aiohttp-client-cache
to 0.12.3 to an issue with the latest version ofaiohttp
. (48
{.interpreted-text role="issue_async"})
Breaking Changes
- Drop support for Python 3.8 since its end-of-life date is October 2024.
- Remove all exceptions from the main module and raise them from the
exceptions
module. This is to declutter the main module and make it easier to maintain.
Internal Changes
- Make
nest_asyncio
a required dependency since most users will need it to run the package in Jupyter notebooks.
v0.17.1
Release Notes
Internal Changes
- Drop support for Python 3.8 since its end-of-life date is October 2024.
v0.17.0
Release Notes
Internal Changes
- Add the
exceptions
module to the high-level API to declutter the main module. In the future, all exceptions will be raised from this module and not from the main module. For now, the exceptions are raised from both modules for backward compatibility. - Switch to using the
src
layout instead of theflat
layout for the package structure. This is to make the package more maintainable and to avoid any potential conflicts with other packages. - Add artifact attestations to the release workflow.
v0.16.1
Release Notes
New Features
- When a request fails with encoding error, it gets retried with the encoding set to
latine1
. This is to handle cases where the server sends a response with an encoding that is not supported by the client. (120
{.interpreted-text role="issue_hydro"})
v0.16.0
Release Notes
New Features
- Add a new environmental variable called
"HYRIVER_SSL_CERT"
for setting the path to a SSL certificate file other than the default one. You can do this like so:
import os
os.environ["HYRIVER_SSL_CERT"] = "path/to/file.pem"
v0.15.2
Release Notes
Bug Fixes
- Fix an issue with getting all valid keywords that
aiohttp
accepts by usingaiohttp.ClientSession()._request
directly.
v0.15.0
Release Notes
From release 0.15 onward, all minor versions of HyRiver packages will be pinned. This ensures that previous minor versions of HyRiver packages cannot be installed with later minor releases. For example, if you have py3dep==0.14.x
installed, you cannot install pydaymet==0.15.x
. This is to ensure that the API is consistent across all minor versions.
Bug Fixes
- When
raise_status
isFalse
, responses for failed requests used to return asNone
but their requests ID was not returned, so sorting would have failed. Now request IDs are returned for all requests regardless of whether they were successful or not. - Give precedence to non-default arguments for caching related arguments instead of directly getting them from env variables. This is to avoid the case where the user sets the env variables but then passes different arguments to the function. In this case, the function should use the passed arguments instead of the env variables.
v0.14.0
Release Notes
New Features
- Add a new option to all functions called
raise_status
. IfFalse
no exception will be raised and insteadNone
is returned for those requests that led to exceptions. This will allow for returning all responses that were successful and ignoring the ones that failed. This option defaults toTrue
for retaining backward compatibility. - Set the cache expiration time to one week from never expire. To ensure all users have a smooth transition, cache files that were created before the release of this version will be deleted, and a new cache will be created.
Internal Changes
- Sync all minor versions of HyRiver packages to 0.14.0.