Hacktoberfest 2026:維護者為十月標記出來的 issue,仍然開放、適合新手。 瀏覽 Hacktoberfest issue

context.entities should be keyed based on the entity long name

未關閉
#80 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
4/5
預估耗時
3-5 天
新手友好度
45/100
Issue 類型
缺陷
描述清晰度
基本清楚
活躍度
冷清
技術堆疊
python
領域
backend

研究方向

先檢視 context.py 中的資料型別到模態的對映,以及 issue 中提到的 schema.objects.entities 資料。閱讀 PR #74 的 BIDSSchemaAdapter 作法,並檢查 Dataset 物件如何攜帶它。完成的標準是實體鍵使用 "subject" 這類長名稱,而不是 "sub" 這類短名稱,並透過相關的私有函式重複使用 schema 對映。

由索引模型根據 Issue 內容生成。

描述

Noticed while reviewing #71: entities["sub"] is populated, rather than entities["subject"].

The schema consistently uses the long name, not the short name. This means we'll need to look up the mapping from schema.objects.entities, and we should probably do that once per schema.

I recently introduced https://github.com/childmindresearch/bids2table/pull/74 as a method for mapping schema specifiers onto an adapter class that extracts the bits the library actually needs. The basic idea is:

SchemaSpec: ty.TypeAlias = Namespace | os.PathLike[str] | str | None

def load_bids_schema(spec: SchemaSpec = None) -> BIDSSchemaAdapter: ...

def public_function(*args, schema: SchemaSpec = None) -> ReturnType:
    return _private_function(*args, adapter=load_bids_schema(schema))

def _private_function(*args, adapter: BIDSSchemaAdapter) -> ReturnType: ...

BIDSSchemaAdapter is never exposed as a public API, but is able to be passed around cheaply throughout private functions.

We can start by replacing the datatype-to-modality map:

https://github.com/bids-standard/python-validator/blob/e85ad33d52bb113952b0e45a11e0051fe870917a/src/bids_validator/context.py#L54-L63

And a short-to-long entity name map would be good to have.

Need to consider how to actually thread this through. I suspect we attach the adapter to the Dataset object, so it's always available to the individual context.

主要語言
Python
星號
10
分支
7
PR 合併指標
30 天內沒有已合併 PR

環境準備

  • 沒有 Dockerfile 或 Docker Compose 檔案
  • 沒有 Pull Request 範本
  • 閱讀貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

bids-standard/python-validator 的其他 Issue

查看 bids-standard/python-validator 的全部 Issue

相似的 Issue

更多 Python Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。