equal
deleted
inserted
replaced
13 |
13 |
14 checks = { |
14 checks = { |
15 "true": (lambda: True, "yak shaving"), |
15 "true": (lambda: True, "yak shaving"), |
16 "false": (lambda: False, "nail clipper"), |
16 "false": (lambda: False, "nail clipper"), |
17 } |
17 } |
|
18 |
|
19 try: |
|
20 import msvcrt |
|
21 msvcrt.setmode(sys.stdout.fileno(), os.O_BINARY) |
|
22 msvcrt.setmode(sys.stderr.fileno(), os.O_BINARY) |
|
23 except ImportError: |
|
24 pass |
|
25 |
|
26 stdout = getattr(sys.stdout, 'buffer', sys.stdout) |
|
27 stderr = getattr(sys.stderr, 'buffer', sys.stderr) |
18 |
28 |
19 if sys.version_info[0] >= 3: |
29 if sys.version_info[0] >= 3: |
20 def _bytespath(p): |
30 def _bytespath(p): |
21 if p is None: |
31 if p is None: |
22 return p |
32 return p |
88 def require(features): |
98 def require(features): |
89 """Require that features are available, exiting if not.""" |
99 """Require that features are available, exiting if not.""" |
90 result = checkfeatures(features) |
100 result = checkfeatures(features) |
91 |
101 |
92 for missing in result['missing']: |
102 for missing in result['missing']: |
93 sys.stderr.write('skipped: unknown feature: %s\n' % missing) |
103 stderr.write(('skipped: unknown feature: %s\n' |
|
104 % missing).encode('utf-8')) |
94 for msg in result['skipped']: |
105 for msg in result['skipped']: |
95 sys.stderr.write('skipped: %s\n' % msg) |
106 stderr.write(('skipped: %s\n' % msg).encode('utf-8')) |
96 for msg in result['error']: |
107 for msg in result['error']: |
97 sys.stderr.write('%s\n' % msg) |
108 stderr.write(('%s\n' % msg).encode('utf-8')) |
98 |
109 |
99 if result['missing']: |
110 if result['missing']: |
100 sys.exit(2) |
111 sys.exit(2) |
101 |
112 |
102 if result['skipped'] or result['error']: |
113 if result['skipped'] or result['error']: |