mnamer 2.6.1.dev7__tar.gz → 2.6.1.dev18__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- mnamer-2.6.1.dev18/.python-version +1 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/PKG-INFO +8 -9
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/__version__.py +1 -1
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/argument.py +7 -3
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/const.py +17 -19
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/endpoints.py +185 -59
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/frontends.py +6 -1
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/language.py +4 -3
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/metadata.py +20 -11
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/providers.py +112 -63
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/setting_spec.py +0 -2
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/setting_store.py +16 -15
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/target.py +7 -11
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/tty.py +4 -8
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/types.py +2 -1
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/utils.py +68 -52
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/PKG-INFO +8 -9
- mnamer-2.6.1.dev18/mnamer.egg-info/requires.txt +7 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/pyproject.toml +22 -18
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_utils.py +1 -1
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__omdb.py +59 -59
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tvdb.py +49 -49
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tvmaze.py +5 -5
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_providers__tmdb.py +3 -1
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_providers__tvdb.py +5 -3
- mnamer-2.6.1.dev18/uv.lock +1098 -0
- mnamer-2.6.1.dev7/.python-version +0 -1
- mnamer-2.6.1.dev7/mnamer.egg-info/requires.txt +0 -8
- mnamer-2.6.1.dev7/uv.lock +0 -937
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/actions/init/action.yml +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/actions/lint/action.yml +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/actions/test/action.yml +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/dependabot.yml +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/workflows/publish.yml +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/workflows/pull_request.yml +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/workflows/push.yml +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.gitignore +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.vscode/settings.json +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/Dockerfile +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/LICENSE.txt +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/MANIFEST.in +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/README.md +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/design.eps +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/logo-2.png +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/logo-3.png +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/logo.png +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/recording.mov +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/screenshot.eps +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/screenshot.png +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/makefile +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/__init__.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/__main__.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/exceptions.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/py.typed +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/SOURCES.txt +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/dependency_links.txt +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/entry_points.txt +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/top_level.txt +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/pytest.ini +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/setup.cfg +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/__init__.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/conftest.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/__init__.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/conftest.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/test_directives.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/test_errors.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/test_moving.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/__init__.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_argument.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_language.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_metadata.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_setting_spec.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_setting_store.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_target.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_tty.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/__init__.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tmdb.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_providers__omdb.py +0 -0
- {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_providers__tvmaze.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.14
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: mnamer
|
|
3
|
-
Version: 2.6.1.
|
|
3
|
+
Version: 2.6.1.dev18
|
|
4
4
|
Summary: A command-line utility for organizing media files.
|
|
5
5
|
Author-email: Jessy Williams <jessy@jessywilliams.com>
|
|
6
6
|
Maintainer-email: Jessy Williams <jessy@jessywilliams.com>
|
|
@@ -30,14 +30,13 @@ Project-URL: repository, https://github.com/jkwill87/mnamer
|
|
|
30
30
|
Requires-Python: >=3.12
|
|
31
31
|
Description-Content-Type: text/markdown
|
|
32
32
|
License-File: LICENSE.txt
|
|
33
|
-
Requires-Dist: appdirs
|
|
34
|
-
Requires-Dist: babelfish
|
|
35
|
-
Requires-Dist: guessit
|
|
36
|
-
Requires-Dist: requests
|
|
37
|
-
Requires-Dist: requests-cache~=
|
|
38
|
-
Requires-Dist: setuptools-scm>=
|
|
39
|
-
Requires-Dist: teletype
|
|
40
|
-
Requires-Dist: typing-extensions>=4.7.0
|
|
33
|
+
Requires-Dist: appdirs~=1.4.4
|
|
34
|
+
Requires-Dist: babelfish~=0.6.1
|
|
35
|
+
Requires-Dist: guessit~=3.8.0
|
|
36
|
+
Requires-Dist: requests~=2.33.1
|
|
37
|
+
Requires-Dist: requests-cache~=1.3.1
|
|
38
|
+
Requires-Dist: setuptools-scm>=10.0.0
|
|
39
|
+
Requires-Dist: teletype~=1.3.4
|
|
41
40
|
Dynamic: license-file
|
|
42
41
|
|
|
43
42
|
[](https://pypi.python.org/pypi/mnamer)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import argparse
|
|
2
|
-
from typing import Any
|
|
2
|
+
from typing import Any, final, override
|
|
3
3
|
|
|
4
4
|
from mnamer.const import USAGE
|
|
5
5
|
from mnamer.setting_spec import SettingSpec
|
|
@@ -28,6 +28,7 @@ DIRECTIVES:
|
|
|
28
28
|
"""
|
|
29
29
|
|
|
30
30
|
|
|
31
|
+
@final
|
|
31
32
|
class ArgLoader(argparse.ArgumentParser):
|
|
32
33
|
"""
|
|
33
34
|
An overridden ArgumentParser class which is build to accommodate mnamer's setting
|
|
@@ -49,7 +50,9 @@ class ArgLoader(argparse.ArgumentParser):
|
|
|
49
50
|
SettingType.PARAMETER,
|
|
50
51
|
SettingType.POSITIONAL,
|
|
51
52
|
}
|
|
52
|
-
|
|
53
|
+
for spec in specs:
|
|
54
|
+
if spec.group in groups:
|
|
55
|
+
self._add_spec(spec)
|
|
53
56
|
|
|
54
57
|
def _add_spec(self, spec: SettingSpec):
|
|
55
58
|
if spec.group is SettingType.PARAMETER:
|
|
@@ -63,7 +66,7 @@ class ArgLoader(argparse.ArgumentParser):
|
|
|
63
66
|
args, kwargs = spec.registration
|
|
64
67
|
if not args or not kwargs.get("help"):
|
|
65
68
|
raise RuntimeError("Cannot register ArgumentSpec")
|
|
66
|
-
group.add_argument(*args, **kwargs)
|
|
69
|
+
_action = group.add_argument(*args, **kwargs)
|
|
67
70
|
|
|
68
71
|
__iadd__ = _add_spec
|
|
69
72
|
|
|
@@ -73,6 +76,7 @@ class ArgLoader(argparse.ArgumentParser):
|
|
|
73
76
|
raise RuntimeError(f"invalid arguments: {','.join(unknowns)}")
|
|
74
77
|
return vars(load_arguments)
|
|
75
78
|
|
|
79
|
+
@override
|
|
76
80
|
def format_help(self) -> str:
|
|
77
81
|
"""
|
|
78
82
|
Overrides ArgumentParser's format_help to dynamically generate a help message
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"""Shared constant definitions."""
|
|
2
2
|
|
|
3
3
|
import datetime as dt
|
|
4
|
+
from importlib.metadata import PackageNotFoundError, version as pkg_version
|
|
4
5
|
from pathlib import Path
|
|
5
6
|
from platform import platform, python_version
|
|
6
7
|
from sys import argv, gettrace, version_info
|
|
@@ -8,15 +9,16 @@ from sys import argv, gettrace, version_info
|
|
|
8
9
|
VERSION: str
|
|
9
10
|
|
|
10
11
|
try:
|
|
11
|
-
from mnamer.__version__ import
|
|
12
|
+
from mnamer.__version__ import (
|
|
13
|
+
__version__ as VERSION, # type: ignore # pyright: ignore
|
|
14
|
+
)
|
|
12
15
|
except ModuleNotFoundError:
|
|
13
16
|
from setuptools_scm import get_version # type: ignore
|
|
14
17
|
|
|
15
|
-
VERSION = get_version(root="..", relative_to=__file__, local_scheme="dirty-tag")
|
|
16
|
-
|
|
18
|
+
VERSION = get_version(root="..", relative_to=__file__, local_scheme="dirty-tag") # pyright: ignore
|
|
17
19
|
try:
|
|
18
|
-
|
|
19
|
-
except
|
|
20
|
+
appdirs_version = pkg_version("appdirs")
|
|
21
|
+
except PackageNotFoundError:
|
|
20
22
|
appdirs_version = "N/A"
|
|
21
23
|
|
|
22
24
|
try:
|
|
@@ -27,44 +29,40 @@ except ModuleNotFoundError:
|
|
|
27
29
|
cache_dir = "N/A"
|
|
28
30
|
|
|
29
31
|
try:
|
|
30
|
-
|
|
31
|
-
except
|
|
32
|
+
guessit_version = pkg_version("guessit")
|
|
33
|
+
except PackageNotFoundError:
|
|
32
34
|
guessit_version = "N/A"
|
|
33
35
|
|
|
34
36
|
try:
|
|
35
|
-
|
|
36
|
-
except
|
|
37
|
+
requests_version = pkg_version("requests")
|
|
38
|
+
except PackageNotFoundError:
|
|
37
39
|
requests_version = "N/A"
|
|
38
40
|
|
|
39
41
|
try:
|
|
40
|
-
|
|
41
|
-
except
|
|
42
|
+
requests_cache_version = pkg_version("requests_cache")
|
|
43
|
+
except PackageNotFoundError:
|
|
42
44
|
requests_cache_version = "N/A"
|
|
43
45
|
|
|
44
46
|
try:
|
|
45
|
-
|
|
46
|
-
except
|
|
47
|
+
teletype_version = pkg_version("teletype")
|
|
48
|
+
except PackageNotFoundError:
|
|
47
49
|
teletype_version = "N/A"
|
|
48
50
|
|
|
49
51
|
|
|
50
52
|
CACHE_PATH = Path(
|
|
51
|
-
cache_dir, f"mnamer-py{version_info.major}.{version_info.minor}"
|
|
53
|
+
cache_dir, f"mnamer-py{version_info.major}.{version_info.minor}.sqlite"
|
|
52
54
|
).absolute()
|
|
53
55
|
|
|
54
56
|
CURRENT_YEAR = dt.datetime.now().year
|
|
55
|
-
|
|
56
57
|
DEPRECATED = {"no_replace", "replacements"}
|
|
57
|
-
|
|
58
58
|
IS_DEBUG = gettrace() is not None
|
|
59
|
-
|
|
60
59
|
SUBTITLE_CONTAINERS = [".srt", ".idx", ".sub"]
|
|
61
60
|
|
|
62
|
-
|
|
63
61
|
SYSTEM = {
|
|
64
62
|
"date": dt.date.today(),
|
|
65
63
|
"platform": platform(),
|
|
66
64
|
"arguments": argv[1:],
|
|
67
|
-
"cache location":
|
|
65
|
+
"cache location": CACHE_PATH,
|
|
68
66
|
"python version": python_version(),
|
|
69
67
|
"mnamer version": VERSION,
|
|
70
68
|
"appdirs version": appdirs_version,
|