mnamer 2.7.3.dev5__tar.gz → 2.7.3.dev8__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 (83) hide show
  1. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/workflows/publish-docker.yml +1 -1
  2. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/workflows/publish.yml +1 -1
  3. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/workflows/pull_request.yml +2 -2
  4. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/workflows/push.yml +2 -2
  5. {mnamer-2.7.3.dev5/mnamer.egg-info → mnamer-2.7.3.dev8}/PKG-INFO +1 -1
  6. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/__version__.py +1 -1
  7. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8/mnamer.egg-info}/PKG-INFO +1 -1
  8. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer.egg-info/SOURCES.txt +2 -0
  9. mnamer-2.7.3.dev8/mnamer.egg-info/scm_file_list.json +76 -0
  10. mnamer-2.7.3.dev8/mnamer.egg-info/scm_version.json +8 -0
  11. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_target.py +13 -0
  12. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/uv.lock +3 -3
  13. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.dockerignore +0 -0
  14. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/actions/init/action.yml +0 -0
  15. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/actions/lint/action.yml +0 -0
  16. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/actions/test/action.yml +0 -0
  17. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.github/dependabot.yml +0 -0
  18. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.gitignore +0 -0
  19. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.python-version +0 -0
  20. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/.vscode/settings.json +0 -0
  21. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/AGENTS.md +0 -0
  22. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/CLAUDE.md +0 -0
  23. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/Dockerfile +0 -0
  24. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/LICENSE.txt +0 -0
  25. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/MANIFEST.in +0 -0
  26. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/README.md +0 -0
  27. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/assets/design.eps +0 -0
  28. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/assets/logo-2.png +0 -0
  29. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/assets/logo-3.png +0 -0
  30. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/assets/logo.png +0 -0
  31. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/assets/recording.mov +0 -0
  32. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/assets/screenshot.eps +0 -0
  33. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/assets/screenshot.png +0 -0
  34. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/makefile +0 -0
  35. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/__init__.py +0 -0
  36. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/__main__.py +0 -0
  37. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/argument.py +0 -0
  38. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/const.py +0 -0
  39. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/endpoints.py +0 -0
  40. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/exceptions.py +0 -0
  41. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/frontends.py +0 -0
  42. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/language.py +0 -0
  43. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/metadata.py +0 -0
  44. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/providers.py +0 -0
  45. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/py.typed +0 -0
  46. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/setting_spec.py +0 -0
  47. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/setting_store.py +0 -0
  48. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/target.py +0 -0
  49. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/tty.py +0 -0
  50. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/types.py +0 -0
  51. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer/utils.py +0 -0
  52. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer.egg-info/dependency_links.txt +0 -0
  53. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer.egg-info/entry_points.txt +0 -0
  54. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer.egg-info/requires.txt +0 -0
  55. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/mnamer.egg-info/top_level.txt +0 -0
  56. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/pyproject.toml +0 -0
  57. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/pytest.ini +0 -0
  58. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/setup.cfg +0 -0
  59. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/__init__.py +0 -0
  60. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/conftest.py +0 -0
  61. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/e2e/__init__.py +0 -0
  62. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/e2e/conftest.py +0 -0
  63. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/e2e/test_directives.py +0 -0
  64. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/e2e/test_errors.py +0 -0
  65. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/e2e/test_moving.py +0 -0
  66. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/__init__.py +0 -0
  67. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_argument.py +0 -0
  68. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_language.py +0 -0
  69. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_metadata.py +0 -0
  70. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_providers.py +0 -0
  71. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_setting_spec.py +0 -0
  72. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_setting_store.py +0 -0
  73. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_tty.py +0 -0
  74. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/local/test_utils.py +0 -0
  75. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/__init__.py +0 -0
  76. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_endpoints__omdb.py +0 -0
  77. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_endpoints__tmdb.py +0 -0
  78. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_endpoints__tvdb.py +0 -0
  79. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_endpoints__tvmaze.py +0 -0
  80. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_providers__omdb.py +0 -0
  81. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_providers__tmdb.py +0 -0
  82. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_providers__tvdb.py +0 -0
  83. {mnamer-2.7.3.dev5 → mnamer-2.7.3.dev8}/tests/network/test_providers__tvmaze.py +0 -0
@@ -92,7 +92,7 @@ jobs:
92
92
  echo "is_prerelease=$is_prerelease"
93
93
  } >> "$GITHUB_OUTPUT"
94
94
 
95
- - uses: actions/checkout@v6
95
+ - uses: actions/checkout@v7
96
96
  with:
97
97
  ref: ${{ steps.resolve.outputs.checkout_ref }}
98
98
  fetch-depth: 0
@@ -12,7 +12,7 @@ jobs:
12
12
  runs-on: ubuntu-latest
13
13
 
14
14
  steps:
15
- - uses: actions/checkout@v6
15
+ - uses: actions/checkout@v7
16
16
  with: { fetch-depth: 0 } # required for setuptools_scm to detect git tags
17
17
  - uses: ./.github/actions/init
18
18
 
@@ -10,7 +10,7 @@ jobs:
10
10
  runs-on: ubuntu-latest
11
11
 
12
12
  steps:
13
- - uses: actions/checkout@v6
13
+ - uses: actions/checkout@v7
14
14
  - uses: ./.github/actions/init
15
15
  with:
16
16
  save-cache: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
@@ -25,7 +25,7 @@ jobs:
25
25
  runs-on: ubuntu-latest
26
26
 
27
27
  steps:
28
- - uses: actions/checkout@v6
28
+ - uses: actions/checkout@v7
29
29
  - uses: ./.github/actions/init
30
30
  with:
31
31
  save-cache: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
@@ -19,7 +19,7 @@ jobs:
19
19
  runs-on: ubuntu-latest
20
20
 
21
21
  steps:
22
- - uses: actions/checkout@v6
22
+ - uses: actions/checkout@v7
23
23
  - uses: ./.github/actions/init
24
24
  - uses: ./.github/actions/lint
25
25
 
@@ -27,7 +27,7 @@ jobs:
27
27
  runs-on: ubuntu-latest
28
28
 
29
29
  steps:
30
- - uses: actions/checkout@v6
30
+ - uses: actions/checkout@v7
31
31
  - uses: ./.github/actions/init
32
32
  - name: Testing
33
33
  uses: ./.github/actions/test
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mnamer
3
- Version: 2.7.3.dev5
3
+ Version: 2.7.3.dev8
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>
@@ -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.7.3.dev5"
4
+ __version__ = "2.7.3.dev8"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mnamer
3
- Version: 2.7.3.dev5
3
+ Version: 2.7.3.dev8
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>
@@ -50,6 +50,8 @@ mnamer.egg-info/SOURCES.txt
50
50
  mnamer.egg-info/dependency_links.txt
51
51
  mnamer.egg-info/entry_points.txt
52
52
  mnamer.egg-info/requires.txt
53
+ mnamer.egg-info/scm_file_list.json
54
+ mnamer.egg-info/scm_version.json
53
55
  mnamer.egg-info/top_level.txt
54
56
  tests/__init__.py
55
57
  tests/conftest.py
@@ -0,0 +1,76 @@
1
+ {
2
+ "files": [
3
+ "README.md",
4
+ "uv.lock",
5
+ "Dockerfile",
6
+ ".python-version",
7
+ "LICENSE.txt",
8
+ "pyproject.toml",
9
+ "AGENTS.md",
10
+ ".dockerignore",
11
+ "CLAUDE.md",
12
+ "MANIFEST.in",
13
+ "makefile",
14
+ ".gitignore",
15
+ "pytest.ini",
16
+ ".vscode/settings.json",
17
+ "assets/logo.png",
18
+ "assets/logo-2.png",
19
+ "assets/design.eps",
20
+ "assets/recording.mov",
21
+ "assets/screenshot.png",
22
+ "assets/screenshot.eps",
23
+ "assets/logo-3.png",
24
+ "mnamer/py.typed",
25
+ "mnamer/__init__.py",
26
+ "mnamer/const.py",
27
+ "mnamer/exceptions.py",
28
+ "mnamer/endpoints.py",
29
+ "mnamer/providers.py",
30
+ "mnamer/target.py",
31
+ "mnamer/utils.py",
32
+ "mnamer/language.py",
33
+ "mnamer/argument.py",
34
+ "mnamer/metadata.py",
35
+ "mnamer/setting_store.py",
36
+ "mnamer/tty.py",
37
+ "mnamer/frontends.py",
38
+ "mnamer/setting_spec.py",
39
+ "mnamer/__main__.py",
40
+ "mnamer/types.py",
41
+ "tests/__init__.py",
42
+ "tests/conftest.py",
43
+ "tests/e2e/test_moving.py",
44
+ "tests/e2e/__init__.py",
45
+ "tests/e2e/test_directives.py",
46
+ "tests/e2e/conftest.py",
47
+ "tests/e2e/test_errors.py",
48
+ "tests/network/test_endpoints__tvmaze.py",
49
+ "tests/network/test_providers__tvmaze.py",
50
+ "tests/network/test_providers__tvdb.py",
51
+ "tests/network/test_providers__tmdb.py",
52
+ "tests/network/__init__.py",
53
+ "tests/network/test_endpoints__omdb.py",
54
+ "tests/network/test_endpoints__tvdb.py",
55
+ "tests/network/test_providers__omdb.py",
56
+ "tests/network/test_endpoints__tmdb.py",
57
+ "tests/local/__init__.py",
58
+ "tests/local/test_argument.py",
59
+ "tests/local/test_utils.py",
60
+ "tests/local/test_tty.py",
61
+ "tests/local/test_target.py",
62
+ "tests/local/test_setting_spec.py",
63
+ "tests/local/test_setting_store.py",
64
+ "tests/local/test_providers.py",
65
+ "tests/local/test_language.py",
66
+ "tests/local/test_metadata.py",
67
+ ".github/dependabot.yml",
68
+ ".github/actions/lint/action.yml",
69
+ ".github/actions/init/action.yml",
70
+ ".github/actions/test/action.yml",
71
+ ".github/workflows/push.yml",
72
+ ".github/workflows/publish-docker.yml",
73
+ ".github/workflows/publish.yml",
74
+ ".github/workflows/pull_request.yml"
75
+ ]
76
+ }
@@ -0,0 +1,8 @@
1
+ {
2
+ "tag": "2.7.2",
3
+ "distance": 8,
4
+ "node": "g9234028b25faae3d08794b4b7420ba6dbd331a9d",
5
+ "dirty": false,
6
+ "branch": "main",
7
+ "node_date": "2026-07-11"
8
+ }
@@ -1,4 +1,5 @@
1
1
  import datetime as dt
2
+ import sys
2
3
  from pathlib import Path
3
4
 
4
5
  import pytest
@@ -127,6 +128,9 @@ def test_destination__relative_directory_lowered():
127
128
  assert target.destination == Path("movies/n/ninja turtles (1990).mkv").resolve()
128
129
 
129
130
 
131
+ @pytest.mark.skipif(
132
+ sys.platform == "win32", reason="Unix path test, not valid on Windows"
133
+ )
130
134
  def test_destination__absolute_directory_preserves_literal_parts():
131
135
  """Literal parts of an absolute configured directory survive --lower."""
132
136
  settings = SettingStore(
@@ -139,6 +143,9 @@ def test_destination__absolute_directory_preserves_literal_parts():
139
143
  assert target.destination == Path("/Media Library/Movies/ninja turtles (1990).mkv")
140
144
 
141
145
 
146
+ @pytest.mark.skipif(
147
+ sys.platform == "win32", reason="Unix path test, not valid on Windows"
148
+ )
142
149
  def test_destination__absolute_directory_transforms_template_parts():
143
150
  """Template parts within an absolute configured directory are transformed."""
144
151
  settings = SettingStore(
@@ -180,6 +187,9 @@ def test_destination__relative_directory_scene():
180
187
  )
181
188
 
182
189
 
190
+ @pytest.mark.skipif(
191
+ sys.platform == "win32", reason="Unix path test, not valid on Windows"
192
+ )
183
193
  def test_destination__absolute_directory_scene_preserves_literal_parts():
184
194
  """Literal parts of an absolute configured directory survive --scene."""
185
195
  settings = SettingStore(
@@ -192,6 +202,9 @@ def test_destination__absolute_directory_scene_preserves_literal_parts():
192
202
  assert target.destination == Path("/Media Library/Movies/ninja.turtles.1990.mkv")
193
203
 
194
204
 
205
+ @pytest.mark.skipif(
206
+ sys.platform == "win32", reason="Unix path test, not valid on Windows"
207
+ )
195
208
  def test_destination__absolute_directory_scene_transforms_template_parts():
196
209
  """Template parts within an absolute configured directory survive --scene."""
197
210
  settings = SettingStore(
@@ -794,7 +794,7 @@ wheels = [
794
794
 
795
795
  [[package]]
796
796
  name = "pytest"
797
- version = "9.0.3"
797
+ version = "9.1.1"
798
798
  source = { registry = "https://pypi.org/simple" }
799
799
  dependencies = [
800
800
  { name = "colorama", marker = "sys_platform == 'win32'" },
@@ -803,9 +803,9 @@ dependencies = [
803
803
  { name = "pluggy" },
804
804
  { name = "pygments" },
805
805
  ]
806
- sdist = { url = "https://files.pythonhosted.org/packages/7d/0d/549bd94f1a0a402dc8cf64563a117c0f3765662e2e668477624baeec44d5/pytest-9.0.3.tar.gz", hash = "sha256:b86ada508af81d19edeb213c681b1d48246c1a91d304c6c81a427674c17eb91c", size = 1572165, upload-time = "2026-04-07T17:16:18.027Z" }
806
+ sdist = { url = "https://files.pythonhosted.org/packages/e4/47/b9efed96c114afcfa3c9d3fe98a76a1d14c74a9e266d397cf6eb64be5e01/pytest-9.1.1.tar.gz", hash = "sha256:1088fbde8f2b49d95a549a195707afa7a76a3ce9bcadc26b6d71f0ffda5fe313", size = 1636369, upload-time = "2026-06-19T10:58:32.857Z" }
807
807
  wheels = [
808
- { url = "https://files.pythonhosted.org/packages/d4/24/a372aaf5c9b7208e7112038812994107bc65a84cd00e0354a88c2c77a617/pytest-9.0.3-py3-none-any.whl", hash = "sha256:2c5efc453d45394fdd706ade797c0a81091eccd1d6e4bccfcd476e2b8e0ab5d9", size = 375249, upload-time = "2026-04-07T17:16:16.13Z" },
808
+ { url = "https://files.pythonhosted.org/packages/24/25/1de2678b631f5a49215c6c96fff41ba892b0a34df68d6d80292b1b48aa7f/pytest-9.1.1-py3-none-any.whl", hash = "sha256:37a86b45efb9a47a61a36449063e8e18d0cab3161329fc099eb21783169c4f0c", size = 386536, upload-time = "2026-06-19T10:58:31.347Z" },
809
809
  ]
810
810
 
811
811
  [[package]]
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes