Repository navigation
feat: graphfaker validate --verbose reads a schema back - #48
Merged
Merged
Conversation
1.3.0 is on PyPI, so it stops gaining entries: the three that landed after it move into a 1.4.0 section, features first. A minor rather than a patch because validate --verbose is a new feature, which is what every minor here has been, and because the dataset guard changes behaviour: generate now refuses where it silently merged, so a pipeline that regenerated into a dirty directory fails instead of producing a dataset that is the union of two runs. Nothing in a dataset changes for a given seed.
certifi for PYSEC-2026-4320: earlier bundles trust `emSign ECC Root CA - G3`, and eight eMudhra intermediates chaining to it have compromised private keys, so somebody holding one of those keys and sitting on the path can present a valid-looking certificate for any hostname. Every HTTPS call the package makes verifies against that bundle, which is the wiki fetcher, the BTS zip the flights fetcher downloads and the Overpass queries behind the OSM one. It is a direct dependency now rather than whatever requests happens to bring. pillow for eight image-parsing CVEs, in the examples extra. Nothing in GraphFaker opens an image: Pillow is there because matplotlib draws the notebooks' plots, so none of it is reachable from the package itself. The floor carries a python_version >= '3.11' marker, because Pillow 13 needs 3.11 and the package supports 3.10, and keeping the extra installable there is worth more than forcing the choice. pip-audit is clean on the audit job's environment. The 3.10 branch of the lock keeps Pillow 12.3.0, which nothing audits and nothing reaches.
The draft-overwrite guard raises a typer.BadParameter, which rich boxes, wraps to the terminal width and colours: --force arrives styled a dash at a time, so the literal string is not in the output at all, and the sentence the assertion looked for has a newline somewhere in the middle of it. Passed locally with colour off, failed in CI with it on. said() already existed in test_senzing for exactly this and is now in tests/helpers.py rather than copied: a plain module instead of conftest, which is not importable by name. Every assertion on a BadParameter or a usage error uses it, including two older ones that were passing only because their wording happened not to wrap. Verified by forcing colour on, where the old assertion reproduces the CI failure and the new one does not.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
GraphSchema.describe()renders what somebody holding a few hundred lines of drafted YAML needs, which is not a pretty-printer for the file. Each attribute carries its sampler and its parameters, because a gaussian where the column means money is the commonest thing wrong with a written schema. Each edge family carries its budget divided by its source rows, because a schema states a share of a total and nothing in the file says whether that works out to one payment per purchase. The latent factorgets a line even when there is none.
That middle number earns the flag: 0.80 per Admission means a fifth of admissions land in no ward. On a drafted customs schema the same arithmetic was the entire finding.
Lives on the schema rather than in the CLI so a notebook can use it, and judges nothing, which is the contract the hardness and coverage reports have