requirements   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 25
dl 0
loc 39
rs 10
c 0
b 0
f 0
wmc 5

1 Function

Rating   Name   Duplication   Size   Complexity  
A main() 0 28 5
1
import subprocess
2
3
4
def main():
5
    # generate requirements
6
    process = subprocess.Popen(
7
        ['pipreqs', './', '--force'],
8
        stdin=subprocess.PIPE,
9
        stdout=subprocess.PIPE,
10
        stderr=subprocess.PIPE
11
    )
12
    out, err = process.communicate()
13
    if process.returncode != 0:
14
        print(str(err, 'utf-8'))
15
        return
16
17
    # settings
18
    requirements_file = 'requirements.txt'
19
20
    # read
21
    with open(requirements_file, 'r') as requirements:
22
        content = requirements.read().splitlines()
23
24
    # sort content
25
    content = list(set(content))
26
    content.sort(key=lambda y: y.lower())
27
    content = '\n'.join(content)
28
29
    # save
30
    with open(requirements_file, 'w') as requirements:
31
        requirements.write(f'{content}\n')
32
33
34
if __name__ == '__main__':
35
    try:
36
        main()
37
    except KeyboardInterrupt:
38
        print('\nGoodbye!')
39