mnamer 2.6.1.dev13__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.dev13 → mnamer-2.6.1.dev18}/PKG-INFO +8 -9
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/__version__.py +1 -1
- mnamer-2.6.1.dev18/mnamer/const.py +75 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/frontends.py +1 -1
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/setting_store.py +11 -9
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/utils.py +11 -13
- {mnamer-2.6.1.dev13 → 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.dev13 → mnamer-2.6.1.dev18}/pyproject.toml +17 -16
- mnamer-2.6.1.dev18/uv.lock +1098 -0
- mnamer-2.6.1.dev13/.python-version +0 -1
- mnamer-2.6.1.dev13/mnamer/const.py +0 -110
- mnamer-2.6.1.dev13/mnamer.egg-info/requires.txt +0 -8
- mnamer-2.6.1.dev13/uv.lock +0 -937
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.github/actions/init/action.yml +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.github/actions/lint/action.yml +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.github/actions/test/action.yml +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.github/dependabot.yml +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.github/workflows/publish.yml +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.github/workflows/pull_request.yml +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.github/workflows/push.yml +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.gitignore +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/.vscode/settings.json +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/Dockerfile +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/LICENSE.txt +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/MANIFEST.in +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/README.md +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/assets/design.eps +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/assets/logo-2.png +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/assets/logo-3.png +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/assets/logo.png +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/assets/recording.mov +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/assets/screenshot.eps +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/assets/screenshot.png +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/makefile +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/__init__.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/__main__.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/argument.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/endpoints.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/exceptions.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/language.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/metadata.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/providers.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/py.typed +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/setting_spec.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/target.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/tty.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer/types.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer.egg-info/SOURCES.txt +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer.egg-info/dependency_links.txt +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer.egg-info/entry_points.txt +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/mnamer.egg-info/top_level.txt +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/pytest.ini +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/setup.cfg +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/__init__.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/conftest.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/e2e/__init__.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/e2e/conftest.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/e2e/test_directives.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/e2e/test_errors.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/e2e/test_moving.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/__init__.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_argument.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_language.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_metadata.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_setting_spec.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_setting_store.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_target.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_tty.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/local/test_utils.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/__init__.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__omdb.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tmdb.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tvdb.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tvmaze.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/test_providers__omdb.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/test_providers__tmdb.py +0 -0
- {mnamer-2.6.1.dev13 → mnamer-2.6.1.dev18}/tests/network/test_providers__tvdb.py +0 -0
- {mnamer-2.6.1.dev13 → 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)
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"""Shared constant definitions."""
|
|
2
|
+
|
|
3
|
+
import datetime as dt
|
|
4
|
+
from importlib.metadata import PackageNotFoundError, version as pkg_version
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
from platform import platform, python_version
|
|
7
|
+
from sys import argv, gettrace, version_info
|
|
8
|
+
|
|
9
|
+
VERSION: str
|
|
10
|
+
|
|
11
|
+
try:
|
|
12
|
+
from mnamer.__version__ import (
|
|
13
|
+
__version__ as VERSION, # type: ignore # pyright: ignore
|
|
14
|
+
)
|
|
15
|
+
except ModuleNotFoundError:
|
|
16
|
+
from setuptools_scm import get_version # type: ignore
|
|
17
|
+
|
|
18
|
+
VERSION = get_version(root="..", relative_to=__file__, local_scheme="dirty-tag") # pyright: ignore
|
|
19
|
+
try:
|
|
20
|
+
appdirs_version = pkg_version("appdirs")
|
|
21
|
+
except PackageNotFoundError:
|
|
22
|
+
appdirs_version = "N/A"
|
|
23
|
+
|
|
24
|
+
try:
|
|
25
|
+
from appdirs import user_cache_dir
|
|
26
|
+
|
|
27
|
+
cache_dir = user_cache_dir()
|
|
28
|
+
except ModuleNotFoundError:
|
|
29
|
+
cache_dir = "N/A"
|
|
30
|
+
|
|
31
|
+
try:
|
|
32
|
+
guessit_version = pkg_version("guessit")
|
|
33
|
+
except PackageNotFoundError:
|
|
34
|
+
guessit_version = "N/A"
|
|
35
|
+
|
|
36
|
+
try:
|
|
37
|
+
requests_version = pkg_version("requests")
|
|
38
|
+
except PackageNotFoundError:
|
|
39
|
+
requests_version = "N/A"
|
|
40
|
+
|
|
41
|
+
try:
|
|
42
|
+
requests_cache_version = pkg_version("requests_cache")
|
|
43
|
+
except PackageNotFoundError:
|
|
44
|
+
requests_cache_version = "N/A"
|
|
45
|
+
|
|
46
|
+
try:
|
|
47
|
+
teletype_version = pkg_version("teletype")
|
|
48
|
+
except PackageNotFoundError:
|
|
49
|
+
teletype_version = "N/A"
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
CACHE_PATH = Path(
|
|
53
|
+
cache_dir, f"mnamer-py{version_info.major}.{version_info.minor}.sqlite"
|
|
54
|
+
).absolute()
|
|
55
|
+
|
|
56
|
+
CURRENT_YEAR = dt.datetime.now().year
|
|
57
|
+
DEPRECATED = {"no_replace", "replacements"}
|
|
58
|
+
IS_DEBUG = gettrace() is not None
|
|
59
|
+
SUBTITLE_CONTAINERS = [".srt", ".idx", ".sub"]
|
|
60
|
+
|
|
61
|
+
SYSTEM = {
|
|
62
|
+
"date": dt.date.today(),
|
|
63
|
+
"platform": platform(),
|
|
64
|
+
"arguments": argv[1:],
|
|
65
|
+
"cache location": CACHE_PATH,
|
|
66
|
+
"python version": python_version(),
|
|
67
|
+
"mnamer version": VERSION,
|
|
68
|
+
"appdirs version": appdirs_version,
|
|
69
|
+
"guessit version": guessit_version,
|
|
70
|
+
"requests version": requests_version,
|
|
71
|
+
"requests cache version": requests_cache_version,
|
|
72
|
+
"teletype version": teletype_version,
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
USAGE = "USAGE: mnamer [preferences] [directives] target [targets ...]"
|
|
@@ -2,7 +2,7 @@ from abc import ABC, abstractmethod
|
|
|
2
2
|
from typing import override
|
|
3
3
|
|
|
4
4
|
from mnamer import tty
|
|
5
|
-
from mnamer.const import SYSTEM, USAGE, VERSION
|
|
5
|
+
from mnamer.const import SYSTEM, USAGE, VERSION # pyright: ignore
|
|
6
6
|
from mnamer.exceptions import (
|
|
7
7
|
MnamerAbortException,
|
|
8
8
|
MnamerException,
|
|
@@ -108,15 +108,17 @@ class SettingStore:
|
|
|
108
108
|
).as_dict(),
|
|
109
109
|
)
|
|
110
110
|
mask: list[str] = dataclasses.field(
|
|
111
|
-
default_factory=lambda:
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
111
|
+
default_factory=lambda: (
|
|
112
|
+
[
|
|
113
|
+
"avi",
|
|
114
|
+
"m4v",
|
|
115
|
+
"mp4",
|
|
116
|
+
"mkv",
|
|
117
|
+
"ts",
|
|
118
|
+
"wmv",
|
|
119
|
+
]
|
|
120
|
+
+ SUBTITLE_CONTAINERS
|
|
121
|
+
),
|
|
120
122
|
metadata=SettingSpec(
|
|
121
123
|
flags=["--mask"],
|
|
122
124
|
group=SettingType.PARAMETER,
|
|
@@ -4,6 +4,7 @@ import datetime as dt
|
|
|
4
4
|
import json
|
|
5
5
|
import re
|
|
6
6
|
from collections.abc import Callable, Iterable, Iterator
|
|
7
|
+
from contextlib import nullcontext
|
|
7
8
|
from os import walk
|
|
8
9
|
from os.path import exists, expanduser, expandvars, getsize, splitdrive, splitext
|
|
9
10
|
from pathlib import Path, PurePath
|
|
@@ -273,25 +274,22 @@ def request_json(
|
|
|
273
274
|
"like Gecko) Chrome/79.0.3945.88 Safari/537.36"
|
|
274
275
|
)
|
|
275
276
|
|
|
276
|
-
|
|
277
|
-
initial_cache_state = session._disabled # pyright: ignore[reportPrivateUsage]
|
|
277
|
+
cache_ctx = session.cache_disabled() if not cache else nullcontext()
|
|
278
278
|
try:
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
279
|
+
with cache_ctx:
|
|
280
|
+
response = session.request(
|
|
281
|
+
url=url,
|
|
282
|
+
params=parameters,
|
|
283
|
+
json=body,
|
|
284
|
+
headers=headers,
|
|
285
|
+
method=method,
|
|
286
|
+
timeout=1,
|
|
287
|
+
)
|
|
288
288
|
status = response.status_code
|
|
289
289
|
content = response.json() if status // 100 == 2 else None
|
|
290
290
|
except Exception:
|
|
291
291
|
content = None
|
|
292
292
|
status = 500
|
|
293
|
-
finally:
|
|
294
|
-
session._disabled = initial_cache_state # pyright: ignore[reportPrivateUsage]
|
|
295
293
|
return status, (content if content is not None else {})
|
|
296
294
|
|
|
297
295
|
|
|
@@ -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)
|
|
@@ -10,14 +10,13 @@ scripts = { mnamer = "mnamer.__main__:main" }
|
|
|
10
10
|
urls = { repository = "https://github.com/jkwill87/mnamer" }
|
|
11
11
|
readme = "README.md"
|
|
12
12
|
dependencies = [
|
|
13
|
-
"appdirs
|
|
14
|
-
"babelfish
|
|
15
|
-
"guessit
|
|
16
|
-
"requests
|
|
17
|
-
"requests-cache~=
|
|
18
|
-
"setuptools-scm>=
|
|
19
|
-
"teletype
|
|
20
|
-
"typing-extensions>=4.7.0",
|
|
13
|
+
"appdirs~=1.4.4",
|
|
14
|
+
"babelfish~=0.6.1",
|
|
15
|
+
"guessit~=3.8.0",
|
|
16
|
+
"requests~=2.33.1",
|
|
17
|
+
"requests-cache~=1.3.1",
|
|
18
|
+
"setuptools-scm>=10.0.0",
|
|
19
|
+
"teletype~=1.3.4",
|
|
21
20
|
]
|
|
22
21
|
|
|
23
22
|
|
|
@@ -33,17 +32,18 @@ build-backend = "setuptools.build_meta"
|
|
|
33
32
|
|
|
34
33
|
[dependency-groups]
|
|
35
34
|
dev = [
|
|
35
|
+
"appdirs-stubs~=0.2.0",
|
|
36
36
|
"build>=1.2.0",
|
|
37
|
-
"codecov
|
|
38
|
-
"mypy>=
|
|
39
|
-
"pylint>=
|
|
40
|
-
"pytest>=
|
|
41
|
-
"pytest-
|
|
42
|
-
"pytest
|
|
43
|
-
"ruff
|
|
37
|
+
"codecov~=2.1.13",
|
|
38
|
+
"mypy>=2.0",
|
|
39
|
+
"pylint>=4.0",
|
|
40
|
+
"pytest-cov>=7.0",
|
|
41
|
+
"pytest-rerunfailures>=16.0",
|
|
42
|
+
"pytest>=9.0",
|
|
43
|
+
"ruff~=0.15.12",
|
|
44
44
|
"setuptools>=80.0.0",
|
|
45
45
|
"twine>=6.0.0",
|
|
46
|
-
"types-requests
|
|
46
|
+
"types-requests~=2.33.0",
|
|
47
47
|
"wheel>=0.45.0",
|
|
48
48
|
]
|
|
49
49
|
|
|
@@ -80,6 +80,7 @@ venv = "venv"
|
|
|
80
80
|
reportAny = false
|
|
81
81
|
reportExplicitAny = false
|
|
82
82
|
reportGeneralTypeIssues = "information"
|
|
83
|
+
reportIgnoreCommentWithoutRule = false
|
|
83
84
|
reportMissingTypeStubs = false
|
|
84
85
|
|
|
85
86
|
[tool.ruff.lint.isort]
|