Skip to content

Commit a77a113

Browse files
authored
Merge pull request #8 from gitdev-bash/Error-codes-and-Formating
Error codes and formating
2 parents 9cafc19 + 2ebf6aa commit a77a113

File tree

1 file changed

+46
-29
lines changed

1 file changed

+46
-29
lines changed

piduck.py

+46-29
Original file line numberDiff line numberDiff line change
@@ -2,32 +2,11 @@
22
import argparse
33
from importlib import import_module
44
from time import sleep
5+
import sys
56

6-
last_line = ""
7-
key_layout = "us"
8-
default_delay = 10
9-
string_delay = 1
107

11-
piparser = argparse.ArgumentParser()
12-
piparser.add_argument("-i", "--input", help="File input")
13-
piparser.add_argument(
14-
"-l", "--keyboardlayoutcode", help="Language codes specified by ISO639-1:2002"
15-
)
16-
piparser.add_argument("-d", "--defaultdelay", help="The default delay of execution")
17-
piparser.add_argument(
18-
"-s", "--defaultchardelay", help="The default char delay of execution"
19-
)
20-
piargs = piparser.parse_args()
21-
if piargs.keyboardlayoutcode is not None:
22-
key_layout = piargs.keyboardlayoutcode
23-
if piargs.defaultdelay is not None:
24-
default_delay = piargs.defaultdelay
25-
if piargs.defaultchardelay is not None:
26-
string_delay = piargs.defaultchardelay
27-
try:
28-
keymap = import_module("pd_key_maps.keymap_" + key_layout)
29-
except ModuleNotFoundError:
30-
exit(3)
8+
def eprint(*args, **kwargs):
9+
print(*args, file=sys.stderr, **kwargs)
3110

3211

3312
def string(string):
@@ -51,9 +30,13 @@ def pharse(line, known, deltrue):
5130
elif command[0] == "REM":
5231
return
5332
elif command[0] == "REPEAT":
54-
for i in range(int(command[1])):
55-
pharse(last_line.strip(), [[], []], False)
56-
return # todo
33+
try:
34+
for i in range(int(command[1])):
35+
pharse(last_line.strip(), [[], []], False)
36+
return # todo
37+
except RecursionError:
38+
eprint("You can not repeat the repeat")
39+
exit(4)
5740
elif command[0] == "DEFAULTCHARDELAY":
5841
string_delay = int(command[1])
5942
return
@@ -87,6 +70,7 @@ def pharse(line, known, deltrue):
8770
pharse(keymap.aliasmap[command[0]] + " " + " ".join(command[1:]), known, True)
8871
return
8972
else:
73+
eprint('Could not find "' + command[0] + '"')
9074
exit(2)
9175

9276

@@ -119,12 +103,45 @@ def main():
119103
file1.close()
120104
else:
121105
while True:
122-
line = input()
106+
try:
107+
line = input()
108+
except EOFError:
109+
break
123110
if not line:
124111
break
125112
pharse(line.strip(), [[], []], False)
126113
last_line = line
127114

128115

129-
main()
116+
if __name__ == "__main__":
117+
last_line = ""
118+
key_layout = "us"
119+
default_delay = 10
120+
string_delay = 1
121+
122+
piparser = argparse.ArgumentParser()
123+
piparser.add_argument("-i", "--input", help="File input")
124+
piparser.add_argument(
125+
"-l", "--keyboardlayoutcode", help="Language codes specified by ISO639-1:2002"
126+
)
127+
piparser.add_argument("-d", "--defaultdelay", help="The default delay of execution")
128+
piparser.add_argument(
129+
"-s", "--defaultchardelay", help="The default char delay of execution"
130+
)
131+
piargs = piparser.parse_args()
132+
if piargs.keyboardlayoutcode is not None:
133+
key_layout = piargs.keyboardlayoutcode
134+
if piargs.defaultdelay is not None:
135+
default_delay = piargs.defaultdelay
136+
if piargs.defaultchardelay is not None:
137+
string_delay = piargs.defaultchardelay
138+
try:
139+
keymap = import_module("pd_key_maps.keymap_" + key_layout)
140+
except ModuleNotFoundError:
141+
eprint('Keymap "' + key_layout + '" could not be found')
142+
exit(3)
143+
try:
144+
main()
145+
except KeyboardInterrupt:
146+
pass
130147
exit(0)

0 commit comments

Comments
 (0)