MCPcopy Create free account
hub / github.com/FastLED/FastLED / _merge_env_sections

Function _merge_env_sections

ci/compiler/platformio_ini.py:578–644  ·  view source on GitHub ↗

Merge a base environment section with a child that extends it. Child values override base values, except for lists which are merged.

(
    base_env: EnvironmentSection, child_env: EnvironmentSection
)

Source from the content-addressed store, hash-verified

576
577
578def _merge_env_sections(
579 base_env: EnvironmentSection, child_env: EnvironmentSection
580) -> EnvironmentSection:
581 """
582 Merge a base environment section with a child that extends it.
583 Child values override base values, except for lists which are merged.
584 """
585 from dataclasses import replace
586
587 # Start with the child environment
588 merged = replace(child_env)
589
590 # Override with base values only if child doesn't have them
591 if not merged.platform and base_env.platform:
592 merged.platform = base_env.platform
593 if not merged.framework and base_env.framework:
594 merged.framework = base_env.framework
595 if not merged.board and base_env.board:
596 merged.board = base_env.board
597 if not merged.build_type and base_env.build_type:
598 merged.build_type = base_env.build_type
599 if not merged.lib_ldf_mode and base_env.lib_ldf_mode:
600 merged.lib_ldf_mode = base_env.lib_ldf_mode
601 if not merged.upload_port and base_env.upload_port:
602 merged.upload_port = base_env.upload_port
603 if not merged.upload_protocol and base_env.upload_protocol:
604 merged.upload_protocol = base_env.upload_protocol
605 if not merged.upload_speed and base_env.upload_speed:
606 merged.upload_speed = base_env.upload_speed
607 if not merged.monitor_port and base_env.monitor_port:
608 merged.monitor_port = base_env.monitor_port
609 if not merged.monitor_speed and base_env.monitor_speed:
610 merged.monitor_speed = base_env.monitor_speed
611 if not merged.board_build_mcu and base_env.board_build_mcu:
612 merged.board_build_mcu = base_env.board_build_mcu
613 if not merged.board_build_f_cpu and base_env.board_build_f_cpu:
614 merged.board_build_f_cpu = base_env.board_build_f_cpu
615 if not merged.board_build_partitions and base_env.board_build_partitions:
616 merged.board_build_partitions = base_env.board_build_partitions
617 if not merged.check_tool and base_env.check_tool:
618 merged.check_tool = base_env.check_tool
619
620 # For list fields, prepend base values to child values (child has priority)
621 if base_env.build_flags:
622 merged.build_flags = base_env.build_flags + merged.build_flags
623 if base_env.build_src_filter:
624 merged.build_src_filter = base_env.build_src_filter + merged.build_src_filter
625 if base_env.targets:
626 merged.targets = base_env.targets + merged.targets
627 if base_env.lib_deps:
628 merged.lib_deps = base_env.lib_deps + merged.lib_deps
629 if base_env.lib_ignore:
630 merged.lib_ignore = base_env.lib_ignore + merged.lib_ignore
631 if base_env.lib_extra_dirs:
632 merged.lib_extra_dirs = base_env.lib_extra_dirs + merged.lib_extra_dirs
633 if base_env.monitor_filters:
634 merged.monitor_filters = base_env.monitor_filters + merged.monitor_filters
635 if base_env.extra_scripts:

Callers 1

_resolve_inheritanceMethod · 0.85

Calls 3

replaceFunction · 0.85
copyMethod · 0.45
updateMethod · 0.45

Tested by

no test coverage detected