pull/1327/head
parent
7d4b3807d5
commit
bfc0dccb0e
@ -1 +1,2 @@
|
|||||||
from .parser_factory import create_parser
|
from .parser_factory import create_parser
|
||||||
|
from .img_extensions import *
|
||||||
|
@ -1 +0,0 @@
|
|||||||
IMG_EXTENSIONS = ('.png', '.jpg', '.jpeg')
|
|
@ -0,0 +1,50 @@
|
|||||||
|
from copy import deepcopy
|
||||||
|
|
||||||
|
__all__ = ['get_img_extensions', 'is_img_extension', 'set_img_extensions', 'add_img_extensions', 'del_img_extensions']
|
||||||
|
|
||||||
|
|
||||||
|
IMG_EXTENSIONS = ('.png', '.jpg', '.jpeg') # singleton, kept public for bwd compat use
|
||||||
|
_IMG_EXTENSIONS_SET = set(IMG_EXTENSIONS) # set version, private, kept in sync
|
||||||
|
|
||||||
|
|
||||||
|
def _set_extensions(extensions):
|
||||||
|
global IMG_EXTENSIONS
|
||||||
|
global _IMG_EXTENSIONS_SET
|
||||||
|
dedupe = set() # NOTE de-duping tuple while keeping original order
|
||||||
|
IMG_EXTENSIONS = tuple(x for x in extensions if x not in dedupe and not dedupe.add(x))
|
||||||
|
_IMG_EXTENSIONS_SET = set(extensions)
|
||||||
|
|
||||||
|
|
||||||
|
def _valid_extension(x: str):
|
||||||
|
return x and isinstance(x, str) and len(x) >= 2 and x.startswith('.')
|
||||||
|
|
||||||
|
|
||||||
|
def is_img_extension(ext):
|
||||||
|
return ext in _IMG_EXTENSIONS_SET
|
||||||
|
|
||||||
|
|
||||||
|
def get_img_extensions(as_set=False):
|
||||||
|
return deepcopy(_IMG_EXTENSIONS_SET if as_set else IMG_EXTENSIONS)
|
||||||
|
|
||||||
|
|
||||||
|
def set_img_extensions(extensions):
|
||||||
|
assert len(extensions)
|
||||||
|
for x in extensions:
|
||||||
|
assert _valid_extension(x)
|
||||||
|
_set_extensions(extensions)
|
||||||
|
|
||||||
|
|
||||||
|
def add_img_extensions(ext):
|
||||||
|
if not isinstance(ext, (list, tuple, set)):
|
||||||
|
ext = (ext,)
|
||||||
|
for x in ext:
|
||||||
|
assert _valid_extension(x)
|
||||||
|
extensions = IMG_EXTENSIONS + tuple(ext)
|
||||||
|
_set_extensions(extensions)
|
||||||
|
|
||||||
|
|
||||||
|
def del_img_extensions(ext):
|
||||||
|
if not isinstance(ext, (list, tuple, set)):
|
||||||
|
ext = (ext,)
|
||||||
|
extensions = tuple(x for x in IMG_EXTENSIONS if x not in ext)
|
||||||
|
_set_extensions(extensions)
|
Loading…
Reference in new issue