Metadata-Version: 2.4
Name: types-strictyaml
Version: 1.7.3.0
Summary: Typing stubs for strictyaml
Author-email: Dave Faulkmore <faulkmore@protonmail.com>
Maintainer-email: Dave Faulkmore <faulkmore@protonmail.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/msftcangoblowm/types-strictyaml
Project-URL: Repository, https://github.com/msftcangoblowm/types-strictyaml
Project-URL: Source, https://github.com/msftcangoblowm/types-strictyaml
Project-URL: Changelog, https://raw.githubusercontent.com/msftcangoblowm/types-strictyaml/master/CHANGES.rst
Project-URL: Releases, https://github.com/msftcangoblowm/types-strictyaml/releases
Project-URL: Issues, https://github.com/msftcangoblowm/types-strictyaml/issues
Project-URL: Mastodon, https://mastodon.social/@msftcangoblowme
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: End Users/Desktop
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Classifier: Typing :: Typed
Requires-Python: >=3.10
Description-Content-Type: text/x-rst
License-File: LICENSE
License-File: NOTICE.txt
License-File: licenses.json
Requires-Dist: strictyaml>=1.7.3
Provides-Extra: toml
Provides-Extra: dev
Requires-Dist: black==26.3.1; extra == "dev"
Requires-Dist: blackdoc==0.4.6; extra == "dev"
Requires-Dist: click==8.3.3; extra == "dev"
Requires-Dist: fastjsonschema==2.21.2; extra == "dev"
Requires-Dist: flake8==7.3.0; extra == "dev"
Requires-Dist: flake8-pyi==26.5.0; extra == "dev"
Requires-Dist: flake8-pyproject==1.2.4; extra == "dev"
Requires-Dist: isort==8.0.1; extra == "dev"
Requires-Dist: markdown-it-py==4.2.0; extra == "dev"
Requires-Dist: mccabe==0.7.0; extra == "dev"
Requires-Dist: mdurl==0.1.2; extra == "dev"
Requires-Dist: more-itertools==11.1.0; extra == "dev"
Requires-Dist: mypy-extensions==1.1.0; extra == "dev"
Requires-Dist: packaging==26.1; extra == "dev"
Requires-Dist: pathspec==1.1.1; extra == "dev"
Requires-Dist: platformdirs==4.9.6; extra == "dev"
Requires-Dist: pycodestyle==2.14.0; extra == "dev"
Requires-Dist: pyflakes==3.4.0; extra == "dev"
Requires-Dist: pygments==2.19.1; extra == "dev"
Requires-Dist: pytokens==0.4.1; extra == "dev"
Requires-Dist: rich==15.0.0; extra == "dev"
Requires-Dist: tomli==2.4.1; python_version < "3.11" and extra == "dev"
Requires-Dist: typing-extensions==4.15.0; extra == "dev"
Requires-Dist: validate-pyproject==0.25; extra == "dev"
Provides-Extra: manage
Requires-Dist: build==1.4.4; extra == "manage"
Requires-Dist: cachetools==7.1.4; extra == "manage"
Requires-Dist: cfgv==3.5.0; extra == "manage"
Requires-Dist: colorama==0.4.6; extra == "manage"
Requires-Dist: distlib==0.3.9; extra == "manage"
Requires-Dist: filelock==3.29.0; extra == "manage"
Requires-Dist: identify==2.6.19; extra == "manage"
Requires-Dist: nodeenv==1.10.0; extra == "manage"
Requires-Dist: packaging==26.1; extra == "manage"
Requires-Dist: platformdirs==4.9.6; extra == "manage"
Requires-Dist: pluggy==1.6.0; extra == "manage"
Requires-Dist: pre-commit==4.6.0; extra == "manage"
Requires-Dist: pyproject-api==1.10.1; extra == "manage"
Requires-Dist: pyproject-hooks==1.2.0; extra == "manage"
Requires-Dist: python-discovery==1.3.0; extra == "manage"
Requires-Dist: pyyaml==6.0.3; extra == "manage"
Requires-Dist: tomli==2.4.1; python_version < "3.11" and extra == "manage"
Requires-Dist: tomli-w==1.2.0; extra == "manage"
Requires-Dist: tox==4.53.1; extra == "manage"
Requires-Dist: tox-gh==1.7.1; extra == "manage"
Requires-Dist: typing-extensions==4.15.0; extra == "manage"
Requires-Dist: virtualenv==21.3.1; extra == "manage"
Dynamic: license-file

types-strictyaml
=================

Typing stubs for strictyaml

|  |test-status| |mypy| |pyright|
|  |last-commit| |downloads|
|  |license| |maturity|

.. PYVERSIONS

\* Python 3.10 through 3.14

**new in 1.7.3.0**

initial typing testsuite; tested against mypy pyright;
publish to pypi;

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.

- `strictyamlx <https://pypi.org/project/strictyamlx>`_

- `logging-strict <https://pypi.org/project/logging-strict>`_

- `sphinx-external-toc-strict <https://pypi.org/project/sphinx-external-toc-strict>`_

strictyaml team
-----------------

`Dave Faulkmore <faulkmore@protonmail.com>`_ and
`Muneeb ur Rahman <muneebdev1@gmail.com>`_ 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
"""""""""""""

.. code:: shell

   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

.. code:: shell

   make v=1 show=1 check

Quiet and save output to /tmp folder

.. code:: shell

   make check

Run mypy
"""""""""

.. code:: shell

   make premypy

Run pyright
""""""""""""

.. code:: shell

   make preright

Run pre-commit
"""""""""""""""

.. code:: shell

   make pre-commit

licenses
"""""""""

Lets take legal compliance seriously to show commitment to respect and
acknowledge authors.

Creates ``NOTICE.txt``, ``licenses.json`` and ``sbom.json``

.. code:: shell

   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.

.. |downloads| image:: https://img.shields.io/pypi/dm/types-strictyaml
.. |last-commit| image:: https://img.shields.io/github/last-commit/msftcangoblowm/types-strictyaml/master
    :target: https://github.com/msftcangoblowm/types-strictyaml/pulse
    :alt: last commit to gauge activity
.. |maturity| image:: https://img.shields.io/badge/status-Beta-yellow
   :target: https://pypi.org/classifiers/
   :alt: Status: Beta
.. |license| image:: https://img.shields.io/github/license/msftcangoblowm/types-strictyaml
    :target: https://github.com/msftcangoblowm/types-strictyaml/blob/master/LICENSE
    :alt: License
.. |test-status| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/testsuite.yml/badge.svg
    :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/testsuite.yml
    :alt: test

.. |mypy| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-mypy.yml/badge.svg
   :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-mypy.yml
   :alt: mypy status
.. |pyright| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-pyright.yml/badge.svg
   :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-pyright.yml
   :alt: pyright status
