Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

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

Ouverte
#80 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Plutôt claire
Activité
Calme
Stack technique
python
Domaine
backend

Piste de recherche

Commencez par examiner le mapping du type de données vers la modalité dans context.py ainsi que les données schema.objects.entities mentionnées dans l’issue. Lisez l’approche BIDSSchemaAdapter de la PR #74 et examinez comment l’objet Dataset pourrait le contenir. Le travail est considéré comme terminé lorsque les clés des entités utilisent des noms longs tels que "subject" plutôt que des noms courts tels que "sub", avec le mapping du schéma réutilisé par l’intermédiaire des fonctions privées concernées.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
Python
Étoiles
10
Forks
7
Métriques de merge des PR
Aucune PR mergée en 30 j

Préparer son environnement

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de bids-standard/python-validator

Toutes les issues de bids-standard/python-validator

Issues similaires

Plus d'issues Python

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.