From 9d077bd580c563a17914ecf4f82c169a6c8d36ad Mon Sep 17 00:00:00 2001 From: itxaiohanglover <1531137510@qq.com> Date: Mon, 6 Jul 2026 12:27:41 +0800 Subject: [PATCH] fix: resolve KeyError in run.py and update Python version requirement (#117) - Fix KeyError in run.py: check if key exists in params dict before accessing it, preventing crash when optional params are missing - Update setup.py: python_requires from >=3.4 to >=3.8 to match the actual grimoire_elk dependency requirement - Update README: add Python >=3.8 requirement note Signed-off-by: itxaiohanglover <1531137510@qq.com> --- README.md | 3 +++ run.py | 10 +++++----- setup.py | 8 +++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 0fc970e..0d958c2 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,9 @@ ## Metrics Model Metrics Model makes metrics combine metrics together, you could find us [here](https://github.com/chaoss/wg-metrics-models) +### Requirements +- Python >= 3.8 (required by grimoire_elk dependency) + ### Please create json file as following way: { diff --git a/run.py b/run.py index 748550d..c88366c 100644 --- a/run.py +++ b/run.py @@ -27,7 +27,7 @@ 'pr_index', 'issue_comments_index', 'pr_comments_index', 'git_index', 'contributors_index', 'contributors_enriched_index', 'from_date', 'end_date', 'repo_index', 'event_index', 'company', 'stargazer_index', 'fork_index', 'level', 'community', 'contributors_org_index', 'organizations_index', 'bots_index']: - kwargs[item] = None if params[item] and params[item] == 'None' else params[item] + kwargs[item] = None if item not in params or params[item] == 'None' else params[item] contributor = ContributorDevOrgRepo(**kwargs) contributor.run(elastic_url) @@ -35,21 +35,21 @@ for item in ['issue_index', 'pr_index', 'repo_index', 'json_file', 'git_index', 'from_date', 'end_date', 'out_index', 'community', 'level', 'release_index', 'issue_comments_index', 'pr_comments_index', 'contributors_index']: - kwargs[item] = None if params[item] and params[item] == 'None' else params[item] + kwargs[item] = None if item not in params or params[item] == 'None' else params[item] model_activity = ActivityMetricsModel(**kwargs) model_activity.metrics_model_metrics(elastic_url) kwargs = {} for item in ['issue_index', 'pr_index', 'json_file', 'git_index', 'from_date', 'end_date', 'out_index', 'community', 'level', 'contributors_index']: - kwargs[item] = None if params[item] and params[item] == 'None' else params[item] + kwargs[item] = None if item not in params or params[item] == 'None' else params[item] model_community = CommunitySupportMetricsModel(**kwargs) model_community.metrics_model_metrics(elastic_url) kwargs = {} for item in ['issue_index', 'pr_index', 'json_file', 'git_index', 'from_date', 'end_date', 'out_index', 'community', 'level', 'company', 'pr_comments_index', 'contributors_index']: - kwargs[item] = None if params[item] and params[item] == 'None' else params[item] + kwargs[item] = None if item not in params or params[item] == 'None' else params[item] model_code = CodeQualityGuaranteeMetricsModel(**kwargs) model_code.metrics_model_metrics(elastic_url) @@ -57,7 +57,7 @@ for item in ['issue_index', 'pr_index', 'repo_index', 'json_file', 'git_index', 'from_date', 'end_date', 'out_index', 'community', 'level', 'company', 'issue_comments_index', 'pr_comments_index', 'contributors_index']: - kwargs[item] = None if params[item] and params[item] == 'None' else params[item] + kwargs[item] = None if item not in params or params[item] == 'None' else params[item] model_organizations = OrganizationsActivityMetricsModel(**kwargs) model_organizations.metrics_model_metrics(elastic_url) diff --git a/setup.py b/setup.py index 96aa8ab..f51dcef 100644 --- a/setup.py +++ b/setup.py @@ -19,8 +19,10 @@ 'Topic :: Software Development', 'License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)', 'Programming Language :: Python :: 3', - 'Programming Language :: Python :: 3.4', - 'Programming Language :: Python :: 3.5'], + 'Programming Language :: Python :: 3.8', + 'Programming Language :: Python :: 3.9', + 'Programming Language :: Python :: 3.10', + 'Programming Language :: Python :: 3.11'], keywords="Metric Model", packages=find_packages(), package_data={ @@ -28,7 +30,7 @@ 'compass_metrics': ['resources/*'], 'compass_contributor': ['conf_utils/*'] }, - python_requires='>=3.4', + python_requires='>=3.8', setup_requires=['wheel'], zip_safe=False )