types-strictyaml 1.7.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. types_strictyaml-1.7.3.0/LICENSE +5 -0
  2. types_strictyaml-1.7.3.0/MANIFEST.in +20 -0
  3. types_strictyaml-1.7.3.0/NOTICE.txt +7 -0
  4. types_strictyaml-1.7.3.0/PKG-INFO +250 -0
  5. types_strictyaml-1.7.3.0/README.rst +174 -0
  6. types_strictyaml-1.7.3.0/licenses.json +30 -0
  7. types_strictyaml-1.7.3.0/pyproject.toml +162 -0
  8. types_strictyaml-1.7.3.0/requirements/dev.in +9 -0
  9. types_strictyaml-1.7.3.0/requirements/dev.lock +60 -0
  10. types_strictyaml-1.7.3.0/requirements/dev.unlock +7 -0
  11. types_strictyaml-1.7.3.0/requirements/kit.in +5 -0
  12. types_strictyaml-1.7.3.0/requirements/kit.lock +39 -0
  13. types_strictyaml-1.7.3.0/requirements/kit.unlock +4 -0
  14. types_strictyaml-1.7.3.0/requirements/manage.in +4 -0
  15. types_strictyaml-1.7.3.0/requirements/manage.lock +83 -0
  16. types_strictyaml-1.7.3.0/requirements/manage.unlock +2 -0
  17. types_strictyaml-1.7.3.0/requirements/pins-filelock.in +5 -0
  18. types_strictyaml-1.7.3.0/requirements/pins-tox.in +16 -0
  19. types_strictyaml-1.7.3.0/requirements/pip-tools.in +2 -0
  20. types_strictyaml-1.7.3.0/requirements/pip-tools.lock +57 -0
  21. types_strictyaml-1.7.3.0/requirements/pip-tools.unlock +2 -0
  22. types_strictyaml-1.7.3.0/requirements/prod.in +1 -0
  23. types_strictyaml-1.7.3.0/requirements/prod.lock +6 -0
  24. types_strictyaml-1.7.3.0/requirements/prod.unlock +1 -0
  25. types_strictyaml-1.7.3.0/requirements/rst2html5.in +3 -0
  26. types_strictyaml-1.7.3.0/requirements/rst2html5.lock +4 -0
  27. types_strictyaml-1.7.3.0/requirements/rst2html5.unlock +2 -0
  28. types_strictyaml-1.7.3.0/requirements/tox.in +10 -0
  29. types_strictyaml-1.7.3.0/requirements/tox.lock +66 -0
  30. types_strictyaml-1.7.3.0/requirements/tox.unlock +14 -0
  31. types_strictyaml-1.7.3.0/requirements/typing.in +6 -0
  32. types_strictyaml-1.7.3.0/setup.cfg +4 -0
  33. types_strictyaml-1.7.3.0/strictyaml-stubs/__init__.pyi +109 -0
  34. types_strictyaml-1.7.3.0/strictyaml-stubs/any_validator.pyi +35 -0
  35. types_strictyaml-1.7.3.0/strictyaml-stubs/compound.pyi +108 -0
  36. types_strictyaml-1.7.3.0/strictyaml-stubs/exceptions.pyi +66 -0
  37. types_strictyaml-1.7.3.0/strictyaml-stubs/parser.pyi +71 -0
  38. types_strictyaml-1.7.3.0/strictyaml-stubs/py.typed +0 -0
  39. types_strictyaml-1.7.3.0/strictyaml-stubs/representation.pyi +79 -0
  40. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/__init__.pyi +3 -0
  41. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/anchor.pyi +14 -0
  42. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/comments.pyi +313 -0
  43. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/compat.pyi +84 -0
  44. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/composer.pyi +23 -0
  45. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/configobjwalker.pyi +5 -0
  46. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/constructor.pyi +169 -0
  47. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/cyaml.pyi +124 -0
  48. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/dumper.pyi +105 -0
  49. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/emitter.pyi +143 -0
  50. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/error.pyi +90 -0
  51. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/events.pyi +129 -0
  52. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/loader.pyi +62 -0
  53. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/main.pyi +298 -0
  54. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/nodes.pyi +73 -0
  55. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/parser.pyi +62 -0
  56. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/reader.pyi +47 -0
  57. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/representer.pyi +151 -0
  58. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/resolver.pyi +91 -0
  59. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/scalarbool.pyi +10 -0
  60. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/scalarfloat.pyi +38 -0
  61. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/scalarint.pyi +74 -0
  62. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/scalarstring.pyi +65 -0
  63. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/scanner.pyi +125 -0
  64. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/serializer.pyi +38 -0
  65. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/timestamp.pyi +28 -0
  66. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/tokens.pyi +160 -0
  67. types_strictyaml-1.7.3.0/strictyaml-stubs/ruamel/util.pyi +43 -0
  68. types_strictyaml-1.7.3.0/strictyaml-stubs/scalar.pyi +107 -0
  69. types_strictyaml-1.7.3.0/strictyaml-stubs/validators.pyi +26 -0
  70. types_strictyaml-1.7.3.0/strictyaml-stubs/yamllocation.pyi +56 -0
  71. types_strictyaml-1.7.3.0/strictyaml-stubs/yamlpointer.pyi +65 -0
  72. types_strictyaml-1.7.3.0/tests/test_compound_optional.yml +67 -0
  73. types_strictyaml-1.7.3.0/tests/test_compound_seq.yml +59 -0
  74. types_strictyaml-1.7.3.0/tests/test_strictyaml.yml +99 -0
  75. types_strictyaml-1.7.3.0/types_strictyaml.egg-info/PKG-INFO +250 -0
  76. types_strictyaml-1.7.3.0/types_strictyaml.egg-info/SOURCES.txt +77 -0
  77. types_strictyaml-1.7.3.0/types_strictyaml.egg-info/dependency_links.txt +1 -0
  78. types_strictyaml-1.7.3.0/types_strictyaml.egg-info/requires.txt +57 -0
  79. types_strictyaml-1.7.3.0/types_strictyaml.egg-info/top_level.txt +4 -0
@@ -0,0 +1,5 @@
1
+ Copyright 2026 Dave Faulkmore
2
+
3
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.
4
+
5
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,20 @@
1
+ # package
2
+ recursive-include tests *.yml
3
+ recursive-include requirements *.in *.unlock *.lock
4
+
5
+ # mypy
6
+ prune .mypy_cache
7
+
8
+ # coverage
9
+ exclude coverage.json
10
+ exclude coverage.xml
11
+ exclude .coverage
12
+
13
+ # git
14
+ graft .git
15
+
16
+ prune build
17
+ prune dist
18
+
19
+ global-include *.pyi
20
+ global-include py.typed
@@ -0,0 +1,7 @@
1
+ types-strictyaml
2
+ MIT
3
+ Copyright 2026 Dave Faulkmore
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so.
6
+
7
+ THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
@@ -0,0 +1,250 @@
1
+ Metadata-Version: 2.4
2
+ Name: types-strictyaml
3
+ Version: 1.7.3.0
4
+ Summary: Typing stubs for strictyaml
5
+ Author-email: Dave Faulkmore <faulkmore@protonmail.com>
6
+ Maintainer-email: Dave Faulkmore <faulkmore@protonmail.com>
7
+ License-Expression: MIT
8
+ Project-URL: Homepage, https://github.com/msftcangoblowm/types-strictyaml
9
+ Project-URL: Repository, https://github.com/msftcangoblowm/types-strictyaml
10
+ Project-URL: Source, https://github.com/msftcangoblowm/types-strictyaml
11
+ Project-URL: Changelog, https://raw.githubusercontent.com/msftcangoblowm/types-strictyaml/master/CHANGES.rst
12
+ Project-URL: Releases, https://github.com/msftcangoblowm/types-strictyaml/releases
13
+ Project-URL: Issues, https://github.com/msftcangoblowm/types-strictyaml/issues
14
+ Project-URL: Mastodon, https://mastodon.social/@msftcangoblowme
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Intended Audience :: End Users/Desktop
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Operating System :: OS Independent
19
+ Classifier: Typing :: Typed
20
+ Requires-Python: >=3.10
21
+ Description-Content-Type: text/x-rst
22
+ License-File: LICENSE
23
+ License-File: NOTICE.txt
24
+ License-File: licenses.json
25
+ Requires-Dist: strictyaml>=1.7.3
26
+ Provides-Extra: toml
27
+ Provides-Extra: dev
28
+ Requires-Dist: black==26.3.1; extra == "dev"
29
+ Requires-Dist: blackdoc==0.4.6; extra == "dev"
30
+ Requires-Dist: click==8.3.3; extra == "dev"
31
+ Requires-Dist: fastjsonschema==2.21.2; extra == "dev"
32
+ Requires-Dist: flake8==7.3.0; extra == "dev"
33
+ Requires-Dist: flake8-pyi==26.5.0; extra == "dev"
34
+ Requires-Dist: flake8-pyproject==1.2.4; extra == "dev"
35
+ Requires-Dist: isort==8.0.1; extra == "dev"
36
+ Requires-Dist: markdown-it-py==4.2.0; extra == "dev"
37
+ Requires-Dist: mccabe==0.7.0; extra == "dev"
38
+ Requires-Dist: mdurl==0.1.2; extra == "dev"
39
+ Requires-Dist: more-itertools==11.1.0; extra == "dev"
40
+ Requires-Dist: mypy-extensions==1.1.0; extra == "dev"
41
+ Requires-Dist: packaging==26.1; extra == "dev"
42
+ Requires-Dist: pathspec==1.1.1; extra == "dev"
43
+ Requires-Dist: platformdirs==4.9.6; extra == "dev"
44
+ Requires-Dist: pycodestyle==2.14.0; extra == "dev"
45
+ Requires-Dist: pyflakes==3.4.0; extra == "dev"
46
+ Requires-Dist: pygments==2.19.1; extra == "dev"
47
+ Requires-Dist: pytokens==0.4.1; extra == "dev"
48
+ Requires-Dist: rich==15.0.0; extra == "dev"
49
+ Requires-Dist: tomli==2.4.1; python_version < "3.11" and extra == "dev"
50
+ Requires-Dist: typing-extensions==4.15.0; extra == "dev"
51
+ Requires-Dist: validate-pyproject==0.25; extra == "dev"
52
+ Provides-Extra: manage
53
+ Requires-Dist: build==1.4.4; extra == "manage"
54
+ Requires-Dist: cachetools==7.1.4; extra == "manage"
55
+ Requires-Dist: cfgv==3.5.0; extra == "manage"
56
+ Requires-Dist: colorama==0.4.6; extra == "manage"
57
+ Requires-Dist: distlib==0.3.9; extra == "manage"
58
+ Requires-Dist: filelock==3.29.0; extra == "manage"
59
+ Requires-Dist: identify==2.6.19; extra == "manage"
60
+ Requires-Dist: nodeenv==1.10.0; extra == "manage"
61
+ Requires-Dist: packaging==26.1; extra == "manage"
62
+ Requires-Dist: platformdirs==4.9.6; extra == "manage"
63
+ Requires-Dist: pluggy==1.6.0; extra == "manage"
64
+ Requires-Dist: pre-commit==4.6.0; extra == "manage"
65
+ Requires-Dist: pyproject-api==1.10.1; extra == "manage"
66
+ Requires-Dist: pyproject-hooks==1.2.0; extra == "manage"
67
+ Requires-Dist: python-discovery==1.3.0; extra == "manage"
68
+ Requires-Dist: pyyaml==6.0.3; extra == "manage"
69
+ Requires-Dist: tomli==2.4.1; python_version < "3.11" and extra == "manage"
70
+ Requires-Dist: tomli-w==1.2.0; extra == "manage"
71
+ Requires-Dist: tox==4.53.1; extra == "manage"
72
+ Requires-Dist: tox-gh==1.7.1; extra == "manage"
73
+ Requires-Dist: typing-extensions==4.15.0; extra == "manage"
74
+ Requires-Dist: virtualenv==21.3.1; extra == "manage"
75
+ Dynamic: license-file
76
+
77
+ types-strictyaml
78
+ =================
79
+
80
+ Typing stubs for strictyaml
81
+
82
+ | |test-status| |mypy| |pyright|
83
+ | |last-commit| |downloads|
84
+ | |license| |maturity|
85
+
86
+ .. PYVERSIONS
87
+
88
+ \* Python 3.10 through 3.14
89
+
90
+ **new in 1.7.3.0**
91
+
92
+ initial typing testsuite; tested against mypy pyright;
93
+ publish to pypi;
94
+
95
+ Why?
96
+ -----
97
+
98
+ ``strictyaml`` is ignored by the Python community. Instead these are
99
+ promoted: TOML, Python internal yaml, pyyaml, and pydantic.
100
+
101
+ None of which strictly validate very likely malicious dangerous user input.
102
+
103
+ Feel sorry for those who have been mislead to believe, without
104
+ validating against a schema, the input files are safe.
105
+
106
+ User input validation critical security issues pop up constantly. In
107
+ Python at least, some of these can be avoided completely by choosing ``strictyaml``.
108
+
109
+ History
110
+ --------
111
+
112
+ The ``strictyaml`` author had his own ideas on how to test and document
113
+ Python packages. Regardless agree with him or not, this created a barrier
114
+ to entry to surmount for both potential contributors and maintainers.
115
+
116
+ Would argue that barrier, evidently, is too formidable for us average
117
+ diabolical albeit lazy geniuses.
118
+
119
+ Then to add insult to injury, the author ascended to another plane of
120
+ existence, leaving ``strictyaml`` unmaintained.
121
+
122
+ There exists a vacuum where there should be: stubs, pytest test suite,
123
+ coverage, and Sphinx docs.
124
+
125
+ Roadmap
126
+ ---------
127
+
128
+ These stubs were created without forking ``strictyaml``. And will help
129
+ downstream authors test their packages. Hopefully lead to ``strictyaml``
130
+ acceptance by the Python community.
131
+
132
+ Static type checking performed using both mypy and pyright. With the hope
133
+ that later ``strictyaml`` is forked and pytest test suite is created. So can
134
+ prove coverage and allow pyright to find coding errors.
135
+
136
+ Projects
137
+ ---------
138
+
139
+ These packages input files are strictly validated against a schema.
140
+
141
+ If have a package built that is protected by strictyaml, we'd like to
142
+ hear from you.
143
+
144
+ - `strictyamlx <https://pypi.org/project/strictyamlx>`_
145
+
146
+ - `logging-strict <https://pypi.org/project/logging-strict>`_
147
+
148
+ - `sphinx-external-toc-strict <https://pypi.org/project/sphinx-external-toc-strict>`_
149
+
150
+ strictyaml team
151
+ -----------------
152
+
153
+ `Dave Faulkmore <faulkmore@protonmail.com>`_ and
154
+ `Muneeb ur Rahman <muneebdev1@gmail.com>`_ both have made contributions
155
+ to strictyaml community. Both have skin in the game and would like to see
156
+ ``strictyaml`` project status revived.
157
+
158
+ If share our passion, throw caution to the wind, say `hmm why not?`,
159
+ put the effort towards writing a message, then find the mental fortitude
160
+ to click the Send button.
161
+
162
+ Contributing
163
+ -------------
164
+
165
+ Create .venv
166
+ """""""""""""
167
+
168
+ .. code:: shell
169
+
170
+ pyenv versions
171
+ mkdir .venv && cd .venv
172
+ python -m venv .
173
+ cd - &>/dev/null
174
+
175
+ . .venv/bin/activate
176
+ python -m pip install -e ".[dev]"
177
+
178
+ Run tests
179
+ """"""""""
180
+
181
+ Verbose and show output
182
+
183
+ .. code:: shell
184
+
185
+ make v=1 show=1 check
186
+
187
+ Quiet and save output to /tmp folder
188
+
189
+ .. code:: shell
190
+
191
+ make check
192
+
193
+ Run mypy
194
+ """""""""
195
+
196
+ .. code:: shell
197
+
198
+ make premypy
199
+
200
+ Run pyright
201
+ """"""""""""
202
+
203
+ .. code:: shell
204
+
205
+ make preright
206
+
207
+ Run pre-commit
208
+ """""""""""""""
209
+
210
+ .. code:: shell
211
+
212
+ make pre-commit
213
+
214
+ licenses
215
+ """""""""
216
+
217
+ Lets take legal compliance seriously to show commitment to respect and
218
+ acknowledge authors.
219
+
220
+ Creates ``NOTICE.txt``, ``licenses.json`` and ``sbom.json``
221
+
222
+ .. code:: shell
223
+
224
+ rm -rf build/lib; cd .tox && tox --root=.. -c ../tox.ini -e notice \
225
+ --workdir=. -vvv; cd - &>/dev/null
226
+ rm -rf build/lib; cd .tox && tox --root=.. -c ../tox.ini -e sbom \
227
+ --workdir=. -vvv; cd - &>/dev/null
228
+
229
+ ``LICENSE`` and ``NOTICE.txt`` are essentially the same expect LICENSE is manually maintained.
230
+
231
+ .. |downloads| image:: https://img.shields.io/pypi/dm/types-strictyaml
232
+ .. |last-commit| image:: https://img.shields.io/github/last-commit/msftcangoblowm/types-strictyaml/master
233
+ :target: https://github.com/msftcangoblowm/types-strictyaml/pulse
234
+ :alt: last commit to gauge activity
235
+ .. |maturity| image:: https://img.shields.io/badge/status-Beta-yellow
236
+ :target: https://pypi.org/classifiers/
237
+ :alt: Status: Beta
238
+ .. |license| image:: https://img.shields.io/github/license/msftcangoblowm/types-strictyaml
239
+ :target: https://github.com/msftcangoblowm/types-strictyaml/blob/master/LICENSE
240
+ :alt: License
241
+ .. |test-status| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/testsuite.yml/badge.svg
242
+ :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/testsuite.yml
243
+ :alt: test
244
+
245
+ .. |mypy| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-mypy.yml/badge.svg
246
+ :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-mypy.yml
247
+ :alt: mypy status
248
+ .. |pyright| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-pyright.yml/badge.svg
249
+ :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-pyright.yml
250
+ :alt: pyright status
@@ -0,0 +1,174 @@
1
+ types-strictyaml
2
+ =================
3
+
4
+ Typing stubs for strictyaml
5
+
6
+ | |test-status| |mypy| |pyright|
7
+ | |last-commit| |downloads|
8
+ | |license| |maturity|
9
+
10
+ .. PYVERSIONS
11
+
12
+ \* Python 3.10 through 3.14
13
+
14
+ **new in 1.7.3.0**
15
+
16
+ initial typing testsuite; tested against mypy pyright;
17
+ publish to pypi;
18
+
19
+ Why?
20
+ -----
21
+
22
+ ``strictyaml`` is ignored by the Python community. Instead these are
23
+ promoted: TOML, Python internal yaml, pyyaml, and pydantic.
24
+
25
+ None of which strictly validate very likely malicious dangerous user input.
26
+
27
+ Feel sorry for those who have been mislead to believe, without
28
+ validating against a schema, the input files are safe.
29
+
30
+ User input validation critical security issues pop up constantly. In
31
+ Python at least, some of these can be avoided completely by choosing ``strictyaml``.
32
+
33
+ History
34
+ --------
35
+
36
+ The ``strictyaml`` author had his own ideas on how to test and document
37
+ Python packages. Regardless agree with him or not, this created a barrier
38
+ to entry to surmount for both potential contributors and maintainers.
39
+
40
+ Would argue that barrier, evidently, is too formidable for us average
41
+ diabolical albeit lazy geniuses.
42
+
43
+ Then to add insult to injury, the author ascended to another plane of
44
+ existence, leaving ``strictyaml`` unmaintained.
45
+
46
+ There exists a vacuum where there should be: stubs, pytest test suite,
47
+ coverage, and Sphinx docs.
48
+
49
+ Roadmap
50
+ ---------
51
+
52
+ These stubs were created without forking ``strictyaml``. And will help
53
+ downstream authors test their packages. Hopefully lead to ``strictyaml``
54
+ acceptance by the Python community.
55
+
56
+ Static type checking performed using both mypy and pyright. With the hope
57
+ that later ``strictyaml`` is forked and pytest test suite is created. So can
58
+ prove coverage and allow pyright to find coding errors.
59
+
60
+ Projects
61
+ ---------
62
+
63
+ These packages input files are strictly validated against a schema.
64
+
65
+ If have a package built that is protected by strictyaml, we'd like to
66
+ hear from you.
67
+
68
+ - `strictyamlx <https://pypi.org/project/strictyamlx>`_
69
+
70
+ - `logging-strict <https://pypi.org/project/logging-strict>`_
71
+
72
+ - `sphinx-external-toc-strict <https://pypi.org/project/sphinx-external-toc-strict>`_
73
+
74
+ strictyaml team
75
+ -----------------
76
+
77
+ `Dave Faulkmore <faulkmore@protonmail.com>`_ and
78
+ `Muneeb ur Rahman <muneebdev1@gmail.com>`_ both have made contributions
79
+ to strictyaml community. Both have skin in the game and would like to see
80
+ ``strictyaml`` project status revived.
81
+
82
+ If share our passion, throw caution to the wind, say `hmm why not?`,
83
+ put the effort towards writing a message, then find the mental fortitude
84
+ to click the Send button.
85
+
86
+ Contributing
87
+ -------------
88
+
89
+ Create .venv
90
+ """""""""""""
91
+
92
+ .. code:: shell
93
+
94
+ pyenv versions
95
+ mkdir .venv && cd .venv
96
+ python -m venv .
97
+ cd - &>/dev/null
98
+
99
+ . .venv/bin/activate
100
+ python -m pip install -e ".[dev]"
101
+
102
+ Run tests
103
+ """"""""""
104
+
105
+ Verbose and show output
106
+
107
+ .. code:: shell
108
+
109
+ make v=1 show=1 check
110
+
111
+ Quiet and save output to /tmp folder
112
+
113
+ .. code:: shell
114
+
115
+ make check
116
+
117
+ Run mypy
118
+ """""""""
119
+
120
+ .. code:: shell
121
+
122
+ make premypy
123
+
124
+ Run pyright
125
+ """"""""""""
126
+
127
+ .. code:: shell
128
+
129
+ make preright
130
+
131
+ Run pre-commit
132
+ """""""""""""""
133
+
134
+ .. code:: shell
135
+
136
+ make pre-commit
137
+
138
+ licenses
139
+ """""""""
140
+
141
+ Lets take legal compliance seriously to show commitment to respect and
142
+ acknowledge authors.
143
+
144
+ Creates ``NOTICE.txt``, ``licenses.json`` and ``sbom.json``
145
+
146
+ .. code:: shell
147
+
148
+ rm -rf build/lib; cd .tox && tox --root=.. -c ../tox.ini -e notice \
149
+ --workdir=. -vvv; cd - &>/dev/null
150
+ rm -rf build/lib; cd .tox && tox --root=.. -c ../tox.ini -e sbom \
151
+ --workdir=. -vvv; cd - &>/dev/null
152
+
153
+ ``LICENSE`` and ``NOTICE.txt`` are essentially the same expect LICENSE is manually maintained.
154
+
155
+ .. |downloads| image:: https://img.shields.io/pypi/dm/types-strictyaml
156
+ .. |last-commit| image:: https://img.shields.io/github/last-commit/msftcangoblowm/types-strictyaml/master
157
+ :target: https://github.com/msftcangoblowm/types-strictyaml/pulse
158
+ :alt: last commit to gauge activity
159
+ .. |maturity| image:: https://img.shields.io/badge/status-Beta-yellow
160
+ :target: https://pypi.org/classifiers/
161
+ :alt: Status: Beta
162
+ .. |license| image:: https://img.shields.io/github/license/msftcangoblowm/types-strictyaml
163
+ :target: https://github.com/msftcangoblowm/types-strictyaml/blob/master/LICENSE
164
+ :alt: License
165
+ .. |test-status| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/testsuite.yml/badge.svg
166
+ :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/testsuite.yml
167
+ :alt: test
168
+
169
+ .. |mypy| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-mypy.yml/badge.svg
170
+ :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-mypy.yml
171
+ :alt: mypy status
172
+ .. |pyright| image:: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-pyright.yml/badge.svg
173
+ :target: https://github.com/msftcangoblowm/types-strictyaml/actions/workflows/quality-pyright.yml
174
+ :alt: pyright status
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "Author": "Gustavo Niemeyer",
4
+ "Description": "Extensions to the standard Python datetime module",
5
+ "License": "Apache Software License; BSD License",
6
+ "Name": "python-dateutil",
7
+ "URL": "https://github.com/dateutil/dateutil"
8
+ },
9
+ {
10
+ "Author": "Benjamin Peterson",
11
+ "Description": "Python 2 and 3 compatibility utilities",
12
+ "License": "MIT License",
13
+ "Name": "six",
14
+ "URL": "https://github.com/benjaminp/six"
15
+ },
16
+ {
17
+ "Author": "Colm O'Connor <colm.oconnor.github@gmail.com>",
18
+ "Description": "Strict, typed YAML parser",
19
+ "License": "MIT License",
20
+ "Name": "strictyaml",
21
+ "URL": "https://hitchdev.com/strictyaml"
22
+ },
23
+ {
24
+ "Author": "Dave Faulkmore <faulkmore@protonmail.com>",
25
+ "Description": "Typing stubs for strictyaml",
26
+ "License": "MIT",
27
+ "Name": "types-strictyaml",
28
+ "URL": "UNKNOWN"
29
+ }
30
+ ]
@@ -0,0 +1,162 @@
1
+ [build-system]
2
+ requires = ["setuptools>=80.7.1", "wheel", "build"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "types-strictyaml"
7
+ version = "1.7.3.0"
8
+ readme = "README.rst"
9
+ requires-python = ">=3.10"
10
+ description = "Typing stubs for strictyaml"
11
+ dynamic = [
12
+ "optional-dependencies",
13
+ "dependencies",
14
+ ]
15
+ license = "MIT"
16
+ license-files = [
17
+ "LICENSE",
18
+ "NOTICE.txt",
19
+ "licenses.json",
20
+ ]
21
+ classifiers = [
22
+ "Development Status :: 4 - Beta",
23
+ "Intended Audience :: End Users/Desktop",
24
+ "Programming Language :: Python :: 3",
25
+ "Operating System :: OS Independent",
26
+ "Typing :: Typed",
27
+ ]
28
+
29
+ authors = [
30
+ {name = "Dave Faulkmore", email = "faulkmore@protonmail.com"},
31
+ ]
32
+
33
+ maintainers = [
34
+ {name = "Dave Faulkmore", email = "faulkmore@protonmail.com"},
35
+ ]
36
+
37
+ [project.urls]
38
+ Homepage = 'https://github.com/msftcangoblowm/types-strictyaml'
39
+ Repository = 'https://github.com/msftcangoblowm/types-strictyaml'
40
+ Source = 'https://github.com/msftcangoblowm/types-strictyaml'
41
+ Changelog = 'https://raw.githubusercontent.com/msftcangoblowm/types-strictyaml/master/CHANGES.rst'
42
+ Releases = 'https://github.com/msftcangoblowm/types-strictyaml/releases'
43
+ Issues = 'https://github.com/msftcangoblowm/types-strictyaml/issues'
44
+ Mastodon = 'https://mastodon.social/@msftcangoblowme'
45
+
46
+ # Match the version your stubs support
47
+ [tool.setuptools.dynamic]
48
+ dependencies = { file = ['requirements/prod.unlock'] }
49
+ # required by drain-swamp for some unknown reason
50
+ optional-dependencies.toml = { file = [] }
51
+ optional-dependencies.dev = { file = ['requirements/dev.lock'] }
52
+ optional-dependencies.manage = { file = ['requirements/manage.lock'] }
53
+
54
+ # Search in the root directory
55
+ [tool.setuptools.packages.find]
56
+ where = ["."]
57
+
58
+ [tool.setuptools.package-data]
59
+ "strictyaml-stubs" = ["*.pyi", "py.typed"]
60
+
61
+ [tool.mypy]
62
+ strict = true
63
+ disallow_untyped_defs = true
64
+ disallow_incomplete_defs = true
65
+ check_untyped_defs = true
66
+ disallow_untyped_calls = true
67
+ # warn_return_any = true
68
+ disallow_any_generics = true
69
+
70
+ [tool.pytest.ini_options]
71
+ # Tell pytest-mypy-plugins to use this pyproject.toml for mypy configuration
72
+ addopts = "--mypy-pyproject-toml-file=pyproject.toml"
73
+ # Optional: Specify where your test cases are located if not in the default discovery path
74
+ # testpaths = ["test_cases"]
75
+
76
+ [tool.pyright]
77
+ typeCheckingMode = "strict"
78
+ pythonVersion = "3.10"
79
+ venvPath = "."
80
+ venv = ".venv" # venv folder path
81
+ include = ["tests"]
82
+
83
+ # Exclude common non-source directories
84
+ exclude = ["**/__pycache__", "**/.venv", "**/node_modules"]
85
+
86
+ executionEnvironments = [
87
+ { root = "." }
88
+ ]
89
+
90
+ [tool.black]
91
+ include = '\.pyi?$'
92
+ extend-exclude = '''(strictyaml\_stubs/\_version.py)'''
93
+
94
+ [tool.blackdoc]
95
+ skip_string_normalization = true
96
+ color = false # affects diffs only
97
+
98
+ [tool.isort]
99
+ profile = "black"
100
+ multi_line_output = 3
101
+ force_grid_wrap = 2
102
+ use_parentheses = true
103
+ include_trailing_comma = true
104
+ ensure_newline_before_comments = true
105
+ line_length = 88
106
+ # skip_glob = ["data/*", "data/**/*"]
107
+
108
+ [tool.flake8]
109
+ max_line_length = 88
110
+ extend_ignore = """
111
+ E203,
112
+ E501,
113
+ W503,
114
+ W605,
115
+ W293,
116
+ W291,
117
+ """
118
+ exclude = ".venv,.git,.tox,dist,docs,build"
119
+ application-import-names = "strictyaml_stubs,tests"
120
+
121
+ per-file-ignores = """
122
+ **/__init__.py:F401,
123
+ """
124
+
125
+ [tool.typos.files]
126
+ extend-exclude = [
127
+ "strictyaml_stubs/data/*",
128
+ "strictyaml_stubs/data/**/*",
129
+ ]
130
+
131
+ [tool.interrogate]
132
+ color = true
133
+ exclude = [
134
+ 'strictyaml_stubs/_version.py',
135
+ '.doc',
136
+ 'docs',
137
+ 'build',
138
+ "dist",
139
+ ]
140
+ fail-under = 95
141
+ ignore-init-module = true
142
+ quiet = false
143
+ omit-covered-files = true
144
+ # possible values 0 (minimal output), 1 (-v), 2 (-vv)
145
+ verbose = 2
146
+
147
+ [tool.pip-licenses]
148
+ from = "mixed"
149
+
150
+ [tool.wreck]
151
+ create_pins_unlock = false
152
+
153
+ [[tool.wreck.venvs]]
154
+ venv_base_path = '.venv'
155
+ reqs = [
156
+ 'requirements/prod',
157
+ 'requirements/dev',
158
+ 'requirements/manage',
159
+ 'requirements/tox',
160
+ 'requirements/pip-tools',
161
+ 'requirements/rst2html5',
162
+ ]
@@ -0,0 +1,9 @@
1
+ # without typing.in
2
+
3
+ black
4
+ blackdoc
5
+ isort
6
+ flake8
7
+ flake8-pyi
8
+ flake8-pyproject
9
+ validate-pyproject