Files
WPGSKD/pyproject.toml
Amor-AprcaandGitHub 08123b2bd8 Update pyproject.toml with new dependencies
Added new dependencies for BeautifulSoup4, TinyCSS, and SRT.
2026-07-16 09:15:21 +08:00

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",
]