- Make all `Argument` attributes immutable
- Add `Argument.__hash__()` and `Argument.__eq__()` methods,
so two `Argument` objects can be compared for equality
- Fix minor typing issues
- Move `streamlink.plugin.api.http_session` module
to `streamlink.session.http`
- Deprecate old (and unnecessary) `HTTPSession` export
in `streamlink.plugin.api`
- Fix custom `HTTPAdapter` imports in plugins
- Fix imports and fix monkeypatch paths in tests
In the next commit:
Restore the `streamlink.plugin.api.http_session` module and re-export
`HTTPSession` and the `HTTPAdapter` classes with deprecation warnings.
- Move `StreamlinkOptions` from `streamlink.session`
to `streamlink.session.options`
- Move docstring containing options list from `Streamlink.set_option()`
to `StreamlinkOptions` and add this class to the docs
- Move default options from `Streamlink` constructor
to `StreamlinkOptions._DEFAULTS`, so all options data is defined
in the `streamlink.session.options` module
- Move session options tests to `tests.session.test_options`
and change order of tests
- Use global finder cache via `pkgutil.get_importer()`
instead of always creating a new `FileFinder` object for each module
- Add `exec_module()` for being able to reuse `PathEntryFinder` objects
returned by `pkgutil.iter_modules()`
- Add support for pathlib path objects
- Update tests
pytest-asyncio 0.23.4 has been released and now itself limits
pytest to <8, so this does not have to be done by us anymore.
As soon as pytest-asyncio will have resolved its incompatibilities with
pytest >=8, the latest versions will be picked up by pip automatically.
- set Referer and Origin headers
- only keep the `wsSecret` and `wsTime` query string params
in the stream URLs
- remove stream URL HEAD requests for checking the availability
- add stream priority override for faulty TLS server configs
- Make built-in plugins use pluginargument type functions referenced
via name, so the pluginargument data can be fully JSON-serialized
- Add the `type_args`/`type_kwargs` arguments to `@pluginargument()`
which allow the parametrization of the name-referenced type function
- Add a pluginargument type registry to the `streamlink.plugin.plugin`
module and add all functions of the `streamlink.utils.args` module,
as well as the `hours_minutes_seconds{,_float}` functions of
the `streamlink.utils.times` module
- Update docs
- Add tests
- Explicitly define keywords passed to `ArgumentParser.add_argument()`
so they can be properly type-checked
- Update `Argument.options` accordingly and add tests
- Fix `Argument.requires` value
- Update docstrings