Commit Graph

30 Commits

Author SHA1 Message Date
bastimeyer a0a5af60b0 docs: remove Open Collective
- Rewrite the documentation's donate page
  - Remove donation infos from individual team members
  - Add all team members
  - Fix GitHub username regex in Sphinx extension
- Rewrite the project README
  - Use HTML for centered text, add logo, update badges
  - Rephrase text sections
  - Remove Open Collective and update support section
- Replace all links to Open Collective with a link to the latest docs
2023-02-11 12:10:36 -08:00
bastimeyer 98596e9331 tools: replace flake8 with ruff 2023-02-09 09:54:14 -08:00
bastimeyer 96627e7a0d build: include py.typed in package_data 2023-02-04 13:37:44 -08:00
bastimeyer 6ce58babd2 chore: remove examples
Examples haven't been updated in ages, and the last remaining example
only uses Streamlink's URL resolver, and not any of Streamlink's stream
implementations, so it's a rather useless example of third party code.
2023-01-09 09:36:40 -08:00
bastimeyer 3d4ebf341b plugin.api.websocket: use certifi's cacert.pem
- Add `certifi` as a direct dependency (already defined by `requests`)
  and don't set a version range
- Set the `ca_certs` SSL option in `WebsocketClient` which defaults to
  the CA certs file bundled by `certifi`, similar to HTTPS requests
  made by `requests`
2022-11-17 09:57:08 -08:00
bastimeyer 773c97b371 build: add urllib3 directly and set it to >=1.26.0
Streamlink currently sets the version range of its `requests` dependency
to `>=2.26.0,<3.0`. `requests` however still defines its `urllib3`
dependency version range as `>=1.21.1,<1.27` in its `2.26.0`-`2.28.1`
releases, including its current state in git.

Recent fixes in Streamlink's HLS implementation unfortunately were made
with methods which are only supported by `urllib3 >=1.26.0`.
This obviously breaks installs with older versions of `urllib3`
installed which are still supported by the defined version range.

In order to avoid having to backport more `urllib3` stuff, moving it
from a transitive dependency and defining it as a direct dependency
with a specific version range set to `>=1.26.0` makes more sense when
fixing the issue. This doesn't conflict with the version range defined
by `requests` and forces a bump of old installs of `urllib3`.

`urllib3==1.26.0` was released on 2020-11-10, whereas
`requests==2.26.0`, was released on 2021-07-13, the lowest version
of the version range defined by Streamlink.

---

In addition to defining the direct `urllib3` dependency, also remove
old compatibility workarounds/bugfixes from `plugin.api.http_session`.
2022-11-11 09:38:48 -08:00
bastimeyer 95df07c165 plugin: add session typing information
- Add typing information to `Plugin.session`
- Implement `http_session` stub file due to the `HTTPSession` subclass
  of `requests.Session` which adds additional keywords to the
  `request()` method, including all other HTTP-verb methods
- Add `flake8-pyi` and `typing_extensions` to dev-requirements.txt
  (`typing_extensions` is not a runtime dependency)
2022-09-09 18:13:39 -07:00
bastimeyer fff57f041d build: add Python 3.11 to package classifiers 2022-09-07 15:50:14 -07:00
bastimeyer cc455586c5 ci: lint sphinx extensions and setup.py 2022-06-23 09:35:00 -07:00
Ben Greiner 63a349aef0
build: fix python_requires (#4580) 2022-06-09 18:37:13 +02:00
bastimeyer c319aa445e cli: list all dependencies in debug output
- Require importlib-metadata as fallback on Python < 3.8
- Add importlib_metadata to streamlink_cli.compat
- List all dependencies in `log_current_versions`
- Update tests
2022-06-06 08:44:02 +02:00
bastimeyer 5249900b3e script: rewrite github release script
- Completely rewrite GitHub release script
  - Remove --dry-run and make it implicit when no API key is set
  - Remove --api-key and read from RELEASES_API_KEY or GITHUB_TOKEN
  - Add --template, --changelog, --no-contributors and --no-shortlog
  - Refactor GitHub API stuff
  - Update release template logic and use Jinja2
  - Get list of contributors (with support for commit co-authors):
    GitHub highlights usernames in releases, which this is meant for
  - Generate git shortlog automatically
  - Always close open file handles
- Update release template based on Jinja2 logic
- Update release CI job
  - Install Jinja2
  - Upgrade Python to 3.10 and setup-python to v2
  - Fetch entire repo
  - Don't upload wheels to GitHub releases
2022-05-07 12:20:56 +02:00
bastimeyer 75941e1c91 chore: clean up flake8 config 2022-04-22 10:45:08 -07:00
bastimeyer 9b0815dbee build: add pyproject.toml, switch to versioningit
- 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
2022-04-10 07:55:31 +02:00
bastimeyer 89ab021c07 chore: drop support for Python 3.6 2022-04-10 07:35:19 +02:00
bastimeyer 81ed15aaca build: drop removed plugins file from package_data 2022-04-08 15:22:51 -07:00
bastimeyer aabd6af718 setup: drop iso-639/iso3166, default to pycountry
- drop iso-639 and iso3166 dependencies in favor of pycountry
- remove the `STREAMLINK_USE_PYCOUNTRY` env var switch from setup.py
- move dependencies list from setup.py to setup.cfg
- update utils.l10n and its tests
- update Windows installer config
- update docs
2021-11-14 11:42:36 -08:00
bastimeyer 46817a1cff streams: remove HDS/AkamaiHD and flashmedia pkg
- drop HDS and AkamaiHD stream implementations
- drop HDS and AkamaiHD plugins
- drop streamlink.packages.flashmedia
- remove stream.flvconcat, stream.playlist and plugins.common_swf
- remove "hds" from default stream types list
- remove all `--hds-*` CLI arguments and `hds-*` session options
- remove unneeded flashmedia license text files
- update tests
- update docs and CLI argument help texts
2021-11-12 20:09:53 +01:00
bastimeyer c2ce68cf99 setup: add Python 3.10 to classifiers list 2021-11-02 21:58:12 -07:00
bastimeyer 42ca168b27 setup: switch to declarative package metadata
- move static package metadata to setup.cfg
- rename deprecated license_file field to license_files

Remove setuptools arguments:
- test_suite:
  Unneeded, as we disable the deprecated setuptools test command

Keep dynamic setuptools arguments:
- version/cmdclass:
  For writing static version info via versioneer
- install_requires:
  Some dependencies still depend on special environment variables
  instead of package "extra" dependency fields
- entry_points:
  The `gui_scripts` entry point should only be set when building wheels
  for Windows via `--plat-name={win32,win-amd64,cygwin}`
- data_files:
  All data files are optional and should not cause the build to fail if
  they are missing, eg. when building from sdist
2021-10-23 10:43:37 -07:00
bastimeyer b015edb214 flake8: add import-order linting config 2020-10-27 17:17:49 +01:00
bastimeyer 8034b16063 chore: drop support for Python 2
- Bump Python version requirement to 3.5
- Remove unneeded compatibility dependencies
- Remove py2 warning from streamlink.session
- Update pypi package classifiers
- Update docs
- Remove universal bdist_wheel
- Update CI test runners and codecov config
2020-10-19 14:54:14 +02:00
bastimeyer b325aff98d flake8: E501
E501 line too long (... > 128 characters)
2020-02-23 09:53:55 +01:00
bastimeyer 76f162e04c flake8: F401, F403
F401 '...' imported but unused
F403 'from ... import *' used; unable to detect undefined names
2020-02-19 18:43:05 +01:00
bastimeyer cafbe6439a flake8: W291, W292, W293, W391
W291 trailing whitespace
W292 no newline at end of file
W293 blank line contains whitespace
W391 blank line at end of file
2020-02-19 18:42:50 +01:00
bastimeyer f1b5411820 flake8: E402
E402 module level import not at top of file
2020-02-19 18:42:21 +01:00
back-to 6af52ebae4 setup.cfg: added flake8 settings 2019-08-07 21:02:43 +02:00
beardypig a14f170a04 sdist and wheel release fixes (#1758)
* build: fix for universal wheel on python 2.7

* release: fix build order for deploys

The script to build the sdist and wheel packages is run before the
script that uploads them to PyPI. The sdist script doesn't clean up
the environment, but extra prune options have been added to the
MANIFEST.in file (thanks @back-to).

* build: ensure twine/wheel up-to-date and upload sdist/whl separately
2018-06-07 18:01:16 -07:00
beardypig 416c8347b3 build: use versioneer to set the build number (#1413)
* build: use versioneer to set the build number

* build: update the deploy scripts to use versioneer

* release: update docs version and fix tarball version

* build: no need to install versioneer on travis, etc.
2018-05-13 22:18:52 -07:00
Christopher Rosell 732fe19451 Add setup.cfg with wheel settings. 2014-05-17 14:38:46 +02:00