Merge pull request 'first commit' (#1) from first_commit into master

Reviewed-on: https://git.trustie.net/zhangyu19/OSS_model_analyze/pulls/1
This commit is contained in:
zhangyu19 2021-04-15 22:37:04 +08:00
commit 5be98e64cc
11 changed files with 20139 additions and 0 deletions

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Datasource local storage ignored files
/../../../../../../../:\Users\Administrator\Desktop\2021年4月15日\for_analyze\.idea/dataSources/
/dataSources.local.xml
# Editor-based HTTP Client requests
/httpRequests/

8
.idea/for_analyze.iml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -0,0 +1,160 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="DuplicatedCode" enabled="false" level="WEAK WARNING" enabled_by_default="false" />
<inspection_tool class="Eslint" enabled="true" level="WARNING" enabled_by_default="true" />
<inspection_tool class="PyPackageRequirementsInspection" enabled="true" level="WARNING" enabled_by_default="true">
<option name="ignoredPackages">
<value>
<list size="137">
<item index="0" class="java.lang.String" itemvalue="absl-py" />
<item index="1" class="java.lang.String" itemvalue="gensim" />
<item index="2" class="java.lang.String" itemvalue="google-pasta" />
<item index="3" class="java.lang.String" itemvalue="joblib" />
<item index="4" class="java.lang.String" itemvalue="nanotime" />
<item index="5" class="java.lang.String" itemvalue="googleapis-common-protos" />
<item index="6" class="java.lang.String" itemvalue="nltk" />
<item index="7" class="java.lang.String" itemvalue="Click" />
<item index="8" class="java.lang.String" itemvalue="gast" />
<item index="9" class="java.lang.String" itemvalue="azure-common" />
<item index="10" class="java.lang.String" itemvalue="oauth2" />
<item index="11" class="java.lang.String" itemvalue="appdirs" />
<item index="12" class="java.lang.String" itemvalue="aliyun-python-sdk-core-v3" />
<item index="13" class="java.lang.String" itemvalue="aliyun-python-sdk-core" />
<item index="14" class="java.lang.String" itemvalue="jsonpath-ng" />
<item index="15" class="java.lang.String" itemvalue="bleach" />
<item index="16" class="java.lang.String" itemvalue="certifi" />
<item index="17" class="java.lang.String" itemvalue="docutils" />
<item index="18" class="java.lang.String" itemvalue="entrypoints" />
<item index="19" class="java.lang.String" itemvalue="Markdown" />
<item index="20" class="java.lang.String" itemvalue="jsonschema" />
<item index="21" class="java.lang.String" itemvalue="google-api-core" />
<item index="22" class="java.lang.String" itemvalue="notebook" />
<item index="23" class="java.lang.String" itemvalue="GitPython" />
<item index="24" class="java.lang.String" itemvalue="gitdb2" />
<item index="25" class="java.lang.String" itemvalue="libarchive-c" />
<item index="26" class="java.lang.String" itemvalue="Werkzeug" />
<item index="27" class="java.lang.String" itemvalue="h5py" />
<item index="28" class="java.lang.String" itemvalue="kiwisolver" />
<item index="29" class="java.lang.String" itemvalue="jupyter-client" />
<item index="30" class="java.lang.String" itemvalue="ipykernel" />
<item index="31" class="java.lang.String" itemvalue="nbconvert" />
<item index="32" class="java.lang.String" itemvalue="appnope" />
<item index="33" class="java.lang.String" itemvalue="attrs" />
<item index="34" class="java.lang.String" itemvalue="bcrypt" />
<item index="35" class="java.lang.String" itemvalue="jedi" />
<item index="36" class="java.lang.String" itemvalue="boto3" />
<item index="37" class="java.lang.String" itemvalue="backcall" />
<item index="38" class="java.lang.String" itemvalue="configparser" />
<item index="39" class="java.lang.String" itemvalue="oss2" />
<item index="40" class="java.lang.String" itemvalue="asciimatics" />
<item index="41" class="java.lang.String" itemvalue="humanize" />
<item index="42" class="java.lang.String" itemvalue="Keras" />
<item index="43" class="java.lang.String" itemvalue="atpublic" />
<item index="44" class="java.lang.String" itemvalue="google-cloud-core" />
<item index="45" class="java.lang.String" itemvalue="mysql-connector-python-rf" />
<item index="46" class="java.lang.String" itemvalue="distro" />
<item index="47" class="java.lang.String" itemvalue="decorator" />
<item index="48" class="java.lang.String" itemvalue="jupyter-core" />
<item index="49" class="java.lang.String" itemvalue="networkx" />
<item index="50" class="java.lang.String" itemvalue="azure-storage-common" />
<item index="51" class="java.lang.String" itemvalue="pandocfilters" />
<item index="52" class="java.lang.String" itemvalue="flufl.lock" />
<item index="53" class="java.lang.String" itemvalue="httplib2" />
<item index="54" class="java.lang.String" itemvalue="crcmod" />
<item index="55" class="java.lang.String" itemvalue="google-cloud-storage" />
<item index="56" class="java.lang.String" itemvalue="Jinja2" />
<item index="57" class="java.lang.String" itemvalue="google-resumable-media" />
<item index="58" class="java.lang.String" itemvalue="Keras-Preprocessing" />
<item index="59" class="java.lang.String" itemvalue="get" />
<item index="60" class="java.lang.String" itemvalue="funcy" />
<item index="61" class="java.lang.String" itemvalue="botocore" />
<item index="62" class="java.lang.String" itemvalue="asn1crypto" />
<item index="63" class="java.lang.String" itemvalue="nbformat" />
<item index="64" class="java.lang.String" itemvalue="astor" />
<item index="65" class="java.lang.String" itemvalue="ipython" />
<item index="66" class="java.lang.String" itemvalue="packaging" />
<item index="67" class="java.lang.String" itemvalue="grandalf" />
<item index="68" class="java.lang.String" itemvalue="Keras-Applications" />
<item index="69" class="java.lang.String" itemvalue="jmespath" />
<item index="70" class="java.lang.String" itemvalue="mistune" />
<item index="71" class="java.lang.String" itemvalue="s3transfer" />
<item index="72" class="java.lang.String" itemvalue="azure-storage-blob" />
<item index="73" class="java.lang.String" itemvalue="aliyun-python-sdk-kms" />
<item index="74" class="java.lang.String" itemvalue="colorama" />
<item index="75" class="java.lang.String" itemvalue="future" />
<item index="76" class="java.lang.String" itemvalue="cachetools" />
<item index="77" class="java.lang.String" itemvalue="configobj" />
<item index="78" class="java.lang.String" itemvalue="imblearn" />
<item index="79" class="java.lang.String" itemvalue="inflect" />
<item index="80" class="java.lang.String" itemvalue="imbalanced-learn" />
<item index="81" class="java.lang.String" itemvalue="google-auth" />
<item index="82" class="java.lang.String" itemvalue="traitlets" />
<item index="83" class="java.lang.String" itemvalue="protobuf" />
<item index="84" class="java.lang.String" itemvalue="tensorflow-estimator" />
<item index="85" class="java.lang.String" itemvalue="testpath" />
<item index="86" class="java.lang.String" itemvalue="PyYAML" />
<item index="87" class="java.lang.String" itemvalue="pickleshare" />
<item index="88" class="java.lang.String" itemvalue="python-dateutil" />
<item index="89" class="java.lang.String" itemvalue="pycparser" />
<item index="90" class="java.lang.String" itemvalue="pyasn1-modules" />
<item index="91" class="java.lang.String" itemvalue="ipython-genutils" />
<item index="92" class="java.lang.String" itemvalue="post" />
<item index="93" class="java.lang.String" itemvalue="PyNaCl" />
<item index="94" class="java.lang.String" itemvalue="contextlib2" />
<item index="95" class="java.lang.String" itemvalue="Pygments" />
<item index="96" class="java.lang.String" itemvalue="shortuuid" />
<item index="97" class="java.lang.String" itemvalue="pyparsing" />
<item index="98" class="java.lang.String" itemvalue="query-string" />
<item index="99" class="java.lang.String" itemvalue="wrapt" />
<item index="100" class="java.lang.String" itemvalue="pexpect" />
<item index="101" class="java.lang.String" itemvalue="paramiko" />
<item index="102" class="java.lang.String" itemvalue="tensorboard" />
<item index="103" class="java.lang.String" itemvalue="PySocks" />
<item index="104" class="java.lang.String" itemvalue="virtualenv" />
<item index="105" class="java.lang.String" itemvalue="pyfiglet" />
<item index="106" class="java.lang.String" itemvalue="idna" />
<item index="107" class="java.lang.String" itemvalue="schema" />
<item index="108" class="java.lang.String" itemvalue="smmap2" />
<item index="109" class="java.lang.String" itemvalue="pathspec" />
<item index="110" class="java.lang.String" itemvalue="rsa" />
<item index="111" class="java.lang.String" itemvalue="ptyprocess" />
<item index="112" class="java.lang.String" itemvalue="wcwidth" />
<item index="113" class="java.lang.String" itemvalue="pyasn1" />
<item index="114" class="java.lang.String" itemvalue="requests" />
<item index="115" class="java.lang.String" itemvalue="pyrsistent" />
<item index="116" class="java.lang.String" itemvalue="public" />
<item index="117" class="java.lang.String" itemvalue="pyOpenSSL" />
<item index="118" class="java.lang.String" itemvalue="ruamel.yaml.clib" />
<item index="119" class="java.lang.String" itemvalue="smart-open" />
<item index="120" class="java.lang.String" itemvalue="prompt-toolkit" />
<item index="121" class="java.lang.String" itemvalue="urllib3" />
<item index="122" class="java.lang.String" itemvalue="six" />
<item index="123" class="java.lang.String" itemvalue="tornado" />
<item index="124" class="java.lang.String" itemvalue="parso" />
<item index="125" class="java.lang.String" itemvalue="ruamel.yaml" />
<item index="126" class="java.lang.String" itemvalue="Send2Trash" />
<item index="127" class="java.lang.String" itemvalue="prometheus-client" />
<item index="128" class="java.lang.String" itemvalue="tqdm" />
<item index="129" class="java.lang.String" itemvalue="schedule" />
<item index="130" class="java.lang.String" itemvalue="termcolor" />
<item index="131" class="java.lang.String" itemvalue="pytz" />
<item index="132" class="java.lang.String" itemvalue="ply" />
<item index="133" class="java.lang.String" itemvalue="webencodings" />
<item index="134" class="java.lang.String" itemvalue="boto" />
<item index="135" class="java.lang.String" itemvalue="MarkupSafe" />
<item index="136" class="java.lang.String" itemvalue="itsdangerous" />
</list>
</value>
</option>
</inspection_tool>
<inspection_tool class="PyPep8NamingInspection" enabled="true" level="WEAK WARNING" enabled_by_default="true">
<option name="ignoredErrors">
<list>
<option value="N802" />
<option value="N803" />
</list>
</option>
</inspection_tool>
</profile>
</component>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>
</component>

4
.idea/misc.xml Normal file
View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.8 (2)" project-jdk-type="Python SDK" />
</project>

8
.idea/modules.xml Normal file
View File

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/for_analyze.iml" filepath="$PROJECT_DIR$/.idea/for_analyze.iml" />
</modules>
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

45
data_analyze.py Normal file
View File

@ -0,0 +1,45 @@
import jsonlines
import numpy as np
import matplotlib.pyplot as plt
import math
def auto_label(current_bar):
inf = float('-inf')
for i in range(0,len(current_bar)):
height = current_bar[i].get_height()
if height == inf :
continue
plt.text(current_bar[i].get_x()+current_bar[i].get_width()/2.-0.6, height, '%s' % int(pow(10,height)),color = "b",size=7, rotation=10)
with open("./search_result.txt",'r') as f:
reader = jsonlines.Reader(f)
star_num, fork_num = np.zeros(100), np.zeros(100)
# star_num, fork_num = {}, {}
for item in reader:
star_num[item['stars']] += 1
fork_num[item['forks']] += 1
for i in range(1,len(star_num)+1):
if star_num[-i] != 0:
print(100-i)
x = np.arange(0,100,1)
a = plt.bar(x, np.log10(star_num))
auto_label(a)
plt.xlabel("#stars")
plt.ylabel("#repository (log)")
plt.title("Distributions on stars of repositories forked from rails/rails")
plt.show()
for i in range(1,len(fork_num)+1):
if fork_num[-i] != 0:
print(100-i)
b = plt.bar(x, np.log10(fork_num))
auto_label(b)
plt.xlabel("#forks")
plt.ylabel("#repository (log)")
plt.title("Distributions on forks of repositories forked from rails/rails")
plt.show()

16
main.py Normal file
View File

@ -0,0 +1,16 @@
# This is a sample Python script.
# Press Shift+F10 to execute it or replace it with your code.
# Press Double Shift to search everywhere for classes, files, tool windows, actions, and settings.
def print_hi(name):
# Use a breakpoint in the code line below to debug your script.
print(f'Hi, {name}') # Press Ctrl+F8 to toggle the breakpoint.
# Press the green button in the gutter to run the script.
if __name__ == '__main__':
print_hi('PyCharm')
# See PyCharm help at https://www.jetbrains.com/help/pycharm/

40
mysql_search.py Normal file
View File

@ -0,0 +1,40 @@
'''
connect hidden wifi: hahaha / fanfan123
ip:192.168.8.100
mysql: root / 11111111
'''
import pymysql
from tqdm import tqdm
import jsonlines
mysql_conn = pymysql.connect(host='192.168.8.100', port=3306, user='root', passwd='11111111', db='ghtorrent0619')
sql = "SELECT * FROM projects WHERE forked_from = 1334"
try:
with mysql_conn.cursor() as cursor:
cursor.execute(sql)
fork_repos = cursor.fetchall()
# print(select_result)
except Exception as e:
print(e)
sf_repo = []
for i in tqdm(range(0,len(fork_repos)-1)):
try:
with mysql_conn.cursor() as cursor:
repo_id = fork_repos[i][0]
cursor.execute("SELECT COUNT(*) FROM watchers WHERE repo_id=%s", repo_id)
stars = cursor.fetchone()
cursor.execute("SELECT COUNT(*) FROM projects WHERE forked_from=%s", repo_id)
forks = cursor.fetchone()
sf_repo.append({"repo_id": fork_repos[i][0], "repo_name": fork_repos[i][3], "stars": stars[0], "forks": forks[0]})
except Exception as e:
print(e)
with open("./search_result.txt",'w') as f:
writer = jsonlines.Writer(f)
writer.write_all(sf_repo)
writer.close()
mysql_conn.close()

19838
search_result.txt Normal file

File diff suppressed because it is too large Load Diff