micropython-stubber 1.23.0__py3-none-any.whl → 1.23.1.post1__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 (110) hide show
  1. {micropython_stubber-1.23.0.dist-info → micropython_stubber-1.23.1.post1.dist-info}/METADATA +32 -14
  2. micropython_stubber-1.23.1.post1.dist-info/RECORD +159 -0
  3. micropython_stubber-1.23.1.post1.dist-info/entry_points.txt +5 -0
  4. mpflash/README.md +40 -4
  5. mpflash/mpflash/add_firmware.py +1 -1
  6. mpflash/mpflash/ask_input.py +1 -1
  7. {stubber → mpflash/mpflash}/basicgit.py +3 -13
  8. mpflash/mpflash/bootloader/__init__.py +2 -37
  9. mpflash/mpflash/bootloader/activate.py +60 -0
  10. mpflash/mpflash/bootloader/detect.py +82 -0
  11. mpflash/mpflash/bootloader/manual.py +10 -11
  12. mpflash/mpflash/bootloader/micropython.py +2 -0
  13. mpflash/mpflash/bootloader/touch1200.py +13 -22
  14. mpflash/mpflash/cli_download.py +2 -2
  15. mpflash/mpflash/cli_flash.py +13 -16
  16. mpflash/mpflash/cli_group.py +18 -5
  17. mpflash/mpflash/cli_list.py +8 -2
  18. mpflash/mpflash/cli_main.py +3 -5
  19. mpflash/mpflash/common.py +3 -1
  20. mpflash/mpflash/config.py +2 -1
  21. mpflash/mpflash/connected.py +11 -8
  22. mpflash/mpflash/download.py +9 -5
  23. mpflash/mpflash/downloaded.py +1 -1
  24. mpflash/mpflash/{flash.py → flash/__init__.py} +3 -3
  25. mpflash/mpflash/{flash_esp.py → flash/esp.py} +1 -1
  26. mpflash/mpflash/{flash_stm32.py → flash/stm32.py} +4 -3
  27. mpflash/mpflash/{flash_stm32_dfu.py → flash/stm32_dfu.py} +1 -1
  28. mpflash/mpflash/{flash_uf2.py → flash/uf2/__init__.py} +19 -20
  29. mpflash/mpflash/{flash_uf2_linux.py → flash/uf2/linux.py} +12 -11
  30. mpflash/mpflash/{flash_uf2_macos.py → flash/uf2/macos.py} +11 -6
  31. mpflash/mpflash/{flash_uf2_windows.py → flash/uf2/windows.py} +11 -6
  32. mpflash/mpflash/{worklist.py → flash/worklist.py} +8 -9
  33. mpflash/mpflash/list.py +26 -9
  34. mpflash/mpflash/mpboard_id/__init__.py +1 -1
  35. mpflash/mpflash/mpboard_id/add_boards.py +3 -7
  36. mpflash/mpflash/mpboard_id/board_id.py +1 -1
  37. mpflash/mpflash/mpremoteboard/__init__.py +57 -17
  38. {stubber/utils → mpflash/mpflash}/versions.py +31 -24
  39. mpflash/poetry.lock +16 -5
  40. mpflash/pyproject.toml +4 -3
  41. stubber/__init__.py +1 -1
  42. stubber/board/createstubs.py +4 -4
  43. stubber/board/createstubs_db.py +5 -5
  44. stubber/board/createstubs_db_min.py +1 -1
  45. stubber/board/createstubs_db_mpy.mpy +0 -0
  46. stubber/board/createstubs_mem.py +5 -5
  47. stubber/board/createstubs_mem_min.py +1 -1
  48. stubber/board/createstubs_mem_mpy.mpy +0 -0
  49. stubber/board/createstubs_min.py +1 -1
  50. stubber/board/createstubs_mpy.mpy +0 -0
  51. stubber/bulk/mcu_stubber.py +28 -45
  52. stubber/codemod/enrich.py +1 -1
  53. stubber/codemod/merge_docstub.py +1 -1
  54. stubber/codemod/utils.py +2 -3
  55. stubber/commands/build_cmd.py +1 -1
  56. stubber/commands/cli.py +6 -12
  57. stubber/commands/clone_cmd.py +3 -2
  58. stubber/commands/config_cmd.py +1 -1
  59. stubber/commands/enrich_folder_cmd.py +1 -1
  60. stubber/commands/get_core_cmd.py +1 -1
  61. stubber/commands/get_docstubs_cmd.py +6 -3
  62. stubber/commands/get_frozen_cmd.py +6 -3
  63. stubber/commands/get_mcu_cmd.py +53 -12
  64. stubber/commands/merge_cmd.py +2 -3
  65. stubber/commands/publish_cmd.py +2 -3
  66. stubber/commands/stub_cmd.py +1 -1
  67. stubber/commands/switch_cmd.py +2 -2
  68. stubber/commands/variants_cmd.py +2 -3
  69. stubber/downloader.py +2 -1
  70. stubber/freeze/common.py +7 -3
  71. stubber/freeze/freeze_folder.py +2 -2
  72. stubber/freeze/freeze_manifest_2.py +19 -6
  73. stubber/freeze/get_frozen.py +8 -4
  74. stubber/get_cpython.py +15 -4
  75. stubber/minify.py +11 -6
  76. stubber/publish/candidates.py +20 -7
  77. stubber/publish/defaults.py +4 -9
  78. stubber/publish/merge_docstubs.py +4 -2
  79. stubber/publish/missing_class_methods.py +5 -3
  80. stubber/publish/package.py +8 -4
  81. stubber/publish/pathnames.py +2 -2
  82. stubber/publish/publish.py +2 -2
  83. stubber/publish/pypi.py +6 -2
  84. stubber/publish/stubpackage.py +39 -17
  85. stubber/rst/classsort.py +2 -1
  86. stubber/rst/lookup.py +1 -0
  87. stubber/rst/reader.py +12 -20
  88. stubber/rst/report_return.py +12 -4
  89. stubber/rst/rst_utils.py +2 -1
  90. stubber/stubs_from_docs.py +1 -1
  91. stubber/tools/manifestfile.py +1 -2
  92. stubber/update_fallback.py +2 -2
  93. stubber/update_module_list.py +1 -1
  94. stubber/utils/__init__.py +2 -1
  95. stubber/utils/config.py +18 -8
  96. stubber/utils/manifest.py +2 -4
  97. stubber/utils/post.py +2 -1
  98. stubber/utils/repos.py +4 -5
  99. stubber/utils/stubmaker.py +1 -1
  100. stubber/utils/typed_config_toml.py +5 -2
  101. stubber/variants.py +1 -1
  102. micropython_stubber-1.23.0.dist-info/RECORD +0 -159
  103. micropython_stubber-1.23.0.dist-info/entry_points.txt +0 -3
  104. mpflash/mpflash/flash_stm32_cube.py +0 -111
  105. mpflash/mpflash/vendor/versions.py +0 -119
  106. {micropython_stubber-1.23.0.dist-info → micropython_stubber-1.23.1.post1.dist-info}/LICENSE +0 -0
  107. {micropython_stubber-1.23.0.dist-info → micropython_stubber-1.23.1.post1.dist-info}/WHEEL +0 -0
  108. /mpflash/{mpflash/vendor/basicgit.py → basicgit.py} +0 -0
  109. /mpflash/mpflash/{flash_uf2_boardid.py → flash/uf2/boardid.py} +0 -0
  110. /mpflash/mpflash/{uf2disk.py → flash/uf2/uf2disk.py} +0 -0
stubber/rst/reader.py CHANGED
@@ -67,8 +67,8 @@ import re
67
67
  from pathlib import Path
68
68
  from typing import List, Optional, Tuple
69
69
 
70
- from loguru import logger as log
71
-
70
+ from mpflash.logger import log
71
+ from mpflash.versions import V_PREVIEW
72
72
  from stubber.rst import (
73
73
  CHILD_PARENT_CLASS,
74
74
  MODULE_GLUE,
@@ -82,7 +82,6 @@ from stubber.rst import (
82
82
  )
83
83
  from stubber.rst.lookup import Fix
84
84
  from stubber.utils.config import CONFIG
85
- from stubber.utils.versions import V_PREVIEW
86
85
 
87
86
  SEPERATOR = "::"
88
87
 
@@ -369,9 +368,7 @@ class RSTParser(RSTReader):
369
368
  PARAM_RE_FIXES = [
370
369
  Fix(r"\[angle, time=0\]", "[angle], time=0", is_re=True), # fix: method:: Servo.angle([angle, time=0])
371
370
  Fix(r"\[speed, time=0\]", "[speed], time=0", is_re=True), # fix: .. method:: Servo.speed([speed, time=0])
372
- Fix(
373
- r"\[service_id, key=None, \*, \.\.\.\]", "[service_id], [key], *, ...", is_re=True
374
- ), # fix: network - AbstractNIC.connect
371
+ Fix(r"\[service_id, key=None, \*, \.\.\.\]", "[service_id], [key], *, ...", is_re=True), # fix: network - AbstractNIC.connect
375
372
  ]
376
373
 
377
374
  def __init__(self, v_tag: str) -> None:
@@ -497,9 +494,7 @@ class RSTParser(RSTReader):
497
494
  version = V_PREVIEW
498
495
  else:
499
496
  version = self.source_tag.replace("_", ".") # TODO Use clean_version(self.source_tag)
500
- docstr[0] = (
501
- f"{docstr[0]}.\n\nMicroPython module: https://docs.micropython.org/en/{version}/library/{module_name}.html"
502
- )
497
+ docstr[0] = f"{docstr[0]}.\n\nMicroPython module: https://docs.micropython.org/en/{version}/library/{module_name}.html"
503
498
 
504
499
  self.output_dict.name = module_name
505
500
  self.output_dict.add_comment(f"# source version: {self.source_tag}")
@@ -637,9 +632,7 @@ class RSTParser(RSTReader):
637
632
  params = self.fix_parameters(params, f"{class_name}.{name}")
638
633
 
639
634
  # parse return type from docstring
640
- ret_type = return_type_from_context(
641
- docstring=docstr, signature=f"{class_name}.{name}", module=self.current_module
642
- )
635
+ ret_type = return_type_from_context(docstring=docstr, signature=f"{class_name}.{name}", module=self.current_module)
643
636
  # methods have 4 flavours
644
637
  # - __init__ (self, <params>) -> None:
645
638
  # - classmethod (cls, <params>) -> <ret_type>:
@@ -685,15 +678,16 @@ class RSTParser(RSTReader):
685
678
 
686
679
  parent_class += method
687
680
 
688
- def lstrip_self(self, params):
681
+ def lstrip_self(self, params: str):
689
682
  """
690
683
  To avoid duplicate selfs,
691
684
  Remove `self,` from the start of the parameters
692
685
  """
693
- if params.startswith("self,"):
694
- params = params[6:]
695
- elif params.startswith("self ,"):
696
- params = params[7:]
686
+ params = params.lstrip()
687
+
688
+ for start in ["self,", "self ,", "self ", "self"]:
689
+ if params.startswith(start):
690
+ params = params[len(start) :]
697
691
  return params
698
692
 
699
693
  def parse_exception(self):
@@ -759,9 +753,7 @@ class RSTParser(RSTReader):
759
753
 
760
754
  # deal with documentation wildcards
761
755
  for name in names:
762
- r_type = return_type_from_context(
763
- docstring=docstr, signature=name, module=self.current_module, literal=True
764
- )
756
+ r_type = return_type_from_context(docstring=docstr, signature=name, module=self.current_module, literal=True)
765
757
  if r_type in ["None"]: # None does not make sense
766
758
  r_type = "Incomplete" # Default to Incomplete/ Unknown / int
767
759
  name = self.strip_prefixes(name)
@@ -15,7 +15,7 @@ from pathlib import Path
15
15
  from typing import List, Tuple
16
16
 
17
17
  import stubber.utils as utils
18
- from loguru import logger as log
18
+ from mpflash.logger import log
19
19
 
20
20
 
21
21
  def process(folder: Path, pattern: str):
@@ -34,7 +34,9 @@ def process(folder: Path, pattern: str):
34
34
  signature = str(item[3]).split("::")[-1].strip()
35
35
  docstring = item[4]
36
36
 
37
- r = utils._type_from_context(docstring=docstring, signature=signature, module=module_name)
37
+ r = utils._type_from_context(
38
+ docstring=docstring, signature=signature, module=module_name
39
+ )
38
40
  report.append(
39
41
  {
40
42
  "signature": signature,
@@ -49,11 +51,17 @@ def process(folder: Path, pattern: str):
49
51
  }
50
52
  )
51
53
  # isGood = r["confidence"] >= 0.5 and r["confidence"] <= 0.8 and item[2] != ""
52
- isBad = float(r["confidence"]) <= 0.5 and float(r["confidence"]) <= 0.8 and item[2] != ""
54
+ isBad = (
55
+ float(r["confidence"]) <= 0.5
56
+ and float(r["confidence"]) <= 0.8
57
+ and item[2] != ""
58
+ )
53
59
  if isBad:
54
60
  context = item[3] + ".".join((item[0], item[1], item[2]))
55
61
  try:
56
- log.debug(f"{context:40} {r['type']:<15} - {r['confidence']} {r['match'].groups('return')}")
62
+ log.debug(
63
+ f"{context:40} {r['type']:<15} - {r['confidence']} {r['match'].groups('return')}"
64
+ )
57
65
  except Exception:
58
66
  log.debug(f"{context:40} {r['type']:<15} - {r['confidence']} ")
59
67
 
stubber/rst/rst_utils.py CHANGED
@@ -32,13 +32,14 @@ to do:
32
32
  https://docs.microsoft.com/en-us/azure/machine-learning/quickstart-create-resources
33
33
  -
34
34
  """
35
+
35
36
  # ref: https://regex101.com/codegen?language=python
36
37
  # https://regex101.com/r/Ni8g2z/2
37
38
 
38
39
  import re
39
40
  from typing import Dict, List, Optional, Union
40
41
 
41
- from loguru import logger as log
42
+ from mpflash.logger import log
42
43
 
43
44
  from .lookup import LOOKUP_LIST, NONE_VERBS, TYPING_IMPORT
44
45
 
@@ -7,7 +7,7 @@ import os
7
7
  from pathlib import Path
8
8
  from typing import List, Optional
9
9
 
10
- from loguru import logger as log
10
+ from mpflash.logger import log
11
11
 
12
12
  from stubber import utils
13
13
  from stubber.rst import DOCSTUB_SKIP, U_MODULES
@@ -29,7 +29,6 @@ from __future__ import print_function
29
29
  import contextlib
30
30
  import os
31
31
  import sys
32
- import glob
33
32
  import tempfile
34
33
  from collections import namedtuple
35
34
 
@@ -401,7 +400,7 @@ class ManifestFile:
401
400
  self._metadata.pop()
402
401
 
403
402
  def _require_from_path(self, library_path, name, version, extra_kwargs):
404
- for root, dirnames, filenames in os.walk(library_path):
403
+ for root, dirnames, filenames in os.walk(library_path): # type: ignore
405
404
  if os.path.basename(root) == name and "manifest.py" in filenames:
406
405
  self.include(root, is_require=True, **extra_kwargs)
407
406
  return True
@@ -7,9 +7,9 @@
7
7
  # from pathlib import Path
8
8
  # from typing import List, Optional, Tuple
9
9
 
10
- # from loguru import logger as log
10
+ # from mpflash.logger import log
11
11
 
12
- # from stubber.utils.versions import V_PREVIEW
12
+ # from mpflash.versions import V_PREVIEW
13
13
 
14
14
  # # log = logging.getLogger()
15
15
 
@@ -15,7 +15,7 @@ for this :
15
15
  from pathlib import Path
16
16
  from typing import List, Optional, Set
17
17
 
18
- from loguru import logger as log
18
+ from mpflash.logger import log
19
19
 
20
20
 
21
21
  def read_modules(path: Optional[Path] = None) -> Set[str]:
stubber/utils/__init__.py CHANGED
@@ -1,5 +1,6 @@
1
1
  # type: ignore
2
+ from mpflash.versions import checkedout_version, clean_version
3
+
2
4
  from .manifest import make_manifest, manifest
3
5
  from .post import do_post_processing
4
6
  from .stubmaker import generate_pyi_files, generate_pyi_from_file
5
- from .versions import checkedout_version, clean_version
stubber/utils/config.py CHANGED
@@ -3,12 +3,12 @@
3
3
  from pathlib import Path
4
4
  from typing import List
5
5
 
6
- from loguru import logger as log
6
+ from mpflash.logger import log
7
7
  from typedconfig.config import Config, key, section
8
8
  from typedconfig.source import EnvironmentConfigSource
9
9
 
10
- import stubber.basicgit as git
11
- from stubber.utils.versions import V_PREVIEW
10
+ import mpflash.basicgit as git
11
+ from mpflash.versions import V_PREVIEW
12
12
 
13
13
  from .typed_config_toml import TomlConfigSource
14
14
 
@@ -17,7 +17,9 @@ from .typed_config_toml import TomlConfigSource
17
17
  class StubberConfig(Config):
18
18
  "stubber configuration class"
19
19
  # relative to stubs folder
20
- fallback_path: Path = key(key_name="fallback-path", cast=Path, required=False, default=Path("typings/fallback"))
20
+ fallback_path: Path = key(
21
+ key_name="fallback-path", cast=Path, required=False, default=Path("typings/fallback")
22
+ )
21
23
  "a Path to the fallback stubs directory"
22
24
 
23
25
  # ------------------------------------------------------------------------------------------
@@ -25,16 +27,24 @@ class StubberConfig(Config):
25
27
  repo_path: Path = key(key_name="repo-path", cast=Path, required=False, default=Path("./repos"))
26
28
  "a Path to the repo directory"
27
29
 
28
- mpy_path: Path = key(key_name="mpy-path", cast=Path, required=False, default=Path("micropython"))
30
+ mpy_path: Path = key(
31
+ key_name="mpy-path", cast=Path, required=False, default=Path("micropython")
32
+ )
29
33
  "a Path to the micropython folder in the repos directory"
30
34
 
31
- mpy_lib_path: Path = key(key_name="mpy-lib-path", cast=Path, required=False, default=Path("micropython-lib"))
35
+ mpy_lib_path: Path = key(
36
+ key_name="mpy-lib-path", cast=Path, required=False, default=Path("micropython-lib")
37
+ )
32
38
  "a Path to the micropython-lib folder in the repos directory"
33
39
 
34
- mpy_stubs_path: Path = key(key_name="mpy-stubs-path", cast=Path, required=False, default=Path("micropython-stubs"))
40
+ mpy_stubs_path: Path = key(
41
+ key_name="mpy-stubs-path", cast=Path, required=False, default=Path("micropython-stubs")
42
+ )
35
43
  "a Path to the micropython-stubs folder in the repos directory (or current directory)"
36
44
 
37
- stable_version: str = key(key_name="stable-version", cast=str, required=False, default="1.20.0")
45
+ stable_version: str = key(
46
+ key_name="stable-version", cast=str, required=False, default="1.20.0"
47
+ )
38
48
 
39
49
  "last published stable"
40
50
 
stubber/utils/manifest.py CHANGED
@@ -6,7 +6,7 @@ from pathlib import Path
6
6
  from typing import Optional
7
7
 
8
8
  from .. import __version__
9
- from .versions import clean_version
9
+ from mpflash.versions import clean_version
10
10
 
11
11
  # # log = logging.getLogger(__name__)
12
12
  # # logging.basicConfig(level=logging.INFO)
@@ -65,9 +65,7 @@ def make_manifest(folder: Path, family: str, port: str, version: str, release: s
65
65
  mod_manifest = manifest(family=family, port=port, machine=board, sysname=family, version=version, release=release, stubtype=stubtype)
66
66
  try:
67
67
  # list all *.py files, not strictly modules but decent enough for documentation
68
- files = list(folder.glob("**/*.py"))
69
- if not files:
70
- files = list(folder.glob("**/*.pyi"))
68
+ files = list(folder.glob("**/*.py")) or list(folder.glob("**/*.pyi"))
71
69
 
72
70
  # sort the list
73
71
  for file in sorted(files):
stubber/utils/post.py CHANGED
@@ -1,11 +1,12 @@
1
1
  """Pre/Post Processing for createstubs.py"""
2
+
2
3
  import subprocess
3
4
  import sys
4
5
  from pathlib import Path
5
6
  from typing import List
6
7
 
7
8
  import autoflake
8
- from loguru import logger as log
9
+ from mpflash.logger import log
9
10
 
10
11
  from .stubmaker import generate_pyi_files
11
12
 
stubber/utils/repos.py CHANGED
@@ -8,13 +8,12 @@ from collections import defaultdict
8
8
  from pathlib import Path
9
9
  from typing import Tuple
10
10
 
11
- from loguru import logger as log
11
+ from mpflash.logger import log
12
12
  from packaging.version import Version
13
13
 
14
- import stubber.basicgit as git
15
- from mpflash.vendor.versions import get_stable_mp_version
14
+ import mpflash.basicgit as git
15
+ from mpflash.versions import SET_PREVIEW, V_PREVIEW, get_stable_mp_version
16
16
  from stubber.utils.config import CONFIG
17
- from stubber.utils.versions import SET_PREVIEW, V_PREVIEW
18
17
 
19
18
  # # log = logging.getLogger(__name__)
20
19
 
@@ -120,7 +119,7 @@ def fetch_repos(tag: str, mpy_path: Path, mpy_lib_path: Path):
120
119
  git.switch_branch(repo=mpy_path, branch="master")
121
120
  else:
122
121
  if tag == "stable":
123
- tag = get_stable_mp_version()
122
+ tag = get_stable_mp_version()
124
123
  git.switch_tag(tag, repo=mpy_path)
125
124
  result = match_lib_with_mpy(version_tag=tag, mpy_path=mpy_path, lib_path=mpy_lib_path)
126
125
 
@@ -5,7 +5,7 @@ import sys
5
5
  from pathlib import Path
6
6
 
7
7
  import mypy.stubgen as stubgen
8
- from loguru import logger as log
8
+ from mpflash.logger import log
9
9
  from mypy.errors import CompileError
10
10
 
11
11
  # default stubgen options
@@ -4,6 +4,7 @@ typed-config-toml
4
4
  Extend typed-config to read configuration from .toml files
5
5
 
6
6
  """
7
+
7
8
  # TODO : extend support for . notation in section names
8
9
 
9
10
  from pathlib import Path
@@ -15,7 +16,7 @@ except ModuleNotFoundError:
15
16
  import tomli as tomllib # type: ignore
16
17
  assert tomllib
17
18
 
18
- from loguru import logger as log
19
+ from mpflash.logger import log
19
20
  from typedconfig.source import ConfigSource
20
21
 
21
22
 
@@ -69,7 +70,9 @@ class TomlConfigSource(ConfigSource):
69
70
  # do not assume/require that all values are strings
70
71
  # assert isinstance(v_v, str)
71
72
  # Convert all keys to lowercase
72
- self.data = {k.lower(): {v_k.lower(): v_v for v_k, v_v in v.items()} for k, v in self.data.items()}
73
+ self.data = {
74
+ k.lower(): {v_k.lower(): v_v for v_k, v_v in v.items()} for k, v in self.data.items()
75
+ }
73
76
 
74
77
  def get_config_value(self, section_name: str, key_name: str) -> Optional[str]:
75
78
  # Extract info from data which we read in during __init__
stubber/variants.py CHANGED
@@ -10,7 +10,7 @@ from typing import List, Optional
10
10
 
11
11
  import libcst as cst
12
12
  import libcst.codemod as codemod
13
- from loguru import logger as log
13
+ from mpflash.logger import log
14
14
 
15
15
  from stubber.codemod.board import CreateStubsCodemod, CreateStubsVariant
16
16
  from stubber.codemod.modify_list import ListChangeSet # type: ignore
@@ -1,159 +0,0 @@
1
- mpflash/README.md,sha256=hV89fJ3UfE-6CpugGT_SI7I_V6vtCf5GVfzUK3POjd4,13496
2
- mpflash/libusb_flash.ipynb,sha256=sw5MVQvPmH-DJy9kOdXyO80BSjEPMEXf_GJsGk3usrc,6428
3
- mpflash/mpflash/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
4
- mpflash/mpflash/add_firmware.py,sha256=QXk9P1UC0xvDlWhJ3Kj-Acy2wuxxK7R0L61KKiAjk1U,3337
5
- mpflash/mpflash/ask_input.py,sha256=GGyOOlzpvhYmxyILVuNSj7hJlAvpPFXpP95erinTyCs,8717
6
- mpflash/mpflash/bootloader/__init__.py,sha256=AbZJVbubvgcV0bQtItS9PEAvvPOKWLZpgi8DX5a5f5A,1282
7
- mpflash/mpflash/bootloader/manual.py,sha256=tebIE2YBYvsWx2YmAcUcWnTnSjCqR1AwkXKVHJvnQkA,3002
8
- mpflash/mpflash/bootloader/micropython.py,sha256=of9OuCchiGoczXPi6i0NT9LZHB9FgvigtZxWWvAcb2Q,399
9
- mpflash/mpflash/bootloader/touch1200.py,sha256=D9yB1n2bSR-nyQDdQXJtCsNknSfHhI6hRziBqOv_HJI,1466
10
- mpflash/mpflash/cli_download.py,sha256=qKZzHmuHazw5fhj_EGDu4DsqYCan41BK99nk1YWELFE,3527
11
- mpflash/mpflash/cli_flash.py,sha256=IQfloZM1UK4VO4bo-8OxQkwH-RTGUFs7IWb-m4gFJJg,7136
12
- mpflash/mpflash/cli_group.py,sha256=s180-nyUVNEwA5bPlkIum4mZPEW0Udf6oBAElnrjsvQ,2236
13
- mpflash/mpflash/cli_list.py,sha256=AvYq5_Z7l0Z4rkbr23TwFNzstuZsQgopFpdcrTLwUvs,1965
14
- mpflash/mpflash/cli_main.py,sha256=mOkwtRAxiyZsgiG1QVQ71OaO4kL0D0REEkh-VMieC8E,1107
15
- mpflash/mpflash/common.py,sha256=ZfJR8dKKUy4VDZUgnDTILzuaem2o1Ix2haLxHQ47Z0o,5765
16
- mpflash/mpflash/config.py,sha256=7-IL4R9oHeSh0jO-hppw8pDv990nEI31dwBzZFD50eY,1007
17
- mpflash/mpflash/connected.py,sha256=vzQ6heV7w5Mnu76nR2dr9FiQ7Ja1x1Q_k0TGgdV1lT8,2955
18
- mpflash/mpflash/download.py,sha256=EL17R88QO4TaiX-80GjjlEd6CNZ0vDOcWPuwewZ0_zs,13875
19
- mpflash/mpflash/downloaded.py,sha256=n2iSVv3pS6rZmUr5ry8tOh-jSCZJdI-g_QJG8N5R1As,4815
20
- mpflash/mpflash/errors.py,sha256=6lUhVtECY3syV2bBGKzegGH4pPKXhevvhYQZd74sy6o,238
21
- mpflash/mpflash/flash.py,sha256=aC1z4Jq8b8a8O6rCTX1gdGcO5yM1vGoWlZGIWgKuHro,2059
22
- mpflash/mpflash/flash_esp.py,sha256=j-VdSAKzNQZRVVO7oM9NcRAJWPDHsUianOien8rnYE8,2252
23
- mpflash/mpflash/flash_stm32.py,sha256=JNY1bL-VNlnaQ6AhY9drKj8EgwpGwty0WAH1JD-Ecfs,584
24
- mpflash/mpflash/flash_stm32_cube.py,sha256=TnLNqmJcdwRXWj_t0W4o-NmwBjd3z94qpjuyz77oP9o,3859
25
- mpflash/mpflash/flash_stm32_dfu.py,sha256=GUJTU6bmxu4m9cK_wQKRCXPKSIf7F8BAxKMSDs59TwQ,2985
26
- mpflash/mpflash/flash_uf2.py,sha256=f9CwUaBwnmgO9q7I5-Psbd0cStxyeiu0XDcu_OHlmVc,2796
27
- mpflash/mpflash/flash_uf2_boardid.py,sha256=2s4K3QiKWK5HKFKWYsDV3hI8alfWSxEOMeurER3eZtM,408
28
- mpflash/mpflash/flash_uf2_linux.py,sha256=I6KYbLrnn6lFvzoG-LFETak86VHuMG3XKpdrjCGH2co,3945
29
- mpflash/mpflash/flash_uf2_macos.py,sha256=HqQ2HjXlTYzCC5DzjNaoCOR4QKKi5UzjqJcfZVJLaKM,998
30
- mpflash/mpflash/flash_uf2_windows.py,sha256=Pg2siQENEqLddM7KKl9PdXtP7HzBsPICxo8uVCgn57E,1050
31
- mpflash/mpflash/list.py,sha256=pSV9WJozObPSnW-oYs2JPdmh2PtCPJUNgvrozclpnU4,2874
32
- mpflash/mpflash/logger.py,sha256=BAVrSXMGZLfSDRFbtVBtvb7Rl0sTJxooCgBS5t-6bXo,1057
33
- mpflash/mpflash/mpboard_id/__init__.py,sha256=yeSWAP1YJWYWB2i8KZlBK1l8loJRcDo-xdymuCv92nU,3723
34
- mpflash/mpflash/mpboard_id/add_boards.py,sha256=JgSXbK9aKtrSWQMIMYYW9OivuWXb1LLTIAmRthi1FC8,9429
35
- mpflash/mpflash/mpboard_id/board.py,sha256=yQ8IDHQS09AelvTvmPhpmsL4oX3L7IXGqHorkxDOkoE,1114
36
- mpflash/mpflash/mpboard_id/board_id.py,sha256=G5s-kMKAD-LGUAuU5eYnq25-MGIQPyB-zJojjcGawa4,2878
37
- mpflash/mpflash/mpboard_id/board_info.zip,sha256=F6YowS96DAqjten4ySe4MXgZwPtE-saZOUfY5OQkqKk,19759
38
- mpflash/mpflash/mpboard_id/store.py,sha256=lQQgHSxcaM_ZURcfZNSUv3-ZJjUKMC_xEOOSdpzVvBU,1493
39
- mpflash/mpflash/mpremoteboard/__init__.py,sha256=j-Cex6TlihDp125gjGB01S_zE9nIq4mdRfamWjnOJoA,7549
40
- mpflash/mpflash/mpremoteboard/mpy_fw_info.py,sha256=BTupe4rZDTs3UHRqvs429XqWHCchSpwa05yACOiOt5U,4413
41
- mpflash/mpflash/mpremoteboard/runner.py,sha256=YUmo5Y0aOgMaww8CXSdNdgXD-wRKncILuMZ0OB_2qRU,4646
42
- mpflash/mpflash/uf2disk.py,sha256=dQ8_U6e3qkFOyfXZDpWAsvEBIlMr-ZzLkzTDD8SADqM,286
43
- mpflash/mpflash/vendor/basicgit.py,sha256=b6-gdK_DT0dmW3jEY9T0cjKR-TSEQOSl9U9sRcJh538,9257
44
- mpflash/mpflash/vendor/click_aliases.py,sha256=K98inhtze8td1dw312kexJS7OX_0ojlptPQ5Z0SHxJY,3065
45
- mpflash/mpflash/vendor/dfu.py,sha256=jGsiD3lbSV1Ar9qJubhoY_hy-L8FI-K55aow8vgwoYQ,5590
46
- mpflash/mpflash/vendor/pydfu.py,sha256=1ObubGsPFrQ7T9M3JRlIPNIG2xx8uYffaEe0Y6bdf_g,19937
47
- mpflash/mpflash/vendor/readme.md,sha256=ZVg7kuUYyXcWcrWkaSJ0CunwebCqu2SiS2sqDadwrT8,84
48
- mpflash/mpflash/vendor/versions.py,sha256=osv5yFyg47_BZ85k3LRrzjyPu6T4psx56rgBN3YXMyM,3885
49
- mpflash/mpflash/worklist.py,sha256=j64PVJXm8jhLzPUQt3rnJXCbT1JEczTax46mRWID9bM,5809
50
- mpflash/poetry.lock,sha256=XBX2OYxy1q5tBn9pzXQBErgOwssrx_tVhUl8p2DZwMw,117989
51
- mpflash/pyproject.toml,sha256=sGxeBSd8LOo3l5DBlLypNW0B2kQLu-LpmdPG4ZI1lZw,1669
52
- mpflash/stm32_udev_rules.md,sha256=LJelvFFA8w9mBcEUDA02SZ4yzNKfUFL_NWLNUb6geWY,2622
53
- stubber/__init__.py,sha256=xZBZxZVT_tkoW2-USEDpT7Ru9I5ySVZ0FERKX_Puvk0,46
54
- stubber/basicgit.py,sha256=CkS4YrAP1pLwfoihUZB5Y39uQjkQu_n4ukyrvbrlExs,9440
55
- stubber/board/board_info.csv,sha256=3BBwHOtKfq_U0Xl8iWgNsN3akhbNMjb-TIeusDwtTXQ,8434
56
- stubber/board/boot.py,sha256=TEBSaKXY_TYJy9YrTRWv22m8jZRefaRNiwM8xNAlH5M,1086
57
- stubber/board/createstubs.py,sha256=ZgpiFhmDl9LrszoxqOG1SI22bpvR9NWmYFwhvCCVLhY,31936
58
- stubber/board/createstubs_db.py,sha256=Gbi5LXqAorbFJ4qjb-jIAeBhE-niPr-_9scpNEXg-V8,29558
59
- stubber/board/createstubs_db_min.py,sha256=q4CA7qs8t3dj_whlNCUrw_yebdNb_9my85snqdbiuyE,11142
60
- stubber/board/createstubs_db_mpy.mpy,sha256=Uno7GVqRV6joDZ2UsITxv2y84Hjl75h_aqM1eRuK7MI,9536
61
- stubber/board/createstubs_lvgl.py,sha256=LDlY2AxT5S_IZ5twi2wK9gm3SnHsDt9inrpCLOYmZIk,26476
62
- stubber/board/createstubs_lvgl_min.py,sha256=9L9JsZUCY0E5x4F_Uyckkd8GjiB_49guU6DN-u7XhgU,26466
63
- stubber/board/createstubs_lvgl_mpy.mpy,sha256=ex-nlq2V5e8anQBJvRWEEc-FzU7nlwg5NSrZ8vOadIA,9267
64
- stubber/board/createstubs_mem.py,sha256=B23Xon0wm5K8hoTZWHx6j551Jqfg-zDR70_ckiEvc74,27953
65
- stubber/board/createstubs_mem_min.py,sha256=EBMI05I-3D7f-6y6DQo5n2VfOkppKEqoJtt0huwo8v8,10713
66
- stubber/board/createstubs_mem_mpy.mpy,sha256=cNPvlft3SH_R3Epl5Tg3zDLnlG4-YAl6neUO1wfEM34,9118
67
- stubber/board/createstubs_min.py,sha256=mEo9F0ttyOeuhZ2bEeh4BKta4-yWfhbr20gATcaQx5g,13405
68
- stubber/board/createstubs_mpy.mpy,sha256=eNos3gzTHQTGN_TyB2IshtTWt6iLo98hGAfaBLIBgoI,12388
69
- stubber/board/fw_info.py,sha256=BTupe4rZDTs3UHRqvs429XqWHCchSpwa05yACOiOt5U,4413
70
- stubber/board/info.py,sha256=0FCQZ5J3KFDbYe0D5iOuwhmZUUBVASPU7-L6fA7ZRGc,5446
71
- stubber/board/main.py,sha256=l-5RCT-MMV93SkVwXh3guzx_kxFIJciSEgH1e4UrqT8,394
72
- stubber/board/modulelist.txt,sha256=LH3tz0w9MxZEAoYRl0JPmVSrYlbsrhkHd9lBP9z2h88,2653
73
- stubber/board/pyrightconfig.json,sha256=4jEkjN3pTfa8Ok5wxW0_W2mAOWIjKZPq5GRsk8oTBN4,1342
74
- stubber/bulk/mcu_stubber.py,sha256=_iv2G3QaiGxe7L7W40KahNGyOoKTGw_yyyejMHY6O7Q,15893
75
- stubber/codemod/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
76
- stubber/codemod/_partials/__init__.py,sha256=SKt5UKja7SGdJ2PIQLp7-CURTQ-EimrswhW-ZTaRBEk,1382
77
- stubber/codemod/_partials/db_main.py,sha256=yvl1ydyiWJDhNmuH7P_5b85Crfrh2CAroA_i_8aCqIw,3856
78
- stubber/codemod/_partials/lvgl_main.py,sha256=ANMJr4XpWyLHhk3ZHsR0YnGe8fNtIi58YOdN6TLay1o,1887
79
- stubber/codemod/_partials/modules_reader.py,sha256=kIYUxrCNtR7K1D0NVxePuNjhPoPkOx9qbjh-mdW1IVs,1966
80
- stubber/codemod/add_comment.py,sha256=qGaa-sF3WyeLZwa5FPyT_Yp-ARFruKlBIIe0tayUiTk,1912
81
- stubber/codemod/add_method.py,sha256=AbHmfwjgTYWes3XrqPGk0-FjKxnGQuDLXbE5APhApF4,2544
82
- stubber/codemod/board.py,sha256=WVeUbVOV8MlDAyr5JLhOLdlmyFdlOpdRunjdzM_ULsM,11564
83
- stubber/codemod/enrich.py,sha256=9hb2__De3eNkF8WKg0CLwYs0lngIDJ0M3nmx2yyuGCU,5293
84
- stubber/codemod/merge_docstub.py,sha256=-F2P9UAD98Xt8ArsNqQJ-AM6bz9H9V9E3S2d17Jk5xg,12397
85
- stubber/codemod/modify_list.py,sha256=_YTj3E44dwb7QaRqKaIq0IWg-BzH69AZRqTr3QMkFnY,2064
86
- stubber/codemod/utils.py,sha256=mE4Ks7-lqnxXbjQcftO_OkJGJDZyCOR4soNJSWRtMek,2402
87
- stubber/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
88
- stubber/commands/build_cmd.py,sha256=lZfbxPyduDkLDTCGWI_nBc_3lKwZjfWPvq4nVy2v944,2381
89
- stubber/commands/cli.py,sha256=LXeSG8-EeEb0PvlKkaRS5bscgtUsDTBLfQnqS0O6M24,1836
90
- stubber/commands/clone_cmd.py,sha256=D8rKyiuIvGDrxCgkjmiN60RzedMTLToHoRZnKc31Yh4,2663
91
- stubber/commands/config_cmd.py,sha256=CMFe0IngKPJYrb3kcZ6BObBOh4dW_0Wf7etAuJthB18,964
92
- stubber/commands/enrich_folder_cmd.py,sha256=ysdd_CLdPCiEja4xuFOAX_a89telX4Da7cvkrpXP4lY,1798
93
- stubber/commands/get_core_cmd.py,sha256=VwkZl9g81LvwWu4grrIb2Qo8M5-yXrDEX5mUWJ2uKFo,2240
94
- stubber/commands/get_docstubs_cmd.py,sha256=93rWWKBKmt7D9UD0-c4mtVAH5hw5Z3PnWDpiKVfrWe8,2935
95
- stubber/commands/get_frozen_cmd.py,sha256=I9Hde0n-k5e9LHrjaUp0d5WeaamntLjtEOJQ7GCLHgc,3857
96
- stubber/commands/get_mcu_cmd.py,sha256=BzsOo1C046sRjYtS_9MM-epXF9UaElf1j23LM4aqpnI,2016
97
- stubber/commands/merge_cmd.py,sha256=VxpYGaF7JduBr43POFviT15ZecbOW1o4vqTaKMCN0jU,1622
98
- stubber/commands/publish_cmd.py,sha256=EiOYXVXyMru2lL6EOy7NSwHAS7TZXfehjvfY5r8gH3Y,2805
99
- stubber/commands/stub_cmd.py,sha256=PzvCppuhY2vRJJEzKbdc87WnrVEd3jPJ7AdtQeUSpn8,1171
100
- stubber/commands/switch_cmd.py,sha256=Aa4Q8LEc-mbHfO6h9orkIuR8wr9yOY-_bwL4HMPiWJ8,1825
101
- stubber/commands/variants_cmd.py,sha256=IYDmR3JyPPQ8uSZURLWbCluCV85_S38F_JKZTzRE-Lg,1251
102
- stubber/cst_transformer.py,sha256=Er9kww4hgdeQ9dARMx8lB5PLIvPaKjtKJMe8BofKOzY,6301
103
- stubber/data/board_info.csv,sha256=3BBwHOtKfq_U0Xl8iWgNsN3akhbNMjb-TIeusDwtTXQ,8434
104
- stubber/data/board_info.json,sha256=LbyNo3qeij8bY_PRTxWoS5nFuDv6VyaRTKGiXC_-zRQ,57210
105
- stubber/data/micropython_tags.csv,sha256=95Y4zBefqi65QNvQy5bJXr7Fw8sVHmspeo2rnyLZECQ,1894
106
- stubber/data/requirements-core-micropython.txt,sha256=mRQ8Sj-PqYP74lVgpWWXSYkVJilSKVsjijoLARQNAwY,1279
107
- stubber/data/requirements-core-pycopy.txt,sha256=UKZooNXL7GbojDwmaiBTxHEQzzd-H8kI6l5eJCX-oyk,1012
108
- stubber/downloader.py,sha256=TwvdzSdep1jtCpjocqFJdi7c-I5bZSc3dhfDE5zX-ps,1170
109
- stubber/freeze/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
110
- stubber/freeze/common.py,sha256=gY0JSlXmwZqnoosb91M7W3wy3Ej6w48dTdJP8gKOg-U,2571
111
- stubber/freeze/freeze_folder.py,sha256=-n1w9jxzLjL1Sg-f9VHqHaxsBKDiPGHqBNgeY68pqq8,2422
112
- stubber/freeze/freeze_manifest_2.py,sha256=uogLPLb4bAah5ULkKzhWWadvu0CswGI3TygRqOb5XYc,3948
113
- stubber/freeze/get_frozen.py,sha256=9NItdnzfNjx0yC5q1EDgw1TQ39d58kBnIRTGRPIfjbs,5163
114
- stubber/get_cpython.py,sha256=PEiDn2STECuKeRBSyWx7WuexUpSsyZ-76jQrBvWZY4U,3683
115
- stubber/get_lobo.py,sha256=I6bVpcGX7TaD4CI9UID8R9brOG-bBdeL07j1WsTXQH4,1717
116
- stubber/minify.py,sha256=QEYCqN-ApJSpZvgx0fiLi4A-jZMnMI19B-JmNqI79Us,14618
117
- stubber/publish/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
- stubber/publish/bump.py,sha256=M9ePaH-K1lbh-OVyPNAv6uxumDtHe3cOD2rXeAMWDqY,3176
119
- stubber/publish/candidates.py,sha256=MGU1FKabawjcruMxyvgJnZHG-ZO2YU0Vl_Oz10GFUX8,10410
120
- stubber/publish/database.py,sha256=fH_-Zjd_JHTEaW2Yf8kEB6DQduKrmZl9R-67mNYE3HI,605
121
- stubber/publish/defaults.py,sha256=W37MT9NW3tucLk0oDNKeGBQEtzHORu_iut_s4x1QeQA,1591
122
- stubber/publish/enums.py,sha256=BRzoSjLxYPLcEHySaFprY1ndLLdUetqRjYJmi5CW7xU,756
123
- stubber/publish/helpers.py,sha256=XRN9KZgPtIEgVW6NSmZunvTiT0UqP_rr63lM69hcqbs,687
124
- stubber/publish/merge_docstubs.py,sha256=nQJVloB_iHnsEiILCHIJrS2dgR1bP06LtiXYyaJi4Sc,5189
125
- stubber/publish/missing_class_methods.py,sha256=TTXOid0gAhUHokLUL2SJ1Fy-YVlHWwqTPqBjVpZioEA,1774
126
- stubber/publish/package.py,sha256=GGNUgSNsJ9yX2km-MEVx8xf8jQ3qCQanK8dVCSOjVqQ,5128
127
- stubber/publish/pathnames.py,sha256=wfImW4HLftZ3gSV3zjOzSbxvhTdMFWOl9DDY8Uilvmc,1760
128
- stubber/publish/publish.py,sha256=8nC7yl4R1p8A0_7yYij8Cot-Ew7O0r84vSFiSYpJvrA,3833
129
- stubber/publish/pypi.py,sha256=fuxpVFOvvCXXjdTgEB2vWqMjhwUDDQMiHJ6N98C_JdM,1202
130
- stubber/publish/stubpackage.py,sha256=3uDhsx5LVsgrKQC7BwiorJw14QWdN6KvIBO500PhNnw,43702
131
- stubber/rst/__init__.py,sha256=8KUzMFNdDU9X6U1VMU1q5bGu_KGxB1XNcJhzNg7tF98,284
132
- stubber/rst/classsort.py,sha256=jofWVYPQQUzUhN-t2qFJT6381DH46Pjy0fTp5ek5JJU,2578
133
- stubber/rst/lookup.py,sha256=QIX0_xbXydfXgD-7ctni3QJo2hFN7BzsGz-5Bq1owKQ,19656
134
- stubber/rst/output_dict.py,sha256=tH_32ZTNj7BndvY2YcZCa1uB-lLeyJUeltoEkTT_Np8,14354
135
- stubber/rst/reader.py,sha256=JUcfMs-lu_Fg95bCAnLS70RSjOTIAk15nVMzjEPH8aU,32878
136
- stubber/rst/report_return.py,sha256=r6WeysP2VygcBM-nk1Jo_iItcxsl6sWgWg6myHTjBFY,2745
137
- stubber/rst/rst_utils.py,sha256=8wfodql00CnO57x8VeNh1yoz7yx_ONa330kWuR1JFoE,17277
138
- stubber/stubber.py,sha256=sScRIAq7vvUZUS9Mzh4Ne6ny0qpsReGNqo0u8vtZXEc,1596
139
- stubber/stubs_from_docs.py,sha256=jcNdbNFQ6qZiVOVzdD8nfBNTubD-jviL_KJDPqOfTxo,2743
140
- stubber/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
141
- stubber/tools/manifestfile.py,sha256=hfv_bTDytZDSndKy2GuPScH9xz_YzihDY0QmrOY9RLQ,25094
142
- stubber/tools/readme.md,sha256=NJ_g0oeeExhiRs2lMQVekccnR_c2lGLt-snu1RnUIx0,278
143
- stubber/update_fallback.py,sha256=Wi0dj5dly1UFmjpzh7dksb-RuHsSRC0i-E9H-dZ5AQo,4804
144
- stubber/update_module_list.py,sha256=smeu-xSeFgtr1piJNR1JqLzHd3HZ1K5_iaKNRea6dzk,3886
145
- stubber/utils/__init__.py,sha256=i2OXAFcw6X1xSEwh2X355lGrM0xgmZZow9z9zRwtV5A,220
146
- stubber/utils/config.py,sha256=Xjnno__D3DEUAGmjFyECuv0cibJpCnbpFvA_fRJX3sM,4732
147
- stubber/utils/makeversionhdr.py,sha256=65VXDavYQU5GnR8OfbFAXAq6RCAtLdbEM-a7a3UiLxc,1899
148
- stubber/utils/manifest.py,sha256=frHSaZs_ZYLdjUl9tDSnRm6OOHjR1W7IrKMABYKaUIY,3181
149
- stubber/utils/post.py,sha256=qoN-XiNBNMExUdHeXbkjlsvllkG2jKB-ptuApe4kjpc,2758
150
- stubber/utils/repos.py,sha256=cQhpk_u1ZzlGdaoL3Xq7A8M7V1eyxyX1Ledp8M11gqE,5784
151
- stubber/utils/stubmaker.py,sha256=1eMNpZZ-BWBtxLwBO-kz4CywjUe0JexN6QSyAVNICxM,5099
152
- stubber/utils/typed_config_toml.py,sha256=6nlFgHwdCcK_0MJICsstCFgm9M6TblvF-l0_2cpw_cY,2552
153
- stubber/utils/versions.py,sha256=56UhB49F2647jY9eWtkjjRuYYfJLEjC9daQFhgckgZM,4161
154
- stubber/variants.py,sha256=iS3sv8cT7czdI9x4KqzTCPT6hX1CKQ-bIlWnDG6gyoU,3688
155
- micropython_stubber-1.23.0.dist-info/LICENSE,sha256=2zsOXlYgl9W7_XGXcncAXIYfvSVlyNcVBycC6hhlKhA,1542
156
- micropython_stubber-1.23.0.dist-info/METADATA,sha256=Km0C0eRnH4G_oYL9jOJekeNyKSDPbVfQr4rLmJm28OA,19158
157
- micropython_stubber-1.23.0.dist-info/WHEEL,sha256=sP946D7jFCHeNz5Iq4fL4Lu-PrWrFsgfLXbbkciIZwg,88
158
- micropython_stubber-1.23.0.dist-info/entry_points.txt,sha256=NQi_M36fgq5k6giSuASas3LrpF6CVdkzfvJC0ja73_g,55
159
- micropython_stubber-1.23.0.dist-info/RECORD,,
@@ -1,3 +0,0 @@
1
- [console_scripts]
2
- stubber=stubber.stubber:stubber_cli
3
-
@@ -1,111 +0,0 @@
1
- # """
2
- # Flash STM32 using STM32CubeProgrammer
3
- # needs to be installed independenty from https://www.st.com/en/development-tools/stm32cubeprog.html
4
-
5
- # On Linux needs to be run with sudo - unless udev rules are set to allow access to the device as a regular user
6
- # """
7
-
8
- # import subprocess
9
- # import sys
10
- # import time
11
- # from pathlib import Path
12
- # from typing import Optional
13
-
14
- # import bincopy
15
- # from loguru import logger as log
16
- # from rich.progress import track
17
- # from strip_ansi import strip_ansi
18
-
19
- # from .mpremoteboard.mpremoteboard import MPRemoteBoard
20
-
21
- # STM32_CLI_WIN = "C:\\Program Files\\STMicroelectronics\\STM32Cube\\STM32CubeProgrammer\\bin\\STM32_Programmer_CLI.exe"
22
- # STM32_CLI_LINUX = "~/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer_CLI"
23
-
24
-
25
- # def get_stm32_start_address(fw_file: Path):
26
- # """
27
- # Get the start address of the firmware file, to allow automatic restart from that address after flashing
28
- # """
29
- # try:
30
- # fw_hex = bincopy.BinFile(str(fw_file))
31
- # return f"0x{fw_hex.execution_start_address:08X}"
32
- # except Exception:
33
-
34
- # return ""
35
-
36
-
37
- # def flash_stm32_cubecli(mcu: MPRemoteBoard, fw_file: Path, *, erase: bool = True) -> Optional[MPRemoteBoard]:
38
- # """
39
- # Flash STM32 devices using STM32CubeProgrammer CLI
40
- # - Enter bootloader mode
41
- # - wait 2s for the device to be detected
42
- # - list the connected DFU devices
43
-
44
- # On Linux: requires udev rules to allow access to the device as a regular user
45
- # """
46
- # if sys.platform == "linux":
47
- # STM32_CLI = Path(STM32_CLI_LINUX).expanduser().as_posix()
48
- # elif sys.platform == "win32":
49
- # STM32_CLI = str(Path(STM32_CLI_WIN).expanduser())
50
- # else:
51
- # log.error(f"OS {sys.platform} not supported")
52
- # return None
53
-
54
- # if not Path(STM32_CLI).exists():
55
- # log.error(
56
- # f"STM32CubeProgrammer not found at {STM32_CLI}\nPlease install it from https://www.st.com/en/development-tools/stm32cubeprog.html"
57
- # )
58
- # return None
59
-
60
- # # run STM32_Programmer_CLI.exe --list
61
- # cmd = [
62
- # STM32_CLI,
63
- # "--list",
64
- # ]
65
- # results = subprocess.run(cmd, capture_output=True, text=True).stdout.splitlines()
66
- # results = [strip_ansi(line) for line in results]
67
- # if not any(["Product ID : STM32 BOOTLOADER" in l for l in results]):
68
- # log.error("No STM32 BOOTLOADER detected")
69
- # return None
70
- # echo = False
71
- # for line in results:
72
- # if line.startswith("===== DFU Interface"):
73
- # echo = True
74
- # if line.startswith("===== STLink"):
75
- # echo = False
76
- # if echo:
77
- # print(line)
78
- # # Try to connect - no action
79
- # cmd = [
80
- # STM32_CLI,
81
- # "--connect",
82
- # "port=USB1",
83
- # ]
84
- # results = subprocess.run(cmd, capture_output=True, text=True).stdout.splitlines()
85
- # if erase:
86
- # log.info("Erasing flash")
87
- # cmd = [
88
- # STM32_CLI,
89
- # "--connect",
90
- # "port=USB1",
91
- # "--erase",
92
- # "all",
93
- # ]
94
- # results = subprocess.run(cmd, capture_output=True, text=True).stdout.splitlines()
95
- # results = [strip_ansi(line) for line in results]
96
- # log.info(f"Flashing {fw_file.name} using STM32CubeProgrammer CLI")
97
- # start_address = get_stm32_start_address(fw_file)
98
-
99
- # log.trace(f"STM32_Programmer_CLI --connect port=USB1 --write {str(fw_file)} --go {start_address}")
100
- # cmd = [
101
- # STM32_CLI,
102
- # "--connect",
103
- # "port=USB1",
104
- # "--write",
105
- # str(fw_file),
106
- # "--go",
107
- # start_address,
108
- # ]
109
- # results = subprocess.run(cmd, capture_output=True, text=True).stdout.splitlines()
110
- # log.success("Done flashing, resetting the board and wait for it to restart")
111
- # return mcu