codespell 2.4.0__tar.gz → 2.4.2__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.
Files changed (49) hide show
  1. codespell-2.4.2/.github/workflows/autofix.yml +19 -0
  2. {codespell-2.4.0 → codespell-2.4.2}/.github/workflows/codespell.yml +1 -1
  3. {codespell-2.4.0 → codespell-2.4.2}/.github/workflows/release.yml +4 -4
  4. codespell-2.4.0/.github/workflows/codespell-private.yml → codespell-2.4.2/.github/workflows/tests.yml +33 -17
  5. {codespell-2.4.0 → codespell-2.4.2}/.gitignore +1 -0
  6. {codespell-2.4.0 → codespell-2.4.2}/PKG-INFO +16 -10
  7. {codespell-2.4.0 → codespell-2.4.2}/README.rst +11 -4
  8. {codespell-2.4.0 → codespell-2.4.2}/codespell.egg-info/PKG-INFO +16 -10
  9. {codespell-2.4.0 → codespell-2.4.2}/codespell.egg-info/SOURCES.txt +5 -3
  10. {codespell-2.4.0 → codespell-2.4.2}/codespell.egg-info/top_level.txt +1 -0
  11. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/_codespell.py +256 -124
  12. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/_spellchecker.py +3 -8
  13. codespell-2.4.2/codespell_lib/_version.py +34 -0
  14. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/dictionary.txt +756 -37
  15. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/dictionary_code.txt +1 -1
  16. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/dictionary_en-GB_to_en-US.txt +10 -1
  17. codespell-2.4.2/codespell_lib/data/dictionary_en_to_en-OX_AUTOGENERATED.txt +550 -0
  18. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/dictionary_rare.txt +8 -4
  19. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/dictionary_usage.txt +0 -1
  20. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/tests/test_basic.py +137 -18
  21. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/tests/test_dictionary.py +19 -11
  22. {codespell-2.4.0 → codespell-2.4.2}/pyproject.toml +5 -7
  23. codespell-2.4.2/tools/gen_OX.sh +49 -0
  24. codespell-2.4.0/.github/workflows/codespell-windows.yml +0 -30
  25. codespell-2.4.0/codespell_lib/_version.py +0 -16
  26. {codespell-2.4.0 → codespell-2.4.2}/.devcontainer/devcontainer.json +0 -0
  27. {codespell-2.4.0 → codespell-2.4.2}/.devcontainer/post_create.sh +0 -0
  28. {codespell-2.4.0 → codespell-2.4.2}/.github/CODEOWNERS +0 -0
  29. {codespell-2.4.0 → codespell-2.4.2}/.github/dependabot.yml +0 -0
  30. {codespell-2.4.0 → codespell-2.4.2}/.github/release.yml +0 -0
  31. {codespell-2.4.0 → codespell-2.4.2}/.mailmap +0 -0
  32. {codespell-2.4.0 → codespell-2.4.2}/COPYING +0 -0
  33. {codespell-2.4.0 → codespell-2.4.2}/MANIFEST.in +0 -0
  34. {codespell-2.4.0 → codespell-2.4.2}/codespell.egg-info/dependency_links.txt +0 -0
  35. {codespell-2.4.0 → codespell-2.4.2}/codespell.egg-info/entry_points.txt +0 -0
  36. {codespell-2.4.0 → codespell-2.4.2}/codespell.egg-info/requires.txt +0 -0
  37. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/__init__.py +0 -0
  38. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/__main__.py +0 -0
  39. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/_text_util.py +0 -0
  40. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/__init__.py +0 -0
  41. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/dictionary_informal.txt +0 -0
  42. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/dictionary_names.txt +0 -0
  43. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/data/linux-kernel.exclude +0 -0
  44. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/py.typed +0 -0
  45. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/tests/__init__.py +0 -0
  46. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/tests/data/en_GB-additional.wordlist +0 -0
  47. {codespell-2.4.0 → codespell-2.4.2}/codespell_lib/tests/data/en_US-additional.wordlist +0 -0
  48. {codespell-2.4.0 → codespell-2.4.2}/setup.cfg +0 -0
  49. {codespell-2.4.0 → codespell-2.4.2}/tox.ini +6 -6
@@ -0,0 +1,19 @@
1
+ name: autofix.ci
2
+
3
+ on: # yamllint disable-line rule:truthy
4
+ pull_request:
5
+ types: [opened, synchronize, labeled, unlabeled]
6
+
7
+ permissions:
8
+ contents: read
9
+
10
+ jobs:
11
+ autofix:
12
+ name: Regenerate autogenerated files
13
+ runs-on: ubuntu-latest
14
+ steps:
15
+ - uses: actions/checkout@v6
16
+ with:
17
+ persist-credentials: false
18
+ - run: make codespell_lib/data/dictionary_en_to_en-OX_AUTOGENERATED.txt
19
+ - uses: autofix-ci/action@7a166d7532b277f34e16238930461bf77f9d7ed8
@@ -9,7 +9,7 @@ jobs:
9
9
  name: Check for spelling errors
10
10
  runs-on: ubuntu-latest
11
11
  steps:
12
- - uses: actions/checkout@v4
12
+ - uses: actions/checkout@v6
13
13
  with:
14
14
  persist-credentials: false
15
15
  - uses: codespell-project/actions-codespell@master
@@ -18,11 +18,11 @@ jobs:
18
18
  package:
19
19
  runs-on: ubuntu-latest
20
20
  steps:
21
- - uses: actions/checkout@v4
21
+ - uses: actions/checkout@v6
22
22
  with:
23
23
  persist-credentials: false
24
24
  - name: Set up Python
25
- uses: actions/setup-python@v5
25
+ uses: actions/setup-python@v6
26
26
  with:
27
27
  python-version: "3.10"
28
28
  - name: Install dependencies
@@ -36,7 +36,7 @@ jobs:
36
36
  - name: Check env vars
37
37
  run: |
38
38
  echo "Triggered by: ${{ github.event_name }}"
39
- - uses: actions/upload-artifact@v4
39
+ - uses: actions/upload-artifact@v7
40
40
  with:
41
41
  name: dist
42
42
  path: dist
@@ -47,7 +47,7 @@ jobs:
47
47
  runs-on: ubuntu-latest
48
48
  if: github.event_name == 'release'
49
49
  steps:
50
- - uses: actions/download-artifact@v4
50
+ - uses: actions/download-artifact@v8
51
51
  with:
52
52
  name: dist
53
53
  path: dist
@@ -11,66 +11,82 @@ permissions: {}
11
11
  jobs:
12
12
  test:
13
13
  env:
14
- REQUIRE_ASPELL: true
14
+ REQUIRE_ASPELL: ${{ startsWith(matrix.os, 'ubuntu') }}
15
15
  RUFF_OUTPUT_FORMAT: github
16
16
  # Make sure we're using the latest aspell dictionary
17
- runs-on: ubuntu-24.04-arm
17
+ runs-on: ${{ matrix.os }}
18
18
  timeout-minutes: 10
19
19
  strategy:
20
20
  fail-fast: false
21
21
  matrix:
22
22
  python-version:
23
- - "3.8"
24
23
  - "3.9"
25
24
  - "3.10"
26
25
  - "3.11"
27
26
  - "3.12"
28
27
  - "3.13"
29
- no-toml:
30
- - ""
28
+ - "3.14"
29
+ kind:
30
+ - "standard"
31
+ os:
32
+ - "ubuntu-24.04-arm"
31
33
  include:
32
34
  - python-version: "3.10"
33
- no-toml: "no-toml"
34
- name: ${{ matrix.python-version }} ${{ matrix.no-toml }}
35
+ kind: "old"
36
+ os: "ubuntu-24.04-arm"
37
+ - python-version: "3.10"
38
+ kind: "no-toml"
39
+ os: "ubuntu-24.04-arm"
40
+ - python-version: "3.13"
41
+ kind: "standard"
42
+ os: "windows-latest"
43
+ name: "${{ matrix.python-version }} ${{ matrix.kind }} ${{ matrix.os }}"
35
44
  steps:
36
- - uses: actions/checkout@v4
45
+ - uses: actions/checkout@v6
37
46
  with:
38
47
  persist-credentials: false
39
48
  - name: Setup python
40
- uses: actions/setup-python@v5
49
+ uses: actions/setup-python@v6
41
50
  with:
42
51
  python-version: ${{ matrix.python-version }}
43
52
  allow-prereleases: true
44
53
  - run: sudo apt-get install libaspell-dev aspell-en
54
+ if: startsWith(matrix.os, 'ubuntu')
45
55
  - name: Install dependencies
56
+ shell: bash -e {0}
46
57
  run: |
47
58
  python --version # just to check
48
- pip install --upgrade pip wheel # upgrade to latest pip find 3.5 wheels; wheel to avoid errors
59
+ python -m pip install --upgrade pip wheel # upgrade to latest pip find 3.5 wheels; wheel to avoid errors
49
60
  pip install --upgrade "setuptools!=47.2.0" docutils setuptools_scm[toml] twine
50
- pip install aspell-python-py3
51
61
  pip install -e ".[dev]" # install the codespell dev packages
62
+ - run: pip install aspell-python-py3
63
+ if: startsWith(matrix.os, 'ubuntu')
64
+ - run: pip install "chardet<7"
65
+ if: ${{ matrix.kind == 'old' }}
52
66
  - run: codespell --help
53
67
  - run: codespell --version
54
68
  - run: make check
69
+ if: startsWith(matrix.os, 'ubuntu')
70
+ - run: pytest codespell_lib
71
+ if: startsWith(matrix.os, 'windows')
55
72
  - uses: codecov/codecov-action@v5
56
73
  with:
57
74
  token: ${{ secrets.CODECOV_TOKEN }}
58
75
  # tomli should not be required for the next two steps (and make sure it's not)
59
76
  - run: pip uninstall -yq tomli
60
- if: ${{ matrix.no-toml == 'no-toml' }}
61
- - run: codespell --check-filenames --skip="./.git/*,./.pytest_cache/*,./junit-results.xml,*.pyc,./codespell_lib/tests/test_basic.py,./codespell_lib/data/*,./example/code.c,./build/lib/codespell_lib/tests/test_basic.py,./build/lib/codespell_lib/data/*,README.rst,*.egg-info/*,pyproject-codespell.precommit-toml,./.mypy_cache"
77
+ if: ${{ matrix.kind == 'no-toml' }}
78
+ - run: codespell --check-filenames --skip="./.*,./build/*,./codespell_lib/data/*,./codespell_lib/tests/test_basic.py,./example/code.c,./junit-results.xml,*.egg-info/*,*.pyc,*.sig,pyproject-codespell.precommit-toml,README.rst,"
62
79
  # this file has an error
63
80
  - run: "! codespell codespell_lib/tests/test_basic.py"
81
+ shell: bash -e {0}
64
82
 
65
83
  make-check-dictionaries:
66
84
  runs-on: ubuntu-latest
67
85
  timeout-minutes: 10
68
86
  steps:
69
87
  - name: Setup Python
70
- uses: actions/setup-python@v5
71
- with:
72
- python-version: 3.x
73
- - uses: actions/checkout@v4
88
+ uses: actions/setup-python@v6
89
+ - uses: actions/checkout@v6
74
90
  with:
75
91
  persist-credentials: false
76
92
  - name: Install general dependencies
@@ -14,3 +14,4 @@ codespell.egg-info
14
14
  codespell_lib/_version.py
15
15
  junit-results.xml
16
16
  *.egg-info/
17
+ .DS_Store
@@ -1,13 +1,12 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: codespell
3
- Version: 2.4.0
3
+ Version: 2.4.2
4
4
  Summary: Fix common misspellings in text files
5
5
  Author-email: Lucas De Marchi <lucas.de.marchi@gmail.com>
6
- License: GPL-2.0-only
6
+ License-Expression: GPL-2.0-only
7
7
  Project-URL: homepage, https://github.com/codespell-project/codespell
8
8
  Project-URL: repository, https://github.com/codespell-project/codespell
9
9
  Classifier: Intended Audience :: Developers
10
- Classifier: License :: OSI Approved
11
10
  Classifier: Programming Language :: Python
12
11
  Classifier: Topic :: Software Development
13
12
  Classifier: Operating System :: Microsoft :: Windows
@@ -17,13 +16,12 @@ Classifier: Operating System :: MacOS
17
16
  Classifier: Programming Language :: Python
18
17
  Classifier: Programming Language :: Python :: 3
19
18
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.8
21
19
  Classifier: Programming Language :: Python :: 3.9
22
20
  Classifier: Programming Language :: Python :: 3.10
23
21
  Classifier: Programming Language :: Python :: 3.11
24
22
  Classifier: Programming Language :: Python :: 3.12
25
23
  Classifier: Programming Language :: Python :: 3.13
26
- Requires-Python: >=3.8
24
+ Requires-Python: >=3.9
27
25
  Description-Content-Type: text/x-rst
28
26
  License-File: COPYING
29
27
  Provides-Extra: dev
@@ -47,6 +45,7 @@ Requires-Dist: mypy; extra == "types"
47
45
  Requires-Dist: pytest; extra == "types"
48
46
  Requires-Dist: pytest-cov; extra == "types"
49
47
  Requires-Dist: pytest-dependency; extra == "types"
48
+ Dynamic: license-file
50
49
 
51
50
  codespell
52
51
  =========
@@ -70,7 +69,7 @@ Useful links
70
69
  Requirements
71
70
  ------------
72
71
 
73
- Python 3.8 or above.
72
+ Python 3.9 or above.
74
73
 
75
74
  Installation
76
75
  ------------
@@ -169,7 +168,7 @@ You can select the optional dictionaries with the ``--builtin`` option.
169
168
  Ignoring words
170
169
  --------------
171
170
 
172
- When ignoring false positives, note that spelling errors are *case-insensitive* but words to ignore are *case-sensitive*. For example, the dictionary entry ``wrod`` will also match the typo ``Wrod``, but to ignore it you must pass ``Wrod``.
171
+ When ignoring false positives, note that spelling errors are *case-insensitive* but words to ignore are *case-sensitive*. For example, the dictionary entry ``wrod`` will also match the typo ``Wrod``, but to ignore it you must pass ``wrod`` (to match the case of the dictionary entry).
173
172
 
174
173
  The words to ignore can be passed in two ways:
175
174
 
@@ -279,6 +278,13 @@ instead of these invalid entries:
279
278
 
280
279
  .. _tomli: https://pypi.org/project/tomli/
281
280
 
281
+ Reading arguments from file
282
+ ---------------------------
283
+
284
+ Additional arguments can be read from a file with ``@PATH``. Arguments are
285
+ extracted using ``shlex.split()``.
286
+
287
+
282
288
  pre-commit hook
283
289
  ---------------
284
290
 
@@ -287,7 +293,7 @@ codespell also works with `pre-commit <https://pre-commit.com/>`_, using
287
293
  .. code-block:: yaml
288
294
 
289
295
  - repo: https://github.com/codespell-project/codespell
290
- rev: v2.2.4
296
+ rev: v2.4.1
291
297
  hooks:
292
298
  - id: codespell
293
299
 
@@ -296,7 +302,7 @@ If one configures codespell using the `pyproject.toml` file instead use:
296
302
  .. code-block:: yaml
297
303
 
298
304
  - repo: https://github.com/codespell-project/codespell
299
- rev: v2.2.4
305
+ rev: v2.4.1
300
306
  hooks:
301
307
  - id: codespell
302
308
  additional_dependencies:
@@ -20,7 +20,7 @@ Useful links
20
20
  Requirements
21
21
  ------------
22
22
 
23
- Python 3.8 or above.
23
+ Python 3.9 or above.
24
24
 
25
25
  Installation
26
26
  ------------
@@ -119,7 +119,7 @@ You can select the optional dictionaries with the ``--builtin`` option.
119
119
  Ignoring words
120
120
  --------------
121
121
 
122
- When ignoring false positives, note that spelling errors are *case-insensitive* but words to ignore are *case-sensitive*. For example, the dictionary entry ``wrod`` will also match the typo ``Wrod``, but to ignore it you must pass ``Wrod``.
122
+ When ignoring false positives, note that spelling errors are *case-insensitive* but words to ignore are *case-sensitive*. For example, the dictionary entry ``wrod`` will also match the typo ``Wrod``, but to ignore it you must pass ``wrod`` (to match the case of the dictionary entry).
123
123
 
124
124
  The words to ignore can be passed in two ways:
125
125
 
@@ -229,6 +229,13 @@ instead of these invalid entries:
229
229
 
230
230
  .. _tomli: https://pypi.org/project/tomli/
231
231
 
232
+ Reading arguments from file
233
+ ---------------------------
234
+
235
+ Additional arguments can be read from a file with ``@PATH``. Arguments are
236
+ extracted using ``shlex.split()``.
237
+
238
+
232
239
  pre-commit hook
233
240
  ---------------
234
241
 
@@ -237,7 +244,7 @@ codespell also works with `pre-commit <https://pre-commit.com/>`_, using
237
244
  .. code-block:: yaml
238
245
 
239
246
  - repo: https://github.com/codespell-project/codespell
240
- rev: v2.2.4
247
+ rev: v2.4.1
241
248
  hooks:
242
249
  - id: codespell
243
250
 
@@ -246,7 +253,7 @@ If one configures codespell using the `pyproject.toml` file instead use:
246
253
  .. code-block:: yaml
247
254
 
248
255
  - repo: https://github.com/codespell-project/codespell
249
- rev: v2.2.4
256
+ rev: v2.4.1
250
257
  hooks:
251
258
  - id: codespell
252
259
  additional_dependencies:
@@ -1,13 +1,12 @@
1
- Metadata-Version: 2.2
1
+ Metadata-Version: 2.4
2
2
  Name: codespell
3
- Version: 2.4.0
3
+ Version: 2.4.2
4
4
  Summary: Fix common misspellings in text files
5
5
  Author-email: Lucas De Marchi <lucas.de.marchi@gmail.com>
6
- License: GPL-2.0-only
6
+ License-Expression: GPL-2.0-only
7
7
  Project-URL: homepage, https://github.com/codespell-project/codespell
8
8
  Project-URL: repository, https://github.com/codespell-project/codespell
9
9
  Classifier: Intended Audience :: Developers
10
- Classifier: License :: OSI Approved
11
10
  Classifier: Programming Language :: Python
12
11
  Classifier: Topic :: Software Development
13
12
  Classifier: Operating System :: Microsoft :: Windows
@@ -17,13 +16,12 @@ Classifier: Operating System :: MacOS
17
16
  Classifier: Programming Language :: Python
18
17
  Classifier: Programming Language :: Python :: 3
19
18
  Classifier: Programming Language :: Python :: 3 :: Only
20
- Classifier: Programming Language :: Python :: 3.8
21
19
  Classifier: Programming Language :: Python :: 3.9
22
20
  Classifier: Programming Language :: Python :: 3.10
23
21
  Classifier: Programming Language :: Python :: 3.11
24
22
  Classifier: Programming Language :: Python :: 3.12
25
23
  Classifier: Programming Language :: Python :: 3.13
26
- Requires-Python: >=3.8
24
+ Requires-Python: >=3.9
27
25
  Description-Content-Type: text/x-rst
28
26
  License-File: COPYING
29
27
  Provides-Extra: dev
@@ -47,6 +45,7 @@ Requires-Dist: mypy; extra == "types"
47
45
  Requires-Dist: pytest; extra == "types"
48
46
  Requires-Dist: pytest-cov; extra == "types"
49
47
  Requires-Dist: pytest-dependency; extra == "types"
48
+ Dynamic: license-file
50
49
 
51
50
  codespell
52
51
  =========
@@ -70,7 +69,7 @@ Useful links
70
69
  Requirements
71
70
  ------------
72
71
 
73
- Python 3.8 or above.
72
+ Python 3.9 or above.
74
73
 
75
74
  Installation
76
75
  ------------
@@ -169,7 +168,7 @@ You can select the optional dictionaries with the ``--builtin`` option.
169
168
  Ignoring words
170
169
  --------------
171
170
 
172
- When ignoring false positives, note that spelling errors are *case-insensitive* but words to ignore are *case-sensitive*. For example, the dictionary entry ``wrod`` will also match the typo ``Wrod``, but to ignore it you must pass ``Wrod``.
171
+ When ignoring false positives, note that spelling errors are *case-insensitive* but words to ignore are *case-sensitive*. For example, the dictionary entry ``wrod`` will also match the typo ``Wrod``, but to ignore it you must pass ``wrod`` (to match the case of the dictionary entry).
173
172
 
174
173
  The words to ignore can be passed in two ways:
175
174
 
@@ -279,6 +278,13 @@ instead of these invalid entries:
279
278
 
280
279
  .. _tomli: https://pypi.org/project/tomli/
281
280
 
281
+ Reading arguments from file
282
+ ---------------------------
283
+
284
+ Additional arguments can be read from a file with ``@PATH``. Arguments are
285
+ extracted using ``shlex.split()``.
286
+
287
+
282
288
  pre-commit hook
283
289
  ---------------
284
290
 
@@ -287,7 +293,7 @@ codespell also works with `pre-commit <https://pre-commit.com/>`_, using
287
293
  .. code-block:: yaml
288
294
 
289
295
  - repo: https://github.com/codespell-project/codespell
290
- rev: v2.2.4
296
+ rev: v2.4.1
291
297
  hooks:
292
298
  - id: codespell
293
299
 
@@ -296,7 +302,7 @@ If one configures codespell using the `pyproject.toml` file instead use:
296
302
  .. code-block:: yaml
297
303
 
298
304
  - repo: https://github.com/codespell-project/codespell
299
- rev: v2.2.4
305
+ rev: v2.4.1
300
306
  hooks:
301
307
  - id: codespell
302
308
  additional_dependencies:
@@ -10,10 +10,10 @@ tox.ini
10
10
  .github/CODEOWNERS
11
11
  .github/dependabot.yml
12
12
  .github/release.yml
13
- .github/workflows/codespell-private.yml
14
- .github/workflows/codespell-windows.yml
13
+ .github/workflows/autofix.yml
15
14
  .github/workflows/codespell.yml
16
15
  .github/workflows/release.yml
16
+ .github/workflows/tests.yml
17
17
  codespell.egg-info/PKG-INFO
18
18
  codespell.egg-info/SOURCES.txt
19
19
  codespell.egg-info/dependency_links.txt
@@ -31,6 +31,7 @@ codespell_lib/data/__init__.py
31
31
  codespell_lib/data/dictionary.txt
32
32
  codespell_lib/data/dictionary_code.txt
33
33
  codespell_lib/data/dictionary_en-GB_to_en-US.txt
34
+ codespell_lib/data/dictionary_en_to_en-OX_AUTOGENERATED.txt
34
35
  codespell_lib/data/dictionary_informal.txt
35
36
  codespell_lib/data/dictionary_names.txt
36
37
  codespell_lib/data/dictionary_rare.txt
@@ -40,4 +41,5 @@ codespell_lib/tests/__init__.py
40
41
  codespell_lib/tests/test_basic.py
41
42
  codespell_lib/tests/test_dictionary.py
42
43
  codespell_lib/tests/data/en_GB-additional.wordlist
43
- codespell_lib/tests/data/en_US-additional.wordlist
44
+ codespell_lib/tests/data/en_US-additional.wordlist
45
+ tools/gen_OX.sh
@@ -1,2 +1,3 @@
1
1
  codespell_lib
2
2
  example
3
+ tools