Skip to content

Commit b707d29

Browse files
authored
Recognize -stubs directories as valid package directories (#9445)
Fixes #8229
1 parent 4325aae commit b707d29

File tree

2 files changed

+38
-0
lines changed

2 files changed

+38
-0
lines changed

mypy/find_sources.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,8 @@ def crawl_up_dir(self, dir: str) -> Tuple[str, str]:
128128
base_dir = dir or '.'
129129
else:
130130
# Ensure that base is a valid python module name
131+
if base.endswith('-stubs'):
132+
base = base[:-6] # PEP-561 stub-only directory
131133
if not base.isidentifier():
132134
raise InvalidSourceList('{} is not a valid Python package name'.format(base))
133135
parent, base_dir = self.crawl_up_dir(parent_dir)

test-data/unit/cmdline.test

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1176,3 +1176,39 @@ usage: mypy [-h] [-v] [-V] [more options; see below]
11761176
[-m MODULE] [-p PACKAGE] [-c PROGRAM_TEXT] [files ...]
11771177
mypy: error: Invalid error code(s): YOLO
11781178
== Return code: 2
1179+
1180+
[case testStubsDirectory]
1181+
# cmd: mypy --error-summary pkg-stubs
1182+
[file pkg-stubs/__init__.pyi]
1183+
[file pkg-stubs/thing.pyi]
1184+
class Thing: ...
1185+
[out]
1186+
Success: no issues found in 2 source files
1187+
== Return code: 0
1188+
1189+
[case testStubsDirectoryFile]
1190+
# cmd: mypy --error-summary pkg-stubs/thing.pyi
1191+
[file pkg-stubs/__init__.pyi]
1192+
[file pkg-stubs/thing.pyi]
1193+
class Thing: ...
1194+
[out]
1195+
Success: no issues found in 1 source file
1196+
== Return code: 0
1197+
1198+
[case testStubsSubDirectory]
1199+
# cmd: mypy --error-summary src/pkg-stubs
1200+
[file src/pkg-stubs/__init__.pyi]
1201+
[file src/pkg-stubs/thing.pyi]
1202+
class Thing: ...
1203+
[out]
1204+
Success: no issues found in 2 source files
1205+
== Return code: 0
1206+
1207+
[case testStubsSubDirectoryFile]
1208+
# cmd: mypy --error-summary src/pkg-stubs/thing.pyi
1209+
[file src/pkg-stubs/__init__.pyi]
1210+
[file src/pkg-stubs/thing.pyi]
1211+
class Thing: ...
1212+
[out]
1213+
Success: no issues found in 1 source file
1214+
== Return code: 0

0 commit comments

Comments
 (0)