diff options
author | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-04-29 07:18:36 +0530 |
---|---|---|
committer | pukkandan <pukkandan.ytdlp@gmail.com> | 2022-04-29 07:39:33 +0530 |
commit | 1d485a1a799bbeeb2faea0595676ca7d4c0f3716 (patch) | |
tree | 17e1f06c8a4e3a1fa8083c2017812988e6acc8f5 /yt_dlp/compat/compat_utils.py | |
parent | 0a41f331cc3e06007b8d1abe104da196c565b505 (diff) | |
download | hypervideo-pre-1d485a1a799bbeeb2faea0595676ca7d4c0f3716.tar.lz hypervideo-pre-1d485a1a799bbeeb2faea0595676ca7d4c0f3716.tar.xz hypervideo-pre-1d485a1a799bbeeb2faea0595676ca7d4c0f3716.zip |
[cleanup] Misc fixes
Closes #3565, https://github.com/yt-dlp/yt-dlp/issues/3514#issuecomment-1105944364
Diffstat (limited to 'yt_dlp/compat/compat_utils.py')
-rw-r--r-- | yt_dlp/compat/compat_utils.py | 22 |
1 files changed, 19 insertions, 3 deletions
diff --git a/yt_dlp/compat/compat_utils.py b/yt_dlp/compat/compat_utils.py index 938daf926..b1d58f5b9 100644 --- a/yt_dlp/compat/compat_utils.py +++ b/yt_dlp/compat/compat_utils.py @@ -1,9 +1,28 @@ +import collections import contextlib import importlib import sys import types +_NO_ATTRIBUTE = object() + +_Package = collections.namedtuple('Package', ('name', 'version')) + + +def get_package_info(module): + parent = module.__name__.split('.')[0] + parent_module = None + with contextlib.suppress(ImportError): + parent_module = importlib.import_module(parent) + + for attr in ('__version__', 'version_string', 'version'): + version = getattr(parent_module, attr, None) + if version is not None: + break + return _Package(getattr(module, '_yt_dlp__identifier', parent), str(version)) + + def _is_package(module): try: module.__getattribute__('__path__') @@ -12,9 +31,6 @@ def _is_package(module): return True -_NO_ATTRIBUTE = object() - - def passthrough_module(parent, child, *, callback=lambda _: None): parent_module = importlib.import_module(parent) child_module = importlib.import_module(child, parent) |