vim-eof-comment 0.3.20__py3-none-any.whl → 0.3.21__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.
vim_eof_comment/file.py CHANGED
@@ -15,6 +15,64 @@ from typing import Dict, List
15
15
  from .types import BatchPairDict, BatchPathDict, LineBool
16
16
  from .util import die, error
17
17
 
18
+ EXCLUDED_DIRS: List[str] = [
19
+ ".git",
20
+ ".mypy_cache",
21
+ ".ropeproject",
22
+ ".venv",
23
+ "build",
24
+ "venv",
25
+ ]
26
+
27
+
28
+ def try_open(fpath: str) -> bool:
29
+ """
30
+ Try to open a file, unless a ``UnicodeDecodeError`` triggers.
31
+
32
+ Parameters
33
+ ----------
34
+ fpath : str
35
+ The file path to try and open.
36
+
37
+ Returns
38
+ -------
39
+ bool
40
+ Whether the file triggers a ``UnicodeDecodeError`` or not.
41
+ """
42
+ file = open(fpath, "rb")
43
+ success: bool = True
44
+ try:
45
+ file.read().decode(encoding="utf8")
46
+ except UnicodeDecodeError:
47
+ success = False
48
+ except Exception:
49
+ die("Something went wrong in `try_open()`!", code=2)
50
+
51
+ file.close()
52
+ return success
53
+
54
+
55
+ def has_excluded(dir: str) -> bool:
56
+ """
57
+ Check whether a directory list contains any excluded directories.
58
+
59
+ Parameters
60
+ ----------
61
+ dir : str
62
+ The directory to check.
63
+
64
+ Returns
65
+ -------
66
+ bool
67
+ Whether an excluded directory was found.
68
+ """
69
+ dir = dir.rstrip("/")
70
+ for excluded in EXCLUDED_DIRS:
71
+ if dir.endswith(excluded):
72
+ return True
73
+
74
+ return False
75
+
18
76
 
19
77
  def bootstrap_paths(paths: List[str], exts: List[str]) -> List[BatchPairDict]:
20
78
  """
@@ -34,11 +92,22 @@ def bootstrap_paths(paths: List[str], exts: List[str]) -> List[BatchPairDict]:
34
92
  """
35
93
  result = list()
36
94
  for path in paths:
37
- if not isdir(path):
95
+ if not isdir(path) or has_excluded(path):
38
96
  continue
39
97
 
40
- file: str
98
+ root: str
99
+ dirs: List[str]
100
+ files: List[str]
41
101
  for root, dirs, files in walk(path):
102
+ excluded = False
103
+ for dir in dirs:
104
+ if has_excluded(dir):
105
+ excluded = True
106
+ break
107
+
108
+ if excluded:
109
+ continue
110
+
42
111
  for file in files:
43
112
  for ext in exts:
44
113
  if not file.endswith(ext):
@@ -66,6 +135,9 @@ def open_batch_paths(paths: List[BatchPairDict]) -> Dict[str, BatchPathDict]:
66
135
  result = dict()
67
136
  for path in paths:
68
137
  fpath, ext = path["fpath"], path["ft_ext"]
138
+ if not try_open(fpath):
139
+ continue
140
+
69
141
  try:
70
142
  result[fpath] = {"file": open(fpath, "rb"), "ft_ext": ext}
71
143
  except KeyboardInterrupt:
@@ -227,6 +227,7 @@ version_info = VersionInfo([
227
227
  (0, 3, 18),
228
228
  (0, 3, 19),
229
229
  (0, 3, 20),
230
+ (0, 3, 21),
230
231
  ])
231
232
 
232
233
  __version__: str = str(version_info)
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: vim-eof-comment
3
- Version: 0.3.20
3
+ Version: 0.3.21
4
4
  Summary: Adds Vim EOF modeline 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>
@@ -9,7 +9,7 @@ vim_eof_comment/__init__.pyi,sha256=Eh8FQwE_F9TrQEiT7CR1mdGHBT6fHUzfV6VP8uSN33g,
9
9
  vim_eof_comment/__main__.py,sha256=0AFVSkz8RuxSuPbJJWycyxs6u5Yypl8FKUMR3ZVLJbk,343
10
10
  vim_eof_comment/eof.py,sha256=JpU5v_V_4fIaWt0BJfPvgp-0ZjzhDdyj_otpusIa7a8,5160
11
11
  vim_eof_comment/eof.pyi,sha256=BTw9brhrHBTX12fYuwfO8_D-Gyrf0387ErmgrcTdvh0,1786
12
- vim_eof_comment/file.py,sha256=U-WEd53Xh1XcEePueJuoRn7awXynb5uHkYUT6dqgOMM,4277
12
+ vim_eof_comment/file.py,sha256=eIsaB8r20awtBDcUFt2oL8SD_gvpxhiCjaldK_Zh4Xs,5742
13
13
  vim_eof_comment/file.pyi,sha256=BWBtHbFkAdiNSRfe9SQBJvxtH3WHZfIgz03kFsIWX4w,1950
14
14
  vim_eof_comment/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
15
15
  vim_eof_comment/regex.py,sha256=rGfFIBMbfWlIxAScXqvgBlB-tMJBUxQwTVjEkoxDZ3o,1007
@@ -18,7 +18,7 @@ vim_eof_comment/types.py,sha256=ofo6X9sbNG1ONsofMFganJPlYYsCZmriMWuZHj7dukg,3832
18
18
  vim_eof_comment/types.pyi,sha256=dJcnOLxqVShYHSyafbNZEQJ4D3MC42A-oDtlJArApRE,3562
19
19
  vim_eof_comment/util.py,sha256=0-SUdHqpgMdwHauZawaY3KL5FkIfe1u2zA1AHb80ez8,4125
20
20
  vim_eof_comment/util.pyi,sha256=5RQukLgpVZTwbALhBOtd1NqFkiqC-V6JEWeT1_B9-2k,2675
21
- vim_eof_comment/version.py,sha256=mWLHDCOShWmvUY_-CMyPJrXpbuxuT6D84eBBJljuudM,5782
21
+ vim_eof_comment/version.py,sha256=GYzQ9G8yuBoWKkLgu5qA3-swNe3XjWMtBh4AMVGXHrs,5798
22
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
@@ -31,9 +31,9 @@ vim_eof_comment/comments/__init__.pyi,sha256=cecbbrShh0If8btwJ8zKYpBt9dIsMwrDXbd
31
31
  vim_eof_comment/comments/filetypes.json,sha256=JpSrnBNO2AivLYi-C5--8yVocyBwye3IkMesNIz1uHA,2973
32
32
  vim_eof_comment/comments/generator.py,sha256=Mi3Yi0j-8aXQnVUsXqI1VE1yW71tWemooWgO9smSilI,7731
33
33
  vim_eof_comment/comments/generator.pyi,sha256=Nj33jwria5FWUuydUD_uZSH__PxSZ3yPxOPYF1_TIpM,3272
34
- vim_eof_comment-0.3.20.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
35
- vim_eof_comment-0.3.20.dist-info/METADATA,sha256=8Ott95u7WkAzYD_8roT2jq0e91TUA8BkAw99unYhpGI,2763
36
- vim_eof_comment-0.3.20.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
- vim_eof_comment-0.3.20.dist-info/entry_points.txt,sha256=vm47g4hoUbow4elcHr9yylYfj6IvAs10wSFKqwqTu6E,61
38
- vim_eof_comment-0.3.20.dist-info/top_level.txt,sha256=TkaQ5vuhVzXaJnfUdcLJCQ81ILK2V6OtvX5-hIMZAc0,21
39
- vim_eof_comment-0.3.20.dist-info/RECORD,,
34
+ vim_eof_comment-0.3.21.dist-info/licenses/LICENSE,sha256=gXf5dRMhNSbfLPYYTY_5hsZ1r7UU1OaKQEAQUhuIBkM,18092
35
+ vim_eof_comment-0.3.21.dist-info/METADATA,sha256=SrFvzlchrAr0eJFaCWzFnrocDgrmDUhDszAMZn8eSH0,2763
36
+ vim_eof_comment-0.3.21.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
37
+ vim_eof_comment-0.3.21.dist-info/entry_points.txt,sha256=vm47g4hoUbow4elcHr9yylYfj6IvAs10wSFKqwqTu6E,61
38
+ vim_eof_comment-0.3.21.dist-info/top_level.txt,sha256=TkaQ5vuhVzXaJnfUdcLJCQ81ILK2V6OtvX5-hIMZAc0,21
39
+ vim_eof_comment-0.3.21.dist-info/RECORD,,