[0.2.9](https://github.com/nxtlo/aiobungie/compare/0.2.8...0.2.9) - 2023-12-1
Major Changes
* Python 3.10 and above is now required, 3.9.0 is no longer supported.
* Method `fetch_player` renamed to `fetch_membership`.
* `download_manifest` method has been renamed to `download_sqlite_manifest`
Performance Improvements.
* Optimized converting `ISO8661` date strings to datetime, `dateutil` package has been dropped and the converting process has been implemented directly using stdlib datetime.
* `orjson` and `ujson` are a faster replacement for the JSON lib, If were found installed, They will be used as the default JSON encode/decoder.
* `ruff` is now used as the default formatter. This is rather an internal change and shouldn't affect users.
Added
* Added more examples.
* Lightfall loadouts methods to the `RESTClient`.
- `equip_loadout`
- `clear_loadout`
- `snapshot_loadout`
- `update_loadout`
* `CHARACTER_LOADOUTS` components type enum field.
* If your Python version is `3.10`, A backport of `datetime.fromisoformat` module will be installed.
This is required due to this specific Python version not able to parse some ISO date formats.
* `aiobungie.EmptyFactory` object. See the object docs for more info.
* `Iterator.last()` method which return the last item in the iterator.
Changed
* `User.destiny` renamed to `User.memberships`, `ClanMember.bungie` to `ClanMember.bungie_user`,
* `LinkedProfile.bungie` to `LinkedProfile.bungie_user` for naming consistency.
* Both download manifest methods now return `pathlib.Path` object.
* All arguments in the client constructors now required to be passed as a kwarg besides the token.
* Refactor examples code.
* `Factory` methods that used to return `Optional[T]` now returns just `T`.
* `Enum.__int__` and `Flag.__int__` doesn't check the instance of the type anymore.
* `iterators.into_iter` function renamed to `iterators.iter`.
* Use new `str | None` union instead of `Optional[str, None]`
* Improved documentations on objects.
* Some object field names has been typo fixed.
* Method `fetch_available_fireteams` typo name fixed.
* `Character.total_played_time` now returns the total time in seconds instead of string.
* Fields `emblem`, `emblem_icon` and `emblem_hash` are now Optional.
Removed
* The `net` field has been removed from some objects.
* The `UNDEFINED` object, Fields now return `T or None` instead.
Fixed
* Fixed multiple buggy `Factory` methods.
* `Factory.deserialize_character` was raising `KeyError` when accessing the emblem keys, Thanks to spacez320 (303)