Download .venv/Lib/site-packages/ffmpeg/_utils.py from DrDavis/PythonProject1: direct link, hf CLI and curl.
- Browser
- Download file 2.67 kB
-
https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/ffmpeg/_utils.py
- Command line
-
hf download hf://DrDavis/PythonProject1/.venv/Lib/site-packages/ffmpeg/_utils.py
-
curl -L -o _utils.py https://huggingface.co/DrDavis/PythonProject1/resolve/main/.venv/Lib/site-packages/ffmpeg/_utils.py
2.67 kB
| from __future__ import unicode_literals | |
| from builtins import str | |
| from past.builtins import basestring | |
| import hashlib | |
| import sys | |
| if sys.version_info.major == 2: | |
| # noinspection PyUnresolvedReferences,PyShadowingBuiltins | |
| str = str | |
| # `past.builtins.basestring` module can't be imported on Python3 in some environments (Ubuntu). | |
| # This code is copy-pasted from it to avoid crashes. | |
| class BaseBaseString(type): | |
| def __instancecheck__(cls, instance): | |
| return isinstance(instance, (bytes, str)) | |
| def __subclasshook__(cls, thing): | |
| # TODO: What should go here? | |
| raise NotImplemented | |
| def with_metaclass(meta, *bases): | |
| class metaclass(meta): | |
| __call__ = type.__call__ | |
| __init__ = type.__init__ | |
| def __new__(cls, name, this_bases, d): | |
| if this_bases is None: | |
| return type.__new__(cls, name, (), d) | |
| return meta(name, bases, d) | |
| return metaclass('temporary_class', None, {}) | |
| if sys.version_info.major >= 3: | |
| class basestring(with_metaclass(BaseBaseString)): | |
| pass | |
| else: | |
| # noinspection PyUnresolvedReferences,PyCompatibility | |
| from builtins import basestring | |
| def _recursive_repr(item): | |
| """Hack around python `repr` to deterministically represent dictionaries. | |
| This is able to represent more things than json.dumps, since it does not require things to be JSON serializable | |
| (e.g. datetimes). | |
| """ | |
| if isinstance(item, basestring): | |
| result = str(item) | |
| elif isinstance(item, list): | |
| result = '[{}]'.format(', '.join([_recursive_repr(x) for x in item])) | |
| elif isinstance(item, dict): | |
| kv_pairs = [ | |
| '{}: {}'.format(_recursive_repr(k), _recursive_repr(item[k])) | |
| for k in sorted(item) | |
| ] | |
| result = '{' + ', '.join(kv_pairs) + '}' | |
| else: | |
| result = repr(item) | |
| return result | |
| def get_hash(item): | |
| repr_ = _recursive_repr(item).encode('utf-8') | |
| return hashlib.md5(repr_).hexdigest() | |
| def get_hash_int(item): | |
| return int(get_hash(item), base=16) | |
| def escape_chars(text, chars): | |
| """Helper function to escape uncomfortable characters.""" | |
| text = str(text) | |
| chars = list(set(chars)) | |
| if '\\' in chars: | |
| chars.remove('\\') | |
| chars.insert(0, '\\') | |
| for ch in chars: | |
| text = text.replace(ch, '\\' + ch) | |
| return text | |
| def convert_kwargs_to_cmd_line_args(kwargs): | |
| """Helper function to build command line arguments out of dict.""" | |
| args = [] | |
| for k in sorted(kwargs.keys()): | |
| v = kwargs[k] | |
| args.append('-{}'.format(k)) | |
| if v is not None: | |
| args.append('{}'.format(v)) | |
| return args | |