From de60ca48c3ac2cccf82c6e84c95d34f19705b35e Mon Sep 17 00:00:00 2001 From: MengqingCao Date: Sat, 12 Oct 2024 08:07:30 +0000 Subject: [PATCH] add script and doc for commits dashboard --- src/commits_dashboard/README.md | 15 ++++++++++ src/commits_dashboard/xlsx2yaml.py | 46 ++++++++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 src/commits_dashboard/README.md create mode 100644 src/commits_dashboard/xlsx2yaml.py diff --git a/src/commits_dashboard/README.md b/src/commits_dashboard/README.md new file mode 100644 index 0000000..4f616fe --- /dev/null +++ b/src/commits_dashboard/README.md @@ -0,0 +1,15 @@ +## 看板信息维护说明 + +> [!TIP] +> 无法访问看板请先联系吴彩萍 + +1. 从看板使用 export_csv 导出贡献者列表并转为 independent_contributors.xlsx 文件 +2. Github 搜集信息并补充至该表格 +3. 安装依赖 +``` +pip install -r requirements.txt +``` +4. `xlsx2yaml.py`文件放到 om-data 项目目录,执行以下命令提取 Excel 表格信息并写入 data.yaml: +``` +python xlsx2yaml.py ./independent_contributors.xlsx +``` diff --git a/src/commits_dashboard/xlsx2yaml.py b/src/commits_dashboard/xlsx2yaml.py new file mode 100644 index 0000000..750f281 --- /dev/null +++ b/src/commits_dashboard/xlsx2yaml.py @@ -0,0 +1,46 @@ +import pandas as pd +from collections import OrderedDict +from ruamel.yaml import YAML +from ruamel.yaml.scalarstring import SingleQuotedScalarString +import argparse + + +parser = argparse.ArgumentParser(description="Convert Excel to YAML for Updating Data.") +parser.add_argument( + "excel_file", + type=str, + default="./independent_contributors.xlsx", + help="Path to the Excel file", +) + +args = parser.parse_args() + +yaml = YAML() +yaml.default_flow_style = False +yaml.allow_unicode = True +yaml.indent(mapping=0, sequence=2, offset=0) + +# read excel +df = pd.read_excel(args.excel_file) + +# create dict +data_list = [] +for _, row in df.iterrows(): + if pd.notna(row["github_id"]) and row["tag_user_company.keyword"] != "independent": + # filter the null github_id and independent developers + data = { + "gitee_id": "", + "github_id": SingleQuotedScalarString(row["github_id"]), + "companies": [ + {"company_name": row["tag_user_company.keyword"], "end_date": ""} + ], + "user_name": row["unified_user.keyword"], + "emails": [row["email.keyword"]], + } + data_list.append(data) + +# write into data.yaml +with open("./data.yaml", "a") as file: + yaml.dump(data_list, file) + +print("Successfully update data.yaml") -- Gitee