|
@ -1,9 +1,11 @@ |
|
|
from __future__ import unicode_literals |
|
|
from __future__ import unicode_literals |
|
|
|
|
|
|
|
|
|
|
|
import collections |
|
|
import getpass |
|
|
import getpass |
|
|
import optparse |
|
|
import optparse |
|
|
import os |
|
|
import os |
|
|
import re |
|
|
import re |
|
|
|
|
|
import shutil |
|
|
import socket |
|
|
import socket |
|
|
import subprocess |
|
|
import subprocess |
|
|
import sys |
|
|
import sys |
|
@ -364,6 +366,33 @@ def workaround_optparse_bug9161(): |
|
|
return real_add_option(self, *bargs, **bkwargs) |
|
|
return real_add_option(self, *bargs, **bkwargs) |
|
|
optparse.OptionGroup.add_option = _compat_add_option |
|
|
optparse.OptionGroup.add_option = _compat_add_option |
|
|
|
|
|
|
|
|
|
|
|
if hasattr(shutil, 'get_terminal_size'): # Python >= 3.3 |
|
|
|
|
|
compat_get_terminal_size = shutil.get_terminal_size |
|
|
|
|
|
else: |
|
|
|
|
|
_terminal_size = collections.namedtuple('terminal_size', ['columns', 'lines']) |
|
|
|
|
|
|
|
|
|
|
|
def compat_get_terminal_size(): |
|
|
|
|
|
columns = compat_getenv('COLUMNS', None) |
|
|
|
|
|
if columns: |
|
|
|
|
|
columns = int(columns) |
|
|
|
|
|
else: |
|
|
|
|
|
columns = None |
|
|
|
|
|
lines = compat_getenv('LINES', None) |
|
|
|
|
|
if lines: |
|
|
|
|
|
lines = int(lines) |
|
|
|
|
|
else: |
|
|
|
|
|
lines = None |
|
|
|
|
|
|
|
|
|
|
|
try: |
|
|
|
|
|
sp = subprocess.Popen( |
|
|
|
|
|
['stty', 'size'], |
|
|
|
|
|
stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
|
|
|
|
|
out, err = sp.communicate() |
|
|
|
|
|
lines, columns = map(int, out.split()) |
|
|
|
|
|
except: |
|
|
|
|
|
pass |
|
|
|
|
|
return _terminal_size(columns, lines) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
__all__ = [ |
|
|
__all__ = [ |
|
|
'compat_HTTPError', |
|
|
'compat_HTTPError', |
|
@ -371,6 +400,7 @@ __all__ = [ |
|
|
'compat_chr', |
|
|
'compat_chr', |
|
|
'compat_cookiejar', |
|
|
'compat_cookiejar', |
|
|
'compat_expanduser', |
|
|
'compat_expanduser', |
|
|
|
|
|
'compat_get_terminal_size', |
|
|
'compat_getenv', |
|
|
'compat_getenv', |
|
|
'compat_getpass', |
|
|
'compat_getpass', |
|
|
'compat_html_entities', |
|
|
'compat_html_entities', |
|
|