Reformat using black
This commit is contained in:
parent
efee4ad081
commit
a87fb49918
221 changed files with 19127 additions and 7310 deletions
|
@ -1,15 +1,17 @@
|
|||
import requests
|
||||
from ua_parser import user_agent_parser
|
||||
|
||||
_SUPPORT_DATA = requests.get('https://raw.githubusercontent.com/Fyrd/caniuse/master/data.json').json()['data']
|
||||
_SUPPORT_DATA = requests.get(
|
||||
"https://raw.githubusercontent.com/Fyrd/caniuse/master/data.json"
|
||||
).json()["data"]
|
||||
|
||||
SUPPORT = 'y'
|
||||
PARTIAL_SUPPORT = 'a'
|
||||
UNSUPPORTED = 'n'
|
||||
POLYFILL = 'p'
|
||||
UNKNOWN = 'u'
|
||||
PREFIX = 'x'
|
||||
DISABLED = 'd'
|
||||
SUPPORT = "y"
|
||||
PARTIAL_SUPPORT = "a"
|
||||
UNSUPPORTED = "n"
|
||||
POLYFILL = "p"
|
||||
UNKNOWN = "u"
|
||||
PREFIX = "x"
|
||||
DISABLED = "d"
|
||||
|
||||
|
||||
def safe_int(string):
|
||||
|
@ -28,19 +30,19 @@ class BrowserFamily(object):
|
|||
max_support = UNKNOWN
|
||||
|
||||
for version, support in data.items():
|
||||
if version == 'all':
|
||||
if version == "all":
|
||||
self.max_support = support
|
||||
elif '-' in version:
|
||||
start, end = version.split('-')
|
||||
start = tuple(map(int, start.split('.')))
|
||||
end = tuple(map(int, end.split('.'))) + (1e3000,)
|
||||
elif "-" in version:
|
||||
start, end = version.split("-")
|
||||
start = tuple(map(int, start.split(".")))
|
||||
end = tuple(map(int, end.split("."))) + (1e3000,)
|
||||
ranges.append((start, end, support))
|
||||
if end > max_version:
|
||||
max_version = end
|
||||
max_support = support
|
||||
else:
|
||||
try:
|
||||
version = tuple(map(int, version.split('.')))
|
||||
version = tuple(map(int, version.split(".")))
|
||||
except ValueError:
|
||||
pass
|
||||
else:
|
||||
|
@ -59,7 +61,12 @@ class BrowserFamily(object):
|
|||
if version > self.max_version:
|
||||
return self.max_support
|
||||
|
||||
for key in ((int_major, int_minor, int_patch), (int_major, int_minor), (int_major,), major):
|
||||
for key in (
|
||||
(int_major, int_minor, int_patch),
|
||||
(int_major, int_minor),
|
||||
(int_major,),
|
||||
major,
|
||||
):
|
||||
try:
|
||||
return self._versions[key]
|
||||
except KeyError:
|
||||
|
@ -75,7 +82,9 @@ class BrowserFamily(object):
|
|||
class Feat(object):
|
||||
def __init__(self, data):
|
||||
self._data = data
|
||||
self._family = {name: BrowserFamily(data) for name, data in data['stats'].items()}
|
||||
self._family = {
|
||||
name: BrowserFamily(data) for name, data in data["stats"].items()
|
||||
}
|
||||
|
||||
def __getitem__(self, item):
|
||||
return self._family[item]
|
||||
|
@ -97,31 +106,31 @@ class CanIUse(object):
|
|||
def __init__(self, ua):
|
||||
self._agent = user_agent_parser.Parse(ua)
|
||||
|
||||
os_family = self._agent['os']['family']
|
||||
browser_family = self._agent['user_agent']['family']
|
||||
os_family = self._agent["os"]["family"]
|
||||
browser_family = self._agent["user_agent"]["family"]
|
||||
|
||||
family = None
|
||||
|
||||
if os_family == 'Android':
|
||||
if 'Firefox' in browser_family:
|
||||
family = 'and_ff'
|
||||
elif 'Chrome' in browser_family:
|
||||
family = 'and_chr'
|
||||
elif 'Android' in browser_family:
|
||||
family = 'android'
|
||||
if os_family == "Android":
|
||||
if "Firefox" in browser_family:
|
||||
family = "and_ff"
|
||||
elif "Chrome" in browser_family:
|
||||
family = "and_chr"
|
||||
elif "Android" in browser_family:
|
||||
family = "android"
|
||||
else:
|
||||
if 'Edge' in browser_family:
|
||||
family = 'edge'
|
||||
elif 'Firefox' in browser_family:
|
||||
family = 'firefox'
|
||||
elif 'Chrome' in browser_family:
|
||||
family = 'chrome'
|
||||
elif 'IE' in browser_family:
|
||||
family = 'ie'
|
||||
elif 'Opera' in browser_family:
|
||||
family = 'opera'
|
||||
elif 'Safari' in browser_family:
|
||||
family = 'safari'
|
||||
if "Edge" in browser_family:
|
||||
family = "edge"
|
||||
elif "Firefox" in browser_family:
|
||||
family = "firefox"
|
||||
elif "Chrome" in browser_family:
|
||||
family = "chrome"
|
||||
elif "IE" in browser_family:
|
||||
family = "ie"
|
||||
elif "Opera" in browser_family:
|
||||
family = "opera"
|
||||
elif "Safari" in browser_family:
|
||||
family = "safari"
|
||||
|
||||
self._family = family
|
||||
|
||||
|
@ -134,12 +143,12 @@ class CanIUse(object):
|
|||
except KeyError:
|
||||
return UNKNOWN
|
||||
else:
|
||||
ua = self._agent['user_agent']
|
||||
return stats.check(ua['major'], ua['minor'], ua['patch'])[0]
|
||||
ua = self._agent["user_agent"]
|
||||
return stats.check(ua["major"], ua["minor"], ua["patch"])[0]
|
||||
|
||||
def __getattr__(self, attr):
|
||||
try:
|
||||
feat = database[attr.replace('_', '-')]
|
||||
feat = database[attr.replace("_", "-")]
|
||||
except KeyError:
|
||||
raise AttributeError(attr)
|
||||
else:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue