Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit f7f80bb

Browse files
committed
refactor: wrap_stdio
1 parent cc94aaf commit f7f80bb

File tree

2 files changed

+117
-115
lines changed

2 files changed

+117
-115
lines changed

‎commitizen/wrap_stdio/linux.py‎

Lines changed: 46 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,61 +1,62 @@
1+
import os
12
import sys
23

3-
if sys.platform == "linux": # pragma: no cover
4-
import os
54

6-
# from io import IOBase
5+
class WrapStdinLinux:
6+
def __init__(self):
7+
fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY)
8+
tty = open(fd, "wb+", buffering=0)
9+
self.tty = tty
710

8-
class WrapStdinLinux:
9-
def __init__(self):
10-
fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY)
11-
tty = open(fd, "wb+", buffering=0)
12-
self.tty = tty
11+
def __getattr__(self, key):
12+
if key == "encoding":
13+
return "UTF-8"
14+
return getattr(self.tty, key)
1315

14-
def __getattr__(self, key):
15-
if key == "encoding":
16-
return "UTF-8"
17-
return getattr(self.tty, key)
16+
def __del__(self):
17+
self.tty.close()
1818

19-
def __del__(self):
20-
self.tty.close()
2119

22-
class WrapStdoutLinux:
23-
def __init__(self):
24-
tty = open("/dev/tty", "w")
25-
self.tty = tty
20+
class WrapStdoutLinux:
21+
def __init__(self):
22+
tty = open("/dev/tty", "w")
23+
self.tty = tty
2624

27-
def __getattr__(self, key):
28-
return getattr(self.tty, key)
25+
def __getattr__(self, key):
26+
return getattr(self.tty, key)
2927

30-
def __del__(self):
31-
self.tty.close()
28+
def __del__(self):
29+
self.tty.close()
3230

33-
backup_stdin = None
34-
backup_stdout = None
35-
backup_stderr = None
3631

37-
def _wrap_stdio():
38-
global backup_stdin
39-
backup_stdin = sys.stdin
40-
sys.stdin = WrapStdinLinux()
32+
backup_stdin = None
33+
backup_stdout = None
34+
backup_stderr = None
4135

42-
global backup_stdout
43-
backup_stdout = sys.stdout
44-
sys.stdout = WrapStdoutLinux()
4536

46-
global backup_stderr
47-
backup_stderr = sys.stderr
48-
sys.stderr = WrapStdoutLinux()
37+
def _wrap_stdio():
38+
global backup_stdin
39+
backup_stdin = sys.stdin
40+
sys.stdin = WrapStdinLinux()
4941

50-
def _unwrap_stdio():
51-
global backup_stdin
52-
sys.stdin.close()
53-
sys.stdin = backup_stdin
42+
global backup_stdout
43+
backup_stdout = sys.stdout
44+
sys.stdout = WrapStdoutLinux()
5445

55-
global backup_stdout
56-
sys.stdout.close()
57-
sys.stdout = backup_stdout
46+
global backup_stderr
47+
backup_stderr=sys.stderr
48+
sys.stderr = WrapStdoutLinux()
5849

59-
global backup_stderr
60-
sys.stderr.close()
61-
sys.stderr = backup_stderr
50+
51+
def _unwrap_stdio():
52+
global backup_stdin
53+
sys.stdin.close()
54+
sys.stdin = backup_stdin
55+
56+
global backup_stdout
57+
sys.stdout.close()
58+
sys.stdout = backup_stdout
59+
60+
global backup_stderr
61+
sys.stderr.close()
62+
sys.stderr = backup_stderr

‎commitizen/wrap_stdio/unix.py‎

Lines changed: 71 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -1,72 +1,73 @@
1+
import os
2+
import selectors
13
import sys
4+
from asyncio import (
5+
DefaultEventLoopPolicy,
6+
SelectorEventLoop,
7+
get_event_loop_policy,
8+
set_event_loop_policy,
9+
)
10+
from io import IOBase
211

3-
if sys.platform != "win32" and sys.platform != "linux": # pragma: no cover
4-
import os
5-
import selectors
6-
from asyncio import (
7-
DefaultEventLoopPolicy,
8-
SelectorEventLoop,
9-
get_event_loop_policy,
10-
set_event_loop_policy,
11-
)
12-
from io import IOBase
13-
14-
class WrapStdioUnix:
15-
def __init__(self, stdx: IOBase):
16-
self._fileno = stdx.fileno()
17-
fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY)
18-
if self._fileno == 0:
19-
tty = open(fd, "wb+", buffering=0)
20-
else:
21-
tty = open(fd, "rb+", buffering=0)
22-
self.tty = tty
23-
24-
def __getattr__(self, key):
25-
if key == "encoding":
26-
return "UTF-8"
27-
return getattr(self.tty, key)
28-
29-
def __del__(self):
30-
self.tty.close()
31-
32-
# backup_event_loop = None
33-
backup_event_loop_policy = None
34-
backup_stdin = None
35-
backup_stdout = None
36-
backup_stderr = None
37-
38-
def _wrap_stdio():
39-
global backup_event_loop_policy
40-
backup_event_loop_policy = get_event_loop_policy()
41-
42-
event_loop = DefaultEventLoopPolicy()
43-
event_loop.set_event_loop(SelectorEventLoop(selectors.SelectSelector()))
44-
set_event_loop_policy(event_loop)
45-
46-
global backup_stdin
47-
backup_stdin = sys.stdin
48-
sys.stdin = WrapStdioUnix(sys.stdin)
49-
50-
global backup_stdout
51-
backup_stdout = sys.stdout
52-
sys.stdout = WrapStdioUnix(sys.stdout)
53-
54-
global backup_stderr
55-
backup_stdout = sys.stderr
56-
sys.stderr = WrapStdioUnix(sys.stderr)
57-
58-
def _unwrap_stdio():
59-
global backup_event_loop_policy
60-
set_event_loop_policy(backup_event_loop_policy)
61-
62-
global backup_stdin
63-
sys.stdin.close()
64-
sys.stdin = backup_stdin
65-
66-
global backup_stdout
67-
sys.stdout.close()
68-
sys.stdout = backup_stdout
69-
70-
global backup_stderr
71-
sys.stderr.close()
72-
sys.stderr = backup_stderr
12+
13+
class WrapStdioUnix:
14+
def __init__(self, stdx: IOBase):
15+
self._fileno = stdx.fileno()
16+
fd = os.open("/dev/tty", os.O_RDWR | os.O_NOCTTY)
17+
if self._fileno == 0:
18+
tty = open(fd, "wb+", buffering=0)
19+
else:
20+
tty = open(fd, "rb+", buffering=0)
21+
self.tty = tty
22+
23+
def __getattr__(self, key):
24+
if key == "encoding":
25+
return "UTF-8"
26+
return getattr(self.tty, key)
27+
28+
def __del__(self):
29+
self.tty.close()
30+
31+
32+
backup_event_loop_policy = None
33+
backup_stdin = None
34+
backup_stdout = None
35+
backup_stderr = None
36+
37+
38+
def _wrap_stdio():
39+
global backup_event_loop_policy
40+
backup_event_loop_policy = get_event_loop_policy()
41+
42+
event_loop = DefaultEventLoopPolicy()
43+
event_loop.set_event_loop(SelectorEventLoop(selectors.SelectSelector()))
44+
set_event_loop_policy(event_loop)
45+
46+
global backup_stdin
47+
backup_stdin = sys.stdin
48+
sys.stdin = WrapStdioUnix(sys.stdin)
49+
50+
global backup_stdout
51+
backup_stdout = sys.stdout
52+
sys.stdout = WrapStdioUnix(sys.stdout)
53+
54+
global backup_stderr
55+
backup_stdout = sys.stderr
56+
sys.stderr = WrapStdioUnix(sys.stderr)
57+
58+
59+
def _unwrap_stdio():
60+
global backup_event_loop_policy
61+
set_event_loop_policy(backup_event_loop_policy)
62+
63+
global backup_stdin
64+
sys.stdin.close()
65+
sys.stdin = backup_stdin
66+
67+
global backup_stdout
68+
sys.stdout.close()
69+
sys.stdout = backup_stdout
70+
71+
global backup_stderr
72+
sys.stderr.close()
73+
sys.stderr = backup_stderr

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /