|
| 1 | +import sys |
1 | 2 | from collections import namedtuple
|
2 | 3 |
|
3 | 4 | from ua_parser import user_agent_parser
|
4 | 5 |
|
5 | 6 |
|
| 7 | +PY2 = sys.version_info[0] == 2 |
| 8 | +PY3 = sys.version_info[0] == 3 |
| 9 | + |
| 10 | +if PY3: |
| 11 | + string_types = str |
| 12 | +else: |
| 13 | + string_types = basestring |
| 14 | + |
| 15 | + |
6 | 16 | MOBILE_DEVICE_FAMILIES = (
|
7 | 17 | 'iPhone',
|
8 | 18 | 'iPod',
|
|
19 | 29 | TABLET_DEVICE_FAMILIES = (
|
20 | 30 | 'iPad',
|
21 | 31 | 'BlackBerry Playbook',
|
22 |
| - 'Blackberry Playbook', # Earlier versions of ua-parser returns "Blackberry" (caps) |
| 32 | + 'Blackberry Playbook', # Earlier versions of ua-parser returns "Blackberry" instead of "BlackBerry" |
23 | 33 | 'Kindle',
|
24 | 34 | 'Kindle Fire',
|
25 | 35 | )
|
|
41 | 51 |
|
42 | 52 | def parse_version(major=None, minor=None, patch=None, patch_minor=None):
|
43 | 53 | # Returns version number tuple, attributes will be integer if they're numbers
|
44 |
| - if major is not None and isinstance(major, basestring): |
| 54 | + if major is not None and isinstance(major, string_types): |
45 | 55 | major = int(major) if major.isdigit() else major
|
46 |
| - if minor is not None and isinstance(minor, basestring): |
| 56 | + if minor is not None and isinstance(minor, string_types): |
47 | 57 | minor = int(minor) if minor.isdigit() else minor
|
48 |
| - if patch is not None and isinstance(patch, basestring): |
| 58 | + if patch is not None and isinstance(patch, string_types): |
49 | 59 | patch = int(patch) if patch.isdigit() else patch
|
50 |
| - if patch_minor is not None and isinstance(patch_minor, basestring): |
| 60 | + if patch_minor is not None and isinstance(patch_minor, string_types): |
51 | 61 | patch_minor = int(patch_minor) if patch_minor.isdigit() else patch_minor
|
52 | 62 | if patch_minor:
|
53 | 63 | return (major, minor, patch, patch_minor)
|
|
0 commit comments