feat(cli): `check` and `train --task leadership` accept every `read_gifts` source
メンテナーはふだん 1 日以内に返信
@Sudhakar7J がすでに取り組んでいます。
2026年11月3日 から。
評価
調査の方向性
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 の本文から書いたものです。
説明
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_featuresfunctions call it. -
_read_raw_giftsinphilanthropy/cli.pyhandles every name iningest.GIFT_SOURCES, and thecheckandtrain --sourcechoices areGIFT_SOURCESinstead of the hardcoded four. -
tests/test_cli.py::test_raw_gift_log_drops_the_rows_features_dropscovers all seven sources, each with one counted row and one row the bridge excludes. - A test fails if a name is added to
GIFT_SOURCESwithout a_read_raw_giftsbranch. - 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
--sourcechoices inphilanthropy/cli.py, so whichever merges second rebases. - Every open CRM reader (#237, #238, #239, #241) adds a
GIFT_SOURCESname. Whichever of this PR and a reader PR lands second adds the reader's_<crm>_received_rowshelper and its entry here, or the coverage test above fails onmain. #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
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
PhilanthroPy-Project/PhilanthroPy のほかの issue
-
bug roadmap
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
PhilanthroPy-Project/PhilanthroPy#366 ·
メンテナーはふだん 1 日以内に返信
-
documentation good first issue roadmap
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
PhilanthroPy-Project/PhilanthroPy#361 ·
メンテナーはふだん 1 日以内に返信
-
enhancement help wanted roadmap
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
PhilanthroPy-Project/PhilanthroPy#345 ·
メンテナーはふだん 1 日以内に返信
-
beginner documentation good first issue roadmap
難易度 2/5 半日 初心者へのやさしさ 68/100
PhilanthroPy-Project/PhilanthroPy#342 ·
メンテナーはふだん 1 日以内に返信
-
beginner enhancement good first issue roadmap
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
PhilanthroPy-Project/PhilanthroPy#340 ·
メンテナーはふだん 1 日以内に返信
PhilanthroPy-Project/PhilanthroPy の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
pylint-dev/pylint#11791 ·
メンテナーはふだん 1 日以内に返信
-
Rasterio granule reads never retry, so one 503 (Service Unavailable) fails the whole request対応中かも @chuckwondo が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
developmentseed/titiler-cmr#305 ·
メンテナーはふだん 1 日以内に返信
-
community enhancement
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
メンテナーはふだん 1 日以内に返信
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 86/100
メンテナーはふだん 1 日以内に返信