mirror of
https://github.com/Amor-Aprca/WPGSKD.git
synced 2026-09-14 12:01:24 +02:00
129 lines
2.8 KiB
TOML
129 lines
2.8 KiB
TOML
[build-system]
|
|
requires = ['poetry-core>=1.0.0']
|
|
build-backend = 'poetry.core.masonry.api'
|
|
|
|
[tool.poetry]
|
|
name = 'wpgskd'
|
|
version = '0.2.0'
|
|
description = 'Widevine, PlayReady, AES-128, and ClearKey downloader and decrypter'
|
|
authors = ["WPGSKD Contributors"]
|
|
|
|
[tool.poetry.dependencies]
|
|
python = "^3.10"
|
|
requests = {extras = ["socks"], version = "2.32.5"}
|
|
curl-cffi = "^0.6.0"
|
|
httpx = "^0.23.0"
|
|
lxml = "^5.3.0"
|
|
m3u8 = "^0.9.0"
|
|
isodate = "^0.6.1"
|
|
tldextract = "^3.1.0"
|
|
validators = "^0.18.2"
|
|
websocket-client = "^1.1.0"
|
|
pycryptodome = "^3.21.0"
|
|
pycryptodomex = "^3.4.3"
|
|
ecpy = "^1.2.5"
|
|
crccheck = "^1.0"
|
|
construct = "2.8.8"
|
|
protobuf = "^4.25.1"
|
|
base58 = "^2.1.1"
|
|
appdirs = "^1.4.4"
|
|
click = "^8.1.3"
|
|
coloredlogs = "^15.0"
|
|
rich = "^13.7.1"
|
|
pyyaml = "^6.0.1"
|
|
ruamel-yaml = "^0.18.10"
|
|
jsonpickle = "^2.0.0"
|
|
langcodes = {extras = ["data"], version = "^3.4.0"}
|
|
tqdm = "^4.67.1"
|
|
Unidecode = "^1.2.0"
|
|
pymediainfo = "^5.0.3"
|
|
defusedxml = "^0.7.1"
|
|
pproxy = "^2.7.7"
|
|
pysubs2 = "^1.6.1"
|
|
pycaption = "^2.1.1"
|
|
chardet = "^5.2.0"
|
|
ftfy = "^6.3.1"
|
|
pywidevine = "^1.8.0"
|
|
pyplayready = {git = "https://git.gay/ready-dl/pyplayready.git"}
|
|
numpy = "^1.26.0"
|
|
xmltodict = "^1.0.4"
|
|
beautifulsoup4 = "^4.11.2"
|
|
tinycss = "^0.4"
|
|
srt = "^3.5.3"
|
|
|
|
[tool.poetry.group.dev.dependencies]
|
|
flake8 = "^3.8.4"
|
|
isort = "^5.9.2"
|
|
pyinstaller = "^4.4"
|
|
ruff = "^0.6.0"
|
|
mypy = "^1.10.0"
|
|
bandit = "^1.7.9"
|
|
pre-commit = "^3.7.0"
|
|
pytest = "^8.0.0"
|
|
pytest-asyncio = "^0.23.0"
|
|
pytest-cov = "^5.0.0"
|
|
responses = "^0.25.0"
|
|
types-requests = "^2.31.0"
|
|
types-PyYAML = "^6.0.0"
|
|
|
|
[tool.poetry.scripts]
|
|
wp = 'wpgskd.wpgskd:main'
|
|
|
|
[tool.isort]
|
|
line_length = 120
|
|
classes = ['CTV', 'FPS', 'IO', 'iTunes', 'MP4', 'TVNOW']
|
|
extend_skip = ['scripts/pywidevine', 'wpgskd/vendor']
|
|
|
|
[tool.ruff]
|
|
line-length = 120
|
|
target-version = "py310"
|
|
force-exclude = true
|
|
|
|
[tool.ruff.lint]
|
|
select = ["E4", "E7", "E9", "F", "W", "I", "UP", "B"]
|
|
ignore = ["E501"]
|
|
|
|
[tool.ruff.lint.per-file-ignores]
|
|
"scripts/pywidevine/**" = ["ALL"]
|
|
"wpgskd/vendor/**" = ["ALL"]
|
|
"tests/**" = ["B011"]
|
|
|
|
[tool.ruff.format]
|
|
quote-style = "double"
|
|
|
|
[tool.mypy]
|
|
python_version = "3.10"
|
|
ignore_missing_imports = true
|
|
follow_imports = "silent"
|
|
check_untyped_defs = false
|
|
disallow_untyped_defs = false
|
|
warn_unused_ignores = true
|
|
warn_redundant_casts = true
|
|
exclude = [
|
|
"scripts/pywidevine/",
|
|
"wpgskd/vendor/",
|
|
]
|
|
|
|
[tool.bandit]
|
|
exclude_dirs = ["tests", "scripts/pywidevine", "wpgskd/vendor"]
|
|
skips = [
|
|
"B101",
|
|
"B324",
|
|
"B413",
|
|
"B314",
|
|
"B608",
|
|
]
|
|
|
|
[tool.pytest.ini_options]
|
|
testpaths = ["tests"]
|
|
asyncio_mode = "auto"
|
|
addopts = "-ra --strict-markers"
|
|
markers = [
|
|
"unit: fast, mocked tests (default)",
|
|
"slow: tests that may take >10s",
|
|
"live: end-to-end tests against real services (opt-in via --live)",
|
|
]
|
|
filterwarnings = [
|
|
"ignore::DeprecationWarning",
|
|
]
|