|
|
|
@ -2235,7 +2235,7 @@ def _htmlentity_transform(entity_with_semicolon):
|
|
|
|
|
def unescapeHTML(s):
|
|
|
|
|
if s is None:
|
|
|
|
|
return None
|
|
|
|
|
assert type(s) == compat_str
|
|
|
|
|
assert isinstance(s, compat_str)
|
|
|
|
|
|
|
|
|
|
return re.sub(
|
|
|
|
|
r'&([^&;]+;)', lambda m: _htmlentity_transform(m.group(1)), s)
|
|
|
|
@ -3418,7 +3418,7 @@ def _windows_write_string(s, out):
|
|
|
|
|
def write_string(s, out=None, encoding=None):
|
|
|
|
|
if out is None:
|
|
|
|
|
out = sys.stderr
|
|
|
|
|
assert type(s) == compat_str
|
|
|
|
|
assert isinstance(s, compat_str)
|
|
|
|
|
|
|
|
|
|
if sys.platform == 'win32' and encoding is None and hasattr(out, 'fileno'):
|
|
|
|
|
if _windows_write_string(s, out):
|
|
|
|
@ -4459,8 +4459,10 @@ TV_PARENTAL_GUIDELINES = {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def parse_age_limit(s):
|
|
|
|
|
if type(s) == int:
|
|
|
|
|
return s if 0 <= s <= 21 else None
|
|
|
|
|
if not isinstance(s, bool):
|
|
|
|
|
age = int_or_none(s)
|
|
|
|
|
if age is not None:
|
|
|
|
|
return age if 0 <= age <= 21 else None
|
|
|
|
|
if not isinstance(s, compat_basestring):
|
|
|
|
|
return None
|
|
|
|
|
m = re.match(r'^(?P<age>\d{1,2})\+?$', s)
|
|
|
|
|