2025-02-07 00:47:33 +01:00
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
"""OS and Python compatibility support."""
|
|
|
|
|
|
|
|
from decimal import Decimal
|
2025-02-07 00:49:46 +01:00
|
|
|
from types import SimpleNamespace
|
2025-02-07 00:47:33 +01:00
|
|
|
import sys
|
|
|
|
|
|
|
|
PY2 = sys.version_info[0] == 2
|
2025-02-07 00:48:37 +01:00
|
|
|
WIN = sys.platform.startswith("win")
|
|
|
|
MAC = sys.platform == "darwin"
|
2025-02-07 00:47:33 +01:00
|
|
|
|
|
|
|
|
|
|
|
if PY2:
|
|
|
|
text_type = unicode
|
|
|
|
binary_type = str
|
|
|
|
long_type = long
|
|
|
|
int_types = (int, long)
|
|
|
|
|
|
|
|
from UserDict import UserDict
|
|
|
|
from backports import csv
|
|
|
|
|
|
|
|
from StringIO import StringIO
|
|
|
|
from itertools import izip_longest as zip_longest
|
|
|
|
else:
|
|
|
|
text_type = str
|
|
|
|
binary_type = bytes
|
|
|
|
long_type = int
|
|
|
|
int_types = (int,)
|
|
|
|
|
|
|
|
from collections import UserDict
|
|
|
|
import csv
|
|
|
|
from io import StringIO
|
|
|
|
from itertools import zip_longest
|
|
|
|
|
|
|
|
|
|
|
|
HAS_PYGMENTS = True
|
|
|
|
try:
|
2025-02-07 00:49:46 +01:00
|
|
|
from pygments.token import Token
|
2025-02-07 00:47:33 +01:00
|
|
|
from pygments.formatters.terminal256 import Terminal256Formatter
|
|
|
|
except ImportError:
|
|
|
|
HAS_PYGMENTS = False
|
|
|
|
Terminal256Formatter = None
|
2025-02-07 00:49:46 +01:00
|
|
|
Token = SimpleNamespace()
|
|
|
|
Token.Output = SimpleNamespace()
|
|
|
|
Token.Output.Header = None
|
|
|
|
Token.Output.OddRow = None
|
|
|
|
Token.Output.EvenRow = None
|
|
|
|
Token.Output.Null = None
|
|
|
|
Token.Output.TableSeparator = None
|
|
|
|
Token.Results = SimpleNamespace()
|
|
|
|
Token.Results.Header = None
|
|
|
|
Token.Results.OddRow = None
|
|
|
|
Token.Results.EvenRow = None
|
|
|
|
|
2025-02-07 00:47:33 +01:00
|
|
|
|
|
|
|
float_types = (float, Decimal)
|