Skip to content

Commit 27ca7f5

Browse files
vdusekclaude
andcommitted
fix: exclude subpackages from Python package discovery
When src/ is itself a Python package (has __init__.py), don't search inside it for additional packages. Anything inside would be a subpackage, not a separate top-level package. This fixes Scrapy template detection where src/ contains both __init__.py and a spiders/ subpackage with its own __init__.py. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent da08ced commit 27ca7f5

File tree

1 file changed

+5
-2
lines changed

1 file changed

+5
-2
lines changed

src/lib/hooks/useCwdProject.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -329,9 +329,12 @@ async function discoverPythonPackages(cwd: string): Promise<string[]> {
329329
const level1Packages = await findPackagesInDir(cwd);
330330
packages.push(...level1Packages.map((p) => p.name));
331331

332-
// Search level 2 (src/)
332+
// Search level 2 (src/) - only if src/ is NOT itself a package
333+
// If src/ has __init__.py, it's a package and anything inside is a subpackage, not a top-level package
333334
const srcDir = join(cwd, 'src');
334-
if (await dirExists(srcDir)) {
335+
const srcIsPackage = await fileExists(join(srcDir, '__init__.py'));
336+
337+
if ((await dirExists(srcDir)) && !srcIsPackage) {
335338
const level2Packages = await findPackagesInDir(srcDir);
336339
packages.push(...level2Packages.map((p) => `src.${p.name}`));
337340
}

0 commit comments

Comments
 (0)