mnamer 2.7.3.dev12__tar.gz → 2.7.3.dev13__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.dev12/mnamer.egg-info → mnamer-2.7.3.dev13}/PKG-INFO +1 -1
  2. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/__version__.py +1 -1
  3. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/utils.py +1 -1
  4. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13/mnamer.egg-info}/PKG-INFO +1 -1
  5. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer.egg-info/scm_version.json +2 -2
  6. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_utils.py +15 -0
  7. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.dockerignore +0 -0
  8. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/actions/init/action.yml +0 -0
  9. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/actions/lint/action.yml +0 -0
  10. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/actions/test/action.yml +0 -0
  11. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/dependabot.yml +0 -0
  12. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/workflows/publish-docker.yml +0 -0
  13. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/workflows/publish.yml +0 -0
  14. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/workflows/pull_request.yml +0 -0
  15. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.github/workflows/push.yml +0 -0
  16. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.gitignore +0 -0
  17. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.python-version +0 -0
  18. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/.vscode/settings.json +0 -0
  19. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/AGENTS.md +0 -0
  20. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/CLAUDE.md +0 -0
  21. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/Dockerfile +0 -0
  22. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/LICENSE.txt +0 -0
  23. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/MANIFEST.in +0 -0
  24. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/README.md +0 -0
  25. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/assets/design.eps +0 -0
  26. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/assets/logo-2.png +0 -0
  27. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/assets/logo-3.png +0 -0
  28. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/assets/logo.png +0 -0
  29. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/assets/recording.mov +0 -0
  30. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/assets/screenshot.eps +0 -0
  31. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/assets/screenshot.png +0 -0
  32. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/makefile +0 -0
  33. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/__init__.py +0 -0
  34. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/__main__.py +0 -0
  35. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/argument.py +0 -0
  36. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/const.py +0 -0
  37. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/endpoints.py +0 -0
  38. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/exceptions.py +0 -0
  39. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/frontends.py +0 -0
  40. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/language.py +0 -0
  41. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/metadata.py +0 -0
  42. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/providers.py +0 -0
  43. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/py.typed +0 -0
  44. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/setting_spec.py +0 -0
  45. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/setting_store.py +0 -0
  46. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/target.py +0 -0
  47. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/tty.py +0 -0
  48. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer/types.py +0 -0
  49. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer.egg-info/SOURCES.txt +0 -0
  50. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer.egg-info/dependency_links.txt +0 -0
  51. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer.egg-info/entry_points.txt +0 -0
  52. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer.egg-info/requires.txt +0 -0
  53. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer.egg-info/scm_file_list.json +0 -0
  54. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/mnamer.egg-info/top_level.txt +0 -0
  55. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/pyproject.toml +0 -0
  56. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/pytest.ini +0 -0
  57. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/setup.cfg +0 -0
  58. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/__init__.py +0 -0
  59. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/conftest.py +0 -0
  60. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/e2e/__init__.py +0 -0
  61. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/e2e/conftest.py +0 -0
  62. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/e2e/test_directives.py +0 -0
  63. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/e2e/test_errors.py +0 -0
  64. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/e2e/test_moving.py +0 -0
  65. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/__init__.py +0 -0
  66. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_argument.py +0 -0
  67. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_language.py +0 -0
  68. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_metadata.py +0 -0
  69. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_providers.py +0 -0
  70. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_setting_spec.py +0 -0
  71. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_setting_store.py +0 -0
  72. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_target.py +0 -0
  73. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/local/test_tty.py +0 -0
  74. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/__init__.py +0 -0
  75. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_endpoints__omdb.py +0 -0
  76. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_endpoints__tmdb.py +0 -0
  77. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_endpoints__tvdb.py +0 -0
  78. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_endpoints__tvmaze.py +0 -0
  79. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_providers__omdb.py +0 -0
  80. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_providers__tmdb.py +0 -0
  81. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_providers__tvdb.py +0 -0
  82. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/tests/network/test_providers__tvmaze.py +0 -0
  83. {mnamer-2.7.3.dev12 → mnamer-2.7.3.dev13}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mnamer
3
- Version: 2.7.3.dev12
3
+ Version: 2.7.3.dev13
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.dev12"
4
+ __version__ = "2.7.3.dev13"
@@ -467,7 +467,7 @@ def str_title_case(s: str) -> str:
467
467
  for pos in findall(string_lower, exception):
468
468
  is_start = pos < 2
469
469
  if is_start:
470
- break
470
+ continue
471
471
  prev_char = string_lower[pos - 1]
472
472
  is_left_partitioned = prev_char in padding_chars
473
473
  word_length = len(exception)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mnamer
3
- Version: 2.7.3.dev12
3
+ Version: 2.7.3.dev13
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,7 +1,7 @@
1
1
  {
2
2
  "tag": "2.7.2",
3
- "distance": 12,
4
- "node": "gbf3abad3c229a797fbaae1728cc30aa2a502ca4c",
3
+ "distance": 13,
4
+ "node": "g45f4229ad8a47a05dedcdcf4bcdb78796f1c4d4d",
5
5
  "dirty": false,
6
6
  "branch": "main",
7
7
  "node_date": "2026-07-11"
@@ -698,6 +698,21 @@ def test_str_title_case__lower__ends_with(s: str):
698
698
  assert actual == expected
699
699
 
700
700
 
701
+ @pytest.mark.parametrize(
702
+ ("s", "expected"),
703
+ (
704
+ ("the cat in the hat", "The Cat in the Hat"),
705
+ ("THE CAT IN THE HAT", "The Cat in the Hat"),
706
+ ("a man and a plan", "A Man and a Plan"),
707
+ ),
708
+ )
709
+ def test_str_title_case__lower__repeated_after_start(s: str, expected: str):
710
+ # The leading exception word stays capitalized, but a later occurrence of
711
+ # the same word must still be lowercased.
712
+ actual = str_title_case(s)
713
+ assert actual == expected
714
+
715
+
701
716
  @pytest.mark.parametrize("s", ("at the theatre", "AT THE THEATRE"))
702
717
  def test_str_title_case__lower__only_whole_words(s: str):
703
718
  expected = "At the Theatre" # theatre prefixed with 'the'
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