subliminal 2.2.0__tar.gz → 2.2.1__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 (271) hide show
  1. {subliminal-2.2.0 → subliminal-2.2.1}/HISTORY.rst +8 -0
  2. {subliminal-2.2.0 → subliminal-2.2.1}/PKG-INFO +10 -2
  3. subliminal-2.2.1/docs/api/cli.rst +5 -0
  4. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/core.rst +1 -0
  5. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/exceptions.rst +1 -0
  6. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/extensions.rst +1 -0
  7. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/providers.rst +8 -0
  8. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/refiners.rst +5 -0
  9. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/score.rst +1 -0
  10. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/subtitle.rst +1 -0
  11. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/utils.rst +1 -0
  12. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/video.rst +1 -0
  13. {subliminal-2.2.0 → subliminal-2.2.1}/docs/conf.py +1 -2
  14. {subliminal-2.2.0 → subliminal-2.2.1}/docs/config.toml +3 -2
  15. {subliminal-2.2.0 → subliminal-2.2.1}/docs/index.rst +1 -1
  16. {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/usage.rst +5 -0
  17. {subliminal-2.2.0 → subliminal-2.2.1}/pyproject.toml +1 -1
  18. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/__init__.py +1 -1
  19. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/cli.py +9 -4
  20. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/extensions.py +3 -3
  21. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/__init__.py +19 -25
  22. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/gestdown.py +6 -5
  23. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/utils.py +1 -1
  24. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/video.py +3 -2
  25. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/PKG-INFO +10 -2
  26. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/requires.txt +1 -1
  27. subliminal-2.2.0/docs/api/cli.rst +0 -3
  28. {subliminal-2.2.0 → subliminal-2.2.1}/.dockerignore +0 -0
  29. {subliminal-2.2.0 → subliminal-2.2.1}/.pre-commit-config.yaml +0 -0
  30. {subliminal-2.2.0 → subliminal-2.2.1}/.readthedocs.yaml +0 -0
  31. {subliminal-2.2.0 → subliminal-2.2.1}/CONTRIBUTING.md +0 -0
  32. {subliminal-2.2.0 → subliminal-2.2.1}/Dockerfile +0 -0
  33. {subliminal-2.2.0 → subliminal-2.2.1}/LICENSE +0 -0
  34. {subliminal-2.2.0 → subliminal-2.2.1}/MANIFEST.in +0 -0
  35. {subliminal-2.2.0 → subliminal-2.2.1}/README.rst +0 -0
  36. {subliminal-2.2.0 → subliminal-2.2.1}/docs/Makefile +0 -0
  37. {subliminal-2.2.0 → subliminal-2.2.1}/docs/api/cache.rst +0 -0
  38. {subliminal-2.2.0 → subliminal-2.2.1}/docs/cassettes/test_usage.yaml +0 -0
  39. {subliminal-2.2.0 → subliminal-2.2.1}/docs/conftest.py +0 -0
  40. {subliminal-2.2.0 → subliminal-2.2.1}/docs/make.bat +0 -0
  41. {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/cli.rst +0 -0
  42. {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/how_it_works.rst +0 -0
  43. {subliminal-2.2.0 → subliminal-2.2.1}/docs/user/provider_guide.rst +0 -0
  44. {subliminal-2.2.0 → subliminal-2.2.1}/setup.cfg +0 -0
  45. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/cache.py +0 -0
  46. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/__init__.py +0 -0
  47. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/addic7ed.py +0 -0
  48. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/opensubtitlescom.py +0 -0
  49. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/shooter.py +0 -0
  50. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/thesubdb.py +0 -0
  51. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/converters/tvsubtitles.py +0 -0
  52. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/core.py +0 -0
  53. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/exceptions.py +0 -0
  54. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/matches.py +0 -0
  55. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/addic7ed.py +0 -0
  56. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/napiprojekt.py +0 -0
  57. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/opensubtitles.py +0 -0
  58. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/opensubtitlescom.py +0 -0
  59. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/podnapisi.py +0 -0
  60. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/providers/tvsubtitles.py +0 -0
  61. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/py.typed +0 -0
  62. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/__init__.py +0 -0
  63. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/hash.py +0 -0
  64. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/metadata.py +0 -0
  65. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/omdb.py +0 -0
  66. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/tmdb.py +0 -0
  67. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/refiners/tvdb.py +0 -0
  68. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/score.py +0 -0
  69. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal/subtitle.py +0 -0
  70. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/SOURCES.txt +0 -0
  71. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/dependency_links.txt +0 -0
  72. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/entry_points.txt +0 -0
  73. {subliminal-2.2.0 → subliminal-2.2.1}/subliminal.egg-info/top_level.txt +0 -0
  74. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_download_subtitle.yaml +0 -0
  75. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id.yaml +0 -0
  76. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_country.yaml +0 -0
  77. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_quote_dots_mixed_case.yaml +0 -0
  78. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_with_comma.yaml +0 -0
  79. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_id_year.yaml +0 -0
  80. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_get_show_ids.yaml +0 -0
  81. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_list_subtitles.yaml +0 -0
  82. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_list_subtitles_episode_alternative_series.yaml +0 -0
  83. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_list_subtitles_show_with_asterisk.yaml +0 -0
  84. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_login.yaml +0 -0
  85. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_logout.yaml +0 -0
  86. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query.yaml +0 -0
  87. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_no_year.yaml +0 -0
  88. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing.yaml +0 -0
  89. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing_colon.yaml +0 -0
  90. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing_dash.yaml +0 -0
  91. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_parsing_quote_dots_mixed_case.yaml +0 -0
  92. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_wrong_series.yaml +0 -0
  93. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_query_year.yaml +0 -0
  94. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id.yaml +0 -0
  95. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_error.yaml +0 -0
  96. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_incomplete.yaml +0 -0
  97. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_no_year.yaml +0 -0
  98. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_quote.yaml +0 -0
  99. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_id_year.yaml +0 -0
  100. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_ids_quote_dots_mixed_case.yaml +0 -0
  101. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_ids_with_comma.yaml +0 -0
  102. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/addic7ed/test_search_show_ids_with_country.yaml +0 -0
  103. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_bad_subtitle.yaml +0 -0
  104. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_best_subtitles.yaml +0 -0
  105. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_best_subtitles_min_score.yaml +0 -0
  106. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/core/test_download_best_subtitles_only_one.yaml +0 -0
  107. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_download_subtitle.yaml +0 -0
  108. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_download_with_bom.yaml +0 -0
  109. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_alternative_name.yaml +0 -0
  110. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_no_year.yaml +0 -0
  111. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_only_title.yaml +0 -0
  112. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_get_title_and_show_id_with_tvdb_id.yaml +0 -0
  113. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_list_subtitles.yaml +0 -0
  114. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_list_subtitles_episode_alternative_series.yaml +0 -0
  115. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query.yaml +0 -0
  116. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_all_series.yaml +0 -0
  117. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_no_language.yaml +0 -0
  118. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing.yaml +0 -0
  119. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing_colon.yaml +0 -0
  120. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing_dash.yaml +0 -0
  121. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_parsing_quote_dots_mixed_case.yaml +0 -0
  122. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_query_wrong_series.yaml +0 -0
  123. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id.yaml +0 -0
  124. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_error.yaml +0 -0
  125. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_incomplete.yaml +0 -0
  126. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_no_year.yaml +0 -0
  127. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_id_quote.yaml +0 -0
  128. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_search_show_series_tvdb_id.yaml +0 -0
  129. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/gestdown/test_show_with_asterisk.yaml +0 -0
  130. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_download_subtitles.yaml +0 -0
  131. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_list_subtitles.yaml +0 -0
  132. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_microdvd.yaml +0 -0
  133. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_srt.yaml +0 -0
  134. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_srt_reencode.yaml +0 -0
  135. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/napiprojekt/test_query_wrong_hash.yaml +0 -0
  136. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_id.yaml +0 -0
  137. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_title.yaml +0 -0
  138. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_wrong_id.yaml +0 -0
  139. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_get_wrong_title.yaml +0 -0
  140. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode.yaml +0 -0
  141. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_original_series.yaml +0 -0
  142. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_with_country.yaml +0 -0
  143. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_with_country_hoc_us.yaml +0 -0
  144. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_episode_year.yaml +0 -0
  145. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_movie.yaml +0 -0
  146. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_refine_movie_guess_alternative_title.yaml +0 -0
  147. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search.yaml +0 -0
  148. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_page.yaml +0 -0
  149. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_type.yaml +0 -0
  150. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_wrong_title.yaml +0 -0
  151. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/omdb/test_search_year.yaml +0 -0
  152. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_download_subtitle.yaml +0 -0
  153. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_list_subtitles_episode.yaml +0 -0
  154. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_list_subtitles_movie.yaml +0 -0
  155. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_list_subtitles_movie_no_hash.yaml +0 -0
  156. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_login_bad_password.yaml +0 -0
  157. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_login_vip_bad_password.yaml +0 -0
  158. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_login_vip_login.yaml +0 -0
  159. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_no_operation.yaml +0 -0
  160. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_hash_size.yaml +0 -0
  161. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_imdb_id.yaml +0 -0
  162. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_not_enough_information.yaml +0 -0
  163. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_query_episode.yaml +0 -0
  164. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_query_movie.yaml +0 -0
  165. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_query_season_episode.yaml +0 -0
  166. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_tag_movie.yaml +0 -0
  167. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_query_wrong_hash_wrong_size.yaml +0 -0
  168. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitles/test_tag_match.yaml +0 -0
  169. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_download_subtitle.yaml +0 -0
  170. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_list_subtitles_episode.yaml +0 -0
  171. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_list_subtitles_movie.yaml +0 -0
  172. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_list_subtitles_movie_no_hash.yaml +0 -0
  173. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_login.yaml +0 -0
  174. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_login_bad_password.yaml +0 -0
  175. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_logout.yaml +0 -0
  176. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_hash_size.yaml +0 -0
  177. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_imdb_id.yaml +0 -0
  178. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_query_episode.yaml +0 -0
  179. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_query_movie.yaml +0 -0
  180. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_query_season_episode.yaml +0 -0
  181. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_tag_movie.yaml +0 -0
  182. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_query_wrong_hash_wrong_size.yaml +0 -0
  183. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_tag_match.yaml +0 -0
  184. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/opensubtitlescom/test_user_infos.yaml +0 -0
  185. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_download_subtitle.yaml +0 -0
  186. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_download_subtitles_with_title_unicode.yaml +0 -0
  187. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_list_subtitles_episode.yaml +0 -0
  188. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_list_subtitles_episode_alternative_series.yaml +0 -0
  189. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_list_subtitles_movie.yaml +0 -0
  190. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_query_episode.yaml +0 -0
  191. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/podnapisi/test_query_movie.yaml +0 -0
  192. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_movie_id.yaml +0 -0
  193. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_movie_id_failed.yaml +0 -0
  194. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_series_id.yaml +0 -0
  195. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_get_series_wrong_id.yaml +0 -0
  196. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode.yaml +0 -0
  197. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_original_series.yaml +0 -0
  198. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_with_country.yaml +0 -0
  199. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_with_country_hoc_us.yaml +0 -0
  200. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_episode_year.yaml +0 -0
  201. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_movie.yaml +0 -0
  202. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_refine_movie_guess_alternative_title.yaml +0 -0
  203. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie.yaml +0 -0
  204. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie_page.yaml +0 -0
  205. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie_wrong_title.yaml +0 -0
  206. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_movie_year.yaml +0 -0
  207. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_series.yaml +0 -0
  208. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tmdb/test_search_series_wrong_name.yaml +0 -0
  209. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series.yaml +0 -0
  210. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series_actors.yaml +0 -0
  211. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series_actors_wrong_id.yaml +0 -0
  212. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_get_series_wrong_id.yaml +0 -0
  213. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_login.yaml +0 -0
  214. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_login_error.yaml +0 -0
  215. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_query_series_episodes.yaml +0 -0
  216. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_query_series_episodes_wrong_season.yaml +0 -0
  217. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine.yaml +0 -0
  218. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_ambiguous.yaml +0 -0
  219. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_ambiguous_2.yaml +0 -0
  220. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_alternative_series.yaml +0 -0
  221. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_no_year.yaml +0 -0
  222. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_partial.yaml +0 -0
  223. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_with_comma.yaml +0 -0
  224. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_with_country.yaml +0 -0
  225. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_with_country_hoc_us.yaml +0 -0
  226. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refine_episode_year.yaml +0 -0
  227. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_refresh_token.yaml +0 -0
  228. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_search_series.yaml +0 -0
  229. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_search_series_wrong_name.yaml +0 -0
  230. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvdb/test_token_needs_refresh.yaml +0 -0
  231. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_download_subtitle.yaml +0 -0
  232. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_download_subtitle_with_quote.yaml +0 -0
  233. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_get_episode_ids.yaml +0 -0
  234. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_get_episode_ids_wrong_season.yaml +0 -0
  235. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_list_subtitles.yaml +0 -0
  236. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_list_subtitles_episode_alternative_series.yaml +0 -0
  237. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query.yaml +0 -0
  238. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_no_year.yaml +0 -0
  239. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_with_quote.yaml +0 -0
  240. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_wrong_episode.yaml +0 -0
  241. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_query_wrong_series.yaml +0 -0
  242. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id.yaml +0 -0
  243. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_ambiguous.yaml +0 -0
  244. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_error.yaml +0 -0
  245. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_incomplete.yaml +0 -0
  246. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_no_year.yaml +0 -0
  247. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_uk.yaml +0 -0
  248. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_us.yaml +0 -0
  249. {subliminal-2.2.0 → subliminal-2.2.1}/tests/cassettes/tvsubtitles/test_search_show_id_year_in_title.yaml +0 -0
  250. {subliminal-2.2.0 → subliminal-2.2.1}/tests/conftest.py +0 -0
  251. {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_addic7ed.py +0 -0
  252. {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_gestdown.py +0 -0
  253. {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_napiprojekt.py +0 -0
  254. {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_opensubtitles.py +0 -0
  255. {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_opensubtitlescom.py +0 -0
  256. {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_podnapisi.py +0 -0
  257. {subliminal-2.2.0 → subliminal-2.2.1}/tests/providers/test_tvsubtitles.py +0 -0
  258. {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_hash.py +0 -0
  259. {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_omdb.py +0 -0
  260. {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_tmdb.py +0 -0
  261. {subliminal-2.2.0 → subliminal-2.2.1}/tests/refiners/test_tvdb.py +0 -0
  262. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_cache.py +0 -0
  263. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_core.py +0 -0
  264. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_extensions.py +0 -0
  265. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_matches.py +0 -0
  266. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_provider.py +0 -0
  267. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_score.py +0 -0
  268. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_subtitle.py +0 -0
  269. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_utils.py +0 -0
  270. {subliminal-2.2.0 → subliminal-2.2.1}/tests/test_video.py +0 -0
  271. {subliminal-2.2.0 → subliminal-2.2.1}/tox.ini +0 -0
@@ -1,6 +1,14 @@
1
1
  Changelog
2
2
  ---------
3
3
 
4
+ 2.2.1
5
+ ^^^^^
6
+ **release date:** 2024-06-27
7
+
8
+ * Add example subliminal.toml to documentation and fix documentation.
9
+ * [CLI] show the message about the config file only with the ``--debug`` option.
10
+ * Relax the ``platformdirs`` dependency requirement to ``>= 3``
11
+
4
12
  2.2.0
5
13
  ^^^^^
6
14
  **release date:** 2024-06-24
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: subliminal
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary: Subtitles, faster than your thoughts
5
5
  Author-email: Antoine Bertin <diaoulael@gmail.com>
6
6
  Maintainer-email: Antoine Bertin <diaoulael@gmail.com>, getzze <getzze@gmail.com>, Patrycja Rosa <pypi@ptrcnull.me>
@@ -33,7 +33,7 @@ Requires-Dist: click-option-group>=0.5.6
33
33
  Requires-Dist: dogpile.cache>=1.0
34
34
  Requires-Dist: enzyme>=0.5.0
35
35
  Requires-Dist: guessit>=3.0.0
36
- Requires-Dist: platformdirs>=4.2
36
+ Requires-Dist: platformdirs>=3
37
37
  Requires-Dist: pysubs2>=1.7
38
38
  Requires-Dist: rarfile>=2.7
39
39
  Requires-Dist: requests>=2.0
@@ -154,6 +154,14 @@ See the dedicated `project page <https://github.com/Diaoul/nautilus-subliminal>`
154
154
  Changelog
155
155
  ---------
156
156
 
157
+ 2.2.1
158
+ ^^^^^
159
+ **release date:** 2024-06-27
160
+
161
+ * Add example subliminal.toml to documentation and fix documentation.
162
+ * [CLI] show the message about the config file only with the ``--debug`` option.
163
+ * Relax the ``platformdirs`` dependency requirement to ``>= 3``
164
+
157
165
  2.2.0
158
166
  ^^^^^
159
167
  **release date:** 2024-06-24
@@ -0,0 +1,5 @@
1
+ CLI
2
+ ===
3
+ .. automodule:: subliminal.cli
4
+ :members:
5
+ :exclude-members: MutexLock, plural
@@ -1,6 +1,7 @@
1
1
  Core
2
2
  ====
3
3
  .. automodule:: subliminal.core
4
+ :members:
4
5
  :exclude-members: ARCHIVE_EXTENSIONS
5
6
 
6
7
  .. autodata:: ARCHIVE_EXTENSIONS
@@ -1,3 +1,4 @@
1
1
  Exceptions
2
2
  ==========
3
3
  .. automodule:: subliminal.exceptions
4
+ :members:
@@ -1,3 +1,4 @@
1
1
  Extensions
2
2
  ==========
3
3
  .. automodule:: subliminal.extensions
4
+ :members:
@@ -1,38 +1,46 @@
1
1
  Providers
2
2
  =========
3
3
  .. automodule:: subliminal.providers
4
+ :members:
4
5
 
5
6
  Addic7ed
6
7
  --------
7
8
  .. automodule:: subliminal.providers.addic7ed
9
+ :members:
8
10
  :private-members:
9
11
 
10
12
  Gestdown
11
13
  --------
12
14
  .. automodule:: subliminal.providers.gestdown
15
+ :members:
13
16
  :private-members:
14
17
 
15
18
  NapiProjekt
16
19
  -----------
17
20
  .. automodule:: subliminal.providers.napiprojekt
21
+ :members:
18
22
  :private-members:
19
23
 
20
24
  OpenSubtitles
21
25
  -------------
22
26
  .. automodule:: subliminal.providers.opensubtitles
27
+ :members:
23
28
  :private-members:
24
29
 
25
30
  OpenSubtitles.com
26
31
  -----------------
27
32
  .. automodule:: subliminal.providers.opensubtitlescom
33
+ :members:
28
34
  :private-members:
29
35
 
30
36
  Podnapisi
31
37
  ---------
32
38
  .. automodule:: subliminal.providers.podnapisi
39
+ :members:
33
40
  :private-members:
34
41
 
35
42
  TVsubtitles
36
43
  -----------
37
44
  .. automodule:: subliminal.providers.tvsubtitles
45
+ :members:
38
46
  :private-members:
@@ -5,6 +5,11 @@ Refiners
5
5
  .. automodule:: subliminal.refiners
6
6
 
7
7
 
8
+ Hash
9
+ --------
10
+ .. autofunction:: subliminal.refiners.hash.refine
11
+
12
+
8
13
  Metadata
9
14
  --------
10
15
  .. autofunction:: subliminal.refiners.metadata.refine
@@ -1,3 +1,4 @@
1
1
  Score
2
2
  =====
3
3
  .. automodule:: subliminal.score
4
+ :members:
@@ -1,6 +1,7 @@
1
1
  Subtitle
2
2
  ========
3
3
  .. automodule:: subliminal.subtitle
4
+ :members:
4
5
  :exclude-members: SUBTITLE_EXTENSIONS
5
6
 
6
7
  .. autodata:: SUBTITLE_EXTENSIONS
@@ -1,3 +1,4 @@
1
1
  Utils
2
2
  =====
3
3
  .. automodule:: subliminal.utils
4
+ :members:
@@ -1,6 +1,7 @@
1
1
  Video
2
2
  =====
3
3
  .. automodule:: subliminal.video
4
+ :members:
4
5
  :exclude-members: VIDEO_EXTENSIONS
5
6
 
6
7
  .. autodata:: VIDEO_EXTENSIONS
@@ -73,7 +73,7 @@ release = subliminal.__version__
73
73
  #
74
74
  # This is also used if you do content translation via gettext catalogs.
75
75
  # Usually you set "language" from the command line for these cases.
76
- language = None
76
+ # language = None
77
77
 
78
78
  # There are two options for replacing |today|: either, you set today to some
79
79
  # non-false value, then it is used:
@@ -304,7 +304,6 @@ intersphinx_mapping = {
304
304
  'guessit': ('https://guessit.readthedocs.org/en/latest', None),
305
305
  'babelfish': ('https://babelfish.readthedocs.org/en/latest', None),
306
306
  'dogpilecache': ('https://dogpilecache.sqlalchemy.org/en/latest', None),
307
- 'dogpilecore': ('https://dogpilecore.readthedocs.org/en/latest', None),
308
307
  'stevedore': ('https://docs.openstack.org/stevedore/latest', None),
309
308
  'click': ('https://click.palletsprojects.com/en/latest/', None),
310
309
  }
@@ -2,13 +2,14 @@
2
2
  cache_dir = "~/.cache/subliminal"
3
3
 
4
4
  [provider.opensubtitlescom]
5
- username = "python-subliminal-test"
5
+ username = "subliminal"
6
6
  password = "subliminal"
7
7
  apikey = "mij33pjc3kOlup1qOKxnWWxvle2kFbMH"
8
8
 
9
9
  [provider.addic7ed]
10
10
  username = "subliminal"
11
11
  password = "subliminal"
12
+ timeout = 20
12
13
 
13
14
  [refiner.omdb]
14
15
  apikey = "44d5b275"
@@ -18,7 +19,7 @@ apikey = "xxxxxxxxx"
18
19
 
19
20
  [download]
20
21
  provider = ["addic7ed", "opensubtitlescom", "opensubtitles"]
21
- refiner = ["metadata", "hash", "omdb", "tvdb"]
22
+ refiner = ["metadata", "hash", "omdb", "tmdb"]
22
23
  language = ["fr", "en", "pt-br"]
23
24
  encoding = "utf-8"
24
25
  min_score = 50
@@ -5,7 +5,7 @@
5
5
 
6
6
  Welcome to subliminal!
7
7
  ======================
8
- Subliminal is a python 2.7+ library to search and download subtitles.
8
+ Subliminal is a python3 library to search and download subtitles.
9
9
  It comes with an easy to use yet powerful :abbr:`CLI (command-line interface)` suitable for direct use or cron jobs.
10
10
 
11
11
 
@@ -24,6 +24,11 @@ provided, it looks for a ``subliminal.toml`` file in the default configuration f
24
24
  - MacOS: ``/Users/<user>/Library/Application Support/subliminal/subliminal.toml``
25
25
  - Windows: ``C:\\Users\\<user>\\AppData\\Local\\Acme\\subliminal\\subliminal.toml``
26
26
 
27
+ Example of a ``subliminal.toml`` file:
28
+
29
+ .. literalinclude:: ../config.toml
30
+ :language: toml
31
+
27
32
  See :ref:`cli` for more details on the available commands and options.
28
33
 
29
34
 
@@ -41,7 +41,7 @@ dependencies = [
41
41
  "dogpile.cache>=1.0",
42
42
  "enzyme>=0.5.0",
43
43
  "guessit>=3.0.0",
44
- "platformdirs>=4.2",
44
+ "platformdirs>=3",
45
45
  "pysubs2>=1.7",
46
46
  "rarfile>=2.7",
47
47
  "requests>=2.0",
@@ -3,7 +3,7 @@
3
3
  from __future__ import annotations
4
4
 
5
5
  __title__: str = 'subliminal'
6
- __version__: str = '2.2.0'
6
+ __version__: str = '2.2.1'
7
7
  __short_version__: str = '.'.join(__version__.split('.')[:2])
8
8
  __author__: str = 'Antoine Bertin'
9
9
  __license__: str = 'MIT'
@@ -118,6 +118,7 @@ class AgeParamType(click.ParamType):
118
118
  def configure(ctx: click.Context, param: click.Parameter | None, filename: str | os.PathLike) -> None:
119
119
  """Read a configuration file."""
120
120
  filename = pathlib.Path(filename).expanduser()
121
+ msg = ''
121
122
  toml_dict = {}
122
123
  if filename.is_file():
123
124
  try:
@@ -125,13 +126,10 @@ def configure(ctx: click.Context, param: click.Parameter | None, filename: str |
125
126
  toml_dict = tomli.load(f)
126
127
  except tomli.TOMLDecodeError:
127
128
  msg = f'Cannot read the configuration file at {filename}'
128
- click.echo(msg)
129
129
  else:
130
130
  msg = f'Using configuration file at {filename}'
131
- click.echo(msg)
132
131
  else:
133
132
  msg = 'Not using any configuration file.'
134
- click.echo(msg)
135
133
 
136
134
  options = {}
137
135
 
@@ -148,7 +146,11 @@ def configure(ctx: click.Context, param: click.Parameter | None, filename: str |
148
146
  providers_dict = toml_dict.setdefault('provider', {})
149
147
  refiners_dict = toml_dict.setdefault('refiner', {})
150
148
 
151
- ctx.obj = {'provider_configs': providers_dict, 'refiner_configs': refiners_dict}
149
+ ctx.obj = {
150
+ '__config__': {'dict': toml_dict, 'debug_message': msg},
151
+ 'provider_configs': providers_dict,
152
+ 'refiner_configs': refiners_dict,
153
+ }
152
154
  ctx.default_map = options
153
155
 
154
156
 
@@ -254,6 +256,9 @@ def subliminal(
254
256
  handler.setFormatter(logging.Formatter(logging.BASIC_FORMAT))
255
257
  logging.getLogger('subliminal').addHandler(handler)
256
258
  logging.getLogger('subliminal').setLevel(logging.DEBUG)
259
+ # log about the config file
260
+ msg = ctx.obj['__config__']['debug_message']
261
+ logger.info(msg)
257
262
 
258
263
  ctx.obj['debug'] = debug
259
264
  # provider configs
@@ -13,7 +13,7 @@ if TYPE_CHECKING:
13
13
 
14
14
 
15
15
  class RegistrableExtensionManager(ExtensionManager):
16
- """:class:~stevedore.extensions.ExtensionManager` with support for registration.
16
+ """:class:`stevedore.extensions.ExtensionManager` with support for registration.
17
17
 
18
18
  It allows loading of internal extensions without setup and registering/unregistering additional extensions.
19
19
 
@@ -23,9 +23,9 @@ class RegistrableExtensionManager(ExtensionManager):
23
23
  * Internal extensions
24
24
  * Registered extensions
25
25
 
26
- :param str namespace: namespace argument for :class:~stevedore.extensions.ExtensionManager`.
26
+ :param str namespace: namespace argument for :class:`stevedore.extensions.ExtensionManager`.
27
27
  :param list internal_extensions: internal extensions to use with entry point syntax.
28
- :param kwargs: additional parameters for the :class:~stevedore.extensions.ExtensionManager` constructor.
28
+ :param kwargs: additional parameters for the :class:`stevedore.extensions.ExtensionManager` constructor.
29
29
 
30
30
  """
31
31
 
@@ -1,24 +1,11 @@
1
1
  """
2
2
  Providers list and download subtitles for a :class:`~subliminal.video.Video` object.
3
3
 
4
- A Provider is a ContextManager with `__enter__` and `__exit__` methods and two public methods:
5
-
6
- .. py:method:: list_subtitles(self, video, languages)
7
-
8
- :param video: video to list subtitles for.
9
- :type video: :class:`~subliminal.video.Video`
10
- :param languages: languages to search for.
11
- :type languages: set of :class:`~babelfish.language.Language`
12
- :return: found subtitles.
13
- :rtype: list of :class:`~subliminal.subtitle.Subtitle`
14
- :raise: :class:`~subliminal.exceptions.ProviderError`
15
-
16
-
17
- .. py:method:: download_subtitle(self, subtitle)
18
-
19
- :param subtitle: subtitle to download.
20
- :type subtitle: :class:`~subliminal.subtitle.Subtitle`
21
- :raise: :class:`~subliminal.exceptions.ProviderError`
4
+ A Provider is a ContextManager with :meth:`~subliminal.Provider.__enter__` and
5
+ :meth:`~subliminal.Provider.__exit__`
6
+ methods and two public methods,
7
+ :py:meth:`~subliminal.Provider.list_subtitles(video, languages)` and
8
+ :py:meth:`~subliminal.Provider.download_subtitle(subtitle)`.
22
9
 
23
10
  """
24
11
 
@@ -51,7 +38,7 @@ logger = logging.getLogger(__name__)
51
38
 
52
39
 
53
40
  class SecLevelOneTLSAdapter(adapters.HTTPAdapter):
54
- """``HTTPAdapter`` with security level set to 1."""
41
+ """:class:`~requests.adapters.HTTPAdapter` with security level set to 1."""
55
42
 
56
43
  def init_poolmanager(self, connections: int, maxsize: int, block: bool = False, **pool_kwargs: Any) -> None: # noqa: FBT001, FBT002
57
44
  """Create and initialize the urllib3 PoolManager."""
@@ -67,7 +54,7 @@ class SecLevelOneTLSAdapter(adapters.HTTPAdapter):
67
54
 
68
55
 
69
56
  class TimeoutSafeTransport(SafeTransport):
70
- """Timeout support for ``xmlrpc.client.SafeTransport``."""
57
+ """Timeout support for :class:`~xmlrpc.client.SafeTransport`."""
71
58
 
72
59
  timeout: float | None
73
60
 
@@ -76,7 +63,14 @@ class TimeoutSafeTransport(SafeTransport):
76
63
  self.timeout = timeout
77
64
 
78
65
  def make_connection(self, host: _HostType) -> HTTPSConnection:
79
- """Make connection to host."""
66
+ """Make connection to host.
67
+
68
+ :param host: the connection host.
69
+ :type host: :class:`~xmlrpc.client._HostType`
70
+ :return: the HTTPS connection.
71
+ :rtype: :class:`~http.client import HTTPSConnection`
72
+
73
+ """
80
74
  c = SafeTransport.make_connection(self, host)
81
75
  c.timeout = self.timeout
82
76
 
@@ -84,10 +78,10 @@ class TimeoutSafeTransport(SafeTransport):
84
78
 
85
79
 
86
80
  class ParserBeautifulSoup(BeautifulSoup):
87
- """A ``bs4.BeautifulSoup`` that picks the first parser available in `parsers`.
81
+ """A :class:`~bs4.BeautifulSoup` that picks the first parser available in `parsers`.
88
82
 
89
- :param markup: markup for the ``bs4.BeautifulSoup``.
90
- :param list parsers: parser names, in order of preference.
83
+ :param (str | bytes) markup: markup for the :class:`~bs4.BeautifulSoup`.
84
+ :param list[str] parsers: parser names, in order of preference.
91
85
 
92
86
  """
93
87
 
@@ -127,7 +121,7 @@ class Provider(Generic[S]):
127
121
 
128
122
  If any configuration is possible for the provider, like credentials, it must take place during instantiation.
129
123
 
130
- :raise: :class:`~subliminal.exceptions.ConfigurationError` if there is a configuration error
124
+ :raises: :class:`~subliminal.exceptions.ConfigurationError` if there is a configuration error
131
125
 
132
126
  """
133
127
 
@@ -237,10 +237,10 @@ class GestdownProvider(Provider):
237
237
 
238
238
  :param str show_id: the show id.
239
239
  :param int season: the season to query.
240
- :param :class:`~babelfish.language.Language` language: the language of the subtitles.
240
+ :param language: the language of the subtitles.
241
+ :type language: :class:`~babelfish.language.Language`
241
242
  :return: the list of found subtitles (as dicts).
242
243
  :rtype: list[dict[str, Any]]
243
-
244
244
  """
245
245
  if self.session is None:
246
246
  raise NotInitializedProviderError
@@ -274,10 +274,10 @@ class GestdownProvider(Provider):
274
274
  :param str show_id: the show id.
275
275
  :param int season: the season to query.
276
276
  :param int episode: the episode to query.
277
- :param :class:`~babelfish.language.Language` language: the language of the subtitles.
277
+ :param language: the language of the subtitles.
278
+ :type language: :class:`~babelfish.language.Language`
278
279
  :return: the list of found subtitles (as dicts).
279
280
  :rtype: list[dict[str, Any]]
280
-
281
281
  """
282
282
  if self.session is None:
283
283
  raise NotInitializedProviderError
@@ -318,7 +318,8 @@ class GestdownProvider(Provider):
318
318
  :param str series: the series title.
319
319
  :param int season: the season number.
320
320
  :param int episode: the episode number.
321
- :param :class:`~babelfish.language.Language` language: the language of the subtitles.
321
+ :param language: the language of the subtitles.
322
+ :type language: :class:`~babelfish.language.Language`
322
323
  :return: the list of found subtitles.
323
324
  :rtype: list[GestdownSubtitle]
324
325
 
@@ -174,7 +174,7 @@ def is_iterable(obj: Any) -> TypeGuard[Iterable]:
174
174
  def ensure_list(value: T | Sequence[T] | None) -> list[T]:
175
175
  """Ensure to return a list of values.
176
176
 
177
- From rebulk.loose.ensure_list
177
+ From :func:`rebulk.loose.ensure_list`.
178
178
  """
179
179
  if value is None:
180
180
  return []
@@ -117,7 +117,8 @@ class Video:
117
117
  :param str audio_codec: codec of the main audio stream.
118
118
  :param dict hashes: hashes of the video file by provider names.
119
119
  :param int size: size of the video file in bytes.
120
- :param set subtitle_languages: existing subtitle languages.
120
+ :param subtitle_languages: existing subtitle languages.
121
+ :type subtitle_languages: set[:class:`~babelfish.language.Language`]
121
122
  :param int year: year of the video.
122
123
  :param country: Country of the video.
123
124
  :type country: :class:`~babelfish.country.Country`
@@ -399,7 +400,7 @@ class Movie(Video):
399
400
  :param int year: year of the movie.
400
401
  :param country: Country of the movie.
401
402
  :type country: :class:`~babelfish.country.Country`
402
- :param list alternative_titles: alternative titles of the movie
403
+ :param list[str] alternative_titles: alternative titles of the movie
403
404
  :param kwargs: additional parameters for the :class:`Video` constructor.
404
405
 
405
406
  """
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: subliminal
3
- Version: 2.2.0
3
+ Version: 2.2.1
4
4
  Summary: Subtitles, faster than your thoughts
5
5
  Author-email: Antoine Bertin <diaoulael@gmail.com>
6
6
  Maintainer-email: Antoine Bertin <diaoulael@gmail.com>, getzze <getzze@gmail.com>, Patrycja Rosa <pypi@ptrcnull.me>
@@ -33,7 +33,7 @@ Requires-Dist: click-option-group>=0.5.6
33
33
  Requires-Dist: dogpile.cache>=1.0
34
34
  Requires-Dist: enzyme>=0.5.0
35
35
  Requires-Dist: guessit>=3.0.0
36
- Requires-Dist: platformdirs>=4.2
36
+ Requires-Dist: platformdirs>=3
37
37
  Requires-Dist: pysubs2>=1.7
38
38
  Requires-Dist: rarfile>=2.7
39
39
  Requires-Dist: requests>=2.0
@@ -154,6 +154,14 @@ See the dedicated `project page <https://github.com/Diaoul/nautilus-subliminal>`
154
154
  Changelog
155
155
  ---------
156
156
 
157
+ 2.2.1
158
+ ^^^^^
159
+ **release date:** 2024-06-27
160
+
161
+ * Add example subliminal.toml to documentation and fix documentation.
162
+ * [CLI] show the message about the config file only with the ``--debug`` option.
163
+ * Relax the ``platformdirs`` dependency requirement to ``>= 3``
164
+
157
165
  2.2.0
158
166
  ^^^^^
159
167
  **release date:** 2024-06-24
@@ -6,7 +6,7 @@ click-option-group>=0.5.6
6
6
  dogpile.cache>=1.0
7
7
  enzyme>=0.5.0
8
8
  guessit>=3.0.0
9
- platformdirs>=4.2
9
+ platformdirs>=3
10
10
  pysubs2>=1.7
11
11
  rarfile>=2.7
12
12
  requests>=2.0
@@ -1,3 +0,0 @@
1
- CLI
2
- ===
3
- .. automodule:: subliminal.cli
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