-
-
Notifications
You must be signed in to change notification settings - Fork 151
Expand file tree
/
Copy pathpyproject.toml
More file actions
110 lines (99 loc) · 3.89 KB
/
Copy pathpyproject.toml
File metadata and controls
110 lines (99 loc) · 3.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
[build-system]
requires = ["setuptools>=77", "wheel"]
build-backend = "setuptools.build_meta"
[project]
name = "jellyfin-mpv-shim"
description = "Cast media from Jellyfin Mobile and Web apps to MPV."
readme = "README.md"
authors = [{ name = "Izzie Walton", email = "izzie@iwalton.com" }]
license = "GPL-3.0-or-later"
license-files = ["LICENSE.md"]
requires-python = ">=3.9"
classifiers = [
"Programming Language :: Python :: 3",
"Operating System :: OS Independent",
]
dynamic = ["version"]
dependencies = [
"python-mpv>=1.0.8",
"jellyfin-apiclient-python>=1.18.0",
"python-mpv-jsonipc>=1.3.0",
"requests",
# Not optional since the in-player library browser replaced the Tk one:
# every tile, the playback HUD and the cast screen are rasterized with
# Pillow, and logging in at all now goes through that browser. Without it
# the app falls back to the CLI, which is a materially different product.
"pillow",
]
[project.urls]
Homepage = "https://github.com/jellyfin/jellyfin-mpv-shim"
[project.optional-dependencies]
systray = ["pystray"]
# Deprecated alias for `systray`. Kept because `jellyfin-mpv-shim[gui]` is in
# every version of the install instructions people have already copied, and an
# unknown extra is only a warning — the install would silently lack the tray.
gui = ["pystray"]
discord = ["pypresence"]
all = [
"pystray",
"pypresence",
"pywin32; sys_platform == 'win32'",
]
[project.scripts]
jellyfin-mpv-shim = "jellyfin_mpv_shim.mpv_shim:main"
[tool.setuptools]
include-package-data = true
[tool.setuptools.dynamic]
version = { attr = "jellyfin_mpv_shim.constants.CLIENT_VERSION" }
[tool.setuptools.packages.find]
include = ["jellyfin_mpv_shim*"]
[tool.setuptools.package-data]
jellyfin_mpv_shim = [
"systray.png",
"logo.png",
"*.lua",
"messages/base.pot",
"messages/*/LC_MESSAGES/*.mo",
"default_shader_pack/**/*",
"integration/**/*",
# Built-in UI themes. A file of the same name under the user's config dir
# shadows one of these — see mpvtk_browser/themes.py.
"themes/*.json",
]
# mpvtk loads renderer.lua relative to its own __file__, so it has to land in
# the subpackage directory — the top-level "*.lua" glob does not reach here.
"jellyfin_mpv_shim.mpvtk" = ["*.lua"]
# --- mypy ------------------------------------------------------------------
# The gate is tools/mypy_gate.sh, which fails only on findings that are not in
# tools/mypy-baseline.txt. This section is where a module graduates OUT of that
# baseline: once its findings are at zero it gets check_untyped_defs, so the
# bodies of its unannotated functions are checked from then on and a regression
# is a NEW finding rather than one more line of baseline.
#
# It is deliberately NOT global. The browser's mixin modules are mid-refactor
# into page objects, and their findings are almost all "Mixin has no attribute
# X" — cross-mixin self references that the refactor resolves structurally.
# Turning the flag on for them now would bury the modules that are actually
# clean.
[tool.mypy]
# None of the C-extension/API dependencies ship stubs or a py.typed marker, so
# every import of one is otherwise a finding in whatever module imports it —
# noise about the dependency, not about our code.
[[tool.mypy.overrides]]
module = ["jellyfin_apiclient_python.*"]
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = [
"jellyfin_mpv_shim.mpvtk_browser.async_runner",
"jellyfin_mpv_shim.mpvtk_browser.components.*",
"jellyfin_mpv_shim.mpvtk_browser.downloads",
"jellyfin_mpv_shim.mpvtk_browser.hud",
"jellyfin_mpv_shim.mpvtk_browser.navigator",
"jellyfin_mpv_shim.mpvtk_browser.pages.*",
"jellyfin_mpv_shim.mpvtk_browser.gateway.*",
"jellyfin_mpv_shim.mpvtk_browser.repository",
"jellyfin_mpv_shim.mpvtk_browser.strips",
"jellyfin_mpv_shim.mpvtk_browser.thumbnails",
"jellyfin_mpv_shim.mpvtk_browser.ui",
]
check_untyped_defs = true