micropython-stubber 1.14.1__tar.gz → 1.15.1__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 (119) hide show
  1. micropython_stubber-1.15.1/PKG-INFO +244 -0
  2. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/pyproject.toml +14 -12
  3. micropython_stubber-1.15.1/readme.md +195 -0
  4. micropython_stubber-1.15.1/src/stubber/__init__.py +4 -0
  5. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/basicgit.py +27 -14
  6. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/createstubs.py +34 -36
  7. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/createstubs_db.py +35 -35
  8. micropython_stubber-1.15.1/src/stubber/board/createstubs_db_min.py +303 -0
  9. micropython_stubber-1.15.1/src/stubber/board/createstubs_db_mpy.mpy +0 -0
  10. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/createstubs_info.py +73 -42
  11. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/createstubs_lvgl.py +35 -35
  12. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/createstubs_lvgl_min.py +88 -87
  13. micropython_stubber-1.15.1/src/stubber/board/createstubs_lvgl_mpy.mpy +0 -0
  14. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/createstubs_mem.py +44 -40
  15. micropython_stubber-1.15.1/src/stubber/board/createstubs_mem_min.py +283 -0
  16. micropython_stubber-1.15.1/src/stubber/board/createstubs_mem_mpy.mpy +0 -0
  17. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/createstubs_min.py +75 -74
  18. micropython_stubber-1.15.1/src/stubber/board/createstubs_mpy.mpy +0 -0
  19. micropython_stubber-1.15.1/src/stubber/board/info.py +183 -0
  20. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/enrich.py +28 -16
  21. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/build_cmd.py +3 -3
  22. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/get_core_cmd.py +17 -5
  23. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/get_docstubs_cmd.py +23 -8
  24. micropython_stubber-1.15.1/src/stubber/commands/get_frozen_cmd.py +117 -0
  25. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/get_lobo_cmd.py +13 -3
  26. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/merge_cmd.py +7 -4
  27. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/publish_cmd.py +5 -4
  28. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/stub_cmd.py +2 -1
  29. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/variants_cmd.py +0 -1
  30. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/freeze/common.py +2 -2
  31. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/freeze/freeze_folder.py +1 -1
  32. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/freeze/get_frozen.py +1 -1
  33. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/minify.py +43 -28
  34. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/bump.py +1 -1
  35. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/candidates.py +61 -17
  36. micropython_stubber-1.15.1/src/stubber/publish/defaults.py +44 -0
  37. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/merge_docstubs.py +19 -56
  38. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/package.py +44 -37
  39. micropython_stubber-1.15.1/src/stubber/publish/pathnames.py +51 -0
  40. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/publish.py +5 -4
  41. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/stubpacker.py +55 -33
  42. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/rst/lookup.py +7 -16
  43. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/rst/reader.py +39 -8
  44. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/stubs_from_docs.py +5 -8
  45. micropython_stubber-1.15.1/src/stubber/utils/post.py +76 -0
  46. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/repos.py +32 -17
  47. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/stubmaker.py +22 -14
  48. micropython_stubber-1.14.1/PKG-INFO +0 -217
  49. micropython_stubber-1.14.1/readme.md +0 -168
  50. micropython_stubber-1.14.1/src/stubber/__init__.py +0 -4
  51. micropython_stubber-1.14.1/src/stubber/board/createstubs_db_min.py +0 -301
  52. micropython_stubber-1.14.1/src/stubber/board/createstubs_db_mpy.mpy +0 -0
  53. micropython_stubber-1.14.1/src/stubber/board/createstubs_lvgl_mpy.mpy +0 -0
  54. micropython_stubber-1.14.1/src/stubber/board/createstubs_mem_min.py +0 -278
  55. micropython_stubber-1.14.1/src/stubber/board/createstubs_mem_mpy.mpy +0 -0
  56. micropython_stubber-1.14.1/src/stubber/board/createstubs_mpy.mpy +0 -0
  57. micropython_stubber-1.14.1/src/stubber/commands/get_frozen_cmd.py +0 -64
  58. micropython_stubber-1.14.1/src/stubber/utils/post.py +0 -82
  59. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/LICENSE +0 -0
  60. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/board_info.csv +0 -0
  61. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/boot.py +0 -0
  62. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/logging.py +0 -0
  63. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/main.py +0 -0
  64. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/modulelist.txt +0 -0
  65. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/board/pyrightconfig.json +0 -0
  66. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/__init__.py +0 -0
  67. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/_partials/__init__.py +0 -0
  68. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/_partials/db_main.py +0 -0
  69. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/_partials/lvgl_main.py +0 -0
  70. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/_partials/modules_reader.py +0 -0
  71. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/add_comment.py +0 -0
  72. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/add_method.py +0 -0
  73. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/board.py +0 -0
  74. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/merge_docstub.py +0 -0
  75. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/modify_list.py +0 -0
  76. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/codemod/utils.py +0 -0
  77. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/__init__.py +0 -0
  78. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/cli.py +0 -0
  79. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/clone_cmd.py +0 -0
  80. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/config_cmd.py +0 -0
  81. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/enrich_folder_cmd.py +0 -0
  82. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/minify_cmd.py +0 -0
  83. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/switch_cmd.py +0 -0
  84. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/upd_fallback_cmd.py +0 -0
  85. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/commands/upd_module_list_cmd.py +0 -0
  86. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/cst_transformer.py +0 -0
  87. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/data/board_info.csv +0 -0
  88. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/data/board_info.json +0 -0
  89. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/data/micropython_tags.csv +0 -0
  90. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/data/requirements-core-micropython.txt +0 -0
  91. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/data/requirements-core-pycopy.txt +0 -0
  92. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/downloader.py +0 -0
  93. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/freeze/__init__.py +0 -0
  94. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/freeze/freeze_manifest_2.py +0 -0
  95. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/get_cpython.py +0 -0
  96. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/get_lobo.py +0 -0
  97. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/__init__.py +0 -0
  98. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/database.py +0 -0
  99. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/enums.py +0 -0
  100. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/missing_class_methods.py +0 -0
  101. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/publish/pypi.py +0 -0
  102. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/rst/__init__.py +0 -0
  103. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/rst/classsort.py +0 -0
  104. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/rst/output_dict.py +0 -0
  105. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/rst/report_return.py +0 -0
  106. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/rst/rst_utils.py +0 -0
  107. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/stubber.py +0 -0
  108. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/tools/__init__.py +0 -0
  109. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/tools/manifestfile.py +0 -0
  110. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/tools/readme.md +0 -0
  111. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/update_fallback.py +0 -0
  112. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/update_module_list.py +0 -0
  113. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/__init__.py +0 -0
  114. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/config.py +0 -0
  115. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/makeversionhdr.py +0 -0
  116. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/manifest.py +0 -0
  117. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/typed_config_toml.py +0 -0
  118. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/utils/versions.py +0 -0
  119. {micropython_stubber-1.14.1 → micropython_stubber-1.15.1}/src/stubber/variants.py +0 -0
@@ -0,0 +1,244 @@
1
+ Metadata-Version: 2.1
2
+ Name: micropython-stubber
3
+ Version: 1.15.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.9,<3.12
11
+ Classifier: License :: OSI Approved :: MIT License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.9
14
+ Classifier: Programming Language :: Python :: 3.10
15
+ Classifier: Programming Language :: Python :: 3.11
16
+ Classifier: Programming Language :: Python :: Implementation :: CPython
17
+ Classifier: Programming Language :: Python :: Implementation :: MicroPython
18
+ Classifier: Topic :: Software Development :: Build Tools
19
+ Classifier: Topic :: Text Editors :: Integrated Development Environments (IDE)
20
+ Provides-Extra: tools
21
+ Requires-Dist: autoflake (>=1.7,<3.0)
22
+ Requires-Dist: black (>=22.10,<23.0)
23
+ Requires-Dist: cachetools (>=5.3.0,<6.0.0)
24
+ Requires-Dist: click (>=8.1.3,<9.0.0)
25
+ Requires-Dist: esptool (>=4.4,<5.0) ; extra == "tools"
26
+ Requires-Dist: executing (>=2.0.1,<3.0.0)
27
+ Requires-Dist: importlib-metadata (>=1.0,<2.0) ; python_version < "3.8"
28
+ Requires-Dist: libcst (>=0.4.9,<1.2.0)
29
+ Requires-Dist: loguru (>=0.6,<0.8)
30
+ Requires-Dist: mypy (==1.7.0)
31
+ Requires-Dist: packaging (>=21.3,<24.0)
32
+ Requires-Dist: pipx (>=1.1.0,<2.0.0)
33
+ Requires-Dist: pygithub (>=2.1.1,<3.0.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 PyPi, github or pre-installed by a tool, so it is quite likely that you can just grab a copy be be productive in a few minutes.
87
+
88
+ ## To install the stubs from PyPI
89
+ This section describes how to install the stubs from PyPI, and how to use them in your project.
90
+ If you want to create or maintain stub - please see the next section.
91
+
92
+ - Install in a typings folder (recommended)
93
+ `pip install -U micropython-<port>[-<board>]stubs --no-user --target ./typings`
94
+ - Install in a venv (after activating)
95
+ `pip install -U micropython-<port>[-<board>]stubs --no-user`
96
+
97
+ Examples:
98
+ ``` bash
99
+ pip install -U micropython-stm32-stubs
100
+
101
+ # Install stubs for a specific version.
102
+ pip install -U micropython-esp32-stubs==1.20.0.*
103
+
104
+ # Install stubs for a specific board.
105
+ pip install -U micropython-rp2-pico_w-stubs
106
+ ```
107
+
108
+ For more details how to use the stubs please refer to [the documentation on RTD](https://micropython-stubs.readthedocs.io/en/latest/20_using.html)
109
+
110
+
111
+ 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.
112
+ That repo also contains examples configuration files that can be easily adopted to your setup.
113
+
114
+ 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.
115
+ You should use micropy-cli to consume stubs from that repo.
116
+
117
+ The (stretch) goal is to create a VSCode add-in to simplify the configuration, and allow easy switching between different firmwares and versions.
118
+
119
+
120
+ ## Install and basic usage of the stubber tool
121
+
122
+ ``` bash
123
+ pip install micropython-stubber
124
+
125
+ # go to your working folder
126
+ cd my_stub_folder
127
+ mkdir all-stubs
128
+
129
+ # clone the micropython repo's and switch to a specific version
130
+ stubber clone
131
+ stubber switch --version v1.18
132
+
133
+ # get the document stubs for the current version ( v1.18 )
134
+ stubber get-docstubs
135
+
136
+ # get the frozen stubs for the current version ( v1.18 )
137
+ stubber get-frozen
138
+
139
+ # get the core CPython compatibility stubs from PyPi
140
+ stubber get-core
141
+
142
+ # Update the fallback stubs
143
+ stubber update-fallback
144
+
145
+ #
146
+ ls all-stubs
147
+ dir all-stubs
148
+ ```
149
+
150
+
151
+ ## Developing & testing
152
+
153
+ This is described in more detail in the [developing](docs/developing.md) and [testing](docs/testing.md) documents in the docs folder.
154
+
155
+ ## Branch Main
156
+ The name of the default branch has been changed to `main`.
157
+ 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.
158
+
159
+ To update run the below command:
160
+ ``` bash
161
+ git branch -m master main
162
+ git fetch origin
163
+ git branch -u origin/main main
164
+ git remote set-head origin -a
165
+ ```
166
+
167
+ 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)
168
+
169
+ ## Licensing
170
+
171
+ MicroPython-Stubber is licensed under the MIT license, and all contributions should follow this [LICENSE](LICENSE).
172
+
173
+
174
+ # Contributions
175
+ <!-- spell-checker: disable -->
176
+
177
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
178
+ <!-- prettier-ignore-start -->
179
+ <!-- markdownlint-disable -->
180
+ <table>
181
+ <tbody>
182
+ <tr>
183
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Josverl"><img src="https://avatars2.githubusercontent.com/u/981654?v=4?s=100" width="100px;" alt="Jos Verlinde"/><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>
184
+ <td align="center" valign="top" width="14.28%"><a href="https://thonny.org/"><img src="https://avatars1.githubusercontent.com/u/46202078?v=4?s=100" width="100px;" alt="Thonny, Python IDE for beginners"/><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>
185
+ <td align="center" valign="top" width="14.28%"><a href="https://micropython.org/"><img src="https://avatars1.githubusercontent.com/u/6298560?v=4?s=100" width="100px;" alt="MicroPython"/><br /><sub><b>MicroPython</b></sub></a><br /><a href="#data-micropython" title="Data">🔣</a> <a href="#stubs-micropython" title="MicroPython stubs">📚</a></td>
186
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/microsoft/pyright"><img src="https://avatars.githubusercontent.com/u/6154722?v=4?s=100" width="100px;" alt="pyright"/><br /><sub><b>pyright</b></sub></a><br /><a href="#tool-pyright" title="Tools">🔧</a></td>
187
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/loboris"><img src="https://avatars3.githubusercontent.com/u/6280349?v=4?s=100" width="100px;" alt="Boris Lovosevic"/><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>
188
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pfalcon"><img src="https://avatars3.githubusercontent.com/u/500451?v=4?s=100" width="100px;" alt="Paul Sokolovsky"/><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>
189
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pycopy"><img src="https://avatars0.githubusercontent.com/u/67273174?v=4?s=100" width="100px;" alt="pycopy"/><br /><sub><b>pycopy</b></sub></a><br /><a href="#data-pycopy" title="Data">🔣</a> <a href="#stubs-pycopy" title="MicroPython stubs">📚</a></td>
190
+ </tr>
191
+ <tr>
192
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pycom"><img src="https://avatars2.githubusercontent.com/u/16415153?v=4?s=100" width="100px;" alt="Pycom"/><br /><sub><b>Pycom</b></sub></a><br /><a href="#infra-pycom" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
193
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/BradenM"><img src="https://avatars1.githubusercontent.com/u/5913808?v=4?s=100" width="100px;" alt="Braden Mars"/><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>
194
+ <td align="center" valign="top" width="14.28%"><a href="https://binary.com.au/"><img src="https://avatars2.githubusercontent.com/u/175909?v=4?s=100" width="100px;" alt="James Manners"/><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>
195
+ <td align="center" valign="top" width="14.28%"><a href="http://patrickwalters.us/"><img src="https://avatars0.githubusercontent.com/u/4002194?v=4?s=100" width="100px;" alt="Patrick"/><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>
196
+ <td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/pythonseverywhere"><img src="https://avatars3.githubusercontent.com/u/16009100?v=4?s=100" width="100px;" alt="Paul m. p. P."/><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>
197
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/edreamleo"><img src="https://avatars0.githubusercontent.com/u/592928?v=4?s=100" width="100px;" alt="Edward K. Ream"/><br /><sub><b>Edward K. Ream</b></sub></a><br /><a href="#plugin-edreamleo" title="Plugin/utility libraries">🔌</a></td>
198
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dastultz"><img src="https://avatars3.githubusercontent.com/u/4334042?v=4?s=100" width="100px;" alt="Daryl Stultz"/><br /><sub><b>Daryl Stultz</b></sub></a><br /><a href="#stubs-dastultz" title="MicroPython stubs">📚</a></td>
199
+ </tr>
200
+ <tr>
201
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/cabletie"><img src="https://avatars1.githubusercontent.com/u/2356734?v=4?s=100" width="100px;" alt="Keeping things together"/><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>
202
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vbolshakov"><img src="https://avatars2.githubusercontent.com/u/2453324?v=4?s=100" width="100px;" alt="vbolshakov"/><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>
203
+ <td align="center" valign="top" width="14.28%"><a href="https://lemariva.com/"><img src="https://avatars2.githubusercontent.com/u/15173329?v=4?s=100" width="100px;" alt="Mauro Riva"/><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>
204
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/MathijsNL"><img src="https://avatars0.githubusercontent.com/u/1612886?v=4?s=100" width="100px;" alt="MathijsNL"/><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>
205
+ <td align="center" valign="top" width="14.28%"><a href="http://comingsoon.tm/"><img src="https://avatars0.githubusercontent.com/u/13251689?v=4?s=100" width="100px;" alt="Callum Jacob Hays"/><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>
206
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/v923z"><img src="https://avatars0.githubusercontent.com/u/1310472?v=4?s=100" width="100px;" alt="Zoltán Vörös"/><br /><sub><b>Zoltán Vörös</b></sub></a><br /><a href="#data-v923z" title="Data">🔣</a></td>
207
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vincent-l-j"><img src="https://avatars.githubusercontent.com/u/20021376?v=4?s=100" width="100px;" alt="vincent-l-j"/><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>
208
+ </tr>
209
+ <tr>
210
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/yegorLitvinov"><img src="https://avatars.githubusercontent.com/u/20367310?v=4?s=100" width="100px;" alt="Egor Litvinov"/><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>
211
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/samskiter"><img src="https://avatars.githubusercontent.com/u/1271643?v=4?s=100" width="100px;" alt="Sam Duke"/><br /><sub><b>Sam Duke</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=samskiter" title="Code">💻</a></td>
212
+ </tr>
213
+ </tbody>
214
+ </table>
215
+
216
+ <!-- markdownlint-restore -->
217
+ <!-- prettier-ignore-end -->
218
+
219
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
220
+
221
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
222
+
223
+ ----------------------------
224
+
225
+ --------------------------------
226
+
227
+
228
+
229
+ [stubs-repo]: https://github.com/Josverl/micropython-stubs
230
+ [stubs-repo2]: https://github.com/BradenM/micropy-stubs
231
+ [micropython-stubber]: https://github.com/Josverl/micropython-stubber
232
+ [micropython-stubs]: https://github.com/Josverl/micropython-stubs#micropython-stubs
233
+ [micropy-cli]: https://github.com/BradenM/micropy-cli
234
+ [using-the-stubs]: https://github.com/Josverl/micropython-stubs#using-the-stubs
235
+ [demo]: https://github.com/Josverl/micropython-stubber/blob/main/docs/img/demo.gif?raw=true "demo of writing code using the stubs"
236
+ [stub processing order]: https://github.com/Josverl/micropython-stubber/blob/main/docs/img/stuborder_pylance.png?raw=true "recommended stub processing order"
237
+ [naming-convention]: #naming-convention-and-stub-folder-structure
238
+ [all-stubs]: https://github.com/Josverl/micropython-stubs/blob/main/firmwares.md
239
+ [micropython]: https://github.com/micropython/micropython
240
+ [micropython-lib]: https://github.com/micropython/micropython-lib
241
+ [pycopy]: https://github.com/pfalcon/pycopy
242
+ [pycopy-lib]: https://github.com/pfalcon/pycopy-lib
243
+
244
+
@@ -8,7 +8,7 @@ repo-path = "./repos"
8
8
 
9
9
  [tool.poetry]
10
10
  name = "micropython-stubber"
11
- version = "1.14.1"
11
+ version = "1.15.1"
12
12
  description = "Tooling to create and maintain stubs for MicroPython"
13
13
  authors = ["Jos Verlinde <jos_verlinde@hotmail.com>"]
14
14
  license = "MIT"
@@ -45,12 +45,12 @@ exclude = [
45
45
  stubber = "stubber.stubber:stubber_cli"
46
46
 
47
47
  [tool.poetry.dependencies]
48
- python = ">=3.8,<3.12"
48
+ python = ">=3.9,<3.12"
49
49
  python-minifier = "^2.7.0"
50
50
  requests = "^2.28.0"
51
- mypy = "1.2.0"
51
+ mypy = "1.7.0"
52
52
  black = ">=22.10,<23.0"
53
- libcst = "^0.4.9"
53
+ libcst = ">=0.4.9,<1.2.0"
54
54
  autoflake = ">=1.7,<3.0"
55
55
  cachetools = "^5.3.0"
56
56
  click = "^8.1.3"
@@ -59,7 +59,7 @@ importlib-metadata = { version = "^1.0", python = "<3.8" }
59
59
  loguru = ">=0.6,<0.8"
60
60
  packaging = ">=21.3,<24.0"
61
61
  pipx = "^1.1.0"
62
- pygithub = "^1.57"
62
+ pygithub = "^2.1.1"
63
63
  pypi-simple = "^1.0.0"
64
64
  pyright = "^1.1.265"
65
65
  pysondb-v2 = "^2.1.0"
@@ -69,6 +69,7 @@ tomli = { version = "^2.0.1", python = "<3.11" }
69
69
  tomli-w = "^1.0.0"
70
70
  typed-config = "^1.3.0"
71
71
  pyserial = "^3.5"
72
+ executing = "^2.0.1"
72
73
 
73
74
  [tool.poetry.extras]
74
75
  tools = ["esptool"]
@@ -76,12 +77,12 @@ tools = ["esptool"]
76
77
  [tool.poetry.group.docs]
77
78
  optional = true
78
79
  [tool.poetry.group.docs.dependencies]
79
- Sphinx = ">=4.4,<6.0"
80
- myst-parser = ">=0.17,<0.19"
80
+ sphinx = "^7.2.6"
81
+ myst-parser = ">=0.17"
81
82
  sphinx_rtd_theme = "^1.0.0"
82
- sphinx-autoapi = "^1.9.0"
83
- sphinx-click = "^4.4.0"
84
- sphinxcontrib-mermaid = ">=0.7.1,<0.9.0"
83
+ sphinx-autoapi = "^3.0.0"
84
+ sphinx-click = "5.0.1"
85
+ sphinxcontrib-mermaid = ">=0.9.2"
85
86
 
86
87
  [tool.poetry.group.dev]
87
88
  optional = true
@@ -91,15 +92,16 @@ distro = "^1.8.0"
91
92
  mock = "^4.0.3"
92
93
  pydeps = "^1.10.22"
93
94
  pytest = "^7.1.2"
94
- pytest-github-actions-annotate-failures = "^0.1.7"
95
+ pytest-github-actions-annotate-failures = ">=0.1.7,<0.3.0"
95
96
  pytest-json-report = "^1.5.0"
96
- pytest-metadata = "^2.0.2"
97
+ pytest-metadata = ">=2.0.2,<4.0.0"
97
98
  pytest-mock = "^3.10.0"
98
99
  sourcery-cli = "^1.0.3"
99
100
  mpremote = { git = "https://github.com/Josverl/mpremote", subdirectory = "tools/mpremote", optional = true }
100
101
  ipykernel = "^6.23.1"
101
102
  fasteners = "^0.19"
102
103
  python-dotenv = "^1.0.0"
104
+ pydocstyle = "^6.3.0"
103
105
 
104
106
 
105
107
 
@@ -0,0 +1,195 @@
1
+ # Boost MicroPython productivity in VSCode
2
+
3
+ [![pypi version](https://badgen.net/pypi/v/micropython-stubber)](https://pypi.org/project/micropython-stubber/)
4
+ [![python versions](https://badgen.net/pypi/python/micropython-stubber)](https://badgen.net/pypi/python/micropython-stubber)
5
+ [![Documentation Status](https://readthedocs.org/projects/micropython-stubber/badge/?version=latest)](https://micropython-stubber.readthedocs.io/en/latest/?badge=latest "Document build status badge")
6
+ [![Star on GitHub](https://img.shields.io/github/stars/josverl/micropython-stubber.svg?style=social)](https://github.com/josverl/micropython-stubber/stargazers)
7
+ [![All Contributors](https://img.shields.io/badge/all_contributors-19-green.svg?style=flat-square)](#Contributions)
8
+ <!-- break -->
9
+ [![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)
10
+ [![codecov](https://codecov.io/gh/Josverl/micropython-stubber/branch/main/graph/badge.svg?token=WJFGMKBHOV)](https://codecov.io/gh/Josverl/micropython-stubber)
11
+ [![Black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/python/black "Black badge")
12
+ <!-- break -->
13
+ [![Open in VSCode](https://img.shields.io/static/v1?logo=visualstudiocode&label=&message=Open%20in%20Visual%20Studio%20Code&labelColor=2c2c32&color=007acc&logoColor=007acc
14
+ )](https://open.vscode.dev/josverl/micropython-stubber)
15
+
16
+ The intellisense and code linting that is so prevalent in modern editors, does not work out-of-the-gate for MicroPython projects.
17
+ 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.
18
+
19
+ 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.
20
+
21
+ 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.
22
+
23
+
24
+ ![demo][]]
25
+
26
+ In order to achieve this a few things are needed:
27
+ 1) Stub files for the native / enabled modules in the firmware using PEP 484 Type Hints
28
+ 2) Specific configuration of the VSCode Python extensions
29
+ 3) Specific configuration of Pylint [ Optional ]
30
+ 4) Suppression of warnings that collide with the MicroPython principals or code optimization.
31
+
32
+ Please review the documentation on [https://micropython-stubber.readthedocs.io]
33
+
34
+ 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.
35
+
36
+ Note that the above is not limited to VSCode and pylint, but it happens to be the combination that I use.
37
+
38
+ A lot of subs have already been generated and are shared on PyPi, github or pre-installed by a tool, so it is quite likely that you can just grab a copy be be productive in a few minutes.
39
+
40
+ ## To install the stubs from PyPI
41
+ This section describes how to install the stubs from PyPI, and how to use them in your project.
42
+ If you want to create or maintain stub - please see the next section.
43
+
44
+ - Install in a typings folder (recommended)
45
+ `pip install -U micropython-<port>[-<board>]stubs --no-user --target ./typings`
46
+ - Install in a venv (after activating)
47
+ `pip install -U micropython-<port>[-<board>]stubs --no-user`
48
+
49
+ Examples:
50
+ ``` bash
51
+ pip install -U micropython-stm32-stubs
52
+
53
+ # Install stubs for a specific version.
54
+ pip install -U micropython-esp32-stubs==1.20.0.*
55
+
56
+ # Install stubs for a specific board.
57
+ pip install -U micropython-rp2-pico_w-stubs
58
+ ```
59
+
60
+ For more details how to use the stubs please refer to [the documentation on RTD](https://micropython-stubs.readthedocs.io/en/latest/20_using.html)
61
+
62
+
63
+ 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.
64
+ That repo also contains examples configuration files that can be easily adopted to your setup.
65
+
66
+ 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.
67
+ You should use micropy-cli to consume stubs from that repo.
68
+
69
+ The (stretch) goal is to create a VSCode add-in to simplify the configuration, and allow easy switching between different firmwares and versions.
70
+
71
+
72
+ ## Install and basic usage of the stubber tool
73
+
74
+ ``` bash
75
+ pip install micropython-stubber
76
+
77
+ # go to your working folder
78
+ cd my_stub_folder
79
+ mkdir all-stubs
80
+
81
+ # clone the micropython repo's and switch to a specific version
82
+ stubber clone
83
+ stubber switch --version v1.18
84
+
85
+ # get the document stubs for the current version ( v1.18 )
86
+ stubber get-docstubs
87
+
88
+ # get the frozen stubs for the current version ( v1.18 )
89
+ stubber get-frozen
90
+
91
+ # get the core CPython compatibility stubs from PyPi
92
+ stubber get-core
93
+
94
+ # Update the fallback stubs
95
+ stubber update-fallback
96
+
97
+ #
98
+ ls all-stubs
99
+ dir all-stubs
100
+ ```
101
+
102
+
103
+ ## Developing & testing
104
+
105
+ This is described in more detail in the [developing](docs/developing.md) and [testing](docs/testing.md) documents in the docs folder.
106
+
107
+ ## Branch Main
108
+ The name of the default branch has been changed to `main`.
109
+ 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.
110
+
111
+ To update run the below command:
112
+ ``` bash
113
+ git branch -m master main
114
+ git fetch origin
115
+ git branch -u origin/main main
116
+ git remote set-head origin -a
117
+ ```
118
+
119
+ 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)
120
+
121
+ ## Licensing
122
+
123
+ MicroPython-Stubber is licensed under the MIT license, and all contributions should follow this [LICENSE](LICENSE).
124
+
125
+
126
+ # Contributions
127
+ <!-- spell-checker: disable -->
128
+
129
+ <!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
130
+ <!-- prettier-ignore-start -->
131
+ <!-- markdownlint-disable -->
132
+ <table>
133
+ <tbody>
134
+ <tr>
135
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/Josverl"><img src="https://avatars2.githubusercontent.com/u/981654?v=4?s=100" width="100px;" alt="Jos Verlinde"/><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>
136
+ <td align="center" valign="top" width="14.28%"><a href="https://thonny.org/"><img src="https://avatars1.githubusercontent.com/u/46202078?v=4?s=100" width="100px;" alt="Thonny, Python IDE for beginners"/><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>
137
+ <td align="center" valign="top" width="14.28%"><a href="https://micropython.org/"><img src="https://avatars1.githubusercontent.com/u/6298560?v=4?s=100" width="100px;" alt="MicroPython"/><br /><sub><b>MicroPython</b></sub></a><br /><a href="#data-micropython" title="Data">🔣</a> <a href="#stubs-micropython" title="MicroPython stubs">📚</a></td>
138
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/microsoft/pyright"><img src="https://avatars.githubusercontent.com/u/6154722?v=4?s=100" width="100px;" alt="pyright"/><br /><sub><b>pyright</b></sub></a><br /><a href="#tool-pyright" title="Tools">🔧</a></td>
139
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/loboris"><img src="https://avatars3.githubusercontent.com/u/6280349?v=4?s=100" width="100px;" alt="Boris Lovosevic"/><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>
140
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pfalcon"><img src="https://avatars3.githubusercontent.com/u/500451?v=4?s=100" width="100px;" alt="Paul Sokolovsky"/><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>
141
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pycopy"><img src="https://avatars0.githubusercontent.com/u/67273174?v=4?s=100" width="100px;" alt="pycopy"/><br /><sub><b>pycopy</b></sub></a><br /><a href="#data-pycopy" title="Data">🔣</a> <a href="#stubs-pycopy" title="MicroPython stubs">📚</a></td>
142
+ </tr>
143
+ <tr>
144
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/pycom"><img src="https://avatars2.githubusercontent.com/u/16415153?v=4?s=100" width="100px;" alt="Pycom"/><br /><sub><b>Pycom</b></sub></a><br /><a href="#infra-pycom" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
145
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/BradenM"><img src="https://avatars1.githubusercontent.com/u/5913808?v=4?s=100" width="100px;" alt="Braden Mars"/><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>
146
+ <td align="center" valign="top" width="14.28%"><a href="https://binary.com.au/"><img src="https://avatars2.githubusercontent.com/u/175909?v=4?s=100" width="100px;" alt="James Manners"/><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>
147
+ <td align="center" valign="top" width="14.28%"><a href="http://patrickwalters.us/"><img src="https://avatars0.githubusercontent.com/u/4002194?v=4?s=100" width="100px;" alt="Patrick"/><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>
148
+ <td align="center" valign="top" width="14.28%"><a href="https://opencollective.com/pythonseverywhere"><img src="https://avatars3.githubusercontent.com/u/16009100?v=4?s=100" width="100px;" alt="Paul m. p. P."/><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>
149
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/edreamleo"><img src="https://avatars0.githubusercontent.com/u/592928?v=4?s=100" width="100px;" alt="Edward K. Ream"/><br /><sub><b>Edward K. Ream</b></sub></a><br /><a href="#plugin-edreamleo" title="Plugin/utility libraries">🔌</a></td>
150
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/dastultz"><img src="https://avatars3.githubusercontent.com/u/4334042?v=4?s=100" width="100px;" alt="Daryl Stultz"/><br /><sub><b>Daryl Stultz</b></sub></a><br /><a href="#stubs-dastultz" title="MicroPython stubs">📚</a></td>
151
+ </tr>
152
+ <tr>
153
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/cabletie"><img src="https://avatars1.githubusercontent.com/u/2356734?v=4?s=100" width="100px;" alt="Keeping things together"/><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>
154
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vbolshakov"><img src="https://avatars2.githubusercontent.com/u/2453324?v=4?s=100" width="100px;" alt="vbolshakov"/><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>
155
+ <td align="center" valign="top" width="14.28%"><a href="https://lemariva.com/"><img src="https://avatars2.githubusercontent.com/u/15173329?v=4?s=100" width="100px;" alt="Mauro Riva"/><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>
156
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/MathijsNL"><img src="https://avatars0.githubusercontent.com/u/1612886?v=4?s=100" width="100px;" alt="MathijsNL"/><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>
157
+ <td align="center" valign="top" width="14.28%"><a href="http://comingsoon.tm/"><img src="https://avatars0.githubusercontent.com/u/13251689?v=4?s=100" width="100px;" alt="Callum Jacob Hays"/><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>
158
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/v923z"><img src="https://avatars0.githubusercontent.com/u/1310472?v=4?s=100" width="100px;" alt="Zoltán Vörös"/><br /><sub><b>Zoltán Vörös</b></sub></a><br /><a href="#data-v923z" title="Data">🔣</a></td>
159
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/vincent-l-j"><img src="https://avatars.githubusercontent.com/u/20021376?v=4?s=100" width="100px;" alt="vincent-l-j"/><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>
160
+ </tr>
161
+ <tr>
162
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/yegorLitvinov"><img src="https://avatars.githubusercontent.com/u/20367310?v=4?s=100" width="100px;" alt="Egor Litvinov"/><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>
163
+ <td align="center" valign="top" width="14.28%"><a href="https://github.com/samskiter"><img src="https://avatars.githubusercontent.com/u/1271643?v=4?s=100" width="100px;" alt="Sam Duke"/><br /><sub><b>Sam Duke</b></sub></a><br /><a href="https://github.com/Josverl/micropython-stubber/commits?author=samskiter" title="Code">💻</a></td>
164
+ </tr>
165
+ </tbody>
166
+ </table>
167
+
168
+ <!-- markdownlint-restore -->
169
+ <!-- prettier-ignore-end -->
170
+
171
+ <!-- ALL-CONTRIBUTORS-LIST:END -->
172
+
173
+ This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
174
+
175
+ ----------------------------
176
+
177
+ --------------------------------
178
+
179
+
180
+
181
+ [stubs-repo]: https://github.com/Josverl/micropython-stubs
182
+ [stubs-repo2]: https://github.com/BradenM/micropy-stubs
183
+ [micropython-stubber]: https://github.com/Josverl/micropython-stubber
184
+ [micropython-stubs]: https://github.com/Josverl/micropython-stubs#micropython-stubs
185
+ [micropy-cli]: https://github.com/BradenM/micropy-cli
186
+ [using-the-stubs]: https://github.com/Josverl/micropython-stubs#using-the-stubs
187
+ [demo]: https://github.com/Josverl/micropython-stubber/blob/main/docs/img/demo.gif?raw=true "demo of writing code using the stubs"
188
+ [stub processing order]: https://github.com/Josverl/micropython-stubber/blob/main/docs/img/stuborder_pylance.png?raw=true "recommended stub processing order"
189
+ [naming-convention]: #naming-convention-and-stub-folder-structure
190
+ [all-stubs]: https://github.com/Josverl/micropython-stubs/blob/main/firmwares.md
191
+ [micropython]: https://github.com/micropython/micropython
192
+ [micropython-lib]: https://github.com/micropython/micropython-lib
193
+ [pycopy]: https://github.com/pfalcon/pycopy
194
+ [pycopy-lib]: https://github.com/pfalcon/pycopy-lib
195
+
@@ -0,0 +1,4 @@
1
+ """get the version"""
2
+
3
+
4
+ __version__ = "1.15.1"