ytdl-sub 2025.12.31.post1__tar.gz → 2025.12.31.post2__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.
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/PKG-INFO +1 -1
- ytdl_sub-2025.12.31.post2/src/ytdl_sub/__init__.py +1 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/script.py +8 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/variable_dependency.py +17 -12
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/string_formatter_validators.py +5 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/PKG-INFO +1 -1
- ytdl_sub-2025.12.31.post1/src/ytdl_sub/__init__.py +0 -1
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/LICENSE +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/README.md +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/pyproject.toml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/setup.cfg +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/entrypoint.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/output_summary.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/output_transaction_log.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/parsers/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/parsers/cli_to_sub.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/parsers/dl.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/parsers/main.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/config_file.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/config_validator.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/defaults.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/overrides.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/plugin.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/plugin_mapping.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/plugin_operation.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/preset_plugins.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/preset.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/preset_options.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/validators/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/validators/options.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/validators/variable_validation.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/info_json/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/info_json/info_json_downloader.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/source_plugin.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/url/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/url/downloader.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/url/validators.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/ytdl_options_builder.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/ytdlp.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/base_entry.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/entry.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/entry_parent.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/script/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/script/custom_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/script/function_scripts.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/script/variable_definitions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/script/variable_types.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/variables/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/variables/override_variables.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/main.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/audio_extract.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/chapters.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/date_range.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/embed_thumbnail.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/file_convert.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/filter_exclude.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/filter_include.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/format.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/internal/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/internal/view.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/match_filters.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/music_tags.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/nfo_tags.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/output_directory_nfo_tags.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/split_by_chapters.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/square_thumbnail.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/static_nfo_tags.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/subtitles.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/throttle_protection.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/video_tags.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/download_deletion_options.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/filter_duration.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/filter_keywords.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/media_quality.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/players.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/throttle_protection.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/url.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/url_bilateral.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/helpers/url_categorized.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/internal/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/internal/view.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music/albums_from_chapters.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music/albums_from_playlists.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music/singles.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music/soundcloud.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music_videos/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music_videos/music_video_base.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music_videos/music_video_extras.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/music_videos/music_videos.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/tv_show/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/tv_show/episode.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/tv_show/tv_show.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_by_date.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/tv_show/tv_show_collection.yaml +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/array_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/boolean_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/conditional_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/date_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/error_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/json_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/map_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/numeric_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/print_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/regex_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/string_functions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/parser.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/script_output.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/array.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/function.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/map.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/resolvable.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/syntax_tree.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/variable.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/exception_formatters.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/exceptions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/name_validation.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/type_checking.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/base_subscription.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/subscription.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/subscription_download.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/subscription_validators.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/subscription_ytdl_options.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/thread/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/thread/log_entries_downloaded_listener.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/chapters.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/datetime.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/exceptions.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/ffmpeg.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/file_handler.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/file_lock.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/file_path.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/logger.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/retry.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/script.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/scriptable.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/subtitles.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/system.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/thumbnail.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/xml.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/utils/yaml.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/audo_codec_validator.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/file_path_validators.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/nfo_validators.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/regex_validator.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/source_variable_validator.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/strict_dict_validator.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/string_datetime.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/string_select_validator.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/validators.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/ytdl_additions/__init__.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/ytdl_additions/enhanced_download_archive.py +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/SOURCES.txt +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/dependency_links.txt +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/entry_points.txt +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/requires.txt +0 -0
- {ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/top_level.txt +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__pypi_version__ = "2025.12.31.post2";__local_version__ = "2025.12.31+7ac525f"
|
|
@@ -288,6 +288,14 @@ class Script:
|
|
|
288
288
|
unresolvable=unresolvable,
|
|
289
289
|
)
|
|
290
290
|
|
|
291
|
+
for lambda_func in current_var.lambdas:
|
|
292
|
+
if lambda_func.value in self._functions:
|
|
293
|
+
subset_to_resolve |= self._recursive_get_unresolved_output_filter_variables(
|
|
294
|
+
current_var=self._functions[lambda_func.value],
|
|
295
|
+
subset_to_resolve=subset_to_resolve,
|
|
296
|
+
unresolvable=unresolvable,
|
|
297
|
+
)
|
|
298
|
+
|
|
291
299
|
return subset_to_resolve
|
|
292
300
|
|
|
293
301
|
def _get_unresolved_output_filter(
|
|
@@ -114,7 +114,6 @@ class VariableDependency(ABC):
|
|
|
114
114
|
output.add(ParsedCustomFunction(name=arg.name, num_input_args=len(arg.args)))
|
|
115
115
|
if isinstance(arg, VariableDependency):
|
|
116
116
|
output.update(arg.custom_functions)
|
|
117
|
-
# if isinstance(arg, Lambda)
|
|
118
117
|
|
|
119
118
|
return output
|
|
120
119
|
|
|
@@ -160,6 +159,20 @@ class VariableDependency(ABC):
|
|
|
160
159
|
|
|
161
160
|
raise UNREACHABLE
|
|
162
161
|
|
|
162
|
+
@final
|
|
163
|
+
def _custom_function_dependencies(
|
|
164
|
+
self, custom_function_definitions: Dict[str, "VariableDependency"]
|
|
165
|
+
) -> Set[ParsedCustomFunction]:
|
|
166
|
+
custom_functions = self.custom_functions
|
|
167
|
+
for lambda_func in self.lambdas:
|
|
168
|
+
if lambda_func.value in custom_function_definitions:
|
|
169
|
+
custom_functions.add(
|
|
170
|
+
ParsedCustomFunction(
|
|
171
|
+
name=lambda_func.value, num_input_args=lambda_func.num_input_args()
|
|
172
|
+
)
|
|
173
|
+
)
|
|
174
|
+
return custom_functions
|
|
175
|
+
|
|
163
176
|
@final
|
|
164
177
|
def is_subset_of(
|
|
165
178
|
self,
|
|
@@ -171,7 +184,8 @@ class VariableDependency(ABC):
|
|
|
171
184
|
-------
|
|
172
185
|
True if it contains all input variables as a dependency. False otherwise.
|
|
173
186
|
"""
|
|
174
|
-
|
|
187
|
+
# If there are lambdas, see if they are custom functions. If so, check them
|
|
188
|
+
for custom_function in self._custom_function_dependencies(custom_function_definitions):
|
|
175
189
|
if not custom_function_definitions[custom_function.name].is_subset_of(
|
|
176
190
|
variables=variables, custom_function_definitions=custom_function_definitions
|
|
177
191
|
):
|
|
@@ -191,16 +205,7 @@ class VariableDependency(ABC):
|
|
|
191
205
|
True if it contains any of the input variables. False otherwise.
|
|
192
206
|
"""
|
|
193
207
|
# If there are lambdas, see if they are custom functions. If so, check them
|
|
194
|
-
|
|
195
|
-
for lambda_func in self.lambdas:
|
|
196
|
-
if lambda_func.value in custom_function_definitions:
|
|
197
|
-
custom_functions_to_check.add(
|
|
198
|
-
ParsedCustomFunction(
|
|
199
|
-
name=lambda_func.value, num_input_args=lambda_func.num_input_args()
|
|
200
|
-
)
|
|
201
|
-
)
|
|
202
|
-
|
|
203
|
-
for custom_function in custom_functions_to_check:
|
|
208
|
+
for custom_function in self._custom_function_dependencies(custom_function_definitions):
|
|
204
209
|
if custom_function_definitions[custom_function.name].contains(
|
|
205
210
|
variables=variables, custom_function_definitions=custom_function_definitions
|
|
206
211
|
):
|
|
@@ -241,6 +241,11 @@ def _validate_formatter(
|
|
|
241
241
|
variable_names = {var.name for var in parsed.variables}
|
|
242
242
|
custom_function_names = {f"%{func.name}" for func in parsed.custom_functions}
|
|
243
243
|
|
|
244
|
+
# Add lambda functions to custom function names, if it's custom
|
|
245
|
+
for lambda_func in parsed.lambdas:
|
|
246
|
+
if lambda_func in mock_script.function_names:
|
|
247
|
+
custom_function_names.add(lambda_func.value)
|
|
248
|
+
|
|
244
249
|
if not variable_names.issubset(mock_script.variable_names):
|
|
245
250
|
raise StringFormattingVariableNotFoundException(
|
|
246
251
|
"contains the following variables that do not exist: "
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
__pypi_version__ = "2025.12.31.post1";__local_version__ = "2025.12.31+d373935"
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/output_transaction_log.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/parsers/__init__.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/cli/parsers/cli_to_sub.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/config_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/__init__.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/plugin.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/plugin_mapping.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/plugin/preset_plugins.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/preset_options.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/validators/__init__.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/config/validators/options.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/source_plugin.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/url/__init__.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/url/downloader.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/downloaders/url/validators.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/entry_parent.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/script/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/entries/variables/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/audio_extract.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/embed_thumbnail.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/file_convert.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/filter_exclude.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/filter_include.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/internal/__init__.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/internal/view.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/match_filters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/split_by_chapters.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/square_thumbnail.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/static_nfo_tags.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/plugins/throttle_protection.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/prebuilt_presets/__init__.py
RENAMED
|
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
|
|
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
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/functions/__init__.py
RENAMED
|
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
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/script_output.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/function.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/resolvable.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/syntax_tree.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/types/variable.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/exceptions.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/name_validation.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/script/utils/type_checking.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/subscriptions/subscription.py
RENAMED
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/nfo_validators.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/regex_validator.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/string_datetime.py
RENAMED
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/validators/validators.py
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub/ytdl_additions/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
{ytdl_sub-2025.12.31.post1 → ytdl_sub-2025.12.31.post2}/src/ytdl_sub.egg-info/entry_points.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|