setup cfg
This commit is contained in:
parent
bbf99947be
commit
2db2c88441
55 changed files with 177 additions and 162 deletions
|
|
@ -1,7 +0,0 @@
|
||||||
argparse==1.4.0
|
|
||||||
dicttoxml==1.7.4
|
|
||||||
mergedeep==1.3.4
|
|
||||||
music-tag==0.4.3
|
|
||||||
Pillow==9.1.0
|
|
||||||
PyYAML==6.0
|
|
||||||
yt-dlp==2022.4.8
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
-r requirements.txt
|
|
||||||
black==22.3.0
|
|
||||||
coverage==6.3.2
|
|
||||||
isort==5.10.1
|
|
||||||
pylint==2.13.5
|
|
||||||
pytest==7.1.1
|
|
||||||
sphinx==4.5.0
|
|
||||||
sphinx-rtd-theme==1.0.0
|
|
||||||
36
setup.cfg
Normal file
36
setup.cfg
Normal file
|
|
@ -0,0 +1,36 @@
|
||||||
|
[metadata]
|
||||||
|
name = ytdl-sub
|
||||||
|
version = attr:ytdl_sub.version.__version__
|
||||||
|
author = Jesse Bannon
|
||||||
|
description = ytdl automated with metadata creation
|
||||||
|
author_email = use_github_issues@nope.com
|
||||||
|
url = https://github.com/jmbannon/ytdl-sub
|
||||||
|
license = GNUv3
|
||||||
|
platforms = Unix
|
||||||
|
classifiers =
|
||||||
|
Topic :: Multimedia :: Sound/Audio
|
||||||
|
Topic :: Multimedia :: Video
|
||||||
|
License :: Public Domain
|
||||||
|
Environment :: Console
|
||||||
|
Programming Language :: Python :: 3.10
|
||||||
|
|
||||||
|
[options.entry_points]
|
||||||
|
console_scripts =
|
||||||
|
ytdl-sub = ytdl_sub.main:main
|
||||||
|
|
||||||
|
[options]
|
||||||
|
package_dir =
|
||||||
|
= src
|
||||||
|
install_requires =
|
||||||
|
argparse==1.4.0
|
||||||
|
dicttoxml==1.7.4
|
||||||
|
mergedeep==1.3.4
|
||||||
|
music-tag==0.4.3
|
||||||
|
Pillow==9.1.0
|
||||||
|
PyYAML==6.0
|
||||||
|
yt-dlp==2022.4.8
|
||||||
|
|
||||||
|
[options.extras_require]
|
||||||
|
test = coverage==6.3.2; pytest==7.1.1
|
||||||
|
lint = black==22.3.0; isort==5.10.1; pylint==2.13.5
|
||||||
|
docs = sphinx==4.5.0; sphinx-rtd-theme==1.0.0
|
||||||
7
setup.py
7
setup.py
|
|
@ -1,7 +0,0 @@
|
||||||
from setuptools import find_packages
|
|
||||||
from setuptools import setup
|
|
||||||
|
|
||||||
setup(
|
|
||||||
name="ytdl_subscribe",
|
|
||||||
packages=find_packages(),
|
|
||||||
)
|
|
||||||
|
|
@ -2,9 +2,9 @@ from typing import Any
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
|
||||||
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
|
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
|
||||||
from ytdl_subscribe.validators.validators import LiteralDictValidator
|
from ytdl_sub.validators.validators import LiteralDictValidator
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
|
|
||||||
class ConfigOptions(StrictDictValidator):
|
class ConfigOptions(StrictDictValidator):
|
||||||
|
|
@ -5,21 +5,21 @@ from typing import Optional
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
from typing import Type
|
from typing import Type
|
||||||
|
|
||||||
from ytdl_subscribe.config.preset_class_mappings import DownloadStrategyMapping
|
from ytdl_sub.config.preset_class_mappings import DownloadStrategyMapping
|
||||||
from ytdl_subscribe.config.preset_class_mappings import PluginMapping
|
from ytdl_sub.config.preset_class_mappings import PluginMapping
|
||||||
from ytdl_subscribe.config.preset_options import OutputOptions
|
from ytdl_sub.config.preset_options import OutputOptions
|
||||||
from ytdl_subscribe.config.preset_options import Overrides
|
from ytdl_sub.config.preset_options import Overrides
|
||||||
from ytdl_subscribe.config.preset_options import YTDLOptions
|
from ytdl_sub.config.preset_options import YTDLOptions
|
||||||
from ytdl_subscribe.downloaders.downloader import Downloader
|
from ytdl_sub.downloaders.downloader import Downloader
|
||||||
from ytdl_subscribe.downloaders.downloader import DownloaderValidator
|
from ytdl_sub.downloaders.downloader import DownloaderValidator
|
||||||
from ytdl_subscribe.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
from ytdl_subscribe.plugins.plugin import PluginOptions
|
from ytdl_sub.plugins.plugin import PluginOptions
|
||||||
from ytdl_subscribe.utils.exceptions import StringFormattingVariableNotFoundException
|
from ytdl_sub.utils.exceptions import StringFormattingVariableNotFoundException
|
||||||
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
|
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import OverridesStringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator
|
||||||
from ytdl_subscribe.validators.validators import DictValidator
|
from ytdl_sub.validators.validators import DictValidator
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
from ytdl_subscribe.validators.validators import Validator
|
from ytdl_sub.validators.validators import Validator
|
||||||
|
|
||||||
PRESET_REQUIRED_KEYS = {"output_options"}
|
PRESET_REQUIRED_KEYS = {"output_options"}
|
||||||
PRESET_OPTIONAL_KEYS = {
|
PRESET_OPTIONAL_KEYS = {
|
||||||
|
|
@ -2,16 +2,16 @@ from typing import Dict
|
||||||
from typing import List
|
from typing import List
|
||||||
from typing import Type
|
from typing import Type
|
||||||
|
|
||||||
from ytdl_subscribe.downloaders.downloader import Downloader
|
from ytdl_sub.downloaders.downloader import Downloader
|
||||||
from ytdl_subscribe.downloaders.soundcloud_downloader import SoundcloudAlbumsAndSinglesDownloader
|
from ytdl_sub.downloaders.soundcloud_downloader import SoundcloudAlbumsAndSinglesDownloader
|
||||||
from ytdl_subscribe.downloaders.youtube_downloader import YoutubeChannelDownloader
|
from ytdl_sub.downloaders.youtube_downloader import YoutubeChannelDownloader
|
||||||
from ytdl_subscribe.downloaders.youtube_downloader import YoutubePlaylistDownloader
|
from ytdl_sub.downloaders.youtube_downloader import YoutubePlaylistDownloader
|
||||||
from ytdl_subscribe.downloaders.youtube_downloader import YoutubeVideoDownloader
|
from ytdl_sub.downloaders.youtube_downloader import YoutubeVideoDownloader
|
||||||
from ytdl_subscribe.plugins.convert_thumbnail import ConvertThumbnailPlugin
|
from ytdl_sub.plugins.convert_thumbnail import ConvertThumbnailPlugin
|
||||||
from ytdl_subscribe.plugins.music_tags import MusicTagsPlugin
|
from ytdl_sub.plugins.music_tags import MusicTagsPlugin
|
||||||
from ytdl_subscribe.plugins.nfo_tags import NfoTagsPlugin
|
from ytdl_sub.plugins.nfo_tags import NfoTagsPlugin
|
||||||
from ytdl_subscribe.plugins.output_directory_nfo_tags import OutputDirectoryNfoTagsPlugin
|
from ytdl_sub.plugins.output_directory_nfo_tags import OutputDirectoryNfoTagsPlugin
|
||||||
from ytdl_subscribe.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
|
|
||||||
|
|
||||||
class DownloadStrategyMapping:
|
class DownloadStrategyMapping:
|
||||||
|
|
@ -2,14 +2,14 @@ from typing import Optional
|
||||||
|
|
||||||
from yt_dlp.utils import sanitize_filename
|
from yt_dlp.utils import sanitize_filename
|
||||||
|
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.validators.date_range_validator import DateRangeValidator
|
from ytdl_sub.validators.date_range_validator import DateRangeValidator
|
||||||
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
|
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import DictFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import DictFormatterValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import OverridesStringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import StringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import StringFormatterValidator
|
||||||
from ytdl_subscribe.validators.validators import BoolValidator
|
from ytdl_sub.validators.validators import BoolValidator
|
||||||
from ytdl_subscribe.validators.validators import LiteralDictValidator
|
from ytdl_sub.validators.validators import LiteralDictValidator
|
||||||
|
|
||||||
|
|
||||||
class YTDLOptions(LiteralDictValidator):
|
class YTDLOptions(LiteralDictValidator):
|
||||||
|
|
@ -6,14 +6,14 @@ from typing import List
|
||||||
import yaml
|
import yaml
|
||||||
from mergedeep import mergedeep
|
from mergedeep import mergedeep
|
||||||
|
|
||||||
from ytdl_subscribe.config.config_file import ConfigFile
|
from ytdl_sub.config.config_file import ConfigFile
|
||||||
from ytdl_subscribe.config.preset import PRESET_OPTIONAL_KEYS
|
from ytdl_sub.config.preset import PRESET_OPTIONAL_KEYS
|
||||||
from ytdl_subscribe.config.preset import PRESET_REQUIRED_KEYS
|
from ytdl_sub.config.preset import PRESET_REQUIRED_KEYS
|
||||||
from ytdl_subscribe.config.preset import Preset
|
from ytdl_sub.config.preset import Preset
|
||||||
from ytdl_subscribe.config.preset_options import Overrides
|
from ytdl_sub.config.preset_options import Overrides
|
||||||
from ytdl_subscribe.subscriptions.subscription import Subscription
|
from ytdl_sub.subscriptions.subscription import Subscription
|
||||||
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
|
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
|
|
||||||
class SubscriptionValidator(StrictDictValidator):
|
class SubscriptionValidator(StrictDictValidator):
|
||||||
|
|
@ -11,9 +11,9 @@ from typing import TypeVar
|
||||||
|
|
||||||
import yt_dlp as ytdl
|
import yt_dlp as ytdl
|
||||||
|
|
||||||
from ytdl_subscribe.config.preset_options import Overrides
|
from ytdl_sub.config.preset_options import Overrides
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
|
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
|
||||||
|
|
||||||
|
|
||||||
class DownloaderValidator(StrictDictValidator, ABC):
|
class DownloaderValidator(StrictDictValidator, ABC):
|
||||||
|
|
@ -4,12 +4,12 @@ from typing import Generic
|
||||||
from typing import List
|
from typing import List
|
||||||
from typing import TypeVar
|
from typing import TypeVar
|
||||||
|
|
||||||
from ytdl_subscribe.downloaders.downloader import Downloader
|
from ytdl_sub.downloaders.downloader import Downloader
|
||||||
from ytdl_subscribe.downloaders.downloader import DownloaderValidator
|
from ytdl_sub.downloaders.downloader import DownloaderValidator
|
||||||
from ytdl_subscribe.entries.soundcloud import SoundcloudAlbum
|
from ytdl_sub.entries.soundcloud import SoundcloudAlbum
|
||||||
from ytdl_subscribe.entries.soundcloud import SoundcloudTrack
|
from ytdl_sub.entries.soundcloud import SoundcloudTrack
|
||||||
from ytdl_subscribe.validators.validators import BoolValidator
|
from ytdl_sub.validators.validators import BoolValidator
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Abstract Soundcloud downloader + options
|
# Abstract Soundcloud downloader + options
|
||||||
|
|
@ -13,13 +13,13 @@ from PIL.Image import Image
|
||||||
from PIL.Image import open as pil_open
|
from PIL.Image import open as pil_open
|
||||||
from yt_dlp.utils import RejectedVideoReached
|
from yt_dlp.utils import RejectedVideoReached
|
||||||
|
|
||||||
from ytdl_subscribe.config.preset_options import Overrides
|
from ytdl_sub.config.preset_options import Overrides
|
||||||
from ytdl_subscribe.downloaders.downloader import Downloader
|
from ytdl_sub.downloaders.downloader import Downloader
|
||||||
from ytdl_subscribe.downloaders.downloader import DownloaderValidator
|
from ytdl_sub.downloaders.downloader import DownloaderValidator
|
||||||
from ytdl_subscribe.entries.youtube import YoutubeVideo
|
from ytdl_sub.entries.youtube import YoutubeVideo
|
||||||
from ytdl_subscribe.validators.date_range_validator import DateRangeValidator
|
from ytdl_sub.validators.date_range_validator import DateRangeValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import OverridesStringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
###############################################################################
|
###############################################################################
|
||||||
# Abstract Youtube downloader + options
|
# Abstract Youtube downloader + options
|
||||||
|
|
@ -2,8 +2,8 @@ from pathlib import Path
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import final
|
from typing import final
|
||||||
|
|
||||||
from ytdl_subscribe.entries.base_entry import BaseEntry
|
from ytdl_sub.entries.base_entry import BaseEntry
|
||||||
from ytdl_subscribe.entries.variables.entry_variables import EntryVariables
|
from ytdl_sub.entries.variables.entry_variables import EntryVariables
|
||||||
|
|
||||||
|
|
||||||
class Entry(EntryVariables, BaseEntry):
|
class Entry(EntryVariables, BaseEntry):
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
from typing import Dict
|
from typing import Dict
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from ytdl_subscribe.entries.base_entry import PlaylistMetadata
|
from ytdl_sub.entries.base_entry import PlaylistMetadata
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.entries.variables.soundcloud_variables import SoundcloudVariables
|
from ytdl_sub.entries.variables.soundcloud_variables import SoundcloudVariables
|
||||||
|
|
||||||
|
|
||||||
class SoundcloudTrack(SoundcloudVariables, Entry):
|
class SoundcloudTrack(SoundcloudVariables, Entry):
|
||||||
|
|
@ -3,7 +3,7 @@ from typing import final
|
||||||
|
|
||||||
from yt_dlp.utils import sanitize_filename
|
from yt_dlp.utils import sanitize_filename
|
||||||
|
|
||||||
from ytdl_subscribe.entries.base_entry import BaseEntry
|
from ytdl_sub.entries.base_entry import BaseEntry
|
||||||
|
|
||||||
# This file contains mixins to a BaseEntry subclass. Ignore pylint's "no kwargs member" suggestion
|
# This file contains mixins to a BaseEntry subclass. Ignore pylint's "no kwargs member" suggestion
|
||||||
# pylint: disable=no-member
|
# pylint: disable=no-member
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from yt_dlp.utils import sanitize_filename
|
from yt_dlp.utils import sanitize_filename
|
||||||
|
|
||||||
from ytdl_subscribe.entries.variables.entry_variables import EntryVariables
|
from ytdl_sub.entries.variables.entry_variables import EntryVariables
|
||||||
|
|
||||||
# This file contains mixins to a BaseEntry subclass. Ignore pylint's "no kwargs member" suggestion
|
# This file contains mixins to a BaseEntry subclass. Ignore pylint's "no kwargs member" suggestion
|
||||||
# pylint: disable=no-member
|
# pylint: disable=no-member
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
from ytdl_subscribe.entries.base_entry import BaseEntry
|
from ytdl_sub.entries.base_entry import BaseEntry
|
||||||
from ytdl_subscribe.entries.variables.entry_variables import EntryVariables
|
from ytdl_sub.entries.variables.entry_variables import EntryVariables
|
||||||
|
|
||||||
# This file contains mixins to a BaseEntry subclass. Ignore pylint's "no kwargs member" suggestion
|
# This file contains mixins to a BaseEntry subclass. Ignore pylint's "no kwargs member" suggestion
|
||||||
# pylint: disable=no-member
|
# pylint: disable=no-member
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
import os.path
|
import os.path
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
|
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.entries.variables.youtube_variables import YoutubeVideoVariables
|
from ytdl_sub.entries.variables.youtube_variables import YoutubeVideoVariables
|
||||||
|
|
||||||
|
|
||||||
class YoutubeVideo(YoutubeVideoVariables, Entry):
|
class YoutubeVideo(YoutubeVideoVariables, Entry):
|
||||||
|
|
@ -3,11 +3,11 @@ import sys
|
||||||
import traceback
|
import traceback
|
||||||
from typing import List
|
from typing import List
|
||||||
|
|
||||||
from ytdl_subscribe.cli.download_args_parser import DownloadArgsParser
|
from ytdl_sub.cli.download_args_parser import DownloadArgsParser
|
||||||
from ytdl_subscribe.cli.main_args_parser import parser
|
from ytdl_sub.cli.main_args_parser import parser
|
||||||
from ytdl_subscribe.config.config_file import ConfigFile
|
from ytdl_sub.config.config_file import ConfigFile
|
||||||
from ytdl_subscribe.config.subscription import SubscriptionValidator
|
from ytdl_sub.config.subscription import SubscriptionValidator
|
||||||
from ytdl_subscribe.utils.exceptions import ValidationException
|
from ytdl_sub.utils.exceptions import ValidationException
|
||||||
|
|
||||||
DEBUGGER_MODE = True
|
DEBUGGER_MODE = True
|
||||||
|
|
||||||
|
|
@ -49,7 +49,7 @@ def _download_subscription_from_cli(config: ConfigFile, extra_args: List[str]) -
|
||||||
).to_subscription().download()
|
).to_subscription().download()
|
||||||
|
|
||||||
|
|
||||||
def _main():
|
def main():
|
||||||
"""Entrypoint for ytdl-subscribe"""
|
"""Entrypoint for ytdl-subscribe"""
|
||||||
args, extra_args = parser.parse_known_args()
|
args, extra_args = parser.parse_known_args()
|
||||||
|
|
||||||
|
|
@ -66,7 +66,7 @@ def _main():
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
try:
|
try:
|
||||||
_main()
|
main()
|
||||||
except ValidationException as validation_exception:
|
except ValidationException as validation_exception:
|
||||||
if DEBUGGER_MODE:
|
if DEBUGGER_MODE:
|
||||||
raise
|
raise
|
||||||
|
|
@ -3,10 +3,10 @@ import os
|
||||||
from PIL.Image import Image
|
from PIL.Image import Image
|
||||||
from PIL.Image import open as pil_open
|
from PIL.Image import open as pil_open
|
||||||
|
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
from ytdl_subscribe.plugins.plugin import PluginOptions
|
from ytdl_sub.plugins.plugin import PluginOptions
|
||||||
from ytdl_subscribe.validators.string_select_validator import StringSelectValidator
|
from ytdl_sub.validators.string_select_validator import StringSelectValidator
|
||||||
|
|
||||||
|
|
||||||
class ThumbnailTypes(StringSelectValidator):
|
class ThumbnailTypes(StringSelectValidator):
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import music_tag
|
import music_tag
|
||||||
|
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
from ytdl_subscribe.plugins.plugin import PluginOptions
|
from ytdl_sub.plugins.plugin import PluginOptions
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import DictFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import DictFormatterValidator
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
|
|
||||||
class MusicTagsOptions(PluginOptions):
|
class MusicTagsOptions(PluginOptions):
|
||||||
|
|
@ -3,11 +3,11 @@ from pathlib import Path
|
||||||
|
|
||||||
import dicttoxml
|
import dicttoxml
|
||||||
|
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
from ytdl_subscribe.plugins.plugin import PluginOptions
|
from ytdl_sub.plugins.plugin import PluginOptions
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import DictFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import DictFormatterValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import StringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import StringFormatterValidator
|
||||||
|
|
||||||
|
|
||||||
class NfoTagsOptions(PluginOptions):
|
class NfoTagsOptions(PluginOptions):
|
||||||
|
|
@ -3,10 +3,10 @@ from pathlib import Path
|
||||||
|
|
||||||
import dicttoxml
|
import dicttoxml
|
||||||
|
|
||||||
from ytdl_subscribe.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
from ytdl_subscribe.plugins.plugin import PluginOptions
|
from ytdl_sub.plugins.plugin import PluginOptions
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import OverridesDictFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import OverridesDictFormatterValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import OverridesStringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator
|
||||||
|
|
||||||
|
|
||||||
class OutputDirectoryNfoTagsOptions(PluginOptions):
|
class OutputDirectoryNfoTagsOptions(PluginOptions):
|
||||||
|
|
@ -4,10 +4,10 @@ from typing import Type
|
||||||
from typing import TypeVar
|
from typing import TypeVar
|
||||||
from typing import final
|
from typing import final
|
||||||
|
|
||||||
from ytdl_subscribe.config.preset_options import Overrides
|
from ytdl_sub.config.preset_options import Overrides
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
|
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
|
||||||
from ytdl_subscribe.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
||||||
|
|
||||||
|
|
||||||
class PluginOptions(StrictDictValidator):
|
class PluginOptions(StrictDictValidator):
|
||||||
|
|
@ -7,17 +7,17 @@ from typing import List
|
||||||
from typing import Tuple
|
from typing import Tuple
|
||||||
from typing import Type
|
from typing import Type
|
||||||
|
|
||||||
from ytdl_subscribe.config.config_file import ConfigOptions
|
from ytdl_sub.config.config_file import ConfigOptions
|
||||||
from ytdl_subscribe.config.preset import Preset
|
from ytdl_sub.config.preset import Preset
|
||||||
from ytdl_subscribe.config.preset_options import OutputOptions
|
from ytdl_sub.config.preset_options import OutputOptions
|
||||||
from ytdl_subscribe.config.preset_options import Overrides
|
from ytdl_sub.config.preset_options import Overrides
|
||||||
from ytdl_subscribe.config.preset_options import YTDLOptions
|
from ytdl_sub.config.preset_options import YTDLOptions
|
||||||
from ytdl_subscribe.downloaders.downloader import Downloader
|
from ytdl_sub.downloaders.downloader import Downloader
|
||||||
from ytdl_subscribe.downloaders.downloader import DownloaderValidator
|
from ytdl_sub.downloaders.downloader import DownloaderValidator
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.plugins.plugin import Plugin
|
from ytdl_sub.plugins.plugin import Plugin
|
||||||
from ytdl_subscribe.plugins.plugin import PluginOptions
|
from ytdl_sub.plugins.plugin import PluginOptions
|
||||||
from ytdl_subscribe.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
from ytdl_sub.ytdl_additions.enhanced_download_archive import EnhancedDownloadArchive
|
||||||
|
|
||||||
|
|
||||||
class Subscription:
|
class Subscription:
|
||||||
|
|
@ -2,8 +2,8 @@ from typing import Optional
|
||||||
|
|
||||||
from yt_dlp import DateRange
|
from yt_dlp import DateRange
|
||||||
|
|
||||||
from ytdl_subscribe.validators.strict_dict_validator import StrictDictValidator
|
from ytdl_sub.validators.strict_dict_validator import StrictDictValidator
|
||||||
from ytdl_subscribe.validators.string_datetime import StringDatetimeValidator
|
from ytdl_sub.validators.string_datetime import StringDatetimeValidator
|
||||||
|
|
||||||
|
|
||||||
class DateRangeValidator(StrictDictValidator):
|
class DateRangeValidator(StrictDictValidator):
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
from typing import List
|
from typing import List
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from ytdl_subscribe.validators.validators import DictValidator
|
from ytdl_sub.validators.validators import DictValidator
|
||||||
|
|
||||||
|
|
||||||
class StrictDictValidator(DictValidator):
|
class StrictDictValidator(DictValidator):
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from yt_dlp.utils import datetime_from_str
|
from yt_dlp.utils import datetime_from_str
|
||||||
|
|
||||||
from ytdl_subscribe.validators.validators import Validator
|
from ytdl_sub.validators.validators import Validator
|
||||||
|
|
||||||
|
|
||||||
class StringDatetimeValidator(Validator):
|
class StringDatetimeValidator(Validator):
|
||||||
|
|
@ -5,10 +5,10 @@ from typing import Dict
|
||||||
from typing import List
|
from typing import List
|
||||||
from typing import final
|
from typing import final
|
||||||
|
|
||||||
from ytdl_subscribe.utils.exceptions import StringFormattingException
|
from ytdl_sub.utils.exceptions import StringFormattingException
|
||||||
from ytdl_subscribe.utils.exceptions import StringFormattingVariableNotFoundException
|
from ytdl_sub.utils.exceptions import StringFormattingVariableNotFoundException
|
||||||
from ytdl_subscribe.validators.validators import LiteralDictValidator
|
from ytdl_sub.validators.validators import LiteralDictValidator
|
||||||
from ytdl_subscribe.validators.validators import Validator
|
from ytdl_sub.validators.validators import Validator
|
||||||
|
|
||||||
|
|
||||||
class StringFormatterValidator(Validator):
|
class StringFormatterValidator(Validator):
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
from typing import Set
|
from typing import Set
|
||||||
|
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
|
|
||||||
class StringSelectValidator(StringValidator):
|
class StringSelectValidator(StringValidator):
|
||||||
|
|
@ -8,7 +8,7 @@ from typing import Type
|
||||||
from typing import TypeVar
|
from typing import TypeVar
|
||||||
from typing import final
|
from typing import final
|
||||||
|
|
||||||
from ytdl_subscribe.utils.exceptions import ValidationException
|
from ytdl_sub.utils.exceptions import ValidationException
|
||||||
|
|
||||||
V = TypeVar("V", bound=ValidationException)
|
V = TypeVar("V", bound=ValidationException)
|
||||||
|
|
||||||
1
src/ytdl_sub/version.py
Normal file
1
src/ytdl_sub/version.py
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
__version__ = "0.0.1"
|
||||||
0
src/ytdl_sub/ytdl_additions/__init__.py
Normal file
0
src/ytdl_sub/ytdl_additions/__init__.py
Normal file
|
|
@ -12,7 +12,7 @@ from typing import Set
|
||||||
|
|
||||||
from yt_dlp import DateRange
|
from yt_dlp import DateRange
|
||||||
|
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
|
|
||||||
|
|
||||||
@dataclass
|
@dataclass
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from ytdl_subscribe.entries.entry import Entry
|
from ytdl_sub.entries.entry import Entry
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import StringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import StringFormatterValidator
|
||||||
|
|
||||||
|
|
||||||
def _pad(num):
|
def _pad(num):
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from ytdl_subscribe.entries.soundcloud import SoundcloudTrack
|
from ytdl_sub.entries.soundcloud import SoundcloudTrack
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from ytdl_subscribe.utils.exceptions import ValidationException
|
from ytdl_sub.utils.exceptions import ValidationException
|
||||||
from ytdl_subscribe.validators.validators import BoolValidator
|
from ytdl_sub.validators.validators import BoolValidator
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("value", [True, False])
|
@pytest.mark.parametrize("value", [True, False])
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,10 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from ytdl_subscribe.utils.exceptions import ValidationException
|
from ytdl_sub.utils.exceptions import ValidationException
|
||||||
from ytdl_subscribe.validators.validators import BoolValidator
|
from ytdl_sub.validators.validators import BoolValidator
|
||||||
from ytdl_subscribe.validators.validators import DictValidator
|
from ytdl_sub.validators.validators import DictValidator
|
||||||
from ytdl_subscribe.validators.validators import LiteralDictValidator
|
from ytdl_sub.validators.validators import LiteralDictValidator
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
|
|
||||||
class TestDictValidator:
|
class TestDictValidator:
|
||||||
|
|
|
||||||
|
|
@ -1,11 +1,11 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from ytdl_subscribe.utils.exceptions import StringFormattingException
|
from ytdl_sub.utils.exceptions import StringFormattingException
|
||||||
from ytdl_subscribe.utils.exceptions import ValidationException
|
from ytdl_sub.utils.exceptions import ValidationException
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import DictFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import DictFormatterValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import OverridesDictFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import OverridesDictFormatterValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import OverridesStringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import OverridesStringFormatterValidator
|
||||||
from ytdl_subscribe.validators.string_formatter_validators import StringFormatterValidator
|
from ytdl_sub.validators.string_formatter_validators import StringFormatterValidator
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
import pytest
|
import pytest
|
||||||
|
|
||||||
from ytdl_subscribe.utils.exceptions import ValidationException
|
from ytdl_sub.utils.exceptions import ValidationException
|
||||||
from ytdl_subscribe.validators.validators import StringValidator
|
from ytdl_sub.validators.validators import StringValidator
|
||||||
|
|
||||||
|
|
||||||
@pytest.mark.parametrize("value", ["a", "unicode 💩", ""])
|
@pytest.mark.parametrize("value", ["a", "unicode 💩", ""])
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue