vim-eof-comment 0.3.12__py3-none-any.whl → 0.3.14__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.
@@ -8,10 +8,28 @@ Copyright (c) 2025 Guennadi Maximov C. All Rights Reserved.
8
8
  __all__ = ["complete_parser"]
9
9
 
10
10
  from argparse import ArgumentParser
11
- from typing import NoReturn
11
+ from typing import List, NoReturn
12
12
 
13
13
  from argcomplete import autocomplete
14
- from argcomplete.finders import default_validator
14
+
15
+
16
+ def complete_validator(completion_candidate: List[str], current_input: str) -> bool:
17
+ """
18
+ Complete non-prefix substring matches.
19
+
20
+ Parameters
21
+ ----------
22
+ completion_candidate : List[str]
23
+ All the completion candidates.
24
+ current_input : str
25
+ The current input string.
26
+
27
+ Returns
28
+ -------
29
+ bool
30
+ Whether the current input fits the completion candidates pool.
31
+ """
32
+ return current_input in completion_candidate
15
33
 
16
34
 
17
35
  def complete_parser(parser: ArgumentParser, **kwargs) -> NoReturn:
@@ -23,8 +41,8 @@ def complete_parser(parser: ArgumentParser, **kwargs) -> NoReturn:
23
41
  parser : argparse.ArgumentParser
24
42
  The ``ArgumentParser`` object.
25
43
  **kwargs
26
- Extra parameters.
44
+ Extra parameters to be passed to ``argcomplete.autocomplete()``.
27
45
  """
28
- autocomplete(parser, validator=default_validator, **kwargs)
46
+ autocomplete(parser, validator=complete_validator, **kwargs)
29
47
 
30
48
  # vim: set ts=4 sts=4 sw=4 et ai si sta:
@@ -12,7 +12,7 @@ def complete_parser(parser: ArgumentParser, **kwargs) -> NoReturn:
12
12
  parser : argparse.ArgumentParser
13
13
  The ``ArgumentParser`` object.
14
14
  **kwargs
15
- Extra parameters.
15
+ Extra parameters to be passed to ``argcomplete.autocomplete()``.
16
16
  """
17
17
 
18
18
  # vim: set ts=4 sts=4 sw=4 et ai si sta:
@@ -13,11 +13,20 @@ from io import TextIOWrapper
13
13
  from os.path import exists, isdir, realpath
14
14
  from typing import Dict, Iterator, List, NoReturn, Tuple
15
15
 
16
+ from colorama import Fore, Style
17
+ from colorama import init as color_init
18
+
16
19
  from ..types import IndentMap
17
20
  from ..util import die
18
21
 
19
22
  _JSON_FILE: str = realpath("./vim_eof_comment/comments/filetypes.json")
20
23
 
24
+ _BLUE: int = Fore.BLUE
25
+ _YELLOW: int = Fore.YELLOW
26
+ _CYAN: int = Fore.CYAN
27
+ _BRIGHT: int = Style.BRIGHT
28
+ _RESET: int = Style.RESET_ALL
29
+
21
30
 
22
31
  def import_json() -> Tuple[Dict[str, str], Dict[str, IndentMap]]:
23
32
  """
@@ -195,15 +204,48 @@ class Comments():
195
204
  return comments.get(ext, None)
196
205
 
197
206
 
207
+ def generate_list_items(ft: str, level: int, expandtab: str) -> str:
208
+ """
209
+ Generate a colored string for filetypes listing.
210
+
211
+ Parameters
212
+ ----------
213
+ ft : str
214
+ The filetype item in question.
215
+ level : int
216
+ Indent size.
217
+ expandtab : str
218
+ Either ``"Yes"`` or ``"No"``.
219
+
220
+ Returns
221
+ -------
222
+ str
223
+ The generated string.
224
+ """
225
+ txt = f"{_RESET}{_BRIGHT}{_BLUE}{ft}\n"
226
+ txt += f" {_RESET}{_BRIGHT}indent size{_RESET}{_BRIGHT} ==> {_CYAN}{level}\n"
227
+ txt += f" {_RESET}{_BRIGHT}expandtab{_RESET}{_BRIGHT} ==> {_CYAN}{expandtab}"
228
+
229
+ return txt
230
+
231
+
198
232
  def list_filetypes() -> NoReturn:
199
233
  """List all available filetypes."""
200
- txt: List[str] = [""]
234
+ color_init()
235
+
236
+ defaults = Comments().get_defaults()
237
+ items: Dict[str, Tuple[int, str]] = dict()
238
+ for ft_ext, indents in defaults.items():
239
+ level: int = indents.get("level", 4)
240
+ et = "Yes" if indents.get("expandtab") else "No"
241
+ items[ft_ext] = (level, et)
242
+
243
+ keys: List[str] = list(items.keys())
244
+ keys.sort()
201
245
 
202
- c: Comments = Comments()
203
- defaults: Dict[str, IndentMap] = c.get_defaults()
204
- for ext, indents in defaults.items():
205
- txt.append(f"- {ext}: {indents}")
246
+ sorted_items: Dict[str, Tuple[int, str]] = {i: items[i] for i in keys}
206
247
 
248
+ txt = [generate_list_items(k, v[0], v[1]) for k, v in sorted_items.items()]
207
249
  die(*txt, code=0, sep="\n")
208
250
 
209
251
 
vim_eof_comment/eof.py CHANGED
@@ -19,8 +19,8 @@ from .comments.generator import Comments, list_filetypes
19
19
  from .file import bootstrap_paths, get_last_line, modify_file, open_batch_paths
20
20
  from .regex import matches
21
21
  from .types import BatchPathDict, EOFCommentSearch, IndentHandler, IOWrapperBool
22
- from .util import die, gen_indent_maps, verbose_print, version_print
23
- from .version import __version__, list_versions
22
+ from .util import die, gen_indent_maps, verbose_print
23
+ from .version import __version__, list_versions, version_print
24
24
 
25
25
  _RED: int = Fore.LIGHTRED_EX
26
26
  _GREEN: int = Fore.LIGHTGREEN_EX
vim_eof_comment/util.py CHANGED
@@ -5,7 +5,7 @@ EOF comments checker utilities.
5
5
 
6
6
  Copyright (c) 2025 Guennadi Maximov C. All Rights Reserved.
7
7
  """
8
- __all__ = ["die", "error", "gen_indent_maps", "verbose_print", "version_print"]
8
+ __all__ = ["die", "error", "gen_indent_maps", "verbose_print"]
9
9
 
10
10
  from sys import exit as Exit
11
11
  from sys import stderr, stdout
@@ -117,22 +117,6 @@ def verbose_print(*msg, verbose: bool | None = None, **kwargs) -> NoReturn:
117
117
  print(*msg, end=end, sep=sep, flush=flush)
118
118
 
119
119
 
120
- def version_print(version: str) -> NoReturn:
121
- """
122
- Print project version, then exit.
123
-
124
- Parameters
125
- ----------
126
- version : str
127
- The version string.
128
-
129
- See Also
130
- --------
131
- vim_eof_comment.util.die : The function used for this function.
132
- """
133
- die(f"vim-eof-comment-{version}", code=0)
134
-
135
-
136
120
  def gen_indent_maps(maps: List[IndentHandler]) -> Dict[str, IndentMap] | None:
137
121
  """
138
122
  Generate a dictionary from the custom indent maps.
vim_eof_comment/util.pyi CHANGED
@@ -2,7 +2,7 @@ from typing import Callable, NoReturn, TextIO
2
2
 
3
3
  from .types import IndentHandler, IndentMap
4
4
 
5
- __all__ = ['die', 'error', 'gen_indent_maps', 'verbose_print', 'version_print']
5
+ __all__ = ['die', 'error', 'gen_indent_maps', 'verbose_print']
6
6
 
7
7
  def error(*msg, **kwargs) -> NoReturn:
8
8
  """
@@ -77,19 +77,6 @@ def verbose_print(*msg, verbose: bool | None = None, **kwargs) -> NoReturn:
77
77
  --------
78
78
  print : This function is essentially being wrapped around here.
79
79
  """
80
- def version_print(version: str) -> NoReturn:
81
- """
82
- Print project version, then exit.
83
-
84
- Parameters
85
- ----------
86
- version : str
87
- The version string.
88
-
89
- See Also
90
- --------
91
- vim_eof_comment.util.die : The function used for this function.
92
- """
93
80
  def gen_indent_maps(maps: list[IndentHandler]) -> dict[str, IndentMap] | None:
94
81
  """
95
82
  Generate a dictionary from the custom indent maps.
@@ -5,7 +5,7 @@ Custom vim-eof-comment versioning objects.
5
5
 
6
6
  Copyright (c) 2025 Guennadi Maximov C. All Rights Reserved.
7
7
  """
8
- __all__ = ["VersionInfo", "list_versions", "version_info", "__version__"]
8
+ __all__ = ["VersionInfo", "list_versions", "version_info", "version_print", "__version__"]
9
9
 
10
10
  from typing import List, NoReturn, Tuple
11
11
 
@@ -103,7 +103,7 @@ class VersionInfo():
103
103
  Only one definition in constructor.
104
104
 
105
105
  >>> from vim_eof_comment.version import VersionInfo
106
- >>> print(VersionInfo([(0, 0, 1)]))
106
+ >>> print(repr(VersionInfo([(0, 0, 1)])))
107
107
  0.0.1
108
108
 
109
109
  Multiple definitions in constructor.
@@ -163,7 +163,7 @@ class VersionInfo():
163
163
  return result
164
164
 
165
165
 
166
- version_info: VersionInfo = VersionInfo([
166
+ version_info = VersionInfo([
167
167
  (0, 1, 1),
168
168
  (0, 1, 2),
169
169
  (0, 1, 3),
@@ -219,6 +219,8 @@ version_info: VersionInfo = VersionInfo([
219
219
  (0, 3, 10),
220
220
  (0, 3, 11),
221
221
  (0, 3, 12),
222
+ (0, 3, 13),
223
+ (0, 3, 14),
222
224
  ])
223
225
 
224
226
  __version__: str = str(version_info)
@@ -226,7 +228,18 @@ __version__: str = str(version_info)
226
228
 
227
229
  def list_versions() -> NoReturn:
228
230
  """List all versions."""
229
- all_versions: str = version_info.get_all_versions()
230
- die(all_versions, code=0)
231
+ die(version_info.get_all_versions(), code=0)
232
+
233
+
234
+ def version_print(version: str) -> NoReturn:
235
+ """
236
+ Print project version, then exit.
237
+
238
+ Parameters
239
+ ----------
240
+ version : str
241
+ The version string.
242
+ """
243
+ die(f"vim-eof-comment-{version}", code=0)
231
244
 
232
245
  # vim: set ts=4 sts=4 sw=4 et ai si sta:
@@ -1,6 +1,8 @@
1
1
  from typing import NoReturn
2
2
 
3
- __all__ = ['VersionInfo', 'list_versions', 'version_info', '__version__']
3
+ from _typeshed import Incomplete
4
+
5
+ __all__ = ['VersionInfo', 'list_versions', 'version_info', 'version_print', '__version__']
4
6
 
5
7
  class VersionInfo:
6
8
  """
@@ -82,7 +84,7 @@ class VersionInfo:
82
84
  Only one definition in constructor.
83
85
 
84
86
  >>> from vim_eof_comment.version import VersionInfo
85
- >>> print(VersionInfo([(0, 0, 1)]))
87
+ >>> print(repr(VersionInfo([(0, 0, 1)])))
86
88
  0.0.1
87
89
 
88
90
  Multiple definitions in constructor.
@@ -124,10 +126,19 @@ class VersionInfo:
124
126
  0.0.3 (latest)
125
127
  """
126
128
 
127
- version_info: VersionInfo
129
+ version_info: Incomplete
128
130
  __version__: str
129
131
 
130
132
  def list_versions() -> NoReturn:
131
133
  """List all versions."""
134
+ def version_print(version: str) -> NoReturn:
135
+ """
136
+ Print project version, then exit.
137
+
138
+ Parameters
139
+ ----------
140
+ version : str
141
+ The version string.
142
+ """
132
143
 
133
144
  # vim: set ts=4 sts=4 sw=4 et ai si sta:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vim-eof-comment
3
- Version: 0.3.12
3
+ Version: 0.3.14
4
4
  Summary: Adds Vim EOF comments for given filetypes in given directories
5
5
  Author-email: Guennadi Maximov C <g.maxc.fox@protonmail.com>
6
6
  Maintainer-email: Guennadi Maximov C <g.maxc.fox@protonmail.com>
@@ -30,7 +30,6 @@ License-File: LICENSE
30
30
  Requires-Dist: argcomplete
31
31
  Requires-Dist: argparse
32
32
  Requires-Dist: colorama
33
- Requires-Dist: python-magic
34
33
  Requires-Dist: setuptools
35
34
  Requires-Dist: typing
36
35
  Requires-Dist: wheel
@@ -7,7 +7,7 @@ docs/source/installation.rst,sha256=PkiS3E_ujNTWeKXicZ7aBPch2l1R0TsRRL6pFj_oMJI,
7
7
  vim_eof_comment/__init__.py,sha256=ESbmhca9mTst3TYMer8zFw73IRsJvn5EESci_RpfLbQ,487
8
8
  vim_eof_comment/__init__.pyi,sha256=Eh8FQwE_F9TrQEiT7CR1mdGHBT6fHUzfV6VP8uSN33g,478
9
9
  vim_eof_comment/__main__.py,sha256=0AFVSkz8RuxSuPbJJWycyxs6u5Yypl8FKUMR3ZVLJbk,343
10
- vim_eof_comment/eof.py,sha256=ZT87ltzdnQLMoKZ6sx1QwRdSMcfjkFVWFEe9gwPkmqY,5159
10
+ vim_eof_comment/eof.py,sha256=gjnqU5rWeN5WjPsfjw2j41sfbBJdnZzdzmrBhMYC0Ms,5159
11
11
  vim_eof_comment/eof.pyi,sha256=BTw9brhrHBTX12fYuwfO8_D-Gyrf0387ErmgrcTdvh0,1786
12
12
  vim_eof_comment/file.py,sha256=o_bWoBRehRWwzCozO-9DDf7G5-dU92nm-5mX1CxvlW4,4182
13
13
  vim_eof_comment/file.pyi,sha256=BWBtHbFkAdiNSRfe9SQBJvxtH3WHZfIgz03kFsIWX4w,1950
@@ -16,24 +16,24 @@ vim_eof_comment/regex.py,sha256=rGfFIBMbfWlIxAScXqvgBlB-tMJBUxQwTVjEkoxDZ3o,1007
16
16
  vim_eof_comment/regex.pyi,sha256=LJt6HN9s0Vo1B5plpaYURVZ3okmtl5jnV6kKdn1KyqA,433
17
17
  vim_eof_comment/types.py,sha256=q8q5FcWLyisRQ-aWUmY9pCVO8YjvEYQ9yNaGNZRZsIY,3832
18
18
  vim_eof_comment/types.pyi,sha256=2DWWKheDuztFlKZZkaYQYELaZVWoZzdi2UfQNsqBmqE,3562
19
- vim_eof_comment/util.py,sha256=k2cCknGHnpitRRDMNkEYzuMbwMtZ1eqyr9okgZQDwyg,4461
20
- vim_eof_comment/util.pyi,sha256=2o50NhjhYm0gLHkCcUXNvFNjWc6kP5Xuo0r_sngRg1U,2963
21
- vim_eof_comment/version.py,sha256=igN9itTpm1CIOrWUoIRc9YcyZdh6Vfq76Ly-oi08nI8,5457
22
- vim_eof_comment/version.pyi,sha256=tFXP9Be8ChJLKy6MEiiTR9l-0bn5uJMYIOSrvn2LlMQ,3460
19
+ vim_eof_comment/util.py,sha256=0-SUdHqpgMdwHauZawaY3KL5FkIfe1u2zA1AHb80ez8,4125
20
+ vim_eof_comment/util.pyi,sha256=5RQukLgpVZTwbALhBOtd1NqFkiqC-V6JEWeT1_B9-2k,2675
21
+ vim_eof_comment/version.py,sha256=6Mte7F-FCo1MH3e9jn9TRYH3mvUMg7gedL6-ThzYL6c,5686
22
+ vim_eof_comment/version.pyi,sha256=suF5VwVtpA0rVOuKpa6cvJ8TNocXgtJiI51DRrpzOTs,3692
23
23
  vim_eof_comment/args/__init__.py,sha256=Hyqun15456NVFLAJ3cpdtuNEz5XaFH93vfVlbC-aeuc,318
24
24
  vim_eof_comment/args/__init__.pyi,sha256=cXK7nEpYBveD4kxtVTe2x8oUxT9mhENS5r3wK3AAX2U,151
25
- vim_eof_comment/args/completion.py,sha256=wnN9r5Y-t7r3As558_bAq2XzLqg-HTzR8_ufXU-9bpU,779
26
- vim_eof_comment/args/completion.pyi,sha256=kB4X_7NaSIuPqL8zbcBszewyLh-evB-9TYfYLOjCU4A,408
25
+ vim_eof_comment/args/completion.py,sha256=ddK6xcpR6SpcGXH7m6m6h9DhB5QMoai324WVvtwwplw,1248
26
+ vim_eof_comment/args/completion.pyi,sha256=svMFBL6vfiqctncHkOMwxzuufzV3y5VfGic3o71UU4o,455
27
27
  vim_eof_comment/args/parsing.py,sha256=AOHLN-K0vzbXBwsOjUv4ZcXMDbF_BDEONonZJFwwazo,6617
28
28
  vim_eof_comment/args/parsing.pyi,sha256=czQNpDTfgUCv1P_bxHykUD9WDn5A8tnz396TT7oEdkY,1745
29
29
  vim_eof_comment/comments/__init__.py,sha256=KIFAbugEKa8arCASaf7pKNHdzUC99N_T18D1CfaCOQs,292
30
30
  vim_eof_comment/comments/__init__.pyi,sha256=cecbbrShh0If8btwJ8zKYpBt9dIsMwrDXbdaBQqwUus,104
31
31
  vim_eof_comment/comments/filetypes.json,sha256=cjKvqTx2TflOUWrYqD7vvPDJ7KpPaVr-HrNO3OHrBfA,4736
32
- vim_eof_comment/comments/generator.py,sha256=lJ8Ux922JebBk-6BjC8ZlkmpXuN-ZeGP6g25EEusvIk,6407
32
+ vim_eof_comment/comments/generator.py,sha256=RuSdZgUVXt9AuqktKkkFfzrxEWw0tqGoy5BofANkgzs,7531
33
33
  vim_eof_comment/comments/generator.pyi,sha256=Nj33jwria5FWUuydUD_uZSH__PxSZ3yPxOPYF1_TIpM,3272
34
- vim_eof_comment-0.3.12.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
35
- vim_eof_comment-0.3.12.dist-info/METADATA,sha256=ReV25DOt8j3I1MYb1qSF-OF75gVrMkA_CigOYD7azZU,2804
36
- vim_eof_comment-0.3.12.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
- vim_eof_comment-0.3.12.dist-info/entry_points.txt,sha256=vm47g4hoUbow4elcHr9yylYfj6IvAs10wSFKqwqTu6E,61
38
- vim_eof_comment-0.3.12.dist-info/top_level.txt,sha256=TkaQ5vuhVzXaJnfUdcLJCQ81ILK2V6OtvX5-hIMZAc0,21
39
- vim_eof_comment-0.3.12.dist-info/RECORD,,
34
+ vim_eof_comment-0.3.14.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
35
+ vim_eof_comment-0.3.14.dist-info/METADATA,sha256=bAjhWLOdtEpPGDzpAdZoD8ORu4IelVXqBCKNUdWZFWc,2776
36
+ vim_eof_comment-0.3.14.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
+ vim_eof_comment-0.3.14.dist-info/entry_points.txt,sha256=vm47g4hoUbow4elcHr9yylYfj6IvAs10wSFKqwqTu6E,61
38
+ vim_eof_comment-0.3.14.dist-info/top_level.txt,sha256=TkaQ5vuhVzXaJnfUdcLJCQ81ILK2V6OtvX5-hIMZAc0,21
39
+ vim_eof_comment-0.3.14.dist-info/RECORD,,