Parse the [platformio] section into a typed dataclass.
(
config: configparser.ConfigParser,
)
| 531 | |
| 532 | |
| 533 | def _parse_platformio_section( |
| 534 | config: configparser.ConfigParser, |
| 535 | ) -> Optional[PlatformIOSection]: |
| 536 | """ |
| 537 | Parse the [platformio] section into a typed dataclass. |
| 538 | """ |
| 539 | if not config.has_section("platformio"): |
| 540 | return None |
| 541 | |
| 542 | section = config["platformio"] |
| 543 | |
| 544 | # Parse default_envs and extra_configs as lists |
| 545 | default_envs = None |
| 546 | if "default_envs" in section: |
| 547 | default_envs = _parse_list_value(section["default_envs"]) |
| 548 | |
| 549 | extra_configs = None |
| 550 | if "extra_configs" in section: |
| 551 | extra_configs = _parse_list_value(section["extra_configs"]) |
| 552 | |
| 553 | return PlatformIOSection( |
| 554 | name=section.get("name"), |
| 555 | description=section.get("description"), |
| 556 | default_envs=default_envs, |
| 557 | extra_configs=extra_configs, |
| 558 | core_dir=section.get("core_dir"), |
| 559 | globallib_dir=section.get("globallib_dir"), |
| 560 | platforms_dir=section.get("platforms_dir"), |
| 561 | packages_dir=section.get("packages_dir"), |
| 562 | cache_dir=section.get("cache_dir"), |
| 563 | build_cache_dir=section.get("build_cache_dir"), |
| 564 | workspace_dir=section.get("workspace_dir"), |
| 565 | build_dir=section.get("build_dir"), |
| 566 | libdeps_dir=section.get("libdeps_dir"), |
| 567 | include_dir=section.get("include_dir"), |
| 568 | src_dir=section.get("src_dir"), |
| 569 | lib_dir=section.get("lib_dir"), |
| 570 | data_dir=section.get("data_dir"), |
| 571 | test_dir=section.get("test_dir"), |
| 572 | boards_dir=section.get("boards_dir"), |
| 573 | monitor_dir=section.get("monitor_dir"), |
| 574 | shared_dir=section.get("shared_dir"), |
| 575 | ) |
| 576 | |
| 577 | |
| 578 | def _merge_env_sections( |
no test coverage detected