micropython-stubber 1.14.1__py3-none-any.whl → 1.15.1__py3-none-any.whl

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 (50) hide show
  1. micropython_stubber-1.15.1.dist-info/METADATA +244 -0
  2. {micropython_stubber-1.14.1.dist-info → micropython_stubber-1.15.1.dist-info}/RECORD +49 -46
  3. stubber/__init__.py +1 -1
  4. stubber/basicgit.py +27 -14
  5. stubber/board/createstubs.py +34 -36
  6. stubber/board/createstubs_db.py +35 -35
  7. stubber/board/createstubs_db_min.py +195 -193
  8. stubber/board/createstubs_db_mpy.mpy +0 -0
  9. stubber/board/createstubs_info.py +73 -42
  10. stubber/board/createstubs_lvgl.py +35 -35
  11. stubber/board/createstubs_lvgl_min.py +88 -87
  12. stubber/board/createstubs_lvgl_mpy.mpy +0 -0
  13. stubber/board/createstubs_mem.py +44 -40
  14. stubber/board/createstubs_mem_min.py +179 -174
  15. stubber/board/createstubs_mem_mpy.mpy +0 -0
  16. stubber/board/createstubs_min.py +75 -74
  17. stubber/board/createstubs_mpy.mpy +0 -0
  18. stubber/board/info.py +183 -0
  19. stubber/codemod/enrich.py +28 -16
  20. stubber/commands/build_cmd.py +3 -3
  21. stubber/commands/get_core_cmd.py +17 -5
  22. stubber/commands/get_docstubs_cmd.py +23 -8
  23. stubber/commands/get_frozen_cmd.py +62 -9
  24. stubber/commands/get_lobo_cmd.py +13 -3
  25. stubber/commands/merge_cmd.py +7 -4
  26. stubber/commands/publish_cmd.py +5 -4
  27. stubber/commands/stub_cmd.py +2 -1
  28. stubber/commands/variants_cmd.py +0 -1
  29. stubber/freeze/common.py +2 -2
  30. stubber/freeze/freeze_folder.py +1 -1
  31. stubber/freeze/get_frozen.py +1 -1
  32. stubber/minify.py +43 -28
  33. stubber/publish/bump.py +1 -1
  34. stubber/publish/candidates.py +61 -17
  35. stubber/publish/defaults.py +44 -0
  36. stubber/publish/merge_docstubs.py +19 -56
  37. stubber/publish/package.py +44 -37
  38. stubber/publish/pathnames.py +51 -0
  39. stubber/publish/publish.py +5 -4
  40. stubber/publish/stubpacker.py +55 -33
  41. stubber/rst/lookup.py +7 -16
  42. stubber/rst/reader.py +39 -8
  43. stubber/stubs_from_docs.py +5 -8
  44. stubber/utils/post.py +34 -40
  45. stubber/utils/repos.py +32 -17
  46. stubber/utils/stubmaker.py +22 -14
  47. micropython_stubber-1.14.1.dist-info/METADATA +0 -217
  48. {micropython_stubber-1.14.1.dist-info → micropython_stubber-1.15.1.dist-info}/LICENSE +0 -0
  49. {micropython_stubber-1.14.1.dist-info → micropython_stubber-1.15.1.dist-info}/WHEEL +0 -0
  50. {micropython_stubber-1.14.1.dist-info → micropython_stubber-1.15.1.dist-info}/entry_points.txt +0 -0
@@ -9,7 +9,10 @@ from mypy.errors import CompileError
9
9
 
10
10
  # default stubgen options
11
11
  STUBGEN_OPT = stubgen.Options(
12
- pyversion=(3, 8), # documentation uses position-only argument indicator which requires 3.8 or higher
12
+ pyversion=(
13
+ 3,
14
+ 8,
15
+ ), # documentation uses position-only argument indicator which requires 3.8 or higher
13
16
  no_import=False,
14
17
  include_private=True,
15
18
  doc_dir="",
@@ -24,6 +27,8 @@ STUBGEN_OPT = stubgen.Options(
24
27
  verbose=True,
25
28
  quiet=False,
26
29
  export_less=False,
30
+ inspect=False, # inspect needs to import the module in CPython, which is not possible for frozen modules
31
+ include_docstrings=True, # include existing docstrings with the stubs
27
32
  )
28
33
 
29
34
 
@@ -58,36 +63,40 @@ def generate_pyi_files(modules_folder: Path) -> bool:
58
63
  """
59
64
  # stubgen cannot process folders with duplicate modules ( ie v1.14 and v1.15 )
60
65
  # NOTE: FIX 1 add __init__.py to umqtt
61
- if (modules_folder / "umqtt/robust.py").exists(): # and not (freeze_path / "umqtt" / "__init__.py").exists():
66
+ if (
67
+ modules_folder / "umqtt/robust.py"
68
+ ).exists(): # and not (freeze_path / "umqtt" / "__init__.py").exists():
62
69
  log.debug("add missing : umqtt/__init__.py")
63
70
  with open(modules_folder / "umqtt" / "__init__.py", "a") as f:
64
71
  f.write("")
65
72
 
66
- modlist = list(modules_folder.glob("**/modules.json"))
73
+ module_list = list(modules_folder.glob("**/modules.json"))
67
74
  r = True
68
- if len(modlist) > 1:
69
- # try to process each module seperatlely
70
- for mod_manifest in modlist:
75
+ if len(module_list) > 1:
76
+ # try to process each module separately
77
+ for mod_manifest in module_list:
71
78
  ## generate fyi files for folder
72
79
  r = r and generate_pyi_files(mod_manifest.parent)
73
80
  else: # one or less module manifests
74
81
  ## generate fyi files for folder
75
82
  log.debug("::group::[stubgen] running stubgen on {0}".format(modules_folder))
76
83
 
77
- Error_Found = False
84
+ run_per_file = False
78
85
  sg_opt = STUBGEN_OPT
79
86
  sg_opt.files = [str(modules_folder)]
80
87
  sg_opt.output_dir = str(modules_folder)
81
88
  try:
82
89
  stubgen.generate_stubs(sg_opt)
83
- except (ValueError, SystemExit) as e:
90
+ except (Exception, CompileError, SystemExit) as e:
91
+ if isinstance(e, KeyboardInterrupt):
92
+ raise e
84
93
  # the only way to know if an error was encountered by generate_stubs
85
94
  # mypy.errors.CompileError and others ?
86
95
  # TODO: Extract info from e.code or e.args[0]
87
96
  log.warning(e.args[0])
88
- Error_Found = True
97
+ run_per_file = True
89
98
 
90
- if Error_Found:
99
+ if run_per_file:
91
100
  # in case of failure ( duplicate module in subfolder) then Plan B
92
101
  # - run stubgen on each *.py
93
102
  log.debug("::group::[stubgen] Failure on folder, attempt to run stubgen per file")
@@ -100,8 +109,8 @@ def generate_pyi_files(modules_folder: Path) -> bool:
100
109
  py_files = list(modules_folder.rglob("*.py"))
101
110
  pyi_files = list(modules_folder.rglob("*.pyi"))
102
111
 
103
- worklist = pyi_files.copy()
104
- for pyi in worklist:
112
+ work_list = pyi_files.copy()
113
+ for pyi in work_list:
105
114
  # remove all py files that have been stubbed successfully from the list
106
115
  try:
107
116
  py_files.remove(pyi.with_suffix(".py"))
@@ -109,8 +118,7 @@ def generate_pyi_files(modules_folder: Path) -> bool:
109
118
  except ValueError:
110
119
  log.debug(f"no matching py for : {str(pyi)}")
111
120
 
112
- # now stub the rest
113
- # note in some cases this will try a file twice
121
+ # note in some cases this will try a file twice - but that is better than failing
114
122
  for py in py_files:
115
123
  r = r and generate_pyi_from_file(py)
116
124
  # todo: report failures by adding to module manifest
@@ -1,217 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: micropython-stubber
3
- Version: 1.14.1
4
- Summary: Tooling to create and maintain stubs for MicroPython
5
- Home-page: https://github.com/Josverl/micropython-stubber#readme
6
- License: MIT
7
- Keywords: MicroPython,stubs,vscode,pyright,linting,static type check
8
- Author: Jos Verlinde
9
- Author-email: jos_verlinde@hotmail.com
10
- Requires-Python: >=3.8,<3.12
11
- Classifier: License :: OSI Approved :: MIT License
12
- Classifier: Programming Language :: Python :: 3
13
- Classifier: Programming Language :: Python :: 3.8
14
- Classifier: Programming Language :: Python :: 3.9
15
- Classifier: Programming Language :: Python :: 3.10
16
- Classifier: Programming Language :: Python :: 3.11
17
- Classifier: Programming Language :: Python :: Implementation :: CPython
18
- Classifier: Programming Language :: Python :: Implementation :: MicroPython
19
- Classifier: Topic :: Software Development :: Build Tools
20
- Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
21
- Provides-Extra: tools
22
- Requires-Dist: autoflake (>=1.7,<3.0)
23
- Requires-Dist: black (>=22.10,<23.0)
24
- Requires-Dist: cachetools (>=5.3.0,<6.0.0)
25
- Requires-Dist: click (>=8.1.3,<9.0.0)
26
- Requires-Dist: esptool (>=4.4,<5.0) ; extra == "tools"
27
- Requires-Dist: importlib-metadata (>=1.0,<2.0) ; python_version < "3.8"
28
- Requires-Dist: libcst (>=0.4.9,<0.5.0)
29
- Requires-Dist: loguru (>=0.6,<0.8)
30
- Requires-Dist: mypy (==1.2.0)
31
- Requires-Dist: packaging (>=21.3,<24.0)
32
- Requires-Dist: pipx (>=1.1.0,<2.0.0)
33
- Requires-Dist: pygithub (>=1.57,<2.0)
34
- Requires-Dist: pypi-simple (>=1.0.0,<2.0.0)
35
- Requires-Dist: pyright (>=1.1.265,<2.0.0)
36
- Requires-Dist: pyserial (>=3.5,<4.0)
37
- Requires-Dist: pysondb-v2 (>=2.1.0,<3.0.0)
38
- Requires-Dist: python-minifier (>=2.7.0,<3.0.0)
39
- Requires-Dist: requests (>=2.28.0,<3.0.0)
40
- Requires-Dist: tabulate (>=0.9.0,<0.10.0)
41
- Requires-Dist: tenacity (>=8.2.2,<9.0.0)
42
- Requires-Dist: tomli (>=2.0.1,<3.0.0) ; python_version < "3.11"
43
- Requires-Dist: tomli-w (>=1.0.0,<2.0.0)
44
- Requires-Dist: typed-config (>=1.3.0,<2.0.0)
45
- Project-URL: Documentation, https://micropython-stubber.readthedocs.io/
46
- Project-URL: Repository, https://github.com/Josverl/micropython-stubber
47
- Description-Content-Type: text/markdown
48
-
49
- # Boost MicroPython productivity in VSCode
50
-
51
- [![pypi version](https://badgen.net/pypi/v/micropython-stubber)](https://pypi.org/project/micropython-stubber/)
52
- [![python versions](https://badgen.net/pypi/python/micropython-stubber)](https://badgen.net/pypi/python/micropython-stubber)
53
- [![Documentation Status](https://readthedocs.org/projects/micropython-stubber/badge/?version=latest)](https://micropython-stubber.readthedocs.io/en/latest/?badge=latest "Document build status badge")
54
- [![Star on GitHub](https://img.shields.io/github/stars/josverl/micropython-stubber.svg?style=social)](https://github.com/josverl/micropython-stubber/stargazers)
55
- [![All Contributors](https://img.shields.io/badge/all_contributors-19-green.svg?style=flat-square)](#Contributions)
56
- <!-- break -->
57
- [![pytest tests/common](https://github.com/Josverl/micropython-stubber/actions/workflows/pytest.yml/badge.svg)](https://github.com/Josverl/micropython-stubber/actions/workflows/pytest.yml)
58
- [![codecov](https://codecov.io/gh/Josverl/micropython-stubber/branch/main/graph/badge.svg?token=WJFGMKBHOV)](https://codecov.io/gh/Josverl/micropython-stubber)
59
- [![Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black "Black badge")
60
- <!-- break -->
61
- [![Open in VSCode](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc
62
- )](https://open.vscode.dev/josverl/micropython-stubber)
63
-
64
- The intellisense and code linting that is so prevalent in modern editors, does not work out-of-the-gate for MicroPython projects.
65
- While the language is Python, the modules used are different from CPython , and also different ports have different modules and classes , or the same class with different parameters.
66
-
67
- Writing MicroPython code in a modern editor should not need to involve keeping a browser open to check for the exact parameters to read a sensor, light-up a led or send a network request.
68
-
69
- Fortunately with some additional configuration and data, it is possible to make the editors understand your flavor of MicroPython, wether you use one of the pre-compiled firmwares, but also if you run a one-off custom firmware version.
70
-
71
-
72
- ![demo][]]
73
-
74
- In order to achieve this a few things are needed:
75
- 1) Stub files for the native / enabled modules in the firmware using PEP 484 Type Hints
76
- 2) Specific configuration of the VSCode Python extensions
77
- 3) Specific configuration of Pylint [ Optional ]
78
- 4) Suppression of warnings that collide with the MicroPython principals or code optimization.
79
-
80
- Please review the documentation on [https://micropython-stubber.readthedocs.io]
81
-
82
- With that in place, VSCode will understand MicroPython for the most part, and help you to write code, and catch more errors before deploying it to your board.
83
-
84
- Note that the above is not limited to VSCode and pylint, but it happens to be the combination that I use.
85
-
86
- A lot of subs have already been generated and are shared on github or other means, so it is quite likely that you can just grab a copy be be productive in a few minutes.
87
-
88
- For now you will need to [configure this by hand](#manual-configuration), or use the [micropy cli` tool](#using-micropy-cli)
89
-
90
- 1. The sister-repo [**MicroPython-stubs**][stubs-repo] contains [all stubs][all-stubs] I have collected with the help of others, and which can be used directly.
91
- That repo also contains examples configuration files that can be easily adopted to your setup.
92
-
93
- 2. A second repo [micropy-stubs repo][stubs-repo2] maintained by BradenM, also contains stubs, but in a structure only used and distributed by the [micropy-cli](#using-micropy-cli) tool.
94
- You should use micropy-cli to consume stubs from that repo.
95
-
96
- The (stretch) goal is to create a VSCode add-in to simplify the configuration, and allow easy switching between different firmwares and versions.
97
-
98
-
99
- ## Install and basic usage
100
-
101
- ``` sh
102
- pip install micropython-stubber
103
-
104
- # go to your working folder
105
- cd my_stub_folder
106
- mkdir all-stubs
107
-
108
- # clone the micropython repo's and switch to a specific version
109
- stubber clone
110
- stubber switch --version v1.18
111
-
112
- # get the document stubs for the current version ( v1.18 )
113
- stubber get-docstubs
114
-
115
- # get the frozen stubs for the current version ( v1.18 )
116
- stubber get-frozen
117
-
118
- # get the core CPython compatibility stubs from PyPi
119
- stubber get-core
120
-
121
- # Update the fallback stubs
122
- stubber update-fallback
123
-
124
- #
125
- ls all-stubs
126
- dir all-stubs
127
- ```
128
-
129
-
130
- ## Developing & testing
131
-
132
- This is described in more detail in the [developing](docs/developing.md) and [testing](docs/testing.md) documents in the docs folder.
133
-
134
- ## Branch Main
135
- The name of the default branch has been changed to `main`.
136
- If you have cloned this repo before you main need to adjust the local repro to be aware of this, or create a fresh clone.
137
-
138
- To update run the below command:
139
- ``` bash
140
- git branch -m master main
141
- git fetch origin
142
- git branch -u origin/main main
143
- git remote set-head origin -a
144
- ```
145
-
146
- for more info see [**Renaming a branch**](https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-branches-in-your-repository/renaming-a-branch#updating-a-local-clone-after-a-branch-name-changes)
147
-
148
- ## Licensing
149
-
150
- MicroPython-Stubber is licensed under the MIT license, and all contributions should follow this [LICENSE](LICENSE).
151
-
152
-
153
- # Contributions
154
- <!-- spell-checker: disable -->
155
-
156
- <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
157
- <!-- prettier-ignore-start -->
158
- <!-- markdownlint-disable -->
159
- <table>
160
- <tr>
161
- <td align="center"><a href="https://github.com/Josverl"><img src="https://avatars2.githubusercontent.com/u/981654?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jos Verlinde</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=josverl" title="Code">💻</a> <a href="#research-josverl" title="Research">🔬</a> <a href="#ideas-josverl" title="Ideas, Planning, & Feedback">🤔</a> <a href="#content-josverl" title="Content">🖋</a> <a href="#stubs-josverl" title="MicroPython stubs">📚</a> <a href="#test-josverl" title="Test">✔</a></td>
162
- <td align="center"><a href="https://thonny.org/"><img src="https://avatars1.githubusercontent.com/u/46202078?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Thonny, Python IDE for beginners</b></sub></a><br /><a href="#ideas-thonny" title="Ideas, Planning, & Feedback">🤔</a> <a href="#research-thonny" title="Research">🔬</a></td>
163
- <td align="center"><a href="https://micropython.org/"><img src="https://avatars1.githubusercontent.com/u/6298560?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MicroPython</b></sub></a><br /><a href="#data-micropython" title="Data">🔣</a> <a href="#stubs-micropython" title="MicroPython stubs">📚</a></td>
164
- <td align="center"><a href="https://github.com/loboris"><img src="https://avatars3.githubusercontent.com/u/6280349?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Boris Lovosevic</b></sub></a><br /><a href="#data-loboris" title="Data">🔣</a> <a href="#stubs-loboris" title="MicroPython stubs">📚</a></td>
165
- <td align="center"><a href="https://github.com/pfalcon"><img src="https://avatars3.githubusercontent.com/u/500451?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Paul Sokolovsky</b></sub></a><br /><a href="#data-pfalcon" title="Data">🔣</a> <a href="#stubs-pfalcon" title="MicroPython stubs">📚</a></td>
166
- <td align="center"><a href="https://github.com/pycopy"><img src="https://avatars0.githubusercontent.com/u/67273174?v=4?s=100" width="100px;" alt=""/><br /><sub><b>pycopy</b></sub></a><br /><a href="#data-pycopy" title="Data">🔣</a> <a href="#stubs-pycopy" title="MicroPython stubs">📚</a></td>
167
- <td align="center"><a href="https://github.com/pycom"><img src="https://avatars2.githubusercontent.com/u/16415153?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Pycom</b></sub></a><br /><a href="#infra-pycom" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
168
- </tr>
169
- <tr>
170
- <td align="center"><a href="https://github.com/BradenM"><img src="https://avatars1.githubusercontent.com/u/5913808?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Braden Mars</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3ABradenM" title="Bug reports">🐛</a> <a href="https://github.com/Josverl/micropython-stubber/commits?author=BradenM" title="Code">💻</a> <a href="#stubs-BradenM" title="MicroPython stubs">📚</a> <a href="#platform-BradenM" title="Packaging/porting to new platform">📦</a></td>
171
- <td align="center"><a href="https://binary.com.au/"><img src="https://avatars2.githubusercontent.com/u/175909?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Manners</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=jmannau" title="Code">💻</a> <a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Ajmannau" title="Bug reports">🐛</a></td>
172
- <td align="center"><a href="http://patrickwalters.us/"><img src="https://avatars0.githubusercontent.com/u/4002194?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Patrick</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Aaskpatrickw" title="Bug reports">🐛</a> <a href="https://github.com/Josverl/micropython-stubber/commits?author=askpatrickw" title="Code">💻</a> <a href="#stubs-askpatrickw" title="MicroPython stubs">📚</a></td>
173
- <td align="center"><a href="https://opencollective.com/pythonseverywhere"><img src="https://avatars3.githubusercontent.com/u/16009100?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Paul m. p. P.</b></sub></a><br /><a href="#ideas-pmp-p" title="Ideas, Planning, & Feedback">🤔</a> <a href="#research-pmp-p" title="Research">🔬</a></td>
174
- <td align="center"><a href="https://github.com/edreamleo"><img src="https://avatars0.githubusercontent.com/u/592928?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Edward K. Ream</b></sub></a><br /><a href="#plugin-edreamleo" title="Plugin/utility libraries">🔌</a></td>
175
- <td align="center"><a href="https://github.com/dastultz"><img src="https://avatars3.githubusercontent.com/u/4334042?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daryl Stultz</b></sub></a><br /><a href="#stubs-dastultz" title="MicroPython stubs">📚</a></td>
176
- <td align="center"><a href="https://github.com/cabletie"><img src="https://avatars1.githubusercontent.com/u/2356734?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Keeping things together</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Acabletie" title="Bug reports">🐛</a></td>
177
- </tr>
178
- <tr>
179
- <td align="center"><a href="https://github.com/vbolshakov"><img src="https://avatars2.githubusercontent.com/u/2453324?v=4?s=100" width="100px;" alt=""/><br /><sub><b>vbolshakov</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Avbolshakov" title="Bug reports">🐛</a> <a href="#stubs-vbolshakov" title="MicroPython stubs">📚</a></td>
180
- <td align="center"><a href="https://lemariva.com/"><img src="https://avatars2.githubusercontent.com/u/15173329?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mauro Riva</b></sub></a><br /><a href="#blog-lemariva" title="Blogposts">📝</a> <a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3Alemariva" title="Bug reports">🐛</a></td>
181
- <td align="center"><a href="https://github.com/MathijsNL"><img src="https://avatars0.githubusercontent.com/u/1612886?v=4?s=100" width="100px;" alt=""/><br /><sub><b>MathijsNL</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3AMathijsNL" title="Bug reports">🐛</a></td>
182
- <td align="center"><a href="http://comingsoon.tm/"><img src="https://avatars0.githubusercontent.com/u/13251689?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Callum Jacob Hays</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3ACallumJHays" title="Bug reports">🐛</a> <a href="#test-CallumJHays" title="Test">✔</a></td>
183
- <td align="center"><a href="https://github.com/v923z"><img src="https://avatars0.githubusercontent.com/u/1310472?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Zoltán Vörös</b></sub></a><br /><a href="#data-v923z" title="Data">🔣</a></td>
184
- <td align="center"><a href="https://github.com/vincent-l-j"><img src="https://avatars.githubusercontent.com/u/20021376?v=4?s=100" width="100px;" alt=""/><br /><sub><b>vincent-l-j</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=vincent-l-j" title="Documentation">📖</a></td>
185
- <td align="center"><a href="https://github.com/yegorLitvinov"><img src="https://avatars.githubusercontent.com/u/20367310?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Egor Litvinov</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/issues?q=author%3AyegorLitvinov" title="Bug reports">🐛</a></td>
186
- </tr>
187
- </table>
188
-
189
- <!-- markdownlint-restore -->
190
- <!-- prettier-ignore-end -->
191
-
192
- <!-- ALL-CONTRIBUTORS-LIST:END -->
193
-
194
- This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
195
-
196
- ----------------------------
197
-
198
- --------------------------------
199
-
200
-
201
-
202
- [stubs-repo]: https://github.com/Josverl/micropython-stubs
203
- [stubs-repo2]: https://github.com/BradenM/micropy-stubs
204
- [micropython-stubber]: https://github.com/Josverl/micropython-stubber
205
- [micropython-stubs]: https://github.com/Josverl/micropython-stubs#micropython-stubs
206
- [micropy-cli]: https://github.com/BradenM/micropy-cli
207
- [using-the-stubs]: https://github.com/Josverl/micropython-stubs#using-the-stubs
208
- [demo]: https://github.com/Josverl/micropython-stubber/blob/main/docs/img/demo.gif?raw=true "demo of writing code using the stubs"
209
- [stub processing order]: https://github.com/Josverl/micropython-stubber/blob/main/docs/img/stuborder_pylance.png?raw=true "recommended stub processing order"
210
- [naming-convention]: #naming-convention-and-stub-folder-structure
211
- [all-stubs]: https://github.com/Josverl/micropython-stubs/blob/main/firmwares.md
212
- [micropython]: https://github.com/micropython/micropython
213
- [micropython-lib]: https://github.com/micropython/micropython-lib
214
- [pycopy]: https://github.com/pfalcon/pycopy
215
- [pycopy-lib]: https://github.com/pfalcon/pycopy-lib
216
-
217
-