python-poetry / python-poetry/tomlkit
Dump headers of parent nested tables
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 850
- Forks
- 162
- Avg merge
- 13m
- Merged PRs (30d)
- 2
Description
Hello,
-
I was trying to convert this python dictionnary
my_dict = { "apps": { "test": { "whatever_1": { "date": "2025-12-16", }, "whatever_2": { "date": "2025-12-16", }, }, }, }...to this TOML output:
[apps] [apps.test] [apps.test.whatever_1] date = "2025-12-16" [apps.test.whatever_2] date = "2025-12-16" -
I first had great hopes with:
print(tomlkit.dumps(my_dict))but that outputs
[apps.test.whatever_1] date = "2025-12-16" [apps.test.whatever_2] date = "2025-12-16" -
With a bit of pain, I eventually manage to get the expected output using:
my_dict_new = tomlkit.document() for category_name, apps in my_dict.items(): cat = tomlkit.table(False) for app_name, app_reports in apps.items(): app = tomlkit.table(False).indent(4) for report_name, report_data in app_reports.items(): rep = tomlkit.table(False).indent(4) for key, val in report_data.items(): rep.add(key, val).indent(4) app.append(report_name, rep) cat.append(app_name, app) my_dict_new.append(category_name, cat) print(tomlkit.dumps(my_dict_new))
As this the reverse scenario from #47 and #107 in which the target output here seemed to be the default .dumps() output at the time, I wonder whether there would be a quicker way to access the old behavior again (i.e. dump headers for parent nested headers) ?
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the tomlkit.dumps(my_dict) entry point and compare its current output with the requested parent-table headers. Determine how the desired formatting could be exposed, then verify the nested apps.test.whatever_1 and apps.test.whatever_2 tables retain their headers and indentation.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100