hanlint 0.0.1
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.
- package/README.md +27 -0
- package/bin/hanlint.js +4 -0
- package/data/causalMarkers.txt +25 -0
- package/data/cliches.json +99 -0
- package/data/confusable.json +76 -0
- package/data/connectors.txt +18 -0
- package/data/countUnits.txt +6 -0
- package/data/coverageTypes.txt +7 -0
- package/data/deixis.txt +8 -0
- package/data/easyWords.json +340 -0
- package/data/emphasisWords.txt +11 -0
- package/data/endings.txt +9 -0
- package/data/euiNouns.txt +40 -0
- package/data/hedges.txt +15 -0
- package/data/hiddenDeps.txt +11 -0
- package/data/holeKinds.json +145 -0
- package/data/japaneseLoan.json +82 -0
- package/data/josa.txt +54 -0
- package/data/koreanNumbers.txt +22 -0
- package/data/passiveStems.txt +53 -0
- package/data/platformApis.txt +12 -0
- package/data/promiseMarkers.txt +7 -0
- package/data/pythonPackages.txt +35 -0
- package/data/pythonStdlib.txt +193 -0
- package/data/readerCalls.txt +14 -0
- package/data/recallMarkers.txt +6 -0
- package/data/redundantPair.json +70 -0
- package/data/ruleDocs.json +44 -0
- package/data/spacing.json +76 -0
- package/data/spelling.json +166 -0
- package/data/stopwords.txt +33 -0
- package/data/translationese.json +104 -0
- package/data/verbTails.txt +56 -0
- package/data/version.json +1 -0
- package/package.json +39 -0
- package/src/analysis/index.js +34 -0
- package/src/analysis/surface/splitSentences.js +36 -0
- package/src/analysis/surface/tokenize.js +162 -0
- package/src/cli/main.js +376 -0
- package/src/config/loadConfig.js +51 -0
- package/src/config/settings.js +80 -0
- package/src/config/toml.js +239 -0
- package/src/data/load.js +63 -0
- package/src/document/model.js +55 -0
- package/src/document/parseMarkdown.js +183 -0
- package/src/document/plainText.js +43 -0
- package/src/edit/applyFixes.js +0 -0
- package/src/fingerprint/build.js +284 -0
- package/src/fingerprint/dictionaries.js +118 -0
- package/src/fingerprint/markers.js +175 -0
- package/src/fingerprint/topics.js +42 -0
- package/src/index.js +68 -0
- package/src/regex.js +47 -0
- package/src/report/compactReport.js +9 -0
- package/src/report/fingerprintJson.js +126 -0
- package/src/report/githubReport.js +13 -0
- package/src/report/jsonReport.js +16 -0
- package/src/report/textReport.js +19 -0
- package/src/rules/code/duplicateBlock.js +48 -0
- package/src/rules/code/firstResultDistance.js +23 -0
- package/src/rules/code/inputFileSource.js +103 -0
- package/src/rules/code/installImport.js +126 -0
- package/src/rules/code/platformApi.js +36 -0
- package/src/rules/document/countMismatch.js +42 -0
- package/src/rules/document/keywordMissing.js +21 -0
- package/src/rules/document/noQuestion.js +11 -0
- package/src/rules/document/promiseRecall.js +12 -0
- package/src/rules/document/readerAbsent.js +11 -0
- package/src/rules/finding.js +53 -0
- package/src/rules/orthography/confusable.js +9 -0
- package/src/rules/orthography/spacing.js +9 -0
- package/src/rules/orthography/spelling.js +9 -0
- package/src/rules/paragraph/factListParagraph.js +27 -0
- package/src/rules/paragraph/paraFragment.js +29 -0
- package/src/rules/paragraph/topicBreak.js +25 -0
- package/src/rules/registry.js +147 -0
- package/src/rules/sentence/cliche.js +9 -0
- package/src/rules/sentence/connectorRepeat.js +23 -0
- package/src/rules/sentence/danglingDeixis.js +19 -0
- package/src/rules/sentence/dash.js +21 -0
- package/src/rules/sentence/deixis.js +19 -0
- package/src/rules/sentence/doubleNegative.js +28 -0
- package/src/rules/sentence/doublePassive.js +17 -0
- package/src/rules/sentence/ellipsis.js +17 -0
- package/src/rules/sentence/endingRepeat.js +25 -0
- package/src/rules/sentence/euiChain.js +18 -0
- package/src/rules/sentence/fillerOpener.js +18 -0
- package/src/rules/sentence/hardWord.js +10 -0
- package/src/rules/sentence/imperativePeriod.js +20 -0
- package/src/rules/sentence/japaneseLoan.js +9 -0
- package/src/rules/sentence/longSentence.js +20 -0
- package/src/rules/sentence/negationRedefine.js +22 -0
- package/src/rules/sentence/nounPile.js +20 -0
- package/src/rules/sentence/redundantPair.js +9 -0
- package/src/rules/sentence/translationese.js +9 -0
- package/src/rules/shared/codeBlocks.js +44 -0
- package/src/rules/shared/dictionaryRule.js +35 -0
- package/src/rules/shared/runs.js +22 -0
- package/src/rules/structure/emojiBullet.js +34 -0
- package/src/rules/structure/headingSentence.js +17 -0
- package/src/rules/structure/headingSkip.js +18 -0
- package/src/rules/structure/headingUniform.js +36 -0
- package/src/rules/structure/introLong.js +20 -0
- package/src/rules/structure/sectionNoProse.js +16 -0
- package/src/rules/structure/sectionResult.js +37 -0
- package/src/text.js +63 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# 의 로 끝나는 두 음절 명사. 뒤에 공백이 와도 관형격 조사가 아니라 euiCount 에서 뺀다.
|
|
2
|
+
# 실측: codeStyle.md 의 `정의 측 (함수 정의, 인자, 대입)` 이 의 2회로 잡혔다.
|
|
3
|
+
정의
|
|
4
|
+
회의
|
|
5
|
+
논의
|
|
6
|
+
문의
|
|
7
|
+
주의
|
|
8
|
+
합의
|
|
9
|
+
협의
|
|
10
|
+
강의
|
|
11
|
+
편의
|
|
12
|
+
예의
|
|
13
|
+
성의
|
|
14
|
+
호의
|
|
15
|
+
결의
|
|
16
|
+
동의
|
|
17
|
+
임의
|
|
18
|
+
유의
|
|
19
|
+
항의
|
|
20
|
+
심의
|
|
21
|
+
토의
|
|
22
|
+
상의
|
|
23
|
+
의의
|
|
24
|
+
이의
|
|
25
|
+
사의
|
|
26
|
+
대의
|
|
27
|
+
신의
|
|
28
|
+
민의
|
|
29
|
+
발의
|
|
30
|
+
건의
|
|
31
|
+
명의
|
|
32
|
+
도의
|
|
33
|
+
부의
|
|
34
|
+
선의
|
|
35
|
+
악의
|
|
36
|
+
고의
|
|
37
|
+
호의
|
|
38
|
+
경의
|
|
39
|
+
품의
|
|
40
|
+
안의
|
package/data/hedges.txt
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# 코드 한 줄이 조용히 요구하는 패키지. `정규식<TAB>패키지[extra]<TAB>왜`. 설치 줄에 없으면 installImport 가 notice 로 짚는다.
|
|
2
|
+
# 실측: 004 가 ibis-framework[duckdb] 만 설치하고 ibis.sqlite.connect 를 썼고 사람 평가자가 집었다.
|
|
3
|
+
ibis\.sqlite\.connect ibis-framework[sqlite] ibis 의 sqlite 백엔드는 extra 로 따로 받는다
|
|
4
|
+
ibis\.duckdb\.connect ibis-framework[duckdb] ibis 의 duckdb 백엔드는 extra 로 따로 받는다
|
|
5
|
+
ibis\.postgres\.connect ibis-framework[postgres] ibis 의 postgres 백엔드는 extra 로 따로 받는다
|
|
6
|
+
dask\.dataframe dask[dataframe] dask 의 dataframe 은 extra 로 따로 받는다
|
|
7
|
+
pd\.read_excel\(|\.to_excel\( openpyxl pandas 의 엑셀 읽기와 쓰기는 openpyxl 이 있어야 돈다
|
|
8
|
+
pd\.read_parquet\(|\.to_parquet\( pyarrow pandas 의 parquet 은 pyarrow 가 있어야 돈다
|
|
9
|
+
pl\.read_excel\( fastexcel polars 의 엑셀 읽기는 fastexcel 이 기본 엔진이다
|
|
10
|
+
plt\.|import matplotlib matplotlib 그림을 그리려면 matplotlib 이 있어야 한다
|
|
11
|
+
requests\.get\(|requests\.post\( requests requests 는 표준 라이브러리가 아니다
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": [
|
|
3
|
+
{
|
|
4
|
+
"id": "rhythm",
|
|
5
|
+
"name": "리듬",
|
|
6
|
+
"symbol": "R",
|
|
7
|
+
"ansi": 75,
|
|
8
|
+
"hex": "#56B4E9",
|
|
9
|
+
"rules": [
|
|
10
|
+
"endingRepeat",
|
|
11
|
+
"longSentence",
|
|
12
|
+
"profile"
|
|
13
|
+
]
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"id": "flow",
|
|
17
|
+
"name": "흐름",
|
|
18
|
+
"symbol": "F",
|
|
19
|
+
"ansi": 214,
|
|
20
|
+
"hex": "#E69F00",
|
|
21
|
+
"rules": [
|
|
22
|
+
"topicBreak"
|
|
23
|
+
]
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"id": "deixis",
|
|
27
|
+
"name": "지시",
|
|
28
|
+
"symbol": "D",
|
|
29
|
+
"ansi": 166,
|
|
30
|
+
"hex": "#D55E00",
|
|
31
|
+
"rules": [
|
|
32
|
+
"deixis",
|
|
33
|
+
"danglingDeixis"
|
|
34
|
+
]
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"id": "list",
|
|
38
|
+
"name": "나열",
|
|
39
|
+
"symbol": "L",
|
|
40
|
+
"ansi": 170,
|
|
41
|
+
"hex": "#CC79A7",
|
|
42
|
+
"rules": [
|
|
43
|
+
"factListParagraph"
|
|
44
|
+
]
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"id": "density",
|
|
48
|
+
"name": "밀도",
|
|
49
|
+
"symbol": "N",
|
|
50
|
+
"ansi": 227,
|
|
51
|
+
"hex": "#F0E442",
|
|
52
|
+
"rules": [
|
|
53
|
+
"nounPile",
|
|
54
|
+
"euiChain",
|
|
55
|
+
"doublePassive"
|
|
56
|
+
]
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"id": "structure",
|
|
60
|
+
"name": "구조",
|
|
61
|
+
"symbol": "S",
|
|
62
|
+
"ansi": 36,
|
|
63
|
+
"hex": "#009E73",
|
|
64
|
+
"rules": [
|
|
65
|
+
"paraFragment",
|
|
66
|
+
"sectionNoProse",
|
|
67
|
+
"headingSkip",
|
|
68
|
+
"headingUniform",
|
|
69
|
+
"headingSentence",
|
|
70
|
+
"introLong",
|
|
71
|
+
"emojiBullet"
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"id": "promise",
|
|
76
|
+
"name": "약속",
|
|
77
|
+
"symbol": "P",
|
|
78
|
+
"ansi": 26,
|
|
79
|
+
"hex": "#0072B2",
|
|
80
|
+
"rules": [
|
|
81
|
+
"countMismatch",
|
|
82
|
+
"promiseRecall",
|
|
83
|
+
"keywordMissing"
|
|
84
|
+
]
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "reader",
|
|
88
|
+
"name": "독자",
|
|
89
|
+
"symbol": "A",
|
|
90
|
+
"ansi": 245,
|
|
91
|
+
"hex": "#999999",
|
|
92
|
+
"rules": [
|
|
93
|
+
"noQuestion",
|
|
94
|
+
"readerAbsent"
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "code",
|
|
99
|
+
"name": "코드",
|
|
100
|
+
"symbol": "C",
|
|
101
|
+
"ansi": 39,
|
|
102
|
+
"hex": "#00ACC1",
|
|
103
|
+
"rules": [
|
|
104
|
+
"inputFileSource",
|
|
105
|
+
"installImport",
|
|
106
|
+
"duplicateBlock",
|
|
107
|
+
"firstResultDistance",
|
|
108
|
+
"platformApi"
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "orthography",
|
|
113
|
+
"name": "맞춤법",
|
|
114
|
+
"symbol": "H",
|
|
115
|
+
"ansi": 197,
|
|
116
|
+
"hex": "#C2185B",
|
|
117
|
+
"rules": [
|
|
118
|
+
"spelling",
|
|
119
|
+
"spacing",
|
|
120
|
+
"confusable"
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"id": "wording",
|
|
125
|
+
"name": "표현",
|
|
126
|
+
"symbol": "W",
|
|
127
|
+
"ansi": 137,
|
|
128
|
+
"hex": "#A0522D",
|
|
129
|
+
"rules": [
|
|
130
|
+
"cliche",
|
|
131
|
+
"translationese",
|
|
132
|
+
"redundantPair",
|
|
133
|
+
"japaneseLoan",
|
|
134
|
+
"hardWord",
|
|
135
|
+
"connectorRepeat",
|
|
136
|
+
"fillerOpener",
|
|
137
|
+
"doubleNegative",
|
|
138
|
+
"negationRedefine",
|
|
139
|
+
"dash",
|
|
140
|
+
"imperativePeriod",
|
|
141
|
+
"ellipsis"
|
|
142
|
+
]
|
|
143
|
+
}
|
|
144
|
+
]
|
|
145
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
{
|
|
2
|
+
"entry": [
|
|
3
|
+
{
|
|
4
|
+
"pattern": "(?<![가-힣])구좌",
|
|
5
|
+
"fix": "계좌",
|
|
6
|
+
"why": "일본어투 한자어다",
|
|
7
|
+
"source": "국립국어원 2005"
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"pattern": "(?<![가-힣])익일",
|
|
11
|
+
"fix": "다음날",
|
|
12
|
+
"why": "일본어투 한자어다",
|
|
13
|
+
"source": "국립국어원 2005"
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
"pattern": "(?<![가-힣])잔고",
|
|
17
|
+
"fix": "잔액",
|
|
18
|
+
"why": "일본어투 한자어다",
|
|
19
|
+
"source": "국립국어원 2005"
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"pattern": "(?<![가-힣])고참",
|
|
23
|
+
"fix": "선임",
|
|
24
|
+
"why": "일본어투 한자어다",
|
|
25
|
+
"source": "국립국어원 2005"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"pattern": "(?<![가-힣])망년회",
|
|
29
|
+
"fix": "송년회",
|
|
30
|
+
"why": "일본어투 한자어다",
|
|
31
|
+
"source": "국립국어원 2005"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"pattern": "(?<![가-힣])종지부",
|
|
35
|
+
"fix": "마침표",
|
|
36
|
+
"why": "일본어투 한자어다",
|
|
37
|
+
"source": "국립국어원 2005"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"pattern": "(?<![가-힣])나와바리",
|
|
41
|
+
"fix": "구역",
|
|
42
|
+
"why": "일본어 음차어다",
|
|
43
|
+
"source": "국립국어원 2019"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"pattern": "(?<![가-힣])단도리",
|
|
47
|
+
"fix": "채비",
|
|
48
|
+
"why": "일본어 음차어다",
|
|
49
|
+
"source": "국립국어원 2019"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"pattern": "(?<![가-힣])무데뽀",
|
|
53
|
+
"fix": "막무가내",
|
|
54
|
+
"why": "일본어 음차어다",
|
|
55
|
+
"source": "국립국어원 2019"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"pattern": "(?<![가-힣])분빠이",
|
|
59
|
+
"fix": "각자 내기",
|
|
60
|
+
"why": "일본어 음차어다",
|
|
61
|
+
"source": "국립국어원 2019"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"pattern": "(?<![가-힣])기스",
|
|
65
|
+
"fix": "흠집",
|
|
66
|
+
"why": "일본어 음차어다",
|
|
67
|
+
"source": "국립국어원 2019"
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"pattern": "(?<![가-힣])곤색",
|
|
71
|
+
"fix": "감색",
|
|
72
|
+
"why": "일본어 음차어다",
|
|
73
|
+
"source": "국립국어원 2019"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"pattern": "(?<![가-힣])노가다",
|
|
77
|
+
"fix": "막일",
|
|
78
|
+
"why": "일본어 음차어다",
|
|
79
|
+
"source": "국립국어원 2019"
|
|
80
|
+
}
|
|
81
|
+
]
|
|
82
|
+
}
|
package/data/josa.txt
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# 조사. 어절이 이것으로 끝나면 조사를 뗀 나머지를 화제어 후보로 본다.
|
|
2
|
+
# 긴 것부터 대조한다 (loader 가 길이순으로 정렬한다).
|
|
3
|
+
에서는
|
|
4
|
+
으로는
|
|
5
|
+
에게는
|
|
6
|
+
까지는
|
|
7
|
+
부터는
|
|
8
|
+
보다는
|
|
9
|
+
으로부터
|
|
10
|
+
로부터
|
|
11
|
+
으로써
|
|
12
|
+
으로서
|
|
13
|
+
이라고
|
|
14
|
+
이라는
|
|
15
|
+
이라도
|
|
16
|
+
이라면
|
|
17
|
+
에서
|
|
18
|
+
에게
|
|
19
|
+
께서
|
|
20
|
+
까지
|
|
21
|
+
부터
|
|
22
|
+
보다
|
|
23
|
+
처럼
|
|
24
|
+
만큼
|
|
25
|
+
으로
|
|
26
|
+
조차
|
|
27
|
+
마저
|
|
28
|
+
밖에
|
|
29
|
+
이나
|
|
30
|
+
이란
|
|
31
|
+
이든
|
|
32
|
+
라고
|
|
33
|
+
라는
|
|
34
|
+
라도
|
|
35
|
+
로써
|
|
36
|
+
로서
|
|
37
|
+
은
|
|
38
|
+
는
|
|
39
|
+
이
|
|
40
|
+
가
|
|
41
|
+
을
|
|
42
|
+
를
|
|
43
|
+
의
|
|
44
|
+
에
|
|
45
|
+
로
|
|
46
|
+
와
|
|
47
|
+
과
|
|
48
|
+
도
|
|
49
|
+
만
|
|
50
|
+
께
|
|
51
|
+
야
|
|
52
|
+
랑
|
|
53
|
+
나
|
|
54
|
+
든
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
# 한국어 수사와 값. 탭으로 나눈다. countMismatch 가 `한 가지`, `두 방식` 처럼 단위 앞에 오는 꼴을 세고,
|
|
2
|
+
# 명사 나열은 수사와 바로 뒤의 단위 (여덟 개, 세 방식) 를 수량으로 보아 명사로 세지 않는다.
|
|
3
|
+
한 1
|
|
4
|
+
두 2
|
|
5
|
+
세 3
|
|
6
|
+
네 4
|
|
7
|
+
다섯 5
|
|
8
|
+
여섯 6
|
|
9
|
+
일곱 7
|
|
10
|
+
여덟 8
|
|
11
|
+
아홉 9
|
|
12
|
+
열 10
|
|
13
|
+
스물 20
|
|
14
|
+
서른 30
|
|
15
|
+
마흔 40
|
|
16
|
+
쉰 50
|
|
17
|
+
예순 60
|
|
18
|
+
일흔 70
|
|
19
|
+
여든 80
|
|
20
|
+
아흔 90
|
|
21
|
+
백 100
|
|
22
|
+
천 1000
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
# 접미 피동사 어간. 여기에 -어지다 가 또 붙으면 이중 피동이다. `되` 는 코드가 따로 더한다.
|
|
2
|
+
보이
|
|
3
|
+
잊히
|
|
4
|
+
쓰이
|
|
5
|
+
불리
|
|
6
|
+
읽히
|
|
7
|
+
놓이
|
|
8
|
+
먹히
|
|
9
|
+
안기
|
|
10
|
+
닫히
|
|
11
|
+
열리
|
|
12
|
+
풀리
|
|
13
|
+
걸리
|
|
14
|
+
잘리
|
|
15
|
+
묻히
|
|
16
|
+
팔리
|
|
17
|
+
뽑히
|
|
18
|
+
쫓기
|
|
19
|
+
담기
|
|
20
|
+
잠기
|
|
21
|
+
찢기
|
|
22
|
+
끊기
|
|
23
|
+
감기
|
|
24
|
+
모이
|
|
25
|
+
쌓이
|
|
26
|
+
섞이
|
|
27
|
+
꺾이
|
|
28
|
+
밟히
|
|
29
|
+
잡히
|
|
30
|
+
찍히
|
|
31
|
+
막히
|
|
32
|
+
꽂히
|
|
33
|
+
박히
|
|
34
|
+
뚫리
|
|
35
|
+
밀리
|
|
36
|
+
눌리
|
|
37
|
+
깔리
|
|
38
|
+
끌리
|
|
39
|
+
물리
|
|
40
|
+
갈리
|
|
41
|
+
쏠리
|
|
42
|
+
실리
|
|
43
|
+
덮이
|
|
44
|
+
꼬이
|
|
45
|
+
나뉘
|
|
46
|
+
바뀌
|
|
47
|
+
뒤집히
|
|
48
|
+
낚이
|
|
49
|
+
매이
|
|
50
|
+
베이
|
|
51
|
+
파이
|
|
52
|
+
쓸리
|
|
53
|
+
휩쓸리
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
# 한 운영체제에서만 도는 API 와 경로. `정규식<TAB>플랫폼<TAB>대안`. platformApi 가 코드 블록에서 notice 로 짚는다.
|
|
2
|
+
# 실측: 004 의 peak_wset 은 윈도우에서만 나와 맥과 리눅스 독자가 AttributeError 로 멈췄다 (사람 평가자 지적).
|
|
3
|
+
peak_wset 윈도우 맥과 리눅스는 memory_info().rss 나 resource.getrusage(...).ru_maxrss 다
|
|
4
|
+
os\.startfile\( 윈도우 subprocess.run(["open", 경로]) 나 xdg-open
|
|
5
|
+
\bwinreg\b 윈도우 레지스트리는 윈도우에만 있다
|
|
6
|
+
\bmsvcrt\b 윈도우 termios 나 다른 입력 방법
|
|
7
|
+
\bwin32(?:api|con|gui|com)\b 윈도우 pywin32 는 윈도우 전용이다
|
|
8
|
+
\bosascript\b 맥 다른 운영체제에는 AppleScript 가 없다
|
|
9
|
+
/proc/ 리눅스 psutil 같은 이식 가능한 API
|
|
10
|
+
\bfcntl\b 리눅스와 맥 윈도우에는 fcntl 이 없다
|
|
11
|
+
resource\.getrusage\( 리눅스와 맥 윈도우에는 resource 모듈이 없다
|
|
12
|
+
[A-Za-z]:\\\\ 윈도우 절대 경로 대신 상대 경로나 pathlib
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# import 이름과 pip 패키지 이름이 다른 것. `모듈<TAB>패키지`. installImport 가 설치 줄과 대조할 때 쓴다.
|
|
2
|
+
# 같은 이름 (pandas, polars, duckdb) 은 적지 않는다. 출처는 각 패키지의 PyPI 페이지다.
|
|
3
|
+
sklearn scikit-learn
|
|
4
|
+
cv2 opencv-python
|
|
5
|
+
PIL pillow
|
|
6
|
+
yaml pyyaml
|
|
7
|
+
bs4 beautifulsoup4
|
|
8
|
+
dotenv python-dotenv
|
|
9
|
+
ibis ibis-framework
|
|
10
|
+
dateutil python-dateutil
|
|
11
|
+
attr attrs
|
|
12
|
+
Crypto pycryptodome
|
|
13
|
+
jwt pyjwt
|
|
14
|
+
serial pyserial
|
|
15
|
+
usb pyusb
|
|
16
|
+
magic python-magic
|
|
17
|
+
OpenSSL pyopenssl
|
|
18
|
+
docx python-docx
|
|
19
|
+
pptx python-pptx
|
|
20
|
+
fitz pymupdf
|
|
21
|
+
skimage scikit-image
|
|
22
|
+
kiwipiepy kiwipiepy
|
|
23
|
+
google google-api-python-client
|
|
24
|
+
psycopg2 psycopg2-binary
|
|
25
|
+
MySQLdb mysqlclient
|
|
26
|
+
lxml lxml
|
|
27
|
+
Levenshtein python-levenshtein
|
|
28
|
+
tflite_runtime tflite-runtime
|
|
29
|
+
telebot pytelegrambotapi
|
|
30
|
+
websocket websocket-client
|
|
31
|
+
zmq pyzmq
|
|
32
|
+
gi pygobject
|
|
33
|
+
wx wxpython
|
|
34
|
+
mpl_toolkits matplotlib
|
|
35
|
+
pylab matplotlib
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
# 파이썬 표준 라이브러리 최상위 모듈. sys.stdlib_module_names (3.13) 에서 뽑았다. installImport 가 설치 대조에서 뺀다.
|
|
2
|
+
abc
|
|
3
|
+
antigravity
|
|
4
|
+
argparse
|
|
5
|
+
array
|
|
6
|
+
ast
|
|
7
|
+
asyncio
|
|
8
|
+
atexit
|
|
9
|
+
base64
|
|
10
|
+
bdb
|
|
11
|
+
binascii
|
|
12
|
+
bisect
|
|
13
|
+
builtins
|
|
14
|
+
bz2
|
|
15
|
+
cProfile
|
|
16
|
+
calendar
|
|
17
|
+
cmath
|
|
18
|
+
cmd
|
|
19
|
+
code
|
|
20
|
+
codecs
|
|
21
|
+
codeop
|
|
22
|
+
collections
|
|
23
|
+
colorsys
|
|
24
|
+
compileall
|
|
25
|
+
concurrent
|
|
26
|
+
configparser
|
|
27
|
+
contextlib
|
|
28
|
+
contextvars
|
|
29
|
+
copy
|
|
30
|
+
copyreg
|
|
31
|
+
csv
|
|
32
|
+
ctypes
|
|
33
|
+
curses
|
|
34
|
+
dataclasses
|
|
35
|
+
datetime
|
|
36
|
+
dbm
|
|
37
|
+
decimal
|
|
38
|
+
difflib
|
|
39
|
+
dis
|
|
40
|
+
doctest
|
|
41
|
+
email
|
|
42
|
+
encodings
|
|
43
|
+
ensurepip
|
|
44
|
+
enum
|
|
45
|
+
errno
|
|
46
|
+
faulthandler
|
|
47
|
+
fcntl
|
|
48
|
+
filecmp
|
|
49
|
+
fileinput
|
|
50
|
+
fnmatch
|
|
51
|
+
fractions
|
|
52
|
+
ftplib
|
|
53
|
+
functools
|
|
54
|
+
gc
|
|
55
|
+
genericpath
|
|
56
|
+
getopt
|
|
57
|
+
getpass
|
|
58
|
+
gettext
|
|
59
|
+
glob
|
|
60
|
+
graphlib
|
|
61
|
+
grp
|
|
62
|
+
gzip
|
|
63
|
+
hashlib
|
|
64
|
+
heapq
|
|
65
|
+
hmac
|
|
66
|
+
html
|
|
67
|
+
http
|
|
68
|
+
idlelib
|
|
69
|
+
imaplib
|
|
70
|
+
importlib
|
|
71
|
+
inspect
|
|
72
|
+
io
|
|
73
|
+
ipaddress
|
|
74
|
+
itertools
|
|
75
|
+
json
|
|
76
|
+
keyword
|
|
77
|
+
linecache
|
|
78
|
+
locale
|
|
79
|
+
logging
|
|
80
|
+
lzma
|
|
81
|
+
mailbox
|
|
82
|
+
marshal
|
|
83
|
+
math
|
|
84
|
+
mimetypes
|
|
85
|
+
mmap
|
|
86
|
+
modulefinder
|
|
87
|
+
msvcrt
|
|
88
|
+
multiprocessing
|
|
89
|
+
netrc
|
|
90
|
+
nt
|
|
91
|
+
ntpath
|
|
92
|
+
nturl2path
|
|
93
|
+
numbers
|
|
94
|
+
opcode
|
|
95
|
+
operator
|
|
96
|
+
optparse
|
|
97
|
+
os
|
|
98
|
+
pathlib
|
|
99
|
+
pdb
|
|
100
|
+
pickle
|
|
101
|
+
pickletools
|
|
102
|
+
pkgutil
|
|
103
|
+
platform
|
|
104
|
+
plistlib
|
|
105
|
+
poplib
|
|
106
|
+
posix
|
|
107
|
+
posixpath
|
|
108
|
+
pprint
|
|
109
|
+
profile
|
|
110
|
+
pstats
|
|
111
|
+
pty
|
|
112
|
+
pwd
|
|
113
|
+
py_compile
|
|
114
|
+
pyclbr
|
|
115
|
+
pydoc
|
|
116
|
+
pydoc_data
|
|
117
|
+
pyexpat
|
|
118
|
+
queue
|
|
119
|
+
quopri
|
|
120
|
+
random
|
|
121
|
+
re
|
|
122
|
+
readline
|
|
123
|
+
reprlib
|
|
124
|
+
resource
|
|
125
|
+
rlcompleter
|
|
126
|
+
runpy
|
|
127
|
+
sched
|
|
128
|
+
secrets
|
|
129
|
+
select
|
|
130
|
+
selectors
|
|
131
|
+
shelve
|
|
132
|
+
shlex
|
|
133
|
+
shutil
|
|
134
|
+
signal
|
|
135
|
+
site
|
|
136
|
+
smtplib
|
|
137
|
+
socket
|
|
138
|
+
socketserver
|
|
139
|
+
sqlite3
|
|
140
|
+
sre_compile
|
|
141
|
+
sre_constants
|
|
142
|
+
sre_parse
|
|
143
|
+
ssl
|
|
144
|
+
stat
|
|
145
|
+
statistics
|
|
146
|
+
string
|
|
147
|
+
stringprep
|
|
148
|
+
struct
|
|
149
|
+
subprocess
|
|
150
|
+
symtable
|
|
151
|
+
sys
|
|
152
|
+
sysconfig
|
|
153
|
+
syslog
|
|
154
|
+
tabnanny
|
|
155
|
+
tarfile
|
|
156
|
+
tempfile
|
|
157
|
+
termios
|
|
158
|
+
textwrap
|
|
159
|
+
this
|
|
160
|
+
threading
|
|
161
|
+
time
|
|
162
|
+
timeit
|
|
163
|
+
tkinter
|
|
164
|
+
token
|
|
165
|
+
tokenize
|
|
166
|
+
tomllib
|
|
167
|
+
trace
|
|
168
|
+
traceback
|
|
169
|
+
tracemalloc
|
|
170
|
+
tty
|
|
171
|
+
turtle
|
|
172
|
+
turtledemo
|
|
173
|
+
types
|
|
174
|
+
typing
|
|
175
|
+
unicodedata
|
|
176
|
+
unittest
|
|
177
|
+
urllib
|
|
178
|
+
uuid
|
|
179
|
+
venv
|
|
180
|
+
warnings
|
|
181
|
+
wave
|
|
182
|
+
weakref
|
|
183
|
+
webbrowser
|
|
184
|
+
winreg
|
|
185
|
+
winsound
|
|
186
|
+
wsgiref
|
|
187
|
+
xml
|
|
188
|
+
xmlrpc
|
|
189
|
+
zipapp
|
|
190
|
+
zipfile
|
|
191
|
+
zipimport
|
|
192
|
+
zlib
|
|
193
|
+
zoneinfo
|