There is always going to be multiple files, it’s kind of silly to tie the definition of the dist-info directory to the pydist.json when that’s perhaps not the file you care about how to interpret. How do you interpret the RECORD file? The INSTALLER file?
The versioned definition of the dist-info directory would say, “RECORD file is an XYZ file” “pydist.json is an ABC file”. It’s the only sane way to handle the case where you can have an unbounded number of unknown files in the directory.
Those files are either implementation specific (in which case, not our responsibility) or they are standardised, in which case there will be a PEP (376 for the files apart from pydist.json). If it is felt that the formats in PEP 376 should be future-proofed, then perhaps they should be coalesced into a single JSON file with its own metadata version and schema definition (/ducks ;-) The PEP 376 files are INSTALLER, RECORD, REQUESTED and RESOURCES (which AFAIK isn't used). I don't know of any reason why they couldn't be merged into a single file. Any implementation specific caches of parts of those files (e.g. exports, for speed of scanning) would be up to individual implementations to maintain (and perhaps belong in implementation-named subdirectories of dist-info, to avoid conflicts with other implementations). Regards, Vinay Sajip