types-strictyaml
Typing stubs for strictyaml
* Python 3.10 through 3.14
new in 1.7.3.3
mypy pass; Any kills board;
new in 1.7.3.2
narrow typing YAMLChunk._strictparsed YAMLChunk._ruamelparsed; stream typing; tests for compound;
Any kills
strictyaml static typing motto comes down to, Trust me bro! Was done so could have custom runtime Validator with minimal fuss. But lets be honest, that’s external code.
Registration thru hooks API would allow opening up and moving beyond the internal types. Internals types are limited to the hardcoded TypeAlias, strictyaml-stubs._types.YAMLChunkContents.
These stubs act as spec, docs, highlights what to fix, sometimes including proposed code design. In the process of creating the stubs huge number of Anys were removed. It’s been fun tracking that.
Welcome to the kills board!
module |
baseline |
attribs |
|---|---|---|
strictyaml.any_validator |
0 |
0 |
strictyaml.compound |
0 |
0 |
strictyaml.constants |
0 |
0 |
strictyaml.dumper |
9 |
0 |
strictyaml.exceptions |
1 |
0 |
strictyaml.parser |
0 |
0 |
strictyaml.representation |
0 |
1 |
strictyaml.scalar |
0 |
5 |
strictyaml.utils |
6 |
0 |
strictyaml.validators |
4 |
2 |
strictyaml.yamllocation |
3 |
0 |
strictyaml.yamlpointer |
6 |
0 |
strictyaml.ruamel.anchor |
1 |
0 |
strictyaml.ruamel.compat |
11 |
4 |
strictyaml.ruamel.composer |
19 |
3 |
strictyaml.ruamel.constructor |
157 |
13 |
strictyaml.ruamel.cyaml |
30 |
15 |
strictyaml.ruamel.dumper |
34 |
0 |
strictyaml.ruamel.emitter |
34 |
53 |
strictyaml.ruamel.error |
40 |
5 |
strictyaml.ruamel.events |
41 |
0 |
strictyaml.ruamel.main |
182 |
53 |
strictyaml.ruamel.nodes |
34 |
0 |
strictyaml.ruamel.reader |
8 |
0 |
strictyaml.ruamel.comments |
117 |
13 |
strictyaml.ruamel.parser |
41 |
7 |
strictyaml.ruamel.representer |
143 |
0 |
strictyaml.ruamel.resolver |
37 |
1 |
strictyaml.ruamel.serializer |
13 |
14 |
strictyaml.ruamel.scalarbool |
1 |
0 |
strictyaml.ruamel.scalarfloat |
17 |
0 |
strictyaml.ruamel.scalarint |
17 |
0 |
strictyaml.ruamel.scalarstring |
11 |
0 |
strictyaml.ruamel.scanner |
78 |
18 |
strictyaml.ruamel.timestamp |
2 |
10 |
strictyaml.ruamel.tokens |
41 |
0 |
Methodology
types-strictyaml-1.7.3.2 is the artificial baseline
missing attributes are considered an Any!
baseline Any find using grep
Find “Any” whole word in a stubs module
grep -ow "Any" constructor.pyi | wc -l
These throw off the total:
Any import
Might be removed. Might remain cuz still needed.
comments including the word, Any
Why?
strictyaml is ignored by the Python community. Instead these are promoted: TOML, Python internal yaml, pyyaml, and pydantic.
None of which strictly validate very likely malicious dangerous user input.
Feel sorry for those who have been mislead to believe, without validating against a schema, the input files are safe.
User input validation critical security issues pop up constantly. In Python at least, some of these can be avoided completely by choosing strictyaml.
History
The strictyaml author had his own ideas on how to test and document Python packages. Regardless agree with him or not, this created a barrier to entry to surmount for both potential contributors and maintainers.
Would argue that barrier, evidently, is too formidable for us average diabolical albeit lazy geniuses.
Then to add insult to injury, the author ascended to another plane of existence, leaving strictyaml unmaintained.
There exists a vacuum where there should be: stubs, pytest test suite, coverage, and Sphinx docs.
Roadmap
These stubs were created without forking strictyaml. And will help downstream authors test their packages. Hopefully lead to strictyaml acceptance by the Python community.
Static type checking performed using both mypy and pyright. With the hope that later strictyaml is forked and pytest test suite is created. So can prove coverage and allow pyright to find coding errors.
Projects
These packages input files are strictly validated against a schema.
If have a package built that is protected by strictyaml, we’d like to hear from you.
strictyaml team
Dave Faulkmore and Muneeb ur Rahman both have made contributions to strictyaml community. Both have skin in the game and would like to see strictyaml project status revived.
If share our passion, throw caution to the wind, say hmm why not?, put the effort towards writing a message, then find the mental fortitude to click the Send button.
Contributing
Create .venv
pyenv versions
mkdir .venv && cd .venv
python -m venv .
cd - &>/dev/null
. .venv/bin/activate
python -m pip install -e ".[dev]"
Run tests
Verbose and show output
make v=1 show=1 check
Quiet and save output to /tmp folder
make check
Run mypy
pytest-mypy-plugins works only with mypy, not pyright.
make premypy
Run pyright
Against stubs
pyright strictyaml-stubs/
Run pre-commit
make pre-commit
Run stubtest
Without this check, a stubs package could confidently provide incorrect type information, leading to false positives or negatives for users.
python -m pip install strictyaml types-strictyaml
stubtest --mypy-config-file=pyproject.toml --allowlist=stubtest_allowlist.txt strictyaml > /tmp/out.txt
licenses
Lets take legal compliance seriously to show commitment to respect and acknowledge authors.
Creates NOTICE.txt, licenses.json and sbom.json
rm -rf build/lib; cd .tox && tox --root=.. -c ../tox.ini -e notice \
--workdir=. -vvv; cd - &>/dev/null
rm -rf build/lib; cd .tox && tox --root=.. -c ../tox.ini -e sbom \
--workdir=. -vvv; cd - &>/dev/null
LICENSE and NOTICE.txt are essentially the same expect LICENSE is manually maintained.
Metadata
Release files for types-strictyaml 1.7.3.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| types_strictyaml-1.7.3.3.tar.gz | 46.7 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| types_strictyaml-1.7.3.3-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 114.2 kB
Release files / types_strictyaml-1.7.3.3.tar.gz
| Download URL | types_strictyaml-1.7.3.3.tar.gz |
|---|---|
| Size | 46.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
61aeb8a13f44fd15cc348e34fac002f5a9b6189f258d2c7acfe79abccc22d57d
|
|
BLAKE2b-256 checksum How to use checksums |
2b8150a74541bb5526033909fda5f343b3fc57c88b7a07fd7ff1eaa9eda98c65
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logRelease files / types_strictyaml-1.7.3.3-py3-none-any.whl
| Download URL | types_strictyaml-1.7.3.3-py3-none-any.whl |
|---|---|
| Size | 67.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
21f5eefb69dd274a72bc1946c51ceeb2f73031dcc2495072dc88f645a0d9888b
|
|
BLAKE2b-256 checksum How to use checksums |
7befc3b4a95c43b615f8f61a1f6c3b4ca23a1cade47e15c209b2e9a3c9a863db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logSecurity for types-strictyaml 1.7.3.3
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for types_strictyaml-1.7.3.3.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 12, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.