feat(cli): `check` and `train --task leadership` accept every `read_gifts` source

クローズ
#341 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

@Sudhakar7J がすでに取り組んでいます。

2026年11月3日 から。

  • #359 @Sudhakar7J による — オープン
  • #372 @shivamlalakiya による — マージ済み

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
28/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python
領域
cli, data

調査の方向性

Start in philanthropy/cli.py at _read_raw_gifts and _FEATURE_SOURCES, then read philanthropy/ingest/_bloomerang.py, _donorperfect.py and _blackbaud_crm.py for their *_to_features functions. The issue depends on #337 for the helper shape and #338 for the read_gifts move, and open PR #359 already targets it, so check that first. Done means all seven GIFT_SOURCES pass tests/test_cli.py::test_raw_gift_log_drops_the_rows_features_drops, and a guard test fails when a source lacks a _read_raw_gifts branch.

索引モデルが issue の本文から書いたものです。

説明

enhancement help wanted roadmap
Goal

philanthropy check and train --task leadership accept all seven GIFT_SOURCES (adding bloomerang, donorperfect and blackbaud_crm), and each one drops the same non-gift rows features drops.

Acceptance criteria
  • Bloomerang, DonorPerfect and Blackbaud CRM each get a private _<crm>_received_rows(rows, <filter>=DEFAULT_...) helper, following the pattern #337 adds for Raiser's Edge, NPSP and Nonprofit Cloud, and their *_to_features functions call it.
  • _read_raw_gifts in philanthropy/cli.py handles every name in ingest.GIFT_SOURCES, and the check and train --source choices are GIFT_SOURCES instead of the hardcoded four.
  • tests/test_cli.py::test_raw_gift_log_drops_the_rows_features_drops covers all seven sources, each with one counted row and one row the bridge excludes.
  • A test fails if a name is added to GIFT_SOURCES without a _read_raw_gifts branch.
  • CHANGELOG entry under [Unreleased].
Scope

CLI plumbing and the three bridges only. No change to any default exclusion list.

Where to start
  • philanthropy/cli.py (_read_raw_gifts, _FEATURE_SOURCES)
  • philanthropy/ingest/_bloomerang.py, _donorperfect.py, _blackbaud_crm.py
  • The #337 PR for the helper shape
Dependencies
  • #337 is merged (03c3c43), so this is unblocked. PR #359 is open for it.
  • Lands after #338 (PR #354): both PRs change the --source choices in philanthropy/cli.py, so whichever merges second rebases.
  • Every open CRM reader (#237, #238, #239, #241) adds a GIFT_SOURCES name. Whichever of this PR and a reader PR lands second adds the reader's _<crm>_received_rows helper and its entry here, or the coverage test above fails on main. #238 (PR #312) is the one closest to merging.

Phase order is a release plan, not a rule against picking up independent work early. Comment on this issue before you start so two people don't build the same thing.

主要言語
Python
スター
11
フォーク
23
平均マージ
1日 6時間
マージ済み PR(30日)
34

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

PhilanthroPy-Project/PhilanthroPy のほかの issue

PhilanthroPy-Project/PhilanthroPy の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。