PyUMSN 1.0.0__tar.gz → 1.0.1__tar.gz
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-1.0.0 → pyumsn-1.0.1}/PKG-INFO +4 -2
- {pyumsn-1.0.0 → pyumsn-1.0.1}/PyUMSN.egg-info/PKG-INFO +4 -2
- {pyumsn-1.0.0 → pyumsn-1.0.1}/README.md +2 -1
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyproject.toml +1 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/__init__.py +1 -1
- {pyumsn-1.0.0 → pyumsn-1.0.1}/tests/test_translator.py +26 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/LICENSE +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/PyUMSN.egg-info/SOURCES.txt +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/PyUMSN.egg-info/dependency_links.txt +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/PyUMSN.egg-info/entry_points.txt +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/PyUMSN.egg-info/requires.txt +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/PyUMSN.egg-info/top_level.txt +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/__main__.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/cli.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/errors.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/ide/umsn_ide.umsn +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/importer.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/launcher.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/lexer.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/repl.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/runner.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/sourceio.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/translator.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/pyumsn/vocab.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/setup.cfg +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/tests/test_cli.py +0 -0
- {pyumsn-1.0.0 → pyumsn-1.0.1}/tests/test_vocab.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyUMSN
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: 엄슨(UMSN) 프로그래밍 언어 — 엄슨 ↔ 파이썬 변환기, 실행기, UMSN-IDE
|
|
5
5
|
Author: hyjys
|
|
6
6
|
License-Expression: MIT
|
|
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
17
|
Classifier: Natural Language :: Korean
|
|
17
18
|
Classifier: Operating System :: Microsoft :: Windows
|
|
18
19
|
Classifier: Operating System :: POSIX :: Linux
|
|
@@ -76,7 +77,7 @@ print(인사("엄슨"))
|
|
|
76
77
|
| **`pyumsn`** (명령줄) | `run` / `topy` / `toumsn` / `check` / `ide` / `repl` / `words` |
|
|
77
78
|
| **UMSN-IDE** | **엄슨 언어로 작성된** Tkinter IDE ([`pyumsn/ide/umsn_ide.umsn`](pyumsn/ide/umsn_ide.umsn)) |
|
|
78
79
|
|
|
79
|
-
윈도우와 리눅스를 지원합니다 (파이썬 3.11
|
|
80
|
+
윈도우와 리눅스를 지원합니다 (파이썬 3.11 ~ 3.14).
|
|
80
81
|
|
|
81
82
|
## 설치
|
|
82
83
|
|
|
@@ -191,6 +192,7 @@ pyumsn words --markdown # 전체 단어장 (docs/VOCABULARY.md)
|
|
|
191
192
|
| `날"\d+"` | `r"\d+"` |
|
|
192
193
|
| `바"..."` / `유"..."` | `b"..."` / `u"..."` |
|
|
193
194
|
| `형날"..."`, `날바"..."`, `대형"..."` | `fr"..."`, `rb"..."`, `F"..."` |
|
|
195
|
+
| `템"안녕 {이름}"` | `t"안녕 {이름}"` (파이썬 3.14 템플릿 문자열) |
|
|
194
196
|
|
|
195
197
|
### 5. UTF-8 전용
|
|
196
198
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: PyUMSN
|
|
3
|
-
Version: 1.0.
|
|
3
|
+
Version: 1.0.1
|
|
4
4
|
Summary: 엄슨(UMSN) 프로그래밍 언어 — 엄슨 ↔ 파이썬 변환기, 실행기, UMSN-IDE
|
|
5
5
|
Author: hyjys
|
|
6
6
|
License-Expression: MIT
|
|
@@ -13,6 +13,7 @@ Classifier: Programming Language :: Python :: 3 :: Only
|
|
|
13
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
14
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
15
|
Classifier: Programming Language :: Python :: 3.13
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.14
|
|
16
17
|
Classifier: Natural Language :: Korean
|
|
17
18
|
Classifier: Operating System :: Microsoft :: Windows
|
|
18
19
|
Classifier: Operating System :: POSIX :: Linux
|
|
@@ -76,7 +77,7 @@ print(인사("엄슨"))
|
|
|
76
77
|
| **`pyumsn`** (명령줄) | `run` / `topy` / `toumsn` / `check` / `ide` / `repl` / `words` |
|
|
77
78
|
| **UMSN-IDE** | **엄슨 언어로 작성된** Tkinter IDE ([`pyumsn/ide/umsn_ide.umsn`](pyumsn/ide/umsn_ide.umsn)) |
|
|
78
79
|
|
|
79
|
-
윈도우와 리눅스를 지원합니다 (파이썬 3.11
|
|
80
|
+
윈도우와 리눅스를 지원합니다 (파이썬 3.11 ~ 3.14).
|
|
80
81
|
|
|
81
82
|
## 설치
|
|
82
83
|
|
|
@@ -191,6 +192,7 @@ pyumsn words --markdown # 전체 단어장 (docs/VOCABULARY.md)
|
|
|
191
192
|
| `날"\d+"` | `r"\d+"` |
|
|
192
193
|
| `바"..."` / `유"..."` | `b"..."` / `u"..."` |
|
|
193
194
|
| `형날"..."`, `날바"..."`, `대형"..."` | `fr"..."`, `rb"..."`, `F"..."` |
|
|
195
|
+
| `템"안녕 {이름}"` | `t"안녕 {이름}"` (파이썬 3.14 템플릿 문자열) |
|
|
194
196
|
|
|
195
197
|
### 5. UTF-8 전용
|
|
196
198
|
|
|
@@ -42,7 +42,7 @@ print(인사("엄슨"))
|
|
|
42
42
|
| **`pyumsn`** (명령줄) | `run` / `topy` / `toumsn` / `check` / `ide` / `repl` / `words` |
|
|
43
43
|
| **UMSN-IDE** | **엄슨 언어로 작성된** Tkinter IDE ([`pyumsn/ide/umsn_ide.umsn`](pyumsn/ide/umsn_ide.umsn)) |
|
|
44
44
|
|
|
45
|
-
윈도우와 리눅스를 지원합니다 (파이썬 3.11
|
|
45
|
+
윈도우와 리눅스를 지원합니다 (파이썬 3.11 ~ 3.14).
|
|
46
46
|
|
|
47
47
|
## 설치
|
|
48
48
|
|
|
@@ -157,6 +157,7 @@ pyumsn words --markdown # 전체 단어장 (docs/VOCABULARY.md)
|
|
|
157
157
|
| `날"\d+"` | `r"\d+"` |
|
|
158
158
|
| `바"..."` / `유"..."` | `b"..."` / `u"..."` |
|
|
159
159
|
| `형날"..."`, `날바"..."`, `대형"..."` | `fr"..."`, `rb"..."`, `F"..."` |
|
|
160
|
+
| `템"안녕 {이름}"` | `t"안녕 {이름}"` (파이썬 3.14 템플릿 문자열) |
|
|
160
161
|
|
|
161
162
|
### 5. UTF-8 전용
|
|
162
163
|
|
|
@@ -18,6 +18,7 @@ classifiers = [
|
|
|
18
18
|
"Programming Language :: Python :: 3.11",
|
|
19
19
|
"Programming Language :: Python :: 3.12",
|
|
20
20
|
"Programming Language :: Python :: 3.13",
|
|
21
|
+
"Programming Language :: Python :: 3.14",
|
|
21
22
|
"Natural Language :: Korean",
|
|
22
23
|
"Operating System :: Microsoft :: Windows",
|
|
23
24
|
"Operating System :: POSIX :: Linux",
|
|
@@ -49,6 +49,32 @@ def test_fstring_nested_same_quote():
|
|
|
49
49
|
assert back == py
|
|
50
50
|
|
|
51
51
|
|
|
52
|
+
def test_template_string_prefix():
|
|
53
|
+
um, back = roundtrip('x = t"안녕 {name!r:>10} {1 + 2 = }" + rt"{x}" + Tr"a"\n')
|
|
54
|
+
assert '템"안녕 {엄이름!r:>10} {1 + 2 = }"' in um
|
|
55
|
+
assert '날템"{외_엑}"' in um
|
|
56
|
+
assert '대템날"a"' in um
|
|
57
|
+
assert back == 'x = t"안녕 {name!r:>10} {1 + 2 = }" + rt"{x}" + Tr"a"\n'
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
@pytest.mark.skipif(sys.version_info < (3, 14), reason="PEP 750 템플릿 문자열")
|
|
61
|
+
def test_template_string_runs():
|
|
62
|
+
py = umsn_to_py('이름 ..은 "엄슨"\n틀 ..은 템"안녕 {이름}"\n')
|
|
63
|
+
scope = {}
|
|
64
|
+
exec(compile(py, "<템>", "exec"), scope)
|
|
65
|
+
assert type(scope["틀"]).__name__ == "Template"
|
|
66
|
+
assert scope["틀"].values == ("엄슨",)
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
@pytest.mark.skipif(sys.version_info < (3, 14), reason="PEP 758")
|
|
70
|
+
def test_except_without_parentheses():
|
|
71
|
+
py = "try:\n 1 / 0\nexcept ZeroDivisionError, ValueError:\n pass\n"
|
|
72
|
+
um, back = roundtrip(py)
|
|
73
|
+
assert "엄슨예외 엄영나누기오류..고 엄값오류..한" in um
|
|
74
|
+
assert back == py
|
|
75
|
+
compile(back, "<758>", "exec")
|
|
76
|
+
|
|
77
|
+
|
|
52
78
|
def test_string_prefixes():
|
|
53
79
|
um, back = roundtrip("a = rb'\\d' + Rb'x'\nb = F'{1}'\nc = u'x'\n")
|
|
54
80
|
assert "날바'\\d'" in um
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|