Another major version!
It's that time again for yet another major version. Just as you thought the current version would be the last!
What's changed so far?
* The biggest change is to how the client is authorised. `Secrets` and `Tokens` are now able to make their own requests (meaning tokens can now refresh themselves)
* There is now only one `Client`, and is uses _sessions_ instead of _shards_ to make bulk requests. This is significantly less clunky both to use and implement
* The `Tokens.expires_in` attribute can now be reliably updated by analytix!
* The `Scopes.ALL` now includes JWT scopes -- `Scopes.ALL_READONLY` mirrors the old behaviour
* The minimum supported version of Python is now 3.10
What will change next?
I want to try and get to each part of the code and simplify it. I've already started working on simplifying the report validation system (which hasn't seen any major changes for a good few years now), and I plan to separate the workings of groups and reports, as currently groups are kinda second-class citizens.
Newer versions of Python of course have new features, and one that is particularly suited to analytix is exception groups. These will allow analytix to show _all_ validation errors it finds at the same time, rather than one at a time (though you won't see this benefit if you're on Python 3.10).
It's worth keeping in mind that this is an alpha version, and there may be bugs. The core functionality seems to work okay, but the extended functionality (that which requires optional third-parties) has not been tested to the same degree, and may not work so well at the moment. Of course, as v6 continues development, these issues will be fixed, but do let me know if you see anything in the meantime!