PyUMSN 1.0.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
pyumsn/vocab.py ADDED
@@ -0,0 +1,949 @@
1
+ """엄슨(UMSN) 어휘 사전.
2
+
3
+ 파이썬 이름/기호 ↔ 엄슨 단어의 1:1(단사) 대응표를 정의한다.
4
+ 모든 엄슨 단어는 한글(+숫자, ``_``)로만 이루어지며, ``엄!``/``엄?`` 처럼
5
+ 느낌표·물음표로 끝나는 단어와 ``..`` 로 시작하는 기호어가 따로 있다.
6
+ """
7
+
8
+ from collections import OrderedDict
9
+
10
+ # ---------------------------------------------------------------------------
11
+ # 1. 예약어 (keyword + soft keyword)
12
+ # ---------------------------------------------------------------------------
13
+ KEYWORDS = OrderedDict([
14
+ ("def", "엄슨하다"),
15
+ ("if", "어엄슨"),
16
+ ("elif", "슨엄어엄슨"),
17
+ ("else", "슨엄"),
18
+ ("return", "엄슨한"),
19
+ ("yield", "슨엄한"),
20
+ ("for", "엄슨마다"),
21
+ ("while", "엄슨동안"),
22
+ ("in", "엄속"),
23
+ ("not", "안엄슨"),
24
+ ("and", "엄그리고"),
25
+ ("or", "엄또는"),
26
+ ("is", "엄이다"),
27
+ ("True", "엄슨참"),
28
+ ("False", "슨엄거짓"),
29
+ ("None", "엄없슨"),
30
+ ("class", "엄슨틀"),
31
+ ("import", "엄슨가져와"),
32
+ ("from", "엄에서"),
33
+ ("as", "엄으로"),
34
+ ("try", "엄시도"),
35
+ ("except", "엄슨예외"),
36
+ ("finally", "엄마침내"),
37
+ ("raise", "엄슨던져"),
38
+ ("with", "엄슨함께"),
39
+ ("lambda", "어엄"),
40
+ ("pass", "엄"),
41
+ ("break", "엄슨멈춰"),
42
+ ("continue", "엄슨계속"),
43
+ ("global", "엄전역"),
44
+ ("nonlocal", "엄비지역"),
45
+ ("del", "엄슨지워"),
46
+ ("assert", "엄슨단언"),
47
+ ("async", "엄비동기"),
48
+ ("await", "엄기다려"),
49
+ ("match", "엄슨맞춰"),
50
+ ("case", "엄경우"),
51
+ ])
52
+
53
+ # ---------------------------------------------------------------------------
54
+ # 2. 내장 함수 / 내장 상수 / 예외
55
+ # ---------------------------------------------------------------------------
56
+ BUILTINS = OrderedDict([
57
+ ("print", "엄!"),
58
+ ("input", "엄?"),
59
+ ("help", "엄도와?"),
60
+ ("abs", "엄절댓값"),
61
+ ("all", "엄모두"),
62
+ ("any", "엄하나라도"),
63
+ ("ascii", "엄아스키"),
64
+ ("bin", "엄이진"),
65
+ ("bool", "엄불"),
66
+ ("breakpoint", "엄중단점"),
67
+ ("bytearray", "엄바이트배열"),
68
+ ("bytes", "엄바이트"),
69
+ ("callable", "엄부를수있나"),
70
+ ("chr", "엄글자"),
71
+ ("classmethod", "엄틀메소드"),
72
+ ("compile", "엄컴파일"),
73
+ ("complex", "엄복소수"),
74
+ ("delattr", "엄속성지워"),
75
+ ("dict", "엄사전"),
76
+ ("dir", "엄목록보기"),
77
+ ("divmod", "엄몫나머지"),
78
+ ("enumerate", "엄번호매겨"),
79
+ ("eval", "엄계산해"),
80
+ ("exec", "엄실행해"),
81
+ ("exit", "엄나가"),
82
+ ("filter", "엄걸러"),
83
+ ("float", "엄실수"),
84
+ ("format", "엄서식"),
85
+ ("frozenset", "엄얼린집합"),
86
+ ("getattr", "엄속성가져와"),
87
+ ("globals", "엄전역들"),
88
+ ("hasattr", "엄속성있나"),
89
+ ("hash", "엄해시"),
90
+ ("hex", "엄십육진"),
91
+ ("id", "엄아이디"),
92
+ ("int", "엄정수"),
93
+ ("isinstance", "엄인스턴스냐"),
94
+ ("issubclass", "엄하위틀이냐"),
95
+ ("iter", "엄반복자"),
96
+ ("len", "엄길이"),
97
+ ("list", "엄목록"),
98
+ ("locals", "엄지역들"),
99
+ ("map", "엄맵"),
100
+ ("max", "엄최대"),
101
+ ("memoryview", "엄메모리뷰"),
102
+ ("min", "엄최소"),
103
+ ("next", "엄다음"),
104
+ ("object", "엄객체"),
105
+ ("oct", "엄팔진"),
106
+ ("open", "엄열어"),
107
+ ("ord", "엄코드"),
108
+ ("pow", "엄거듭제곱"),
109
+ ("property", "엄속성"),
110
+ ("quit", "엄그만"),
111
+ ("range", "엄범위"),
112
+ ("repr", "엄표현"),
113
+ ("reversed", "엄뒤집어"),
114
+ ("round", "엄반올림"),
115
+ ("set", "엄집합"),
116
+ ("setattr", "엄속성설정"),
117
+ ("slice", "엄자르기"),
118
+ ("sorted", "엄정렬된"),
119
+ ("staticmethod", "엄정적메소드"),
120
+ ("str", "엄문자열"),
121
+ ("sum", "엄합"),
122
+ ("super", "엄부모"),
123
+ ("tuple", "엄튜플"),
124
+ ("type", "엄타입"),
125
+ ("vars", "엄변수들"),
126
+ ("zip", "엄묶어"),
127
+ ("__import__", "__엄가져와__"),
128
+ ("NotImplemented", "엄미구현"),
129
+ ("Ellipsis", "엄생략"),
130
+ # 예외
131
+ ("BaseException", "엄기본예외"),
132
+ ("Exception", "엄예외"),
133
+ ("ArithmeticError", "엄산술오류"),
134
+ ("AssertionError", "엄단언오류"),
135
+ ("AttributeError", "엄속성오류"),
136
+ ("ConnectionError", "엄연결오류"),
137
+ ("EOFError", "엄입력끝오류"),
138
+ ("FileExistsError", "엄파일있음오류"),
139
+ ("FileNotFoundError", "엄파일없음오류"),
140
+ ("GeneratorExit", "엄생성기끝"),
141
+ ("ImportError", "엄가져오기오류"),
142
+ ("IndentationError", "엄들여쓰기오류"),
143
+ ("IndexError", "엄인덱스오류"),
144
+ ("KeyError", "엄키오류"),
145
+ ("KeyboardInterrupt", "엄키보드중단"),
146
+ ("LookupError", "엄찾기오류"),
147
+ ("MemoryError", "엄메모리오류"),
148
+ ("ModuleNotFoundError", "엄모듈없음오류"),
149
+ ("NameError", "엄이름오류"),
150
+ ("NotImplementedError", "엄미구현오류"),
151
+ ("OSError", "엄운영체제오류"),
152
+ ("OverflowError", "엄넘침오류"),
153
+ ("PermissionError", "엄권한오류"),
154
+ ("RecursionError", "엄재귀오류"),
155
+ ("RuntimeError", "엄실행오류"),
156
+ ("StopIteration", "엄반복끝"),
157
+ ("SyntaxError", "엄문법오류"),
158
+ ("SystemExit", "엄시스템종료"),
159
+ ("TimeoutError", "엄시간초과오류"),
160
+ ("TypeError", "엄타입오류"),
161
+ ("UnicodeDecodeError", "엄유니코드해독오류"),
162
+ ("UnicodeEncodeError", "엄유니코드인코딩오류"),
163
+ ("UnicodeError", "엄유니코드오류"),
164
+ ("ValueError", "엄값오류"),
165
+ ("ZeroDivisionError", "엄영나누기오류"),
166
+ ("Warning", "엄경고"),
167
+ ("UserWarning", "엄사용자경고"),
168
+ ("DeprecationWarning", "엄폐기경고"),
169
+ ])
170
+
171
+ # ---------------------------------------------------------------------------
172
+ # 3. 관례 이름 / 특수(던더) 이름
173
+ # ---------------------------------------------------------------------------
174
+ SPECIAL_NAMES = OrderedDict([
175
+ ("self", "엄슨"),
176
+ ("cls", "엄틀자신"),
177
+ ("args", "엄인자들"),
178
+ ("kwargs", "엄키워드인자들"),
179
+ ("__init__", "__엄슨시작__"),
180
+ ("__new__", "__엄새로__"),
181
+ ("__del__", "__엄소멸__"),
182
+ ("__name__", "__엄이름__"),
183
+ ("__main__", "__엄메인__"),
184
+ ("__file__", "__엄파일__"),
185
+ ("__doc__", "__엄설명__"),
186
+ ("__dict__", "__엄사전__"),
187
+ ("__class__", "__엄틀__"),
188
+ ("__all__", "__엄모두__"),
189
+ ("__str__", "__엄문자열__"),
190
+ ("__repr__", "__엄표현__"),
191
+ ("__len__", "__엄길이__"),
192
+ ("__eq__", "__엄같나__"),
193
+ ("__ne__", "__엄다르나__"),
194
+ ("__lt__", "__엄작나__"),
195
+ ("__le__", "__엄작같나__"),
196
+ ("__gt__", "__엄크나__"),
197
+ ("__ge__", "__엄크같나__"),
198
+ ("__hash__", "__엄해시__"),
199
+ ("__bool__", "__엄불__"),
200
+ ("__add__", "__엄더하기__"),
201
+ ("__sub__", "__엄빼기__"),
202
+ ("__mul__", "__엄곱하기__"),
203
+ ("__truediv__", "__엄나누기__"),
204
+ ("__iter__", "__엄반복자__"),
205
+ ("__next__", "__엄다음__"),
206
+ ("__enter__", "__엄들어가__"),
207
+ ("__exit__", "__엄나와__"),
208
+ ("__call__", "__엄불러__"),
209
+ ("__getitem__", "__엄항목가져와__"),
210
+ ("__setitem__", "__엄항목설정__"),
211
+ ("__contains__", "__엄포함__"),
212
+ ("__getattr__", "__엄속성가져와__"),
213
+ ("__version__", "__엄버전__"),
214
+ ])
215
+
216
+ # ---------------------------------------------------------------------------
217
+ # 4. 자주 쓰는 메소드 (문자열/목록/사전/집합/파일)
218
+ # ---------------------------------------------------------------------------
219
+ METHODS = OrderedDict([
220
+ # 문자열
221
+ ("upper", "엄대문자"),
222
+ ("lower", "엄소문자"),
223
+ ("strip", "엄다듬어"),
224
+ ("lstrip", "엄왼쪽다듬어"),
225
+ ("rstrip", "엄오른쪽다듬어"),
226
+ ("split", "엄쪼개"),
227
+ ("rsplit", "엄오른쪽쪼개"),
228
+ ("splitlines", "엄줄로쪼개"),
229
+ ("join", "엄이어"),
230
+ ("replace", "엄바꿔"),
231
+ ("startswith", "엄로시작하나"),
232
+ ("endswith", "엄로끝나나"),
233
+ ("find", "엄찾아"),
234
+ ("rfind", "엄뒤에서찾아"),
235
+ ("count", "엄세어"),
236
+ ("index", "엄위치"),
237
+ ("isdigit", "엄숫자냐"),
238
+ ("isalpha", "엄글자냐"),
239
+ ("isspace", "엄공백이냐"),
240
+ ("isupper", "엄대문자냐"),
241
+ ("islower", "엄소문자냐"),
242
+ ("encode", "엄인코딩"),
243
+ ("decode", "엄디코딩"),
244
+ ("title", "엄제목"),
245
+ ("capitalize", "엄첫대문자"),
246
+ ("center", "엄가운데"),
247
+ ("ljust", "엄왼쪽맞춤"),
248
+ ("rjust", "엄오른쪽맞춤"),
249
+ ("zfill", "엄영채워"),
250
+ # 목록
251
+ ("append", "엄붙여"),
252
+ ("extend", "엄늘려"),
253
+ ("insert", "엄끼워"),
254
+ ("remove", "엄빼"),
255
+ ("pop", "엄꺼내"),
256
+ ("clear", "엄비워"),
257
+ ("sort", "엄정렬"),
258
+ ("reverse", "엄뒤집기"),
259
+ ("copy", "엄복사"),
260
+ # 사전
261
+ ("keys", "엄키들"),
262
+ ("values", "엄값들"),
263
+ ("items", "엄항목들"),
264
+ ("get", "엄얻어"),
265
+ ("update", "엄갱신"),
266
+ ("setdefault", "엄기본설정"),
267
+ ("fromkeys", "엄키로부터"),
268
+ # 집합
269
+ ("add", "엄추가"),
270
+ ("discard", "엄버려"),
271
+ ("union", "엄합집합"),
272
+ ("intersection", "엄교집합"),
273
+ ("difference", "엄차집합"),
274
+ ("issubset", "엄부분집합이냐"),
275
+ # 파일
276
+ ("read", "엄읽어"),
277
+ ("readline", "엄한줄읽어"),
278
+ ("readlines", "엄줄들읽어"),
279
+ ("write", "엄써"),
280
+ ("writelines", "엄줄들써"),
281
+ ("close", "엄닫아"),
282
+ ("flush", "엄비워내"),
283
+ ("seek", "엄위치로"),
284
+ # 공통 인자
285
+ ("key", "엄열쇠"),
286
+ ("default", "엄기본값"),
287
+ ("encoding", "엄인코딩방식"),
288
+ ("errors", "엄오류처리"),
289
+ ("sep", "엄구분자"),
290
+ ("end", "엄끝문자"),
291
+ ("file", "엄출력파일"),
292
+ ("mode", "엄모드"),
293
+ ("name", "엄이름"),
294
+ ("start", "엄시작"),
295
+ ("stop", "엄정지"),
296
+ ("step", "엄간격"),
297
+ ("data", "엄자료"),
298
+ ])
299
+
300
+ # ---------------------------------------------------------------------------
301
+ # 5. 라이브러리 (모듈 이름 = "라이브러리 + 엄슨")
302
+ # ---------------------------------------------------------------------------
303
+ LIBRARY_GROUPS = OrderedDict()
304
+
305
+ LIBRARY_GROUPS["표준 라이브러리 모듈"] = OrderedDict([
306
+ ("math", "수학엄슨"),
307
+ ("random", "랜덤엄슨"),
308
+ ("os", "운영체제엄슨"),
309
+ ("sys", "시스템엄슨"),
310
+ ("time", "시간엄슨"),
311
+ ("datetime", "날짜시간엄슨"),
312
+ ("json", "제이슨엄슨"),
313
+ ("re", "정규식엄슨"),
314
+ ("turtle", "거북엄슨"),
315
+ ("subprocess", "하위프로세스엄슨"),
316
+ ("threading", "스레딩엄슨"),
317
+ ("queue", "큐엄슨"),
318
+ ("pathlib", "경로립엄슨"),
319
+ ("collections", "컬렉션엄슨"),
320
+ ("itertools", "반복도구엄슨"),
321
+ ("functools", "함수도구엄슨"),
322
+ ("csv", "씨에스브이엄슨"),
323
+ ("statistics", "통계엄슨"),
324
+ ("shutil", "셸유틸엄슨"),
325
+ ("tempfile", "임시파일엄슨"),
326
+ ("dataclasses", "데이터클래스들엄슨"),
327
+ ("typing", "타이핑엄슨"),
328
+ ("string", "문자열모듈엄슨"),
329
+ ("platform", "플랫폼엄슨"),
330
+ ("pyumsn", "파이엄슨"),
331
+ ("codecs", "코덱엄슨"),
332
+ ])
333
+
334
+ LIBRARY_GROUPS["표준 라이브러리 함수·객체"] = OrderedDict([
335
+ # math
336
+ ("sqrt", "제곱근엄슨"),
337
+ ("pi", "파이값엄슨"),
338
+ ("floor", "내림엄슨"),
339
+ ("ceil", "올림엄슨"),
340
+ ("sin", "사인엄슨"),
341
+ ("cos", "코사인엄슨"),
342
+ ("tan", "탄젠트엄슨"),
343
+ ("log", "로그엄슨"),
344
+ ("exp", "지수엄슨"),
345
+ ("factorial", "팩토리얼엄슨"),
346
+ ("gcd", "최대공약수엄슨"),
347
+ ("inf", "무한엄슨"),
348
+ # random
349
+ ("randint", "랜덤정수엄슨"),
350
+ ("choice", "골라엄슨"),
351
+ ("shuffle", "섞어엄슨"),
352
+ ("uniform", "균등값엄슨"),
353
+ ("seed", "씨앗엄슨"),
354
+ ("sample", "표본엄슨"),
355
+ # os / sys / pathlib
356
+ ("path", "경로엄슨"),
357
+ ("Path", "경로객체엄슨"),
358
+ ("listdir", "목록보기엄슨"),
359
+ ("getcwd", "현재폴더엄슨"),
360
+ ("mkdir", "폴더만들어엄슨"),
361
+ ("makedirs", "폴더들만들어엄슨"),
362
+ ("exists", "존재하나엄슨"),
363
+ ("isfile", "파일이냐엄슨"),
364
+ ("isdir", "폴더냐엄슨"),
365
+ ("basename", "기본이름엄슨"),
366
+ ("dirname", "폴더이름엄슨"),
367
+ ("abspath", "절대경로엄슨"),
368
+ ("expanduser", "사용자경로엄슨"),
369
+ ("splitext", "확장자분리엄슨"),
370
+ ("gettempdir", "임시폴더엄슨"),
371
+ ("getincrementaldecoder", "점진디코더엄슨"),
372
+ ("cwd", "작업폴더엄슨"),
373
+ ("env", "환경엄슨"),
374
+ ("environ", "환경변수엄슨"),
375
+ ("argv", "인자목록엄슨"),
376
+ ("stdout", "표준출력엄슨"),
377
+ ("stderr", "표준오류엄슨"),
378
+ ("stdin", "표준입력엄슨"),
379
+ ("executable", "실행파일엄슨"),
380
+ ("version", "버전엄슨"),
381
+ ("home", "집폴더엄슨"),
382
+ ("suffix", "확장자엄슨"),
383
+ ("parent", "부모엄슨"),
384
+ ("read_text", "글읽어엄슨"),
385
+ ("write_text", "글써엄슨"),
386
+ # time / datetime
387
+ ("sleep", "잠자엄슨"),
388
+ ("strftime", "시간서식엄슨"),
389
+ ("now", "지금엄슨"),
390
+ ("today", "오늘엄슨"),
391
+ ("date", "날짜엄슨"),
392
+ ("timedelta", "시간차엄슨"),
393
+ # json
394
+ ("loads", "문자열로드엄슨"),
395
+ ("dumps", "문자열덤프엄슨"),
396
+ ("load", "불러와엄슨"),
397
+ ("dump", "덤프엄슨"),
398
+ ("indent", "들여쓰기엄슨"),
399
+ ("ensure_ascii", "아스키보장엄슨"),
400
+ # re
401
+ ("search", "검색엄슨"),
402
+ ("findall", "모두찾아엄슨"),
403
+ ("finditer", "반복찾아엄슨"),
404
+ ("sub", "치환엄슨"),
405
+ ("group", "그룹엄슨"),
406
+ # subprocess / threading / queue
407
+ ("Popen", "프로세스열어엄슨"),
408
+ ("run", "실행엄슨"),
409
+ ("PIPE", "파이프엄슨"),
410
+ ("kill", "죽여엄슨"),
411
+ ("terminate", "종료엄슨"),
412
+ ("wait", "기다려엄슨"),
413
+ ("poll", "확인엄슨"),
414
+ ("returncode", "반환코드엄슨"),
415
+ ("Thread", "스레드엄슨"),
416
+ ("target", "대상엄슨"),
417
+ ("daemon", "데몬엄슨"),
418
+ ("Queue", "대기열엄슨"),
419
+ ("Empty", "비었음엄슨"),
420
+ ("put", "넣어엄슨"),
421
+ ("get_nowait", "바로얻어엄슨"),
422
+ # collections / dataclasses
423
+ ("Counter", "세는사전엄슨"),
424
+ ("defaultdict", "기본값사전엄슨"),
425
+ ("deque", "덱엄슨"),
426
+ ("namedtuple", "이름튜플엄슨"),
427
+ ("dataclass", "데이터클래스엄슨"),
428
+ # turtle
429
+ ("Turtle", "거북이엄슨"),
430
+ ("Screen", "화면엄슨"),
431
+ ("forward", "앞으로엄슨"),
432
+ ("backward", "뒤로엄슨"),
433
+ ("left", "왼쪽돌아엄슨"),
434
+ ("right", "오른쪽돌아엄슨"),
435
+ ("penup", "펜들어엄슨"),
436
+ ("pendown", "펜내려엄슨"),
437
+ ("goto", "가엄슨"),
438
+ ("circle", "원엄슨"),
439
+ ("speed", "속도엄슨"),
440
+ ("done", "끝났다엄슨"),
441
+ ("pensize", "펜굵기엄슨"),
442
+ ("pencolor", "펜색엄슨"),
443
+ ("fillcolor", "채울색엄슨"),
444
+ ("begin_fill", "채우기시작엄슨"),
445
+ ("end_fill", "채우기끝엄슨"),
446
+ ("hideturtle", "거북숨겨엄슨"),
447
+ ])
448
+
449
+ LIBRARY_GROUPS["Tkinter (티킨터엄슨)"] = OrderedDict([
450
+ ("tkinter", "티킨터엄슨"),
451
+ ("tk", "티엄"),
452
+ ("ttk", "티티케이엄슨"),
453
+ ("messagebox", "메시지박스엄슨"),
454
+ ("filedialog", "파일대화상자엄슨"),
455
+ ("simpledialog", "간단대화상자엄슨"),
456
+ ("scrolledtext", "스크롤글상자엄슨"),
457
+ ("font", "글꼴엄슨"),
458
+ ("Tk", "창엄슨"),
459
+ ("Toplevel", "새창엄슨"),
460
+ ("Frame", "틀상자엄슨"),
461
+ ("Label", "라벨엄슨"),
462
+ ("Button", "버튼엄슨"),
463
+ ("Entry", "입력칸엄슨"),
464
+ ("Text", "글상자엄슨"),
465
+ ("Canvas", "캔버스엄슨"),
466
+ ("Scrollbar", "스크롤바엄슨"),
467
+ ("Listbox", "목록상자엄슨"),
468
+ ("Checkbutton", "체크버튼엄슨"),
469
+ ("Radiobutton", "라디오버튼엄슨"),
470
+ ("Scale", "눈금자엄슨"),
471
+ ("Spinbox", "스핀박스엄슨"),
472
+ ("Menu", "메뉴엄슨"),
473
+ ("PanedWindow", "분할창엄슨"),
474
+ ("LabelFrame", "라벨틀엄슨"),
475
+ ("StringVar", "문자열변수엄슨"),
476
+ ("IntVar", "정수변수엄슨"),
477
+ ("DoubleVar", "실수변수엄슨"),
478
+ ("BooleanVar", "불변수엄슨"),
479
+ ("PhotoImage", "사진엄슨"),
480
+ ("Notebook", "노트북엄슨"),
481
+ ("Treeview", "트리뷰엄슨"),
482
+ ("Combobox", "콤보박스엄슨"),
483
+ ("Progressbar", "진행바엄슨"),
484
+ ("Separator", "구분선엄슨"),
485
+ ("Style", "스타일엄슨"),
486
+ ("Font", "글꼴객체엄슨"),
487
+ ("families", "글꼴목록엄슨"),
488
+ ("mainloop", "엄슨루프"),
489
+ ("pack", "배치엄슨"),
490
+ ("grid", "격자엄슨"),
491
+ ("place", "위치엄슨"),
492
+ ("geometry", "크기엄슨"),
493
+ ("config", "설정엄슨"),
494
+ ("configure", "구성엄슨"),
495
+ ("bind", "연결엄슨"),
496
+ ("bind_all", "모두연결엄슨"),
497
+ ("unbind", "연결끊어엄슨"),
498
+ ("after", "나중에엄슨"),
499
+ ("after_cancel", "나중취소엄슨"),
500
+ ("destroy", "파괴엄슨"),
501
+ ("delete", "삭제엄슨"),
502
+ ("focus_set", "초점엄슨"),
503
+ ("protocol", "프로토콜엄슨"),
504
+ ("resizable", "크기조절엄슨"),
505
+ ("minsize", "최소크기엄슨"),
506
+ ("tag_configure", "태그설정엄슨"),
507
+ ("tag_add", "태그추가엄슨"),
508
+ ("tag_remove", "태그제거엄슨"),
509
+ ("tag_ranges", "태그범위엄슨"),
510
+ ("tag_bind", "태그연결엄슨"),
511
+ ("tag_raise", "태그올려엄슨"),
512
+ ("mark_set", "표시설정엄슨"),
513
+ ("see", "보이게엄슨"),
514
+ ("yview", "세로보기엄슨"),
515
+ ("xview", "가로보기엄슨"),
516
+ ("yscrollcommand", "세로스크롤명령엄슨"),
517
+ ("xscrollcommand", "가로스크롤명령엄슨"),
518
+ ("edit_modified", "수정됨엄슨"),
519
+ ("edit_undo", "실행취소엄슨"),
520
+ ("edit_redo", "다시실행엄슨"),
521
+ ("event_generate", "이벤트발생엄슨"),
522
+ ("selection", "선택엄슨"),
523
+ ("heading", "머리글엄슨"),
524
+ ("column", "열엄슨"),
525
+ ("row", "행엄슨"),
526
+ ("create_line", "선그려엄슨"),
527
+ ("create_rectangle", "사각형그려엄슨"),
528
+ ("create_oval", "타원그려엄슨"),
529
+ ("create_text", "글그려엄슨"),
530
+ ("create_polygon", "다각형그려엄슨"),
531
+ ("coords", "좌표엄슨"),
532
+ ("move", "이동엄슨"),
533
+ ("itemconfig", "항목설정엄슨"),
534
+ ("showinfo", "정보보여엄슨"),
535
+ ("showerror", "오류보여엄슨"),
536
+ ("showwarning", "경고보여엄슨"),
537
+ ("askyesno", "예아니오물어엄슨"),
538
+ ("askyesnocancel", "예아니오취소물어엄슨"),
539
+ ("askopenfilename", "열파일물어엄슨"),
540
+ ("asksaveasfilename", "저장파일물어엄슨"),
541
+ ("askstring", "문자열물어엄슨"),
542
+ ("askinteger", "정수물어엄슨"),
543
+ ("text", "글엄슨"),
544
+ ("command", "명령엄슨"),
545
+ ("width", "너비엄슨"),
546
+ ("height", "높이엄슨"),
547
+ ("bg", "배경엄슨"),
548
+ ("fg", "전경엄슨"),
549
+ ("background", "배경색엄슨"),
550
+ ("foreground", "전경색엄슨"),
551
+ ("padx", "가로여백엄슨"),
552
+ ("pady", "세로여백엄슨"),
553
+ ("side", "쪽엄슨"),
554
+ ("fill", "채우기엄슨"),
555
+ ("expand", "확장엄슨"),
556
+ ("sticky", "붙이기엄슨"),
557
+ ("textvariable", "글변수엄슨"),
558
+ ("relief", "테두리모양엄슨"),
559
+ ("state", "상태엄슨"),
560
+ ("anchor", "기준엄슨"),
561
+ ("justify", "정렬엄슨"),
562
+ ("orient", "방향엄슨"),
563
+ ("variable", "변수엄슨"),
564
+ ("value", "값엄슨"),
565
+ ("label", "이름표엄슨"),
566
+ ("menu", "메뉴판엄슨"),
567
+ ("underline", "밑줄엄슨"),
568
+ ("wrap", "줄바꿈엄슨"),
569
+ ("undo", "되돌리기엄슨"),
570
+ ("insertbackground", "커서색엄슨"),
571
+ ("selectbackground", "선택배경엄슨"),
572
+ ("highlightthickness", "강조두께엄슨"),
573
+ ("highlightbackground", "강조배경엄슨"),
574
+ ("highlightcolor", "강조색엄슨"),
575
+ ("borderwidth", "테두리두께엄슨"),
576
+ ("cursor", "마우스모양엄슨"),
577
+ ("accelerator", "단축키엄슨"),
578
+ ("tearoff", "떼어내기엄슨"),
579
+ ("add_command", "명령추가엄슨"),
580
+ ("add_cascade", "하위메뉴추가엄슨"),
581
+ ("add_separator", "구분선추가엄슨"),
582
+ ("filetypes", "파일종류엄슨"),
583
+ ("initialfile", "처음파일엄슨"),
584
+ ("defaultextension", "기본확장자엄슨"),
585
+ ("widget", "위젯엄슨"),
586
+ ("keysym", "키이름엄슨"),
587
+ ("delta", "변화량엄슨"),
588
+ ("END", "끝엄슨"),
589
+ ("INSERT", "삽입엄슨"),
590
+ ("LEFT", "왼쪽엄슨"),
591
+ ("RIGHT", "오른쪽엄슨"),
592
+ ("TOP", "위엄슨"),
593
+ ("BOTTOM", "아래엄슨"),
594
+ ("BOTH", "양쪽엄슨"),
595
+ ("X", "가로엄슨"),
596
+ ("Y", "세로엄슨"),
597
+ ("N", "북엄슨"),
598
+ ("S", "남엄슨"),
599
+ ("E", "동엄슨"),
600
+ ("W", "서엄슨"),
601
+ ("NORMAL", "보통엄슨"),
602
+ ("DISABLED", "비활성엄슨"),
603
+ ("WORD", "단어엄슨"),
604
+ ("NONE", "없음엄슨"),
605
+ ("HORIZONTAL", "수평엄슨"),
606
+ ("VERTICAL", "수직엄슨"),
607
+ ("SEL", "선택영역엄슨"),
608
+ ("SEL_FIRST", "선택처음엄슨"),
609
+ ("SEL_LAST", "선택마지막엄슨"),
610
+ ("TclError", "티클오류엄슨"),
611
+ ("TkVersion", "티케이버전엄슨"),
612
+ ("edit_separator", "편집구분엄슨"),
613
+ ("edit_reset", "편집초기화엄슨"),
614
+ ("select", "고르기엄슨"),
615
+ ("weight", "굵기엄슨"),
616
+ ("family", "글꼴이름엄슨"),
617
+ ("slant", "기울기엄슨"),
618
+ ("measure", "재기엄슨"),
619
+ ("activebackground", "활성배경엄슨"),
620
+ ("activeforeground", "활성전경엄슨"),
621
+ ("disabledforeground", "비활성전경엄슨"),
622
+ ("selectforeground", "선택전경엄슨"),
623
+ ("cget", "설정값엄슨"),
624
+ ("sashwidth", "경계너비엄슨"),
625
+ ("stretch", "늘이기엄슨"),
626
+ ("forget", "잊어엄슨"),
627
+ ("panes", "칸들엄슨"),
628
+ ("tabs", "탭들엄슨"),
629
+ ("tab", "탭엄슨"),
630
+ ("nametowidget", "이름으로위젯엄슨"),
631
+ ("columnspan", "열합치기엄슨"),
632
+ ("rowspan", "행합치기엄슨"),
633
+ ("grid_rowconfigure", "격자행설정엄슨"),
634
+ ("grid_columnconfigure", "격자열설정엄슨"),
635
+ ("stopindex", "멈출위치엄슨"),
636
+ ("selection_set", "선택설정엄슨"),
637
+ ("selection_clear", "선택해제엄슨"),
638
+ ("curselection", "현재선택엄슨"),
639
+ ("selectmode", "선택방식엄슨"),
640
+ ("get_children", "자식들엄슨"),
641
+ ("item", "항목엄슨"),
642
+ ("dlineinfo", "줄정보엄슨"),
643
+ ("bbox", "경계상자엄슨"),
644
+ ("tag_names", "태그이름들엄슨"),
645
+ ("tag_prevrange", "앞태그범위엄슨"),
646
+ ("tag_lower", "태그내려엄슨"),
647
+ ("tk_popup", "팝업엄슨"),
648
+ ("x_root", "화면가로엄슨"),
649
+ ("y_root", "화면세로엄슨"),
650
+ ("winfo_rootx", "화면가로위치엄슨"),
651
+ ("winfo_rooty", "화면세로위치엄슨"),
652
+ ("winfo_exists", "존재확인엄슨"),
653
+ ("winfo_width", "실제너비엄슨"),
654
+ ("winfo_height", "실제높이엄슨"),
655
+ ("wm_overrideredirect", "테두리없애엄슨"),
656
+ ("transient", "딸린창엄슨"),
657
+ ("lift", "올려엄슨"),
658
+ ("theme_use", "테마사용엄슨"),
659
+ ("trace_add", "추적추가엄슨"),
660
+ ("clipboard_clear", "클립보드비워엄슨"),
661
+ ("clipboard_append", "클립보드추가엄슨"),
662
+ ("fieldbackground", "칸배경엄슨"),
663
+ ("rowheight", "행높이엄슨"),
664
+ ("padding", "안쪽여백엄슨"),
665
+ ("activestyle", "활성모양엄슨"),
666
+ ("exportselection", "선택내보내기엄슨"),
667
+ ("maxundo", "최대되돌리기엄슨"),
668
+ ("autoseparators", "자동구분엄슨"),
669
+ ("minvalue", "최솟값엄슨"),
670
+ ("maxvalue", "최댓값엄슨"),
671
+ ])
672
+
673
+ LIBRARY_GROUPS["NumPy (넘파이엄슨)"] = OrderedDict([
674
+ ("numpy", "넘파이엄슨"),
675
+ ("np", "넘엄"),
676
+ ("array", "배열엄슨"),
677
+ ("ndarray", "엔디배열엄슨"),
678
+ ("zeros", "영배열엄슨"),
679
+ ("ones", "일배열엄슨"),
680
+ ("full", "채운배열엄슨"),
681
+ ("eye", "단위행렬엄슨"),
682
+ ("arange", "범위배열엄슨"),
683
+ ("linspace", "균등배열엄슨"),
684
+ ("reshape", "모양바꿔엄슨"),
685
+ ("shape", "모양엄슨"),
686
+ ("dtype", "자료형엄슨"),
687
+ ("astype", "형변환엄슨"),
688
+ ("tolist", "목록으로엄슨"),
689
+ ("size", "크기값엄슨"),
690
+ ("mean", "평균엄슨"),
691
+ ("median", "중앙값엄슨"),
692
+ ("std", "표준편차엄슨"),
693
+ ("var", "분산엄슨"),
694
+ ("dot", "내적엄슨"),
695
+ ("matmul", "행렬곱엄슨"),
696
+ ("transpose", "전치엄슨"),
697
+ ("concatenate", "이어붙여엄슨"),
698
+ ("argmax", "최대위치엄슨"),
699
+ ("argmin", "최소위치엄슨"),
700
+ ("where", "어디엄슨"),
701
+ ("unique", "고유값엄슨"),
702
+ ("linalg", "선형대수엄슨"),
703
+ ("rand", "랜덤값엄슨"),
704
+ ("randn", "정규랜덤엄슨"),
705
+ ])
706
+
707
+ LIBRARY_GROUPS["Pandas (판다스엄슨)"] = OrderedDict([
708
+ ("pandas", "판다스엄슨"),
709
+ ("pd", "판엄"),
710
+ ("DataFrame", "데이터프레임엄슨"),
711
+ ("Series", "시리즈엄슨"),
712
+ ("read_csv", "씨에스브이읽어엄슨"),
713
+ ("to_csv", "씨에스브이로엄슨"),
714
+ ("read_excel", "엑셀읽어엄슨"),
715
+ ("to_excel", "엑셀로엄슨"),
716
+ ("head", "머리엄슨"),
717
+ ("tail", "꼬리엄슨"),
718
+ ("describe", "요약엄슨"),
719
+ ("info", "정보엄슨"),
720
+ ("groupby", "묶어보기엄슨"),
721
+ ("loc", "위치로엄슨"),
722
+ ("iloc", "번호로엄슨"),
723
+ ("columns", "열들엄슨"),
724
+ ("sort_values", "값정렬엄슨"),
725
+ ("dropna", "결측빼엄슨"),
726
+ ("fillna", "결측채워엄슨"),
727
+ ("isnull", "결측이냐엄슨"),
728
+ ("merge", "병합엄슨"),
729
+ ("concat", "합쳐엄슨"),
730
+ ("apply", "적용엄슨"),
731
+ ("value_counts", "값세어엄슨"),
732
+ ("drop", "떨궈엄슨"),
733
+ ("rename", "이름바꿔엄슨"),
734
+ ("iterrows", "행반복엄슨"),
735
+ ("agg", "집계엄슨"),
736
+ ("axis", "축엄슨"),
737
+ ("index_col", "인덱스열엄슨"),
738
+ ])
739
+
740
+ LIBRARY_GROUPS["Matplotlib (맷플롯립엄슨)"] = OrderedDict([
741
+ ("matplotlib", "맷플롯립엄슨"),
742
+ ("pyplot", "파이플롯엄슨"),
743
+ ("plt", "플엄"),
744
+ ("use", "사용엄슨"),
745
+ ("get_backend", "백엔드확인엄슨"),
746
+ ("rcParams", "설정값들엄슨"),
747
+ ("font_manager", "글꼴관리자엄슨"),
748
+ ("fontManager", "글꼴관리객체엄슨"),
749
+ ("ttflist", "글꼴파일목록엄슨"),
750
+ ("plot", "그려엄슨"),
751
+ ("show", "보여엄슨"),
752
+ ("xlabel", "가로이름엄슨"),
753
+ ("ylabel", "세로이름엄슨"),
754
+ ("legend", "범례엄슨"),
755
+ ("scatter", "산점도엄슨"),
756
+ ("bar", "막대엄슨"),
757
+ ("hist", "히스토그램엄슨"),
758
+ ("pie", "원그래프엄슨"),
759
+ ("figure", "그림엄슨"),
760
+ ("subplot", "작은그림엄슨"),
761
+ ("subplots", "작은그림들엄슨"),
762
+ ("savefig", "그림저장엄슨"),
763
+ ("xlim", "가로범위엄슨"),
764
+ ("ylim", "세로범위엄슨"),
765
+ ("color", "색엄슨"),
766
+ ("linewidth", "선굵기엄슨"),
767
+ ("marker", "표시엄슨"),
768
+ ("alpha", "투명도엄슨"),
769
+ ("figsize", "그림크기엄슨"),
770
+ ("tight_layout", "빽빽배치엄슨"),
771
+ ("set_title", "제목설정엄슨"),
772
+ ("set_xlabel", "가로이름설정엄슨"),
773
+ ("set_ylabel", "세로이름설정엄슨"),
774
+ ])
775
+
776
+ LIBRARY_GROUPS["PyUMSN API (파이엄슨)"] = OrderedDict([
777
+ ("umsn_to_py", "엄슨을파이썬으로"),
778
+ ("py_to_umsn", "파이썬을엄슨으로"),
779
+ ("check_umsn", "엄슨검사"),
780
+ ("tokenize_umsn", "엄슨토큰나눠"),
781
+ ("highlight_spans", "색칠구간엄슨"),
782
+ ("transliterate", "음역엄슨"),
783
+ ("untransliterate", "음역풀어엄슨"),
784
+ ("read_source", "소스읽어엄슨"),
785
+ ("write_source", "소스써엄슨"),
786
+ ("build_command", "실행명령만들어엄슨"),
787
+ ("child_env", "자식환경엄슨"),
788
+ ("all_words", "모든단어엄슨"),
789
+ ("category_of", "분류알아엄슨"),
790
+ ("UmsnError", "엄슨오류"),
791
+ ("UmsnSyntaxError", "엄슨문법오류"),
792
+ ("UmsnEncodingError", "엄슨인코딩오류"),
793
+ ("lineno", "줄번호엄슨"),
794
+ ("col", "칸번호엄슨"),
795
+ ("problems", "문제들엄슨"),
796
+ ("runner", "실행기엄슨"),
797
+ ("vocab", "어휘엄슨"),
798
+ ("make_temp_py", "임시파이썬만들어엄슨"),
799
+ ("remove_quietly", "조용히지워엄슨"),
800
+ ("run_file", "파일실행엄슨"),
801
+ ("install_import_hook", "가져오기고리설치엄슨"),
802
+ ("unbuffered", "버퍼없이엄슨"),
803
+ ("report", "보고엄슨"),
804
+ ("msg", "메시지엄슨"),
805
+ ("filename", "파일이름엄슨"),
806
+ ("source", "소스엄슨"),
807
+ ("kind", "종류엄슨"),
808
+ ("UMSN2PY", "엄슨파이썬표"),
809
+ ("PY2UMSN", "파이썬엄슨표"),
810
+ ("UMSN2SYMBOL", "엄슨기호표"),
811
+ ("SYMBOL2UMSN", "기호엄슨표"),
812
+ ])
813
+
814
+ LIBRARIES = OrderedDict()
815
+ for _group in LIBRARY_GROUPS.values():
816
+ LIBRARIES.update(_group)
817
+
818
+ # ---------------------------------------------------------------------------
819
+ # 6. 기호 (문장부호/연산자) → ``..`` + 한글 기호어
820
+ # ---------------------------------------------------------------------------
821
+ SYMBOL_PREFIX = ".."
822
+
823
+ SYMBOLS = OrderedDict([
824
+ ("()", "하다"),
825
+ ("(", "하"),
826
+ (")", "다"),
827
+ ("[]", "엄슨"),
828
+ ("[", "엄"),
829
+ ("]", "슨"),
830
+ ("{}", "어엄슨"),
831
+ ("{", "어엄"),
832
+ ("}", "어슨"),
833
+ (":", "한"),
834
+ (",", "고"),
835
+ (";", "끝"),
836
+ ("=", "은"),
837
+ ("==", "같슨"),
838
+ ("!=", "다르슨"),
839
+ ("<", "작슨"),
840
+ (">", "크슨"),
841
+ ("<=", "작같슨"),
842
+ (">=", "크같슨"),
843
+ ("+", "더해"),
844
+ ("-", "빼"),
845
+ ("*", "곱해"),
846
+ ("/", "나눠"),
847
+ ("//", "몫"),
848
+ ("%", "나머지"),
849
+ ("**", "제곱"),
850
+ ("@", "행렬곱"),
851
+ ("+=", "더해은"),
852
+ ("-=", "빼은"),
853
+ ("*=", "곱해은"),
854
+ ("/=", "나눠은"),
855
+ ("//=", "몫은"),
856
+ ("%=", "나머지은"),
857
+ ("**=", "제곱은"),
858
+ ("@=", "행렬곱은"),
859
+ ("&", "비트곱"),
860
+ ("|", "비트합"),
861
+ ("^", "비트차"),
862
+ ("~", "비트반전"),
863
+ ("<<", "왼밀어"),
864
+ (">>", "오른밀어"),
865
+ ("&=", "비트곱은"),
866
+ ("|=", "비트합은"),
867
+ ("^=", "비트차은"),
868
+ ("<<=", "왼밀어은"),
869
+ (">>=", "오른밀어은"),
870
+ ("->", "화살"),
871
+ (":=", "바다코끼리"),
872
+ ])
873
+
874
+ # ---------------------------------------------------------------------------
875
+ # 7. 문자열 접두사 (f/r/b/u/t → 형/날/바/유/템, 대문자는 앞에 "대")
876
+ # ---------------------------------------------------------------------------
877
+ STRING_PREFIX_CHARS = OrderedDict([
878
+ ("f", "형"),
879
+ ("r", "날"),
880
+ ("b", "바"),
881
+ ("u", "유"),
882
+ ("t", "템"),
883
+ ])
884
+ UPPER_MARK = "대"
885
+
886
+ # ---------------------------------------------------------------------------
887
+ # 8. 음역 (사전에 없는 영어 이름 ↔ 한글) 예: polyfit → 외_피오르야프이트
888
+ # ---------------------------------------------------------------------------
889
+ TRANSLIT_MARK = "외_"
890
+ TRANSLIT_LETTERS = OrderedDict([
891
+ ("a", "아"), ("b", "브"), ("c", "크"), ("d", "드"), ("e", "에"),
892
+ ("f", "프"), ("g", "그"), ("h", "흐"), ("i", "이"), ("j", "즈"),
893
+ ("k", "키"), ("l", "르"), ("m", "므"), ("n", "느"), ("o", "오"),
894
+ ("p", "피"), ("q", "쿠"), ("r", "러"), ("s", "스"), ("t", "트"),
895
+ ("u", "우"), ("v", "뷔"), ("w", "워"), ("x", "엑"), ("y", "야"),
896
+ ("z", "지"),
897
+ ])
898
+
899
+ # ---------------------------------------------------------------------------
900
+ # 분류 / 역사전
901
+ # ---------------------------------------------------------------------------
902
+ CATEGORIES = OrderedDict([
903
+ ("keyword", ("예약어", KEYWORDS)),
904
+ ("builtin", ("내장 함수·예외", BUILTINS)),
905
+ ("special", ("관례·특수 이름", SPECIAL_NAMES)),
906
+ ("method", ("메소드·인자", METHODS)),
907
+ ("library", ("라이브러리", LIBRARIES)),
908
+ ])
909
+
910
+ PY2UMSN = OrderedDict()
911
+ WORD_CATEGORY = {}
912
+ for _cat, (_title, _table) in CATEGORIES.items():
913
+ for _py, _um in _table.items():
914
+ if _py in PY2UMSN:
915
+ raise RuntimeError("엄슨 어휘 중복(파이썬 이름): %r" % _py)
916
+ PY2UMSN[_py] = _um
917
+ WORD_CATEGORY[_um] = _cat
918
+
919
+ UMSN2PY = OrderedDict()
920
+ for _py, _um in PY2UMSN.items():
921
+ if _um in UMSN2PY:
922
+ raise RuntimeError("엄슨 어휘 중복(엄슨 단어): %r (%r, %r)" % (_um, UMSN2PY[_um], _py))
923
+ UMSN2PY[_um] = _py
924
+
925
+ SYMBOL2UMSN = OrderedDict((py, SYMBOL_PREFIX + um) for py, um in SYMBOLS.items())
926
+ UMSN2SYMBOL = OrderedDict((um, py) for py, um in SYMBOL2UMSN.items())
927
+ if len(UMSN2SYMBOL) != len(SYMBOL2UMSN):
928
+ raise RuntimeError("엄슨 기호어 중복")
929
+ # 최장 일치를 위해 긴 기호어부터
930
+ SYMBOL_WORDS_BY_LENGTH = sorted(UMSN2SYMBOL, key=len, reverse=True)
931
+
932
+ TRANSLIT_REVERSE = {v: k for k, v in TRANSLIT_LETTERS.items()}
933
+ PREFIX_REVERSE = {v: k for k, v in STRING_PREFIX_CHARS.items()}
934
+
935
+
936
+ def all_words():
937
+ """(분류, 엄슨 단어, 파이썬 이름) 목록. IDE 단어장·자동완성용."""
938
+ result = []
939
+ for cat, (title, table) in CATEGORIES.items():
940
+ for py, um in table.items():
941
+ result.append((title, um, py))
942
+ for py, um in SYMBOL2UMSN.items():
943
+ result.append(("기호", um, py))
944
+ return result
945
+
946
+
947
+ def category_of(word):
948
+ """엄슨 단어의 분류 이름(keyword/builtin/special/method/library) 또는 None."""
949
+ return WORD_CATEGORY.get(word)