- Replace `tool.versioningit.onbuild` hook with a custom implementation
which replaces the entire `streamlink._version` module (similar to
before) and which additionally removes `versioningit` from the
`build-system.requires` field in `pyproject.toml` and which sets
a static version string in `setup.py`
- Rewrite `streamlink._version` module
- Add and update comments
- Update docs
- Add tests
And fix issues:
- Add new "noqa" annotations where needed and update "per-file-ignores"
- Remove previously needed but now unnecessary "noqa" annotations
- Update CDP generator script and regenerate the CDP modules
- Fix missing ClassVar type annotations
- Fix concatenation of collection literals
- Fix unnecessary key check
- Use type conversion flags in f-strings
- Fix miscellaneous issues
- Add custom build backend which overrides certain hooks
- Include custom build backend in sdists via `MANIFEST.in`
- Remove `build>=1.0.0` workaround from `build-and-sign.sh`
- Add build backend tests, update order of tests and coverage config
Move Streamlink's project metadata from setuptools's own `setup.cfg`
to the standardized `pyproject.toml` format (PEP621)
- Bump setuptools to `>=64.0.0`
- Bump pip dev-requirement to `>=21.0.0`
- Set two `author` entries, to keep the same `Author` and `Author-email`
core metadata in the resulting sdist and bdist packages
- Set `license.text` field instead of `license.file` and add the
setuptools-specific `license-files` config attribute, so that
the `License` and `License-File` core metadata doesn't change.
License data will receive another change in the future once PEP639
comes into effect
- By switching to PEP621 metadata, implicitly move the `Home-page`
core metadata to `Project-URL: Homepage, ...`
- Remove upper version constraint from `requires-python`
- Reformat some version strings of the `dependencies` field
The stacklevel of the DeprecationWarning raised by `pkg_resources`
got changed in setuptools 68.0.0, so we have to adjust our warnings
filter.
`pycountry` is still importing `pkg_resources`.
- Add "DTZ" ruff rule
- Add utility functions to `streamlink.utils.times` which use
"aware" datetimes with explicit timezone information,
and use `isodate`'s local timezone implementation
- Replace all "naive" datetimes without timezone information
- Replace all custom ISO8601 parsers with `isodate`'s implementation
- Add tests for new utility functions
- Add pytest config to pyproject.toml
- Set pytest 6.0.0 as minimum version via dev-requirements.txt
- Remove unneeded filterwarnings("always") calls from tests
- Move list of files from CI config to mypy config in pyproject.toml,
so that mypy can be run locally without having to specificy the same
inputs as CLI arguments. Keep --no-incremental exclusive to CI runner.
- Update Python version of mypy CI runner.
- Fix typing ignore comment when importing importlib_metadata fallback
in the streamlink_cli.compat module.
- Add mypy and available typing stubs to dev-requirements
- Add mypy config
- Add py.typed to streamlink + streamlink_cli packages (PEP 561):
This is required, so that mypy can import types from streamlink when
installed in editable mode. Don't publish this file for now.
Once various streamlink APIs are properly typed, typing stub files
can be added instead.
- Add basic pyproject.toml with build-system information
- Drop versioneer in favor of versioningit
- Delete versioneer install module and remove its setup.cfg config
- Replace `src/streamlink/_version.py` and load streamlink's version
string via versioningit. The module's `__version__` export will get
replaced by a static string on build-time when creating sdists/wheels,
which results in the old versioneer behavior with support for
editable installs.
- Make versioningit use the same version format as versioneer
- Update MANIFEST.in and .coveragerc