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.
Files changed (79) hide show
  1. mnamer-2.6.1.dev18/.python-version +1 -0
  2. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/PKG-INFO +8 -9
  3. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/__version__.py +1 -1
  4. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/argument.py +7 -3
  5. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/const.py +17 -19
  6. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/endpoints.py +185 -59
  7. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/frontends.py +6 -1
  8. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/language.py +4 -3
  9. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/metadata.py +20 -11
  10. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/providers.py +112 -63
  11. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/setting_spec.py +0 -2
  12. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/setting_store.py +16 -15
  13. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/target.py +7 -11
  14. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/tty.py +4 -8
  15. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/types.py +2 -1
  16. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/utils.py +68 -52
  17. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/PKG-INFO +8 -9
  18. mnamer-2.6.1.dev18/mnamer.egg-info/requires.txt +7 -0
  19. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/pyproject.toml +22 -18
  20. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_utils.py +1 -1
  21. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__omdb.py +59 -59
  22. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tvdb.py +49 -49
  23. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tvmaze.py +5 -5
  24. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_providers__tmdb.py +3 -1
  25. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_providers__tvdb.py +5 -3
  26. mnamer-2.6.1.dev18/uv.lock +1098 -0
  27. mnamer-2.6.1.dev7/.python-version +0 -1
  28. mnamer-2.6.1.dev7/mnamer.egg-info/requires.txt +0 -8
  29. mnamer-2.6.1.dev7/uv.lock +0 -937
  30. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/actions/init/action.yml +0 -0
  31. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/actions/lint/action.yml +0 -0
  32. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/actions/test/action.yml +0 -0
  33. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/dependabot.yml +0 -0
  34. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/workflows/publish.yml +0 -0
  35. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/workflows/pull_request.yml +0 -0
  36. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.github/workflows/push.yml +0 -0
  37. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.gitignore +0 -0
  38. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/.vscode/settings.json +0 -0
  39. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/Dockerfile +0 -0
  40. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/LICENSE.txt +0 -0
  41. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/MANIFEST.in +0 -0
  42. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/README.md +0 -0
  43. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/design.eps +0 -0
  44. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/logo-2.png +0 -0
  45. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/logo-3.png +0 -0
  46. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/logo.png +0 -0
  47. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/recording.mov +0 -0
  48. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/screenshot.eps +0 -0
  49. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/assets/screenshot.png +0 -0
  50. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/makefile +0 -0
  51. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/__init__.py +0 -0
  52. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/__main__.py +0 -0
  53. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/exceptions.py +0 -0
  54. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer/py.typed +0 -0
  55. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/SOURCES.txt +0 -0
  56. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/dependency_links.txt +0 -0
  57. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/entry_points.txt +0 -0
  58. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/mnamer.egg-info/top_level.txt +0 -0
  59. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/pytest.ini +0 -0
  60. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/setup.cfg +0 -0
  61. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/__init__.py +0 -0
  62. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/conftest.py +0 -0
  63. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/__init__.py +0 -0
  64. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/conftest.py +0 -0
  65. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/test_directives.py +0 -0
  66. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/test_errors.py +0 -0
  67. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/e2e/test_moving.py +0 -0
  68. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/__init__.py +0 -0
  69. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_argument.py +0 -0
  70. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_language.py +0 -0
  71. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_metadata.py +0 -0
  72. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_setting_spec.py +0 -0
  73. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_setting_store.py +0 -0
  74. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_target.py +0 -0
  75. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/local/test_tty.py +0 -0
  76. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/__init__.py +0 -0
  77. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_endpoints__tmdb.py +0 -0
  78. {mnamer-2.6.1.dev7 → mnamer-2.6.1.dev18}/tests/network/test_providers__omdb.py +0 -0
  79. {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.dev7
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>=1.4.4
34
- Requires-Dist: babelfish>=0.6.0
35
- Requires-Dist: guessit>=3.8.0
36
- Requires-Dist: requests>=2.32.0
37
- Requires-Dist: requests-cache~=0.9.8
38
- Requires-Dist: setuptools-scm>=8.0.0
39
- Requires-Dist: teletype>=1.3.4
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
  [![PyPI](https://img.shields.io/pypi/v/mnamer.svg?style=for-the-badge)](https://pypi.python.org/pypi/mnamer)
@@ -1,4 +1,4 @@
1
1
  # file generated by setuptools_scm
2
2
  # don't change, don't track in version control
3
3
 
4
- __version__ = "2.6.1.dev7"
4
+ __version__ = "2.6.1.dev18"
@@ -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
- [self._add_spec(spec) for spec in specs if spec.group in groups]
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 __version__ as VERSION # type: ignore
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
- from appdirs import __version__ as appdirs_version # type: ignore
19
- except ModuleNotFoundError:
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
- from guessit import __version__ as guessit_version # type: ignore
31
- except ModuleNotFoundError:
32
+ guessit_version = pkg_version("guessit")
33
+ except PackageNotFoundError:
32
34
  guessit_version = "N/A"
33
35
 
34
36
  try:
35
- from requests import __version__ as requests_version
36
- except ModuleNotFoundError:
37
+ requests_version = pkg_version("requests")
38
+ except PackageNotFoundError:
37
39
  requests_version = "N/A"
38
40
 
39
41
  try:
40
- from requests_cache import __version__ as requests_cache_version
41
- except ModuleNotFoundError:
42
+ requests_cache_version = pkg_version("requests_cache")
43
+ except PackageNotFoundError:
42
44
  requests_cache_version = "N/A"
43
45
 
44
46
  try:
45
- from teletype import VERSION as teletype_version
46
- except ModuleNotFoundError:
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": f"{CACHE_PATH}.sqlite",
65
+ "cache location": CACHE_PATH,
68
66
  "python version": python_version(),
69
67
  "mnamer version": VERSION,
70
68
  "appdirs version": appdirs_version,