Changelog#
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased#
1.1.2 - 2024-11-17#
Fixed#
- Moved away from using
typing.runtime_checkableas this is unreliable in newer Python versions.
1.1.1 - 2024-10-07#
Changed#
- Support python 3.13.
1.1.0 - 2024-07-26#
Changed#
- hikari.api.RESTClient can now be passed as app to sake.redis.ResourceClient.init.
Fixed#
- Case where the OwnIDStore would error on returning a phantom stored ID.
1.0.8 - 2023-12-28#
Added#
- Support for Python 3.12.
1.0.7 - 2023-02-20#
Fixed#
- Fix hikari.errors.UnrecognisedEntityError handling in the Redis iterators. This will no-longer lead to an NameError being raised.
1.0.6 - 2023-01-01#
Fixed#
- Catch and ignore hikari.errors.UnrecognisedEntityError during iteration.
1.0.5a1 - 2022-12-08#
Added#
"tanjun"feature flag for ensuring this is installed with a Tanjun version that's compatible with the Tanjun adapters.
Changed#
- Dropped support for Python 3.8.
1.0.4a1.post1 - 2022-11-10#
Changed#
- Switched from aioredis to redis-py for connecting to Redis to properly support Python 3.11.
1.0.4a1 - 2022-11-10#
Changed#
- Bumped the minimum hikari version to 2.0.0.dev112.
- Avoid fetching the bot's user to get it's ID if a READY event has already been received.
- The Tanjun adapter get and iter methods no-longer raise TypeError when the inner-client is inactive.
Fixed#
- Async locking when fetching the bot's ID internally and ensure it only fetches once.
- Raise sake.errors.ClosedClient instead of TypeError when the Sake client is inactive (from get and iter methods).
Removed#
- The project metadata dunder attributes from sake. importlib.metadata should be used to get this metadata instead.
sake.redis_iteratorsis now internal/hidden.redis.ResourceClient.get_connectionis now internal/hidden.
1.0.3a1.post1 - 2022-08-30#
Changed#
- Bumped the minimum hikari version to 2.0.0.dev110.
1.0.3a1 - 2022-08-27#
Fixed#
- Fixed compatibility with newer Hikari and Tanjun releases.
1.0.2a1 - 2022-01-13#
Fixed#
- The Redis
clear_voice_states_for_guildmethod mishandling passing coroutines toasyncio.gatherleading to errors being raised.
Removed#
- The Prefix and Integration cache implementations and interfaces as a part of pruning out-of-scope and useless cache stores.
1.0.1a1 - 2022-01-06#
Added#
RedisResource.add_to_tanjunmethod for easier integration with Tanjun. This both registers dependencies for the resource abcs and impls but also registers adapters which make Sake compatible with Tanjun's AsyncCache interfaces for the relevant resources.
Changed#
abc.ABCis now used as the base class for the abstract interfaces insake.abcinstead oftyping.Protocol.abc.CacheIterator.lenis now guaranteed to always returnsint.
1.0.0a1 - 2021-12-25#
Added#
- Python 3.10 compatibility thx to Aioredis 2.0.0.
- Efficiency improvements brought in by the switch to listening to raw event dispatch.
ClosedClienterror which is raised in favour ofRuntimeErrorwhen an operation is attempted on an inactive sake client.- Client
is_aliveattribute (both on the abstract interface and redit impl).
Changed#
- Aioredis dependency minimum version to 2.0.0. This comes with breaking changes to how RedisClient is initialised as parameters have been replaced and changed (semantically speaking). For more information on this see the documentation. And the client returned by
RedisClient.get_connectionis now fundamentally different. - Bumped Hikari dependency minimum version to 2.0.0.dev104.
- The structure and semantics of internal aspects of RedisClient like how it manages the database connections and how it loads listeners have changed.
- Renamed
sake.traitstosake.abc. - Renamed
RedisClient.resttoappand.dispatchto.event_manager. - IDs are now always stored as strings.
- Renamed
resttoappinRedisClient.__init__and moved away from inferring the event manager from this argument (it now must always be passed asevent_managerif you want the client to listen to events to fill itself). event_managedargument toRedisClient.__init__to let the client be started based on the linked event manager.
Removed#
sake.marshallingand any relevant properties and arguments.- The utility functions in
sake.redis_iteratorsare now private. - The "set" methods have been removed from the abstract interfaces in
sake.abcas these are now considered implementation detail. - While this wasn't ever officially supported, passing
hikari.Uniqueobjects in place of IDs to RedisClients will now lead to erroneous behaviour due to an internal refactor in how IDs are handled. window_sizeparameter fromRedisClient.clear_*methods as these are no-longer chunked.