idf-build-apps 2.13.3__py3-none-any.whl → 2.15.0__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.
- idf_build_apps/__init__.py +2 -2
- idf_build_apps/__main__.py +1 -1
- idf_build_apps/app.py +14 -6
- idf_build_apps/args.py +15 -1
- idf_build_apps/autocompletions.py +1 -1
- idf_build_apps/constants.py +1 -1
- idf_build_apps/finder.py +1 -1
- idf_build_apps/junit/__init__.py +1 -1
- idf_build_apps/junit/report.py +1 -1
- idf_build_apps/junit/utils.py +1 -1
- idf_build_apps/log.py +1 -1
- idf_build_apps/main.py +15 -6
- idf_build_apps/manifest/__init__.py +1 -1
- idf_build_apps/manifest/manifest.py +20 -6
- idf_build_apps/manifest/soc_header.py +1 -1
- idf_build_apps/session_args.py +1 -1
- idf_build_apps/utils.py +1 -1
- idf_build_apps/yaml/__init__.py +1 -1
- idf_build_apps/yaml/parser.py +39 -4
- {idf_build_apps-2.13.3.dist-info → idf_build_apps-2.15.0.dist-info}/METADATA +1 -1
- idf_build_apps-2.15.0.dist-info/RECORD +27 -0
- idf_build_apps-2.13.3.dist-info/RECORD +0 -27
- {idf_build_apps-2.13.3.dist-info → idf_build_apps-2.15.0.dist-info}/WHEEL +0 -0
- {idf_build_apps-2.13.3.dist-info → idf_build_apps-2.15.0.dist-info}/entry_points.txt +0 -0
- {idf_build_apps-2.13.3.dist-info → idf_build_apps-2.15.0.dist-info}/licenses/LICENSE +0 -0
idf_build_apps/__init__.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2022-
|
|
1
|
+
# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
"""
|
|
@@ -8,7 +8,7 @@ Tools for building ESP-IDF related apps.
|
|
|
8
8
|
# ruff: noqa: E402
|
|
9
9
|
# avoid circular imports
|
|
10
10
|
|
|
11
|
-
__version__ = '2.
|
|
11
|
+
__version__ = '2.15.0'
|
|
12
12
|
|
|
13
13
|
from .session_args import (
|
|
14
14
|
SessionArgs,
|
idf_build_apps/__main__.py
CHANGED
idf_build_apps/app.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2022-
|
|
1
|
+
# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import copy
|
|
@@ -511,7 +511,9 @@ class App(BaseModel):
|
|
|
511
511
|
BuildStatus.UNKNOWN,
|
|
512
512
|
BuildStatus.SHOULD_BE_BUILT,
|
|
513
513
|
):
|
|
514
|
-
|
|
514
|
+
if not self.build_comment:
|
|
515
|
+
self.build_comment = f'Build {self.build_status.value}. Skipping...'
|
|
516
|
+
|
|
515
517
|
return
|
|
516
518
|
|
|
517
519
|
# real build starts here
|
|
@@ -954,7 +956,11 @@ class CMakeApp(App):
|
|
|
954
956
|
|
|
955
957
|
# While ESP-IDF component CMakeLists files can be identified by the presence of 'idf_component_register' string,
|
|
956
958
|
# there is no equivalent for the project CMakeLists files. This seems to be the best option...
|
|
957
|
-
|
|
959
|
+
# Support both build system v1 and v2 patterns
|
|
960
|
+
CMAKE_PROJECT_LINE: t.ClassVar[t.List[str]] = [
|
|
961
|
+
r'include($ENV{IDF_PATH}/tools/cmake/project.cmake)',
|
|
962
|
+
r'include($ENV{IDF_PATH}/tools/cmakev2/idf.cmake)',
|
|
963
|
+
]
|
|
958
964
|
|
|
959
965
|
build_system: Literal['cmake'] = 'cmake' # type: ignore
|
|
960
966
|
|
|
@@ -1062,10 +1068,12 @@ class CMakeApp(App):
|
|
|
1062
1068
|
if not cmakelists_file_content:
|
|
1063
1069
|
return False
|
|
1064
1070
|
|
|
1065
|
-
if
|
|
1066
|
-
|
|
1071
|
+
# Check if any of the supported build system patterns are present
|
|
1072
|
+
for pattern in cls.CMAKE_PROJECT_LINE:
|
|
1073
|
+
if pattern in cmakelists_file_content:
|
|
1074
|
+
return True
|
|
1067
1075
|
|
|
1068
|
-
return
|
|
1076
|
+
return False
|
|
1069
1077
|
|
|
1070
1078
|
|
|
1071
1079
|
class AppDeserializer(BaseModel):
|
idf_build_apps/args.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2024-
|
|
1
|
+
# SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import argparse
|
|
@@ -302,6 +302,19 @@ class DependencyDrivenBuildArguments(GlobalArguments):
|
|
|
302
302
|
),
|
|
303
303
|
default=None, # type: ignore
|
|
304
304
|
)
|
|
305
|
+
common_components: t.Optional[t.List[str]] = field(
|
|
306
|
+
FieldMetadata(
|
|
307
|
+
validate_method=[ValidateMethod.TO_LIST],
|
|
308
|
+
type=semicolon_separated_str_to_list,
|
|
309
|
+
shorthand='-rc',
|
|
310
|
+
),
|
|
311
|
+
description='semicolon-separated list of components. '
|
|
312
|
+
'expand the `- *common_components` placeholder in manifests. '
|
|
313
|
+
'Must be specified together with --modified-components. '
|
|
314
|
+
'If set to "", the value would be considered as None. '
|
|
315
|
+
'If set to ";", the value would be considered as an empty list.',
|
|
316
|
+
default=None, # type: ignore
|
|
317
|
+
)
|
|
305
318
|
deactivate_dependency_driven_build_by_filepatterns: t.Optional[t.List[str]] = field(
|
|
306
319
|
FieldMetadata(
|
|
307
320
|
validate_method=[ValidateMethod.TO_LIST],
|
|
@@ -374,6 +387,7 @@ class DependencyDrivenBuildArguments(GlobalArguments):
|
|
|
374
387
|
App.MANIFEST = Manifest.from_files(
|
|
375
388
|
self.manifest_files,
|
|
376
389
|
root_path=to_absolute_path(self.manifest_rootpath),
|
|
390
|
+
common_components=self.common_components,
|
|
377
391
|
)
|
|
378
392
|
|
|
379
393
|
@property
|
idf_build_apps/constants.py
CHANGED
idf_build_apps/finder.py
CHANGED
idf_build_apps/junit/__init__.py
CHANGED
idf_build_apps/junit/report.py
CHANGED
idf_build_apps/junit/utils.py
CHANGED
idf_build_apps/log.py
CHANGED
idf_build_apps/main.py
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# PYTHON_ARGCOMPLETE_OK
|
|
2
2
|
|
|
3
|
-
# SPDX-FileCopyrightText: 2022-
|
|
3
|
+
# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
|
4
4
|
# SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
|
|
6
6
|
import argparse
|
|
@@ -386,23 +386,26 @@ def main():
|
|
|
386
386
|
sys.exit(0)
|
|
387
387
|
|
|
388
388
|
kwargs = vars(args)
|
|
389
|
+
kwargs_without_none = drop_none_kwargs(kwargs)
|
|
389
390
|
action = kwargs.pop('action')
|
|
390
391
|
config_file = kwargs.pop('config_file')
|
|
391
392
|
if config_file:
|
|
392
393
|
apply_config_file(config_file)
|
|
393
394
|
|
|
394
395
|
if action == 'dump-manifest-sha':
|
|
395
|
-
arguments = DumpManifestShaArguments(**
|
|
396
|
+
arguments = DumpManifestShaArguments(**kwargs_without_none)
|
|
396
397
|
Manifest.from_files(arguments.manifest_files).dump_sha_values(arguments.output)
|
|
397
398
|
sys.exit(0)
|
|
398
|
-
|
|
399
|
-
|
|
399
|
+
|
|
400
|
+
if action == 'find':
|
|
401
|
+
arguments = FindArguments(**kwargs_without_none)
|
|
400
402
|
else:
|
|
401
|
-
arguments = BuildArguments(**
|
|
403
|
+
arguments = BuildArguments(**kwargs_without_none)
|
|
402
404
|
|
|
403
405
|
# real call starts here
|
|
404
406
|
# build also needs to find first
|
|
405
|
-
apps = find_apps(args.paths, args.target, find_arguments=
|
|
407
|
+
apps = find_apps(args.paths, args.target, find_arguments=FindArguments.model_validate(kwargs_without_none))
|
|
408
|
+
|
|
406
409
|
if isinstance(arguments, FindArguments): # find only
|
|
407
410
|
if arguments.output:
|
|
408
411
|
os.makedirs(os.path.dirname(os.path.realpath(arguments.output)), exist_ok=True)
|
|
@@ -444,6 +447,12 @@ def main():
|
|
|
444
447
|
for app in failed_apps:
|
|
445
448
|
print(f' {app}')
|
|
446
449
|
|
|
450
|
+
disabled_apps = [app for app in apps if app.build_status == BuildStatus.DISABLED]
|
|
451
|
+
if disabled_apps:
|
|
452
|
+
print('Disabled the following apps:')
|
|
453
|
+
for app in disabled_apps:
|
|
454
|
+
print(f' {app}')
|
|
455
|
+
|
|
447
456
|
if ret_code != 0:
|
|
448
457
|
sys.exit(ret_code)
|
|
449
458
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2022-
|
|
1
|
+
# SPDX-FileCopyrightText: 2022-2026 Espressif Systems (Shanghai) CO LTD
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import contextvars
|
|
4
4
|
import logging
|
|
@@ -45,7 +45,7 @@ class IfClause:
|
|
|
45
45
|
try:
|
|
46
46
|
self.stmt: BoolStmt = parse_bool_expr(stmt)
|
|
47
47
|
self._stmt: str = stmt
|
|
48
|
-
except (ParseException, InvalidIfClause) as ex:
|
|
48
|
+
except (ParseException, InvalidIfClause, AttributeError) as ex:
|
|
49
49
|
raise InvalidIfClause(f'Invalid if clause: {stmt}. {ex}')
|
|
50
50
|
|
|
51
51
|
self.temporary = temporary
|
|
@@ -342,12 +342,19 @@ class Manifest:
|
|
|
342
342
|
self._rule_paths = {rule.folder: rule for rule in self.rules}
|
|
343
343
|
|
|
344
344
|
@classmethod
|
|
345
|
-
def from_files(
|
|
345
|
+
def from_files(
|
|
346
|
+
cls,
|
|
347
|
+
paths: t.Iterable[PathLike],
|
|
348
|
+
*,
|
|
349
|
+
root_path: str = os.curdir,
|
|
350
|
+
common_components: t.Optional[t.Sequence[str]] = None,
|
|
351
|
+
) -> 'Manifest':
|
|
346
352
|
"""
|
|
347
353
|
Create a Manifest instance from multiple manifest files
|
|
348
354
|
|
|
349
355
|
:param paths: manifest file paths
|
|
350
356
|
:param root_path: root path for relative paths in manifest files
|
|
357
|
+
:param common_components: sequence of strings to expand the ``- *common_components`` placeholder in manifests
|
|
351
358
|
:return: Manifest instance
|
|
352
359
|
"""
|
|
353
360
|
# folder, defined as dict
|
|
@@ -356,7 +363,7 @@ class Manifest:
|
|
|
356
363
|
rules: t.List[FolderRule] = []
|
|
357
364
|
for path in paths:
|
|
358
365
|
LOGGER.debug('Loading manifest file %s', path)
|
|
359
|
-
_manifest = cls.from_file(path, root_path=root_path)
|
|
366
|
+
_manifest = cls.from_file(path, root_path=root_path, common_components=common_components)
|
|
360
367
|
|
|
361
368
|
for rule in _manifest.rules:
|
|
362
369
|
if rule.folder in _known_folders:
|
|
@@ -373,15 +380,22 @@ class Manifest:
|
|
|
373
380
|
return Manifest(rules, root_path=root_path)
|
|
374
381
|
|
|
375
382
|
@classmethod
|
|
376
|
-
def from_file(
|
|
383
|
+
def from_file(
|
|
384
|
+
cls,
|
|
385
|
+
path: PathLike,
|
|
386
|
+
*,
|
|
387
|
+
root_path: str = os.curdir,
|
|
388
|
+
common_components: t.Optional[t.Sequence[str]] = None,
|
|
389
|
+
) -> 'Manifest':
|
|
377
390
|
"""
|
|
378
391
|
Create a Manifest instance from a manifest file
|
|
379
392
|
|
|
380
393
|
:param path: path to the manifest file
|
|
381
394
|
:param root_path: root path for relative paths in manifest file
|
|
395
|
+
:param common_components: sequence of strings to expand the ``{{root_components}}`` placeholder in manifests
|
|
382
396
|
:return: Manifest instance
|
|
383
397
|
"""
|
|
384
|
-
manifest_dict = parse(path)
|
|
398
|
+
manifest_dict = parse(path, common_components=common_components)
|
|
385
399
|
|
|
386
400
|
rules: t.List[FolderRule] = []
|
|
387
401
|
for folder, folder_rule in manifest_dict.items():
|
idf_build_apps/session_args.py
CHANGED
idf_build_apps/utils.py
CHANGED
idf_build_apps/yaml/__init__.py
CHANGED
idf_build_apps/yaml/parser.py
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# SPDX-FileCopyrightText: 2024-
|
|
1
|
+
# SPDX-FileCopyrightText: 2024-2026 Espressif Systems (Shanghai) CO LTD
|
|
2
2
|
# SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
|
|
4
4
|
import typing as t
|
|
@@ -62,8 +62,43 @@ def parse_postfixes(manifest_dict: t.Dict):
|
|
|
62
62
|
manifest_dict[folder] = updated_folder
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
def
|
|
66
|
-
|
|
67
|
-
|
|
65
|
+
def flatten_common_components(manifest_dict: t.Dict):
|
|
66
|
+
"""
|
|
67
|
+
Flattens nested lists under `depends_components` into a single list of strings.
|
|
68
|
+
"""
|
|
69
|
+
|
|
70
|
+
for folder, folder_rule in manifest_dict.items():
|
|
71
|
+
if not isinstance(folder_rule, t.Dict):
|
|
72
|
+
continue
|
|
73
|
+
|
|
74
|
+
depends = folder_rule.get('depends_components')
|
|
75
|
+
if not isinstance(depends, t.List):
|
|
76
|
+
continue
|
|
77
|
+
|
|
78
|
+
flattened: t.List[str] = []
|
|
79
|
+
for item in depends:
|
|
80
|
+
if not item:
|
|
81
|
+
continue
|
|
82
|
+
if isinstance(item, t.List):
|
|
83
|
+
flattened.extend(map(str, item))
|
|
84
|
+
else:
|
|
85
|
+
flattened.append(item)
|
|
86
|
+
|
|
87
|
+
folder_rule['depends_components'] = flattened
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
def parse(path: PathLike, *, common_components: t.Optional[t.Sequence[str]] = None) -> t.Dict:
|
|
91
|
+
common_components_yaml = (
|
|
92
|
+
'.common_components: &common_components\n' + '\n'.join(f' - {component}' for component in common_components)
|
|
93
|
+
if common_components
|
|
94
|
+
else '.common_components: &common_components\n null'
|
|
95
|
+
)
|
|
96
|
+
|
|
97
|
+
with open(path, encoding='utf-8') as f:
|
|
98
|
+
user_yaml = f.read()
|
|
99
|
+
|
|
100
|
+
manifest_dict = yaml.safe_load(f'{common_components_yaml}\n{user_yaml}') or {}
|
|
101
|
+
|
|
102
|
+
flatten_common_components(manifest_dict)
|
|
68
103
|
parse_postfixes(manifest_dict)
|
|
69
104
|
return manifest_dict
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
idf_build_apps/__init__.py,sha256=_7nx4tOzrYWsNpO7ljwZ0nd5GM1pWe8-UfCv7K4MzRQ,711
|
|
2
|
+
idf_build_apps/__main__.py,sha256=xbvcgp3sNxXZZ0MMr9XU12TjdzHBWq6DF1FYUSmAjHE,182
|
|
3
|
+
idf_build_apps/app.py,sha256=XfZuDRvEbtsBGqagc4az-LYnbK3y7lxQIvpUk9r4A5Q,40469
|
|
4
|
+
idf_build_apps/args.py,sha256=sdp7eI33BXKmqucs60sS0kK8l5p4fRpRS6H7Y0XyITY,40803
|
|
5
|
+
idf_build_apps/autocompletions.py,sha256=UbswHAWRvqvq4TgDBFjqHGlDLS_NEBM8EE0LlLUYY0A,2143
|
|
6
|
+
idf_build_apps/constants.py,sha256=CW7vKXV6brsNLWeGLNCoDj28r5GO9So3RFNqgk_X2CI,2166
|
|
7
|
+
idf_build_apps/finder.py,sha256=eSIr-y5yPTInQk5IQHggRJyxOndciexaNzpU4VVhfQQ,5833
|
|
8
|
+
idf_build_apps/log.py,sha256=2aJRqx3hPT9IhSv3RLkXR5j7PgB2RX47G766c4i_m5c,3899
|
|
9
|
+
idf_build_apps/main.py,sha256=B5yb6cy5UgqHP8-f7VEc9CrbkQmWGEpf6ww70MC_1z8,18255
|
|
10
|
+
idf_build_apps/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
idf_build_apps/session_args.py,sha256=BMWfW48hHHt5UsAbzTJ9BMnerVP5lnulb0h3Db-BNC8,2973
|
|
12
|
+
idf_build_apps/utils.py,sha256=YAVIYTvz86G--qjh58H376taQ-qe1PbebXcWxYNdnFs,10976
|
|
13
|
+
idf_build_apps/junit/__init__.py,sha256=ZFbtFP4nrRUsN_7rdCYWPZRSAYH_OXetZyd3JGv71bs,231
|
|
14
|
+
idf_build_apps/junit/report.py,sha256=SUQ7VQwc4zUUwLt6srVncvue9iswIFm7AHOao7umyo4,6565
|
|
15
|
+
idf_build_apps/junit/utils.py,sha256=bmrCn44DH3b_LrlKTN7t7l94ttEmitiwVGVBrCQC1yo,1303
|
|
16
|
+
idf_build_apps/manifest/__init__.py,sha256=Fze5wbperMK1F35KXnkAEc93u-ldDl7eQQkv75DoJ18,479
|
|
17
|
+
idf_build_apps/manifest/manifest.py,sha256=UG6t7l9BNmZ223pl674-gSpBgUos3wwHPWwO9Y7-R0A,18580
|
|
18
|
+
idf_build_apps/manifest/soc_header.py,sha256=vBO8oDEIIcxWRCDOPNXtqHKU0yv8q4yMrTo22W55iNw,177
|
|
19
|
+
idf_build_apps/vendors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
+
idf_build_apps/vendors/pydantic_sources.py,sha256=cxSIPRc3eI5peVMhDxwf58YaGhuG4SCwPRVX2znFEek,4553
|
|
21
|
+
idf_build_apps/yaml/__init__.py,sha256=lbBz5r6hp8dSsxIypGFcc5EbXgWw2codDmky8QCo-sg,167
|
|
22
|
+
idf_build_apps/yaml/parser.py,sha256=fdqlRsepAhb-_iynn0_TPMCk9qutMSl0cDRMxYKoPr0,3287
|
|
23
|
+
idf_build_apps-2.15.0.dist-info/entry_points.txt,sha256=3pVUirUEsb6jsDRikkQWNUt4hqLK2ci1HvW_Vf8b6uE,59
|
|
24
|
+
idf_build_apps-2.15.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
25
|
+
idf_build_apps-2.15.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
26
|
+
idf_build_apps-2.15.0.dist-info/METADATA,sha256=rF-7-4PDnWVxxke2CdNMxiq2NsDKv6nAkVsd_TMHf6Q,4795
|
|
27
|
+
idf_build_apps-2.15.0.dist-info/RECORD,,
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
idf_build_apps/__init__.py,sha256=ZxK4NQEmF-i7Ky7S7vMUuYokfUSr-JyUo70xIHbBueI,711
|
|
2
|
-
idf_build_apps/__main__.py,sha256=pT6OsFQRjCw39Jg43HAeGKzq8h5E_0m7kHDE2QMqDe0,182
|
|
3
|
-
idf_build_apps/app.py,sha256=iMu2m20O7vMpHWWQv107pjtqIJXMT-0Je3uWeWznfog,40179
|
|
4
|
-
idf_build_apps/args.py,sha256=e9d4kxv2q7SEOF42rWn-GS9EfIYYLaMxNUagJ8SPGzk,40140
|
|
5
|
-
idf_build_apps/autocompletions.py,sha256=2fZQxzgZ21ie_2uk-B-7-xWYCChfOSgRFRYb7I2Onfo,2143
|
|
6
|
-
idf_build_apps/constants.py,sha256=2iwLPZRhSQcn1v4RAcOJnHbqp1fDTp6A1gHaxn5ciTE,2166
|
|
7
|
-
idf_build_apps/finder.py,sha256=CKppfxa-nPedHKXfyQ841q1DZc0BimVulXK52EfCD0o,5833
|
|
8
|
-
idf_build_apps/log.py,sha256=15sSQhv9dJsHShDR2KgFGFp8ByjV0HogLr1X1lHYqGs,3899
|
|
9
|
-
idf_build_apps/main.py,sha256=P_TsUA2s048qcRb-wVngF-zqNjH_NEYrQsAYKB1GHmU,17960
|
|
10
|
-
idf_build_apps/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
-
idf_build_apps/session_args.py,sha256=1B7e3M9_eKdQezGNXaocqCq7iE4MOxpYJkfanCfdkDE,2973
|
|
12
|
-
idf_build_apps/utils.py,sha256=YJZOXIpo3aoRkGZJoQUJHAPWi2VkTDAVzQG5DI2igxw,10976
|
|
13
|
-
idf_build_apps/junit/__init__.py,sha256=ljILW1rfeBAIlwZIw8jstYrVbugErlmCYzSzJwNFC2I,231
|
|
14
|
-
idf_build_apps/junit/report.py,sha256=yzt5SiJEA_AUlw2Ld23J7enYlfDluvmKAcCnAM8ccqE,6565
|
|
15
|
-
idf_build_apps/junit/utils.py,sha256=idBrLgsz6Co2QUQqq1AiyzRHnqbJf_EoykEAxCkjHZw,1303
|
|
16
|
-
idf_build_apps/manifest/__init__.py,sha256=CP4_LSkh7sb_DsWLSzqkSZ3UojyVdM10bX9avlmn2pg,479
|
|
17
|
-
idf_build_apps/manifest/manifest.py,sha256=i8bXxyHeIFxYN5Z1l0dNNBFdgP7SKl3t0TCVqhlF0Lo,18051
|
|
18
|
-
idf_build_apps/manifest/soc_header.py,sha256=_F6H5-HP6ateAqKUGlRGH-SUtQ8NJ1RI0hBeCFvsDYA,172
|
|
19
|
-
idf_build_apps/vendors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
20
|
-
idf_build_apps/vendors/pydantic_sources.py,sha256=cxSIPRc3eI5peVMhDxwf58YaGhuG4SCwPRVX2znFEek,4553
|
|
21
|
-
idf_build_apps/yaml/__init__.py,sha256=R6pYasVsD31maeZ4dWRZnS10hwzM7gXdnfzDsOIRJ-4,167
|
|
22
|
-
idf_build_apps/yaml/parser.py,sha256=IhY7rCWXOxrzzgEiKipTdPs_8yXDf8JZr-sMewV1pk8,2133
|
|
23
|
-
idf_build_apps-2.13.3.dist-info/entry_points.txt,sha256=3pVUirUEsb6jsDRikkQWNUt4hqLK2ci1HvW_Vf8b6uE,59
|
|
24
|
-
idf_build_apps-2.13.3.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
25
|
-
idf_build_apps-2.13.3.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
26
|
-
idf_build_apps-2.13.3.dist-info/METADATA,sha256=qKTCSUSpN6ap36s9qCJGa8brz0_Nq05hkGKalJOPr6o,4795
|
|
27
|
-
idf_build_apps-2.13.3.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|