Skip to content

Commit 3e7f5de

Browse files
jwahjudianotherminhjwahjudi
authored
Add Python Requirement Scan (#40)
* add python requirement * clean up Co-authored-by: anotherminh <[email protected]> Co-authored-by: jwahjudi <[email protected]>
1 parent ce5919c commit 3e7f5de

File tree

4 files changed

+35
-2
lines changed

4 files changed

+35
-2
lines changed

src/plugins/constants.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
import { SiloDiscoveryConfig } from './types';
2-
import { javascriptPackageJson, cocoapods } from './integrations';
2+
import {
3+
javascriptPackageJson,
4+
cocoapods,
5+
pythonRequirementsTxt,
6+
} from './integrations';
37

48
export const SILO_DISCOVERY_FUNCTIONS: {
59
[k in string]: SiloDiscoveryConfig;
610
} = {
711
javascriptPackageJson,
812
cocoapods,
13+
pythonRequirementsTxt,
914
};
1015

1116
/**

src/plugins/integrations/index.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
export * from './cocoapods';
2-
export * from './packageJson';
2+
export * from './javascriptPackageJson';
3+
export * from './pythonRequirementsTxt';
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { readFileSync } from 'fs';
2+
import { SiloDiscoveryConfig } from '../types';
3+
4+
export const pythonRequirementsTxt: SiloDiscoveryConfig = {
5+
supportedFiles: ['requirements.txt'],
6+
ignoreDirs: ['build', 'lib', 'lib64'],
7+
scanFunction: (filePath) => {
8+
const lines = readFileSync(filePath)
9+
.toString()
10+
// split on new line character
11+
.split(String.fromCharCode(10));
12+
13+
const deps: string[] = [];
14+
15+
lines.map((line) => {
16+
if (line.includes('==')) {
17+
const dep = line.split('==')[0];
18+
if (!dep.includes('#')) {
19+
deps.push(dep);
20+
}
21+
}
22+
return deps;
23+
});
24+
25+
return deps;
26+
},
27+
};

0 commit comments

Comments
 (0)