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

tomlkit 0.15.1 fails on out-of-order table header

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

Les mainteneurs répondent en général sous 2 jours

Personne n'a encore pris cette issue.

  • #636 par @0xrutabaga — fermée sans fusion

Évaluation

Difficulté
4/5
Temps estimé
3-5 jours
Accessibilité débutants
45/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
python
Domaine
tooling

Piste de recherche

Reproduce with the given document: tomlkit.loads fails with Key "b" already exists while tomllib.loads succeeds. Start from tomlkit's table/key parsing path (the loads entry point and how dotted keys and later [a.b.e] headers merge into an existing [a] table). Done when that document and similar out-of-order headers parse without error and round-trip without changing unrelated style.

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

Description

tomlkit 0.15.1 and earlier fail to parse out-of-order table header. The following example is valid TOML and loads fine with stdlib tomllib.

import tomllib, tomlkit

doc = """\
[a]
b.c = 1
b.d = 2

[x]
y = 1

[a.b.e]
f = 3
"""

tomllib.loads(doc)   # OK
tomlkit.loads(doc)   # ParseError: Key "b" already exists. at line 9 col 0

We noticed this problem while parsing the pyproject.toml file of geventhttpclient-2.5.0 https://raw.githubusercontent.com/geventhttpclient/geventhttpclient/refs/tags/2.5.0/pyproject.toml . See https://github.com/python-wheel-build/fromager/issues/1356

Langage dominant
Python
Étoiles
862
Forks
193
Merge moyen
4 j 2 h
PR mergées (30 j)
25

Préparer son environnement

  • Aucun Dockerfile ni fichier Docker Compose
  • Propose un modèle de pull request
  • Aucun guide de contribution

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 python-poetry/tomlkit

Toutes les issues de python-poetry/tomlkit

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.