-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathframeworklist.py
82 lines (60 loc) · 2.41 KB
/
frameworklist.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
import os
import json
import csv
def duplicates(x):
return list(dict.fromkeys(x))
def listdirs(folder):
return [
d for d in (os.path.join(folder, d1) for d1 in os.listdir(folder))
if os.path.isdir(d)
]
def get_fileextension():
with open('frameworks.json', 'r') as json_file:
data=json_file.read()
frameworks = json.loads(data)
extension = []
for i in range(len(frameworks)):
extension.append(frameworks[i].get("endung"))
extensionlist = [item for elem in extension for item in elem]
return tuple(extensionlist)
def findframeworks(path):
with open('frameworks.json', 'r') as json_file:
data=json_file.read()
frameworksjson = json.loads(data)
frameworklist = []
with open(path,'r',newline='', encoding='ISO-8859-1') as f:
line = f.readline()
while line:
for i in range(len(frameworksjson)):
for j in range(len(frameworksjson[i].get("frameworks"))):
header = frameworksjson[i].get("frameworks")[j].get("header")
for head in header:
if line.startswith(head):
frameworklist.append(frameworksjson[i].get("frameworks")[j].get('name'))
line = f.readline()
return frameworklist
def get_frameworks(path):
folders = listdirs(path)
frameDict = {}
for repo in folders:
frameworks = []
for root, dirs, files in os.walk(repo):
try:
if os.path.isdir(root):
for file in files:
fp = os.path.abspath(os.path.join(root, file))
if file.endswith(get_fileextension()):
frameworks = frameworks + findframeworks(os.path.join(root,file))
except FileNotFoundError:
print("File not found!")
frameworks = duplicates(frameworks)
reponame = repo.split("/")[-1]
frameDict[reponame] = frameworks
return frameDict
if __name__ == '__main__':
dict = get_frameworks("/vol3/erhan/crawl-github1")
with open('frameworks.csv', 'w', newline='') as file:
writer = csv.writer(file, delimiter=';')
writer.writerow(["Repo","Frameworks"])
for key in dict.keys():
writer.writerow([key, dict[key]])