idf-build-apps 2.13.3__py3-none-any.whl → 2.14.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 +4 -2
- 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 +37 -4
- {idf_build_apps-2.13.3.dist-info → idf_build_apps-2.14.0.dist-info}/METADATA +1 -1
- idf_build_apps-2.14.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.14.0.dist-info}/WHEEL +0 -0
- {idf_build_apps-2.13.3.dist-info → idf_build_apps-2.14.0.dist-info}/entry_points.txt +0 -0
- {idf_build_apps-2.13.3.dist-info → idf_build_apps-2.14.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.14.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
|
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,41 @@ 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 isinstance(item, t.List):
|
|
81
|
+
flattened.extend(map(str, item))
|
|
82
|
+
else:
|
|
83
|
+
flattened.append(item)
|
|
84
|
+
|
|
85
|
+
folder_rule['depends_components'] = flattened
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
def parse(path: PathLike, *, common_components: t.Optional[t.Sequence[str]] = None) -> t.Dict:
|
|
89
|
+
common_components_yaml = (
|
|
90
|
+
'.common_components: &common_components\n' + '\n'.join(f' - {component}' for component in common_components)
|
|
91
|
+
if common_components
|
|
92
|
+
else ''
|
|
93
|
+
)
|
|
94
|
+
|
|
95
|
+
with open(path, encoding='utf-8') as f:
|
|
96
|
+
user_yaml = f.read()
|
|
97
|
+
|
|
98
|
+
manifest_dict = yaml.safe_load(f'{common_components_yaml}\n{user_yaml}') or {}
|
|
99
|
+
|
|
100
|
+
flatten_common_components(manifest_dict)
|
|
68
101
|
parse_postfixes(manifest_dict)
|
|
69
102
|
return manifest_dict
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
idf_build_apps/__init__.py,sha256=aPohj9cU8yfQCqYn7wKsJDjVMUJq6A__07PNoAFUHbs,711
|
|
2
|
+
idf_build_apps/__main__.py,sha256=xbvcgp3sNxXZZ0MMr9XU12TjdzHBWq6DF1FYUSmAjHE,182
|
|
3
|
+
idf_build_apps/app.py,sha256=_B4kCTCUq7mSd6T-VwtLbBM9iHSpXRpfM0vmrznkjYo,40223
|
|
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=qlPZbLOM48CFs4F8i83Sa0QAl8AA-DQceWozTE_CkHM,3191
|
|
23
|
+
idf_build_apps-2.14.0.dist-info/entry_points.txt,sha256=3pVUirUEsb6jsDRikkQWNUt4hqLK2ci1HvW_Vf8b6uE,59
|
|
24
|
+
idf_build_apps-2.14.0.dist-info/licenses/LICENSE,sha256=z8d0m5b2O9McPEK1xHG_dWgUBT6EfBDz6wA0F7xSPTA,11358
|
|
25
|
+
idf_build_apps-2.14.0.dist-info/WHEEL,sha256=G2gURzTEtmeR8nrdXUJfNiB3VYVxigPQ-bEQujpNiNs,82
|
|
26
|
+
idf_build_apps-2.14.0.dist-info/METADATA,sha256=Zo3oJH3A2BCUuQmQ67mhFNw68LrXWfJvDwP5SngpIp4,4795
|
|
27
|
+
idf_build_apps-2.14.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
|