aiforge_python/project_evaluation_analysis/generate_history_data.py

81 lines
3.2 KiB
Python

import warnings
from datetime import datetime
from utils import get_conn, get_month_date
warnings.filterwarnings("ignore")
def generate_history_data_by_test():
"""
按月生成历史数据
:return:
"""
conn = get_conn()
curs = conn.cursor()
months = [10, 11]
for month in months:
date_list = get_month_date(2022, month)
for date in date_list:
sql = f"""
INSERT INTO
ai_repository_history
SELECT
nextval('ai_repository_history_id_seq') as id, owner_id, owner_name, lower_name, name, description,
website, original_service_type, original_url, default_branch, creator_id,
(ceil(random() * 10) + num_watches) as num_watches,
(ceil(random() * 10) + num_stars) as num_stars,
(ceil(random() * 10) + num_forks) as num_forks,
(ceil(random() * 10) + num_issues) as num_issues,
(ceil(random() * 10) + num_closed_issues) as num_closed_issues,
(ceil(random() * 10) + num_pulls) as num_pulls,
(ceil(random() * 10) + num_closed_pulls) as num_closed_pulls,
num_milestones, num_closed_milestones,
(ceil(random() * 10) + num_commit) as num_commit, repo_type, is_private, is_empty,
is_archived, is_mirror, status, is_fork, fork_id, is_template, template_id, size,
is_fsck_enabled, close_issues_via_commit_in_any_branch, topics, avatar, contract_address,
balance, block_chain_status,
(ceil(random() * 10) + clone_cnt) as clone_cnt, git_clone_cnt, created_unix, updated_unix,
alias, lower_alias, id as repo_id, '{date}' as date_str
FROM
repository
"""
curs.execute(sql)
conn.commit()
conn.close()
def generate_history_data():
"""
生成当天数据
:return:
"""
conn = get_conn()
curs = conn.cursor()
date = datetime.now().strftime('%Y-%m-%d')
sql = f"""
INSERT INTO
ai_repository_history
SELECT
nextval('ai_repository_history_id_seq') as id, owner_id, owner_name, lower_name, name, description,
website, original_service_type, original_url, default_branch, creator_id,
num_watches, num_stars, num_forks, num_issues, num_closed_issues, num_pulls, num_closed_pulls,
num_milestones, num_closed_milestones, num_commit, repo_type, is_private, is_empty,
is_archived, is_mirror, status, is_fork, fork_id, is_template, template_id, size,
is_fsck_enabled, close_issues_via_commit_in_any_branch, topics, avatar, contract_address,
balance, block_chain_status, clone_cnt, git_clone_cnt, created_unix, updated_unix,
alias, lower_alias, id as repo_id, '{date}' as date_str, {int(datetime.now().timestamp())}
FROM
repository
"""
curs.execute(sql)
conn.commit()
conn.close()
if __name__ == '__main__':
# 生成测试数据
generate_history_data_by_test()
# 生成正式数据
# generate_history_data()