mirror of
https://github.com/esphome/esphome.git
synced 2026-10-14 10:12:52 +00:00
Compare commits
base: github/esphome:dev
github/esphome:dev
github/esphome:lsm6ds-chip-names
github/esphome:image-row-major-bulk-draw
github/esphome:display-blit-driver-fallbacks
github/esphome:shelly-dimmer-update-test
github/esphome:seeed-mr60bha2-optional-entities
github/esphome:bmi270-range-names-progmem
github/esphome:bmi270-esp8266-test
github/esphome:veml7700-gain-names-progmem
github/esphome:sx12xx-transmit-before-setup
github/esphome:mqtt-trigger-callback
github/esphome:restore-17827
github/esphome:store-yaml-firmware
github/esphome:radon-eye-single-node
github/esphome:seeed-mr60fda2-optional-binary-sensors
github/esphome:cli-rotate-key
github/esphome:nfc-uri-prefixes-progmem
github/esphome:nfc-uri-record-tests
github/esphome:seeed-mr60fda2-tables-progmem
github/esphome:shelly_dimmer-tables-progmem
github/esphome:sx127x-tables-progmem
github/esphome:sx126x-tables-progmem
github/esphome:shelly_dimmer-drop-unused-dev-fields
github/esphome:pulse_counter-tables-progmem
github/esphome:weikai-shared-print-buffer
github/esphome:cc1101-modulation-names-progmem
github/esphome:lsm6ds-range-names-progmem
github/esphome:epaper-spi-state-names-progmem
github/esphome:weikai-register-names-progmem
github/esphome:haier-phase-names-progmem
github/esphome:seeed-mr24hpc1-tables-progmem
github/esphome:qmi8658-range-names-progmem
github/esphome:kamstrup_kmp-tables-progmem
github/esphome:ezo_pmp-tables-progmem
github/esphome:bme680_bsec-tables-progmem
github/esphome:micronova-tables-progmem
github/esphome:climate-custom-modes-const-vector
github/esphome:esp8266-preference-sizes
github/esphome:deprecate_waveshare_epaper_removal
github/esphome:neutral-ble-client
github/esphome:ota-udp-transport
github/esphome:beta
github/esphome:logger-boot-log-buffer
github/esphome:epaper-spi-fill-dirty-bounds
github/esphome:bl0939-tables-progmem
github/esphome:component-import-benchmarks
github/esphome:binary-sensor-lazy-integration-imports
github/esphome:logger-lazy-platform-imports
github/esphome:sensor-lazy-integration-imports
github/esphome:ld2420-tables-progmem
github/esphome:tx20-tables-progmem
github/esphome:rtttl-tables-progmem
github/esphome:nextion-tables-progmem
github/esphome:esp32_rmt_led_strip_no_busy_wait
github/esphome:ezo-tables-progmem
github/esphome:openthread-dns64-ipv6-literal
github/esphome:yaml-edit-apply
github/esphome:uart-debug-event-flash
github/esphome:esp8266-entity-names-components
github/esphome:esp8266-entity-names-flash
github/esphome:api-action-strings-progmem
github/esphome:jesserockz-2026-446
github/esphome:fan-preset-modes-const-vector
github/esphome:agents-session-lessons
github/esphome:modbus-client-write-values-tables
github/esphome:light-effect-color-tables
github/esphome:autorepeat-progmem-timing
github/esphome:number-traits-set-range
github/esphome:sscanf_stub
github/esphome:esp32-operator-new
github/esphome:dlms-meter-slot-counter
github/esphome:codspeed/optim-protobuf-cursor
github/esphome:codspeed/optim-count-packed-varints
github/esphome:codspeed/optim-base64-single-pass
github/esphome:wifi-disconnect-before-reboot
github/esphome:ln882x-zero-malloc
github/esphome:ln882x-no-roam-scan
github/esphome:st7701s-init-flash
github/esphome:qspi-dbi-init-flash
github/esphome:ili9xxx-init-flash
github/esphome:esp32-log-v2-idf61
github/esphome:socket-filter-link-tus
github/esphome:windows_cmake_lookup_ci
github/esphome:espidf-bootloader-cache
github/esphome:dependabot/pip/filelock-4.0.4
github/esphome:release
github/esphome:nrf52-pch
github/esphome:pch-identity-dedup
github/esphome:esp32-pio-pch
github/esphome:host-pch
github/esphome:pch-strict-ci
github/esphome:platformio-pch-libretiny
github/esphome:esp32-idf-pch
github/esphome:platformio-pch-rp2
github/esphome:esp8266-native-pch
github/esphome:nrf52-analyze-memory
github/esphome:integration
github/esphome:wifi-apply-action
github/esphome:ethernet-apply-action
github/esphome:noise-combo-test
github/esphome:at581x-zero-values
github/esphome:image-opaque-bulk-draw
github/esphome:display-pixels-at-constant-bitness
github/esphome:esp8266-mgmt-frame-pool-fallback
github/esphome:display-pixels-at-walk-order
github/esphome:image-row-major-draw
github/esphome:uart-idf-write-before-setup-guard
github/esphome:ld2420-extract-frame-builders
github/esphome:esp32-gpio-pin-ctor
github/esphome:template-number-ctor
github/esphome:web-server-base-ctor
github/esphome:esp32-rmt-led-strip-ctor
github/esphome:ltr390-ctor
github/esphome:http-request-update-ctor
github/esphome:rtttl-ctor
github/esphome:scd4x-ctor
github/esphome:factory-reset-switch-ctor
github/esphome:ota-http-request-ctor
github/esphome:idf-i2c-bus-ctor
github/esphome:ld2412-max-distance-timeout-number-ctor
github/esphome:ld2412-start-dynamic-background-correction-button-ctor
github/esphome:ld2412-restart-button-ctor
github/esphome:ld2412-query-button-ctor
github/esphome:ld2412-factory-reset-button-ctor
github/esphome:template-datetime-ctor
github/esphome:template-time-ctor
github/esphome:template-date-ctor
github/esphome:template-binary-output-ctor
github/esphome:datetime-user-ctor
github/esphome:text-user-ctor
github/esphome:event-user-ctor
github/esphome:button-user-ctor
github/esphome:select-user-ctor
github/esphome:codegen-default-init
github/esphome:rmt-tx-drop-when-busy
github/esphome:fix-rmt-tx-queue
github/esphome:20260218-zigbee-proxy
github/esphome:dependabot-ignore-platformio
github/esphome:noise-session-resume
github/esphome:esp8266-sodium-sha256-rodata-flash
github/esphome:esp8266-native-build-surgery
github/esphome:time-filter-posix-tz-cpptest
github/esphome:espidf-size-summary-guards
github/esphome:jesserockz-2026-578
github/esphome:proxy-subscribe-acks
github/esphome:lvgl-setup-priority-float-literal
github/esphome:ld2420-listen-first-startup
github/esphome:api-noise-c-branch-test
github/esphome:integration3
github/esphome:rp2-lwip-plus-3slots-test
github/esphome:kahrendt-va-runtime-model-loading
github/esphome:radon-eye-neutral-gatt
github/esphome:gatt-consumer-support
github/esphome:dnm-codspeed-deepcopy-proof
github/esphome:feat/nrf52_pwm
github/esphome:json-escape-core-helper
github/esphome:jesserockz-2026-378
github/esphome:frenck/replace-voluptuous-with-probatio
github/esphome:frenck/web-server-cover-assumed-state
github/esphome:frenck/framework-helpers-lazy-requests
github/esphome:jesserockz-2026-369
github/esphome:jesserockz-2026-364
github/esphome:copilot/usb-uart-fix-baud-rate-forwarding
github/esphome:esp32-idf-spaces-path-fix
github/esphome:dnm-memory-impact-proof
github/esphome:koan/vscode-component-not-found-key
github/esphome:core-blocking-warning-source
github/esphome:esp8266-stock-delay-millis
github/esphome:multi-interface-poc
github/esphome:esp32-loop-task-stack-dram-attr
github/esphome:c6-test-partitions
github/esphome:speedup-mipi-display-tests
github/esphome:lvgl-lazy-widget-schemas
github/esphome:ci-uv-installs-probe
github/esphome:ci/sync-device-classes-uv
github/esphome:test-dashboard-deprecation-bot
github/esphome:core-prebuilt-dir-upload
github/esphome:dnm-socket-recv-diag-15953
github/esphome:test-device-builder-ci
github/esphome:claude/network-switching-config-gL3sq
github/esphome:bk72xx-crash-handler
github/esphome:sensor-timeout-filter-scheduler
github/esphome:dnm_test_api_connection_comment
github/esphome:dnm_test_cover_comment
github/esphome:split-hal-per-platform
github/esphome:esp32-preferences-defer-init-log
github/esphome:api-server-incomplete-type-fix
github/esphome:scheduler-memw-outlined
github/esphome:scheduler-memw-only
github/esphome:app-loop-optimize-speed
github/esphome:scheduler-snapshot-counters
github/esphome:config-version-hash-constexpr
github/esphome:core-chunked-setup
github/esphome:pr-15656
github/esphome:light-inline-color-mode-to-bit
github/esphome:ledc-iram-safety
github/esphome:remote-receiver-iram-safety
github/esphome:benchmark-crypto-o2
github/esphome:proto-speed-optimized
github/esphome:fast-millis-rp2040
github/esphome:core-fast-select-scan-stats
github/esphome:api-unroll-varint-encode
github/esphome:sx1509-interrupt-pin
github/esphome:fix-rotary-encoder-templatable-type
github/esphome:max6956_gpio_cache_banks
github/esphome:remove_posix_tz_parser
github/esphome:remove-set-retry
github/esphome:20260327-bsec2-tidying
github/esphome:20260324-ir_rf_proxy-rx-freq
github/esphome:jesserockz-2026-040
github/esphome:copilot/lvgl-v9-api
github/esphome:esp32-log-v2
github/esphome:copilot/audit-assertion-calls
github/esphome:copilot/add-deprecated-component-label
github/esphome:pipsolar_teleinfo
github/esphome:copilot/fix-10045
github/esphome:claude/esphome-action-responses-01EXP5td9nGeLpBoTe8eenre
github/esphome:copilot/fix-internal-gpio-attach-issues
github/esphome:claude/optimize-inkplate-display-01XRaLWTgEsLC7AY9zkMwoWX
github/esphome:copilot/fix-deprecated-pulse-counter-driver
github/esphome:claude/implement-ha-cards-lvgl-01P4a84LZVfkvp74VAeW6byq
github/esphome:claude/bthome-packet-parser-013Zc5fvXF4EUg5mHfDhMegw
github/esphome:claude/add-axp2101-component-01J2hk1SL1x8F31eGwsNaQMF
github/esphome:claude/create-esphome-component-01NmXTzEgrF39phnCSe8viLm
github/esphome:claude/implement-feature-01XZW5wQYzHvETNshAWfKm5q
github/esphome:claude/implement-tcal6416-expander-0131pM94uVv4T87qFicTeKje
github/esphome:claude/add-bmi270-component-01FYE7M2ES2quDQrHgjZPKiA
github/esphome:claude/gpio-expander-interrupts-01HSsYCjopzRVuG4BJ3g3fY4
github/esphome:claude/implement-t-01EW4HWW8XiCCEq2m7GeJzTV
github/esphome:jesserockz-2025-297
github/esphome:jesserockz-2025-423
github/esphome:jesserockz-2025-370
github/esphome:copilot/fix-9982
github/esphome:jesserockz-2025-352
github/esphome:revert-9439-lib_compat_mode_fix
github/esphome:jesserockz-2025-326
github/esphome:jesserockz-2025-322
github/esphome:copilot/fix-9603
github/esphome:jesserockz-2025-287
github/esphome:jesserockz-2025-250
github/esphome:jesserockz-2025-217
github/esphome:jesserockz-2025-102
github/esphome:jesserockz-2025-064
github/esphome:ld2420
github/esphome:jesserockz-2024-578
github/esphome:jesserockz-2024-565
github/esphome:jesserockz-2023-304
github/esphome:jesserockz-2023-232
github/esphome:jesserockz-2023-284
github/esphome:jesserockz-2024-416
github/esphome:power-supply-logs
github/esphome:jesserockz-2024-399
github/esphome:jesserockz-2024-251
github/esphome:jesserockz-2024-248
github/esphome:jesserockz-2024-210
github/esphome:bluetooth-proxy-log-device-requests
github/esphome:jesserockz-2024-196
github/esphome:jesserockz-2024-151
github/esphome:jesserockz-2023-284-2
github/esphome:jesserockz-2023-415
github/esphome:jesserockz-2023-409
github/esphome:ina226-extra-logs
github/esphome:remove-unique-id
github/esphome:jesserockz-2023-284-v2.6
github/esphome:socket-client-mode
github/esphome:dependabot/pip/clang-format-16.0.6
github/esphome:jesserockz-2022-199
github/esphome:jesserockz-2023-121
github/esphome:jesserockz-2023-110
github/esphome:jesserockz-2023-045
github/esphome:jesserockz-2022-398
github/esphome:jesserockz-2022-381
github/esphome:jesserockz-2022-321
github/esphome:jesserockz-2022-284
github/esphome:jesserockz-2022-172
github/esphome:jesserockz-2022-094
github/esphome:ble-server-controller
github/esphome:oral-b-brush
github/esphome:improv_serial/log-levels
github/esphome:2026.10.0b4
github/esphome:2026.10.0b3
github/esphome:2026.10.0b2
github/esphome:2026.10.0b1
github/esphome:2026.9.1
github/esphome:2026.9.0
github/esphome:2026.9.0b5
github/esphome:2026.9.0b4
github/esphome:2026.9.0b3
github/esphome:2026.9.0b2
github/esphome:2026.9.0b1
github/esphome:2026.8.2
github/esphome:2026.8.1
github/esphome:2026.8.0
github/esphome:2026.8.0b6
github/esphome:2026.8.0b5
github/esphome:2026.8.0b4
github/esphome:2026.8.0b3
github/esphome:2026.8.0b2
github/esphome:2026.8.0b1
github/esphome:2026.7.4
github/esphome:2026.7.3
github/esphome:2026.7.2
github/esphome:2026.7.1
github/esphome:2026.7.0
github/esphome:2026.7.0b4
github/esphome:2026.7.0b3
github/esphome:2026.7.0b2
github/esphome:2026.7.0b1
github/esphome:2026.6.5
github/esphome:2026.6.4
github/esphome:2026.6.3
github/esphome:2026.6.2
github/esphome:2026.6.1
github/esphome:2026.6.0
github/esphome:2026.6.0b4
github/esphome:2026.6.0b3
github/esphome:2026.6.0b2
github/esphome:2026.6.0b1
github/esphome:2026.5.3
github/esphome:2026.5.2
github/esphome:2026.5.1
github/esphome:2026.5.0
github/esphome:2026.5.0b4
github/esphome:2026.5.0b3
github/esphome:2026.5.0b2
github/esphome:2026.5.0b1
github/esphome:2026.4.5
github/esphome:2026.4.4
github/esphome:2026.4.3
github/esphome:2026.4.2
github/esphome:2026.4.1
github/esphome:2026.4.0
github/esphome:2026.4.0b3
github/esphome:2026.4.0b2
github/esphome:2026.4.0b1
github/esphome:2026.3.3
github/esphome:2026.3.2
github/esphome:2026.3.1
github/esphome:2026.3.0
github/esphome:2026.3.0b5
github/esphome:2026.3.0b4
github/esphome:2026.3.0b3
github/esphome:2026.3.0b2
github/esphome:2026.3.0b1
github/esphome:2026.2.4
github/esphome:2026.2.3
github/esphome:2026.2.2
github/esphome:2026.2.1
github/esphome:2026.2.0
github/esphome:2026.2.0b5
github/esphome:2026.2.0b4
github/esphome:2026.2.0b3
github/esphome:2026.2.0b2
github/esphome:2026.2.0b1
github/esphome:2026.1.5
github/esphome:2026.1.4
github/esphome:2026.1.3
github/esphome:2026.1.2
github/esphome:2026.1.1
github/esphome:2026.1.0
github/esphome:2026.1.0b4
github/esphome:2026.1.0b3
github/esphome:2025.12.7
github/esphome:2026.1.0b2
github/esphome:2026.1.0b1
github/esphome:2025.12.6
github/esphome:2025.12.5
github/esphome:2025.12.4
github/esphome:2025.12.3
github/esphome:2025.12.2
github/esphome:2025.12.1
github/esphome:2025.12.0
github/esphome:2025.12.0b5
github/esphome:2025.12.0b4
github/esphome:2025.12.0b3
github/esphome:2025.12.0b2
github/esphome:2025.12.0b1
github/esphome:2025.11.5
github/esphome:2025.11.4
github/esphome:2025.11.3
github/esphome:2025.11.2
github/esphome:2025.11.1
github/esphome:2025.11.0
github/esphome:2025.11.0b5
github/esphome:2025.11.0b4
github/esphome:2025.11.0b3
github/esphome:2025.11.0b2
github/esphome:2025.11.0b1
github/esphome:2025.10.5
github/esphome:2025.10.4
github/esphome:2025.10.3
github/esphome:2025.10.2
github/esphome:2025.10.1
github/esphome:2025.10.0
github/esphome:2025.10.0b4
github/esphome:2025.10.0b3
github/esphome:2025.10.0b2
github/esphome:2025.10.0b1
github/esphome:2025.9.3
github/esphome:2025.9.2
github/esphome:2025.9.1
github/esphome:2025.9.0
github/esphome:2025.9.0b4
github/esphome:2025.9.0b3
github/esphome:2025.9.0b2
github/esphome:2025.9.0b1
github/esphome:2025.8.4
github/esphome:2025.8.3
github/esphome:2025.8.2
github/esphome:2025.8.1
github/esphome:2025.8.0
github/esphome:2025.8.0b4
github/esphome:2025.8.0b3
github/esphome:2025.8.0b2
github/esphome:2025.8.0b1
github/esphome:2025.7.5
github/esphome:2025.7.4
github/esphome:2025.7.3
github/esphome:2025.7.2
github/esphome:2025.7.1
github/esphome:2025.7.0
github/esphome:2025.7.0b5
github/esphome:2025.7.0b4
github/esphome:2025.7.0b3
github/esphome:2025.7.0b2
github/esphome:2025.7.0b1
github/esphome:2025.6.3
github/esphome:2025.6.2
github/esphome:2025.6.1
github/esphome:2025.6.0
github/esphome:2025.6.0b3
github/esphome:2025.6.0b2
github/esphome:2025.6.0b1
github/esphome:2025.5.2
github/esphome:2025.5.1
github/esphome:2025.5.0
github/esphome:2025.5.0b6
github/esphome:2025.5.0b5
github/esphome:2025.5.0b4
github/esphome:2025.5.0b3
github/esphome:2025.5.0b2
github/esphome:2025.5.0b1
github/esphome:2025.4.2
github/esphome:2025.4.1
github/esphome:2025.4.0
github/esphome:2025.4.0b3
github/esphome:2025.4.0b2
github/esphome:2025.4.0b1
github/esphome:2025.3.3
github/esphome:2025.3.2
github/esphome:2025.3.1
github/esphome:2025.3.0
github/esphome:2025.3.0b5
github/esphome:2025.3.0b4
github/esphome:2025.3.0b3
github/esphome:2025.3.0b2
github/esphome:2025.3.0b1
github/esphome:2025.2.2
github/esphome:2025.2.1
github/esphome:2025.2.0
github/esphome:2025.2.0b6
github/esphome:2025.2.0b5
github/esphome:2025.2.0b4
github/esphome:2025.2.0b3
github/esphome:2025.2.0b2
github/esphome:2025.2.0b1
github/esphome:2024.12.4
github/esphome:2024.12.3
github/esphome:2024.12.2
github/esphome:2024.12.1
github/esphome:2024.12.0
github/esphome:2024.12.0b3
github/esphome:2024.12.0b2
github/esphome:2024.12.0b1
github/esphome:2024.11.3
github/esphome:2024.11.2
github/esphome:2024.11.1
github/esphome:2024.11.0
github/esphome:2024.11.0b4
github/esphome:2024.11.0b3
github/esphome:2024.11.0b2
github/esphome:2024.11.0b1
github/esphome:2024.10.3
github/esphome:2024.10.2
github/esphome:2024.10.1
github/esphome:2024.10.0
github/esphome:2024.10.0b2
github/esphome:2024.10.0b1
github/esphome:2024.9.2
github/esphome:2024.9.1
github/esphome:2024.9.0
github/esphome:2024.9.0b4
github/esphome:2024.9.0b3
github/esphome:2024.9.0b2
github/esphome:2024.9.0b1
github/esphome:2024.8.3
github/esphome:2024.8.2
github/esphome:2024.8.1
github/esphome:2024.8.0
github/esphome:2024.8.0b4
github/esphome:2024.8.0b3
github/esphome:2024.8.0b2
github/esphome:2024.8.0b1
github/esphome:2024.7.3
github/esphome:2024.7.2
github/esphome:2024.7.1
github/esphome:2024.7.0
github/esphome:2024.7.0b4
github/esphome:2024.7.0b3
github/esphome:2024.7.0b2
github/esphome:2024.7.0b1
github/esphome:2024.6.6
github/esphome:2024.6.5
github/esphome:2024.6.4
github/esphome:2024.6.3
github/esphome:2024.6.2
github/esphome:2024.6.1
github/esphome:2024.6.0
github/esphome:2024.6.0b5
github/esphome:2024.6.0b4
github/esphome:2024.6.0b3
github/esphome:2024.6.0b2
github/esphome:2024.6.0b1
github/esphome:2024.5.5
github/esphome:2024.5.4
github/esphome:2024.5.3
github/esphome:2024.5.2
github/esphome:2024.5.1
github/esphome:2024.5.0
github/esphome:2024.5.0b6
github/esphome:2024.5.0b5
github/esphome:2024.5.0b4
github/esphome:2024.5.0b3
github/esphome:2024.5.0b2
github/esphome:2024.5.0b1
github/esphome:2024.4.2
github/esphome:2024.4.1
github/esphome:2024.4.0
github/esphome:2024.4.0b3
github/esphome:2024.4.0b2
github/esphome:2024.4.0b1
github/esphome:2024.3.2
github/esphome:2024.3.1
github/esphome:2024.3.0
github/esphome:2024.3.0b5
github/esphome:2024.3.0b4
github/esphome:2024.3.0b3
github/esphome:2024.3.0b2
github/esphome:2024.3.0b1
github/esphome:2024.2.2
github/esphome:2024.2.1
github/esphome:2024.2.0
github/esphome:2024.2.0b3
github/esphome:2024.2.0b2
github/esphome:2024.2.0b1
github/esphome:2023.12.9
github/esphome:2023.12.8
github/esphome:2023.12.7
github/esphome:2023.12.6
github/esphome:2023.12.5
github/esphome:2023.12.4
github/esphome:2023.12.3
github/esphome:2023.12.2
github/esphome:2023.12.1
github/esphome:2023.12.0
github/esphome:2023.12.0b6
github/esphome:2023.12.0b5
github/esphome:2023.12.0b4
github/esphome:2023.12.0b3
github/esphome:2023.12.0b2
github/esphome:2023.12.0b1
github/esphome:2023.11.6
github/esphome:2023.11.5
github/esphome:2023.11.4
github/esphome:2023.11.3
github/esphome:2023.11.2
github/esphome:2023.11.1
github/esphome:2023.11.0
github/esphome:2023.11.0b7
github/esphome:2023.11.0b6
github/esphome:2023.11.0b5
github/esphome:2023.11.0b4
github/esphome:2023.11.0b3
github/esphome:2023.11.0b2
github/esphome:2023.11.0b1
github/esphome:2023.10.6
github/esphome:2023.10.5
github/esphome:2023.10.4
github/esphome:2023.10.3
github/esphome:2023.10.2
github/esphome:2023.10.1
github/esphome:2023.10.0
github/esphome:2023.10.0b4
github/esphome:2023.10.0b3
github/esphome:2023.10.0b2
github/esphome:2023.10.0b1
github/esphome:2023.9.3
github/esphome:2023.9.2
github/esphome:2023.9.1
github/esphome:2023.9.0
github/esphome:2023.9.0b4
github/esphome:2023.9.0b3
github/esphome:2023.9.0b2
github/esphome:2023.9.0b1
github/esphome:2023.8.3
github/esphome:2023.8.2
github/esphome:2023.8.1
github/esphome:2023.8.0
github/esphome:2023.8.0b4
github/esphome:2023.8.0b3
github/esphome:2023.8.0b2
github/esphome:2023.8.0b1
github/esphome:2023.7.1
github/esphome:2023.7.0
github/esphome:2023.7.0b3
github/esphome:2023.7.0b2
github/esphome:2023.7.0b1
github/esphome:2023.6.5
github/esphome:2023.6.4
github/esphome:2023.6.3
github/esphome:2023.6.2
github/esphome:2023.6.1
github/esphome:2023.6.0
github/esphome:2023.6.0b7
github/esphome:2023.6.0b6
github/esphome:2023.6.0b5
github/esphome:2023.6.0b4
github/esphome:2023.6.0b3
github/esphome:2023.6.0b2
github/esphome:2023.6.0b1
github/esphome:2023.5.5
github/esphome:2023.5.4
github/esphome:2023.5.3
github/esphome:2023.5.2
github/esphome:2023.5.1
github/esphome:2023.5.0
github/esphome:2023.5.0b5
github/esphome:2023.5.0b4
github/esphome:2023.5.0b3
github/esphome:2023.5.0b2
github/esphome:2023.5.0b1
github/esphome:2023.4.4
github/esphome:2023.4.3
github/esphome:2023.4.2
github/esphome:2023.4.1
github/esphome:2023.4.0
github/esphome:2023.4.0b4
github/esphome:2023.4.0b3
github/esphome:2023.4.0b2
github/esphome:2023.4.0b1
github/esphome:2023.3.2
github/esphome:2023.3.1
github/esphome:2023.3.0
github/esphome:2023.3.0b6
github/esphome:2023.3.0b5
github/esphome:2023.3.0b4
github/esphome:2023.3.0b3
github/esphome:2023.3.0b2
github/esphome:2023.3.0b1
github/esphome:2023.2.4
github/esphome:2023.2.3
github/esphome:2023.2.2
github/esphome:2023.2.1
github/esphome:2023.2.0
github/esphome:2023.2.0b5
github/esphome:2023.2.0b4
github/esphome:2023.2.0b3
github/esphome:2023.2.0b2
github/esphome:2023.2.0b1
github/esphome:2022.12.8
github/esphome:2022.12.7
github/esphome:2022.12.6
github/esphome:2022.12.5
github/esphome:2022.12.4
github/esphome:2022.12.3
github/esphome:2022.12.2
github/esphome:2022.12.1
github/esphome:2022.12.0
github/esphome:2022.12.0b6
github/esphome:2022.12.0b5
github/esphome:2022.12.0b4
github/esphome:2022.12.0b3
github/esphome:2022.12.0b2
github/esphome:2022.12.0b1
github/esphome:2022.11.5
github/esphome:2022.11.4
github/esphome:2022.11.3
github/esphome:2022.11.2
github/esphome:2022.11.1
github/esphome:2022.11.0
github/esphome:2022.11.0b6
github/esphome:2022.11.0b5
github/esphome:2022.11.0b4
github/esphome:2022.11.0b3
github/esphome:2022.11.0b2
github/esphome:2022.11.0b1
github/esphome:2022.10.2
github/esphome:2022.10.1
github/esphome:2022.10.0
github/esphome:2022.10.0b2
github/esphome:2022.10.0b1
github/esphome:2022.9.4
github/esphome:2022.9.3
github/esphome:2022.9.2
github/esphome:2022.9.1
github/esphome:2022.9.0
github/esphome:2022.9.0b5
github/esphome:2022.9.0b4
github/esphome:2022.9.0b3
github/esphome:2022.9.0b2
github/esphome:2022.9.0b1
github/esphome:2022.8.3
github/esphome:2022.8.2
github/esphome:2022.8.1
github/esphome:2022.8.0
github/esphome:2022.8.0b3
github/esphome:2022.8.0b2
github/esphome:2022.8.0b1
github/esphome:2022.6.3
github/esphome:2022.6.2
github/esphome:2022.6.1
github/esphome:2022.6.0
github/esphome:2022.6.0b4
github/esphome:2022.6.0b3
github/esphome:2022.6.0b2
github/esphome:2022.6.0b1
github/esphome:2022.5.1
github/esphome:2022.5.0
github/esphome:2022.5.0b4
github/esphome:2022.5.0b3
github/esphome:2022.5.0b2
github/esphome:2022.5.0b1
github/esphome:2022.4.0
github/esphome:2022.4.0b4
github/esphome:2022.4.0b3
github/esphome:2022.4.0b2
github/esphome:2022.4.0b1
github/esphome:2022.3.2
github/esphome:2022.3.1
github/esphome:2022.3.0
github/esphome:2022.3.0b2
github/esphome:2022.3.0b1
github/esphome:2022.2.6
github/esphome:2022.2.5
github/esphome:2022.2.4
github/esphome:2022.2.3
github/esphome:2022.2.2
github/esphome:2022.2.1
github/esphome:2022.2.0
github/esphome:2022.2.0b3
github/esphome:2022.2.0b2
github/esphome:2022.2.0b1
github/esphome:2022.1.4
github/esphome:2022.1.3
github/esphome:2022.1.2
github/esphome:2022.1.1
github/esphome:2022.1.0
github/esphome:2022.1.0b4
github/esphome:2022.1.0b3
github/esphome:2022.1.0b2
github/esphome:2022.1.0b1
github/esphome:2021.12.3
github/esphome:2021.12.2
github/esphome:2021.12.1
github/esphome:2021.12.0
github/esphome:2021.12.0b6
github/esphome:2021.12.0b5
github/esphome:2021.12.0b4
github/esphome:2021.12.0b3
github/esphome:2021.12.0b2
github/esphome:2021.12.0b1
github/esphome:2021.11.4
github/esphome:2021.11.3
github/esphome:2021.11.2
github/esphome:2021.11.1
github/esphome:2021.11.0
github/esphome:2021.11.0b9
github/esphome:2021.11.0b8
github/esphome:2021.11.0b7
github/esphome:2021.11.0b6
github/esphome:2021.11.0b5
github/esphome:2021.11.0b4
github/esphome:2021.11.0b3
github/esphome:2021.11.0b2
github/esphome:2021.11.0b1
github/esphome:2021.10.3
github/esphome:2021.10.2
github/esphome:2021.10.1
github/esphome:2021.10.0
github/esphome:2021.10.0b11
github/esphome:2021.10.0b10
github/esphome:2021.10.0b9
github/esphome:2021.10.0b8
github/esphome:2021.10.0b7
github/esphome:2021.10.0b6
github/esphome:2021.10.0b5
github/esphome:2021.10.0b4
github/esphome:2021.10.0b3
github/esphome:2021.10.0b2
github/esphome:2021.10.0b1
github/esphome:2021.9.3
github/esphome:2021.9.2
github/esphome:2021.9.1
github/esphome:2021.9.0
github/esphome:2021.9.0b5
github/esphome:2021.9.0b4
github/esphome:2021.9.0b3
github/esphome:2021.9.0b2
github/esphome:2021.9.0b1
github/esphome:2021.8.2
github/esphome:2021.8.1
github/esphome:2021.8.0
github/esphome:v1.21.0b3
github/esphome:v1.21.0b2
github/esphome:v1.21.0b1
github/esphome:v1.20.4
github/esphome:v1.20.3
github/esphome:v1.20.2
github/esphome:v1.20.1
github/esphome:v1.20.0
github/esphome:v1.20.0b6
github/esphome:v1.20.0b5
github/esphome:v1.20.0b4
github/esphome:v1.20.0b3
github/esphome:v1.20.0b2
github/esphome:v1.20.0b1
github/esphome:v1.19.4
github/esphome:v1.19.3
github/esphome:v1.19.2
github/esphome:v1.19.1
github/esphome:v1.19.0
github/esphome:v1.19.0b7
github/esphome:v1.19.0b6
github/esphome:v1.19.0b5
github/esphome:v1.19.0b4
github/esphome:v1.19.0b3
github/esphome:v1.19.0b2
github/esphome:v1.19.0b1
github/esphome:v1.18.0
github/esphome:v1.18.0b4
github/esphome:v1.18.0b3
github/esphome:v1.18.0b2
github/esphome:v1.18.0b1
github/esphome:v1.17.2
github/esphome:v1.17.1
github/esphome:v1.17.0
github/esphome:v1.17.0b1
github/esphome:v1.16.2
github/esphome:v1.16.1
github/esphome:v1.16.0
github/esphome:v1.16.0b8
github/esphome:v1.16.0b7
github/esphome:v1.16.0b6
github/esphome:v1.16.0b5
github/esphome:v1.16.0b4
github/esphome:v1.16.0b3
github/esphome:v1.16.0b2
github/esphome:v1.16.0b1
github/esphome:v1.15.3
github/esphome:v1.15.2
github/esphome:v1.15.1
github/esphome:v1.15.0
github/esphome:v1.15.0b4
github/esphome:v1.15.0b3
github/esphome:v1.15.0b2
github/esphome:v1.15.0b1
github/esphome:v1.14.5
github/esphome:v1.14.4
github/esphome:v1.14.3
github/esphome:v1.14.2
github/esphome:v1.14.1
github/esphome:v1.14.0
github/esphome:v1.14.0b5
github/esphome:v1.14.0b4
github/esphome:v1.14.0b3
github/esphome:v1.14.0b2
github/esphome:v1.14.0b1
github/esphome:v1.13.6
github/esphome:v1.13.5
github/esphome:v1.13.4
github/esphome:v1.13.3
github/esphome:v1.13.2
github/esphome:v1.13.1
github/esphome:v1.13.0
github/esphome:v1.13.0b7
github/esphome:v1.13.0b6
github/esphome:v1.13.0b5
github/esphome:v1.13.0b4
github/esphome:v1.13.0b3
github/esphome:v1.13.0b2
github/esphome:v1.13.0b1
github/esphome:v1.12.2
github/esphome:v1.12.1
github/esphome:v1.12.0
github/esphome:v1.12.0b4
github/esphome:v1.12.0b3
github/esphome:v1.12.0b2
github/esphome:v1.12.0b1
github/esphome:v1.11.2
github/esphome:v1.11.1
github/esphome:v1.11.0
github/esphome:v1.11.0b3
github/esphome:v1.11.0b2
github/esphome:v1.11.0b1
github/esphome:v1.10.1
github/esphome:v1.10.0
github/esphome:v1.10.0b2
github/esphome:v1.10.0b1
github/esphome:v1.9.3
github/esphome:v1.9.2
github/esphome:v1.9.1
github/esphome:v1.9.0
github/esphome:v1.9.0b6
github/esphome:v1.9.0b5
github/esphome:v1.9.0b4
github/esphome:v1.9.0b3
github/esphome:v1.9.0b2
github/esphome:v1.9.0b1
github/esphome:v1.8.2
github/esphome:v1.8.1
github/esphome:v1.8.0
github/esphome:v1.7.0
github/esphome:v1.6.2
github/esphome:v1.6.1
github/esphome:v1.6.0
github/esphome:v1.5.3
github/esphome:v1.5.2
github/esphome:v1.5.1
github/esphome:v1.5.0
github/esphome:v1.4.0
github/esphome:v1.3.0
github/esphome:v1.2.2
github/esphome:v1.2.1
github/esphome:v1.1
...
compare: github/esphome:component-import-benchmarks
github/esphome:dev
github/esphome:lsm6ds-chip-names
github/esphome:image-row-major-bulk-draw
github/esphome:display-blit-driver-fallbacks
github/esphome:shelly-dimmer-update-test
github/esphome:seeed-mr60bha2-optional-entities
github/esphome:bmi270-range-names-progmem
github/esphome:bmi270-esp8266-test
github/esphome:veml7700-gain-names-progmem
github/esphome:sx12xx-transmit-before-setup
github/esphome:mqtt-trigger-callback
github/esphome:restore-17827
github/esphome:store-yaml-firmware
github/esphome:radon-eye-single-node
github/esphome:seeed-mr60fda2-optional-binary-sensors
github/esphome:cli-rotate-key
github/esphome:nfc-uri-prefixes-progmem
github/esphome:nfc-uri-record-tests
github/esphome:seeed-mr60fda2-tables-progmem
github/esphome:shelly_dimmer-tables-progmem
github/esphome:sx127x-tables-progmem
github/esphome:sx126x-tables-progmem
github/esphome:shelly_dimmer-drop-unused-dev-fields
github/esphome:pulse_counter-tables-progmem
github/esphome:weikai-shared-print-buffer
github/esphome:cc1101-modulation-names-progmem
github/esphome:lsm6ds-range-names-progmem
github/esphome:epaper-spi-state-names-progmem
github/esphome:weikai-register-names-progmem
github/esphome:haier-phase-names-progmem
github/esphome:seeed-mr24hpc1-tables-progmem
github/esphome:qmi8658-range-names-progmem
github/esphome:kamstrup_kmp-tables-progmem
github/esphome:ezo_pmp-tables-progmem
github/esphome:bme680_bsec-tables-progmem
github/esphome:micronova-tables-progmem
github/esphome:climate-custom-modes-const-vector
github/esphome:esp8266-preference-sizes
github/esphome:deprecate_waveshare_epaper_removal
github/esphome:neutral-ble-client
github/esphome:ota-udp-transport
github/esphome:beta
github/esphome:logger-boot-log-buffer
github/esphome:epaper-spi-fill-dirty-bounds
github/esphome:bl0939-tables-progmem
github/esphome:component-import-benchmarks
github/esphome:binary-sensor-lazy-integration-imports
github/esphome:logger-lazy-platform-imports
github/esphome:sensor-lazy-integration-imports
github/esphome:ld2420-tables-progmem
github/esphome:tx20-tables-progmem
github/esphome:rtttl-tables-progmem
github/esphome:nextion-tables-progmem
github/esphome:esp32_rmt_led_strip_no_busy_wait
github/esphome:ezo-tables-progmem
github/esphome:openthread-dns64-ipv6-literal
github/esphome:yaml-edit-apply
github/esphome:uart-debug-event-flash
github/esphome:esp8266-entity-names-components
github/esphome:esp8266-entity-names-flash
github/esphome:api-action-strings-progmem
github/esphome:jesserockz-2026-446
github/esphome:fan-preset-modes-const-vector
github/esphome:agents-session-lessons
github/esphome:modbus-client-write-values-tables
github/esphome:light-effect-color-tables
github/esphome:autorepeat-progmem-timing
github/esphome:number-traits-set-range
github/esphome:sscanf_stub
github/esphome:esp32-operator-new
github/esphome:dlms-meter-slot-counter
github/esphome:codspeed/optim-protobuf-cursor
github/esphome:codspeed/optim-count-packed-varints
github/esphome:codspeed/optim-base64-single-pass
github/esphome:wifi-disconnect-before-reboot
github/esphome:ln882x-zero-malloc
github/esphome:ln882x-no-roam-scan
github/esphome:st7701s-init-flash
github/esphome:qspi-dbi-init-flash
github/esphome:ili9xxx-init-flash
github/esphome:esp32-log-v2-idf61
github/esphome:socket-filter-link-tus
github/esphome:windows_cmake_lookup_ci
github/esphome:espidf-bootloader-cache
github/esphome:dependabot/pip/filelock-4.0.4
github/esphome:release
github/esphome:nrf52-pch
github/esphome:pch-identity-dedup
github/esphome:esp32-pio-pch
github/esphome:host-pch
github/esphome:pch-strict-ci
github/esphome:platformio-pch-libretiny
github/esphome:esp32-idf-pch
github/esphome:platformio-pch-rp2
github/esphome:esp8266-native-pch
github/esphome:nrf52-analyze-memory
github/esphome:integration
github/esphome:wifi-apply-action
github/esphome:ethernet-apply-action
github/esphome:noise-combo-test
github/esphome:at581x-zero-values
github/esphome:image-opaque-bulk-draw
github/esphome:display-pixels-at-constant-bitness
github/esphome:esp8266-mgmt-frame-pool-fallback
github/esphome:display-pixels-at-walk-order
github/esphome:image-row-major-draw
github/esphome:uart-idf-write-before-setup-guard
github/esphome:ld2420-extract-frame-builders
github/esphome:esp32-gpio-pin-ctor
github/esphome:template-number-ctor
github/esphome:web-server-base-ctor
github/esphome:esp32-rmt-led-strip-ctor
github/esphome:ltr390-ctor
github/esphome:http-request-update-ctor
github/esphome:rtttl-ctor
github/esphome:scd4x-ctor
github/esphome:factory-reset-switch-ctor
github/esphome:ota-http-request-ctor
github/esphome:idf-i2c-bus-ctor
github/esphome:ld2412-max-distance-timeout-number-ctor
github/esphome:ld2412-start-dynamic-background-correction-button-ctor
github/esphome:ld2412-restart-button-ctor
github/esphome:ld2412-query-button-ctor
github/esphome:ld2412-factory-reset-button-ctor
github/esphome:template-datetime-ctor
github/esphome:template-time-ctor
github/esphome:template-date-ctor
github/esphome:template-binary-output-ctor
github/esphome:datetime-user-ctor
github/esphome:text-user-ctor
github/esphome:event-user-ctor
github/esphome:button-user-ctor
github/esphome:select-user-ctor
github/esphome:codegen-default-init
github/esphome:rmt-tx-drop-when-busy
github/esphome:fix-rmt-tx-queue
github/esphome:20260218-zigbee-proxy
github/esphome:dependabot-ignore-platformio
github/esphome:noise-session-resume
github/esphome:esp8266-sodium-sha256-rodata-flash
github/esphome:esp8266-native-build-surgery
github/esphome:time-filter-posix-tz-cpptest
github/esphome:espidf-size-summary-guards
github/esphome:jesserockz-2026-578
github/esphome:proxy-subscribe-acks
github/esphome:lvgl-setup-priority-float-literal
github/esphome:ld2420-listen-first-startup
github/esphome:api-noise-c-branch-test
github/esphome:integration3
github/esphome:rp2-lwip-plus-3slots-test
github/esphome:kahrendt-va-runtime-model-loading
github/esphome:radon-eye-neutral-gatt
github/esphome:gatt-consumer-support
github/esphome:dnm-codspeed-deepcopy-proof
github/esphome:feat/nrf52_pwm
github/esphome:json-escape-core-helper
github/esphome:jesserockz-2026-378
github/esphome:frenck/replace-voluptuous-with-probatio
github/esphome:frenck/web-server-cover-assumed-state
github/esphome:frenck/framework-helpers-lazy-requests
github/esphome:jesserockz-2026-369
github/esphome:jesserockz-2026-364
github/esphome:copilot/usb-uart-fix-baud-rate-forwarding
github/esphome:esp32-idf-spaces-path-fix
github/esphome:dnm-memory-impact-proof
github/esphome:koan/vscode-component-not-found-key
github/esphome:core-blocking-warning-source
github/esphome:esp8266-stock-delay-millis
github/esphome:multi-interface-poc
github/esphome:esp32-loop-task-stack-dram-attr
github/esphome:c6-test-partitions
github/esphome:speedup-mipi-display-tests
github/esphome:lvgl-lazy-widget-schemas
github/esphome:ci-uv-installs-probe
github/esphome:ci/sync-device-classes-uv
github/esphome:test-dashboard-deprecation-bot
github/esphome:core-prebuilt-dir-upload
github/esphome:dnm-socket-recv-diag-15953
github/esphome:test-device-builder-ci
github/esphome:claude/network-switching-config-gL3sq
github/esphome:bk72xx-crash-handler
github/esphome:sensor-timeout-filter-scheduler
github/esphome:dnm_test_api_connection_comment
github/esphome:dnm_test_cover_comment
github/esphome:split-hal-per-platform
github/esphome:esp32-preferences-defer-init-log
github/esphome:api-server-incomplete-type-fix
github/esphome:scheduler-memw-outlined
github/esphome:scheduler-memw-only
github/esphome:app-loop-optimize-speed
github/esphome:scheduler-snapshot-counters
github/esphome:config-version-hash-constexpr
github/esphome:core-chunked-setup
github/esphome:pr-15656
github/esphome:light-inline-color-mode-to-bit
github/esphome:ledc-iram-safety
github/esphome:remote-receiver-iram-safety
github/esphome:benchmark-crypto-o2
github/esphome:proto-speed-optimized
github/esphome:fast-millis-rp2040
github/esphome:core-fast-select-scan-stats
github/esphome:api-unroll-varint-encode
github/esphome:sx1509-interrupt-pin
github/esphome:fix-rotary-encoder-templatable-type
github/esphome:max6956_gpio_cache_banks
github/esphome:remove_posix_tz_parser
github/esphome:remove-set-retry
github/esphome:20260327-bsec2-tidying
github/esphome:20260324-ir_rf_proxy-rx-freq
github/esphome:jesserockz-2026-040
github/esphome:copilot/lvgl-v9-api
github/esphome:esp32-log-v2
github/esphome:copilot/audit-assertion-calls
github/esphome:copilot/add-deprecated-component-label
github/esphome:pipsolar_teleinfo
github/esphome:copilot/fix-10045
github/esphome:claude/esphome-action-responses-01EXP5td9nGeLpBoTe8eenre
github/esphome:copilot/fix-internal-gpio-attach-issues
github/esphome:claude/optimize-inkplate-display-01XRaLWTgEsLC7AY9zkMwoWX
github/esphome:copilot/fix-deprecated-pulse-counter-driver
github/esphome:claude/implement-ha-cards-lvgl-01P4a84LZVfkvp74VAeW6byq
github/esphome:claude/bthome-packet-parser-013Zc5fvXF4EUg5mHfDhMegw
github/esphome:claude/add-axp2101-component-01J2hk1SL1x8F31eGwsNaQMF
github/esphome:claude/create-esphome-component-01NmXTzEgrF39phnCSe8viLm
github/esphome:claude/implement-feature-01XZW5wQYzHvETNshAWfKm5q
github/esphome:claude/implement-tcal6416-expander-0131pM94uVv4T87qFicTeKje
github/esphome:claude/add-bmi270-component-01FYE7M2ES2quDQrHgjZPKiA
github/esphome:claude/gpio-expander-interrupts-01HSsYCjopzRVuG4BJ3g3fY4
github/esphome:claude/implement-t-01EW4HWW8XiCCEq2m7GeJzTV
github/esphome:jesserockz-2025-297
github/esphome:jesserockz-2025-423
github/esphome:jesserockz-2025-370
github/esphome:copilot/fix-9982
github/esphome:jesserockz-2025-352
github/esphome:revert-9439-lib_compat_mode_fix
github/esphome:jesserockz-2025-326
github/esphome:jesserockz-2025-322
github/esphome:copilot/fix-9603
github/esphome:jesserockz-2025-287
github/esphome:jesserockz-2025-250
github/esphome:jesserockz-2025-217
github/esphome:jesserockz-2025-102
github/esphome:jesserockz-2025-064
github/esphome:ld2420
github/esphome:jesserockz-2024-578
github/esphome:jesserockz-2024-565
github/esphome:jesserockz-2023-304
github/esphome:jesserockz-2023-232
github/esphome:jesserockz-2023-284
github/esphome:jesserockz-2024-416
github/esphome:power-supply-logs
github/esphome:jesserockz-2024-399
github/esphome:jesserockz-2024-251
github/esphome:jesserockz-2024-248
github/esphome:jesserockz-2024-210
github/esphome:bluetooth-proxy-log-device-requests
github/esphome:jesserockz-2024-196
github/esphome:jesserockz-2024-151
github/esphome:jesserockz-2023-284-2
github/esphome:jesserockz-2023-415
github/esphome:jesserockz-2023-409
github/esphome:ina226-extra-logs
github/esphome:remove-unique-id
github/esphome:jesserockz-2023-284-v2.6
github/esphome:socket-client-mode
github/esphome:dependabot/pip/clang-format-16.0.6
github/esphome:jesserockz-2022-199
github/esphome:jesserockz-2023-121
github/esphome:jesserockz-2023-110
github/esphome:jesserockz-2023-045
github/esphome:jesserockz-2022-398
github/esphome:jesserockz-2022-381
github/esphome:jesserockz-2022-321
github/esphome:jesserockz-2022-284
github/esphome:jesserockz-2022-172
github/esphome:jesserockz-2022-094
github/esphome:ble-server-controller
github/esphome:oral-b-brush
github/esphome:improv_serial/log-levels
github/esphome:2026.10.0b4
github/esphome:2026.10.0b3
github/esphome:2026.10.0b2
github/esphome:2026.10.0b1
github/esphome:2026.9.1
github/esphome:2026.9.0
github/esphome:2026.9.0b5
github/esphome:2026.9.0b4
github/esphome:2026.9.0b3
github/esphome:2026.9.0b2
github/esphome:2026.9.0b1
github/esphome:2026.8.2
github/esphome:2026.8.1
github/esphome:2026.8.0
github/esphome:2026.8.0b6
github/esphome:2026.8.0b5
github/esphome:2026.8.0b4
github/esphome:2026.8.0b3
github/esphome:2026.8.0b2
github/esphome:2026.8.0b1
github/esphome:2026.7.4
github/esphome:2026.7.3
github/esphome:2026.7.2
github/esphome:2026.7.1
github/esphome:2026.7.0
github/esphome:2026.7.0b4
github/esphome:2026.7.0b3
github/esphome:2026.7.0b2
github/esphome:2026.7.0b1
github/esphome:2026.6.5
github/esphome:2026.6.4
github/esphome:2026.6.3
github/esphome:2026.6.2
github/esphome:2026.6.1
github/esphome:2026.6.0
github/esphome:2026.6.0b4
github/esphome:2026.6.0b3
github/esphome:2026.6.0b2
github/esphome:2026.6.0b1
github/esphome:2026.5.3
github/esphome:2026.5.2
github/esphome:2026.5.1
github/esphome:2026.5.0
github/esphome:2026.5.0b4
github/esphome:2026.5.0b3
github/esphome:2026.5.0b2
github/esphome:2026.5.0b1
github/esphome:2026.4.5
github/esphome:2026.4.4
github/esphome:2026.4.3
github/esphome:2026.4.2
github/esphome:2026.4.1
github/esphome:2026.4.0
github/esphome:2026.4.0b3
github/esphome:2026.4.0b2
github/esphome:2026.4.0b1
github/esphome:2026.3.3
github/esphome:2026.3.2
github/esphome:2026.3.1
github/esphome:2026.3.0
github/esphome:2026.3.0b5
github/esphome:2026.3.0b4
github/esphome:2026.3.0b3
github/esphome:2026.3.0b2
github/esphome:2026.3.0b1
github/esphome:2026.2.4
github/esphome:2026.2.3
github/esphome:2026.2.2
github/esphome:2026.2.1
github/esphome:2026.2.0
github/esphome:2026.2.0b5
github/esphome:2026.2.0b4
github/esphome:2026.2.0b3
github/esphome:2026.2.0b2
github/esphome:2026.2.0b1
github/esphome:2026.1.5
github/esphome:2026.1.4
github/esphome:2026.1.3
github/esphome:2026.1.2
github/esphome:2026.1.1
github/esphome:2026.1.0
github/esphome:2026.1.0b4
github/esphome:2026.1.0b3
github/esphome:2025.12.7
github/esphome:2026.1.0b2
github/esphome:2026.1.0b1
github/esphome:2025.12.6
github/esphome:2025.12.5
github/esphome:2025.12.4
github/esphome:2025.12.3
github/esphome:2025.12.2
github/esphome:2025.12.1
github/esphome:2025.12.0
github/esphome:2025.12.0b5
github/esphome:2025.12.0b4
github/esphome:2025.12.0b3
github/esphome:2025.12.0b2
github/esphome:2025.12.0b1
github/esphome:2025.11.5
github/esphome:2025.11.4
github/esphome:2025.11.3
github/esphome:2025.11.2
github/esphome:2025.11.1
github/esphome:2025.11.0
github/esphome:2025.11.0b5
github/esphome:2025.11.0b4
github/esphome:2025.11.0b3
github/esphome:2025.11.0b2
github/esphome:2025.11.0b1
github/esphome:2025.10.5
github/esphome:2025.10.4
github/esphome:2025.10.3
github/esphome:2025.10.2
github/esphome:2025.10.1
github/esphome:2025.10.0
github/esphome:2025.10.0b4
github/esphome:2025.10.0b3
github/esphome:2025.10.0b2
github/esphome:2025.10.0b1
github/esphome:2025.9.3
github/esphome:2025.9.2
github/esphome:2025.9.1
github/esphome:2025.9.0
github/esphome:2025.9.0b4
github/esphome:2025.9.0b3
github/esphome:2025.9.0b2
github/esphome:2025.9.0b1
github/esphome:2025.8.4
github/esphome:2025.8.3
github/esphome:2025.8.2
github/esphome:2025.8.1
github/esphome:2025.8.0
github/esphome:2025.8.0b4
github/esphome:2025.8.0b3
github/esphome:2025.8.0b2
github/esphome:2025.8.0b1
github/esphome:2025.7.5
github/esphome:2025.7.4
github/esphome:2025.7.3
github/esphome:2025.7.2
github/esphome:2025.7.1
github/esphome:2025.7.0
github/esphome:2025.7.0b5
github/esphome:2025.7.0b4
github/esphome:2025.7.0b3
github/esphome:2025.7.0b2
github/esphome:2025.7.0b1
github/esphome:2025.6.3
github/esphome:2025.6.2
github/esphome:2025.6.1
github/esphome:2025.6.0
github/esphome:2025.6.0b3
github/esphome:2025.6.0b2
github/esphome:2025.6.0b1
github/esphome:2025.5.2
github/esphome:2025.5.1
github/esphome:2025.5.0
github/esphome:2025.5.0b6
github/esphome:2025.5.0b5
github/esphome:2025.5.0b4
github/esphome:2025.5.0b3
github/esphome:2025.5.0b2
github/esphome:2025.5.0b1
github/esphome:2025.4.2
github/esphome:2025.4.1
github/esphome:2025.4.0
github/esphome:2025.4.0b3
github/esphome:2025.4.0b2
github/esphome:2025.4.0b1
github/esphome:2025.3.3
github/esphome:2025.3.2
github/esphome:2025.3.1
github/esphome:2025.3.0
github/esphome:2025.3.0b5
github/esphome:2025.3.0b4
github/esphome:2025.3.0b3
github/esphome:2025.3.0b2
github/esphome:2025.3.0b1
github/esphome:2025.2.2
github/esphome:2025.2.1
github/esphome:2025.2.0
github/esphome:2025.2.0b6
github/esphome:2025.2.0b5
github/esphome:2025.2.0b4
github/esphome:2025.2.0b3
github/esphome:2025.2.0b2
github/esphome:2025.2.0b1
github/esphome:2024.12.4
github/esphome:2024.12.3
github/esphome:2024.12.2
github/esphome:2024.12.1
github/esphome:2024.12.0
github/esphome:2024.12.0b3
github/esphome:2024.12.0b2
github/esphome:2024.12.0b1
github/esphome:2024.11.3
github/esphome:2024.11.2
github/esphome:2024.11.1
github/esphome:2024.11.0
github/esphome:2024.11.0b4
github/esphome:2024.11.0b3
github/esphome:2024.11.0b2
github/esphome:2024.11.0b1
github/esphome:2024.10.3
github/esphome:2024.10.2
github/esphome:2024.10.1
github/esphome:2024.10.0
github/esphome:2024.10.0b2
github/esphome:2024.10.0b1
github/esphome:2024.9.2
github/esphome:2024.9.1
github/esphome:2024.9.0
github/esphome:2024.9.0b4
github/esphome:2024.9.0b3
github/esphome:2024.9.0b2
github/esphome:2024.9.0b1
github/esphome:2024.8.3
github/esphome:2024.8.2
github/esphome:2024.8.1
github/esphome:2024.8.0
github/esphome:2024.8.0b4
github/esphome:2024.8.0b3
github/esphome:2024.8.0b2
github/esphome:2024.8.0b1
github/esphome:2024.7.3
github/esphome:2024.7.2
github/esphome:2024.7.1
github/esphome:2024.7.0
github/esphome:2024.7.0b4
github/esphome:2024.7.0b3
github/esphome:2024.7.0b2
github/esphome:2024.7.0b1
github/esphome:2024.6.6
github/esphome:2024.6.5
github/esphome:2024.6.4
github/esphome:2024.6.3
github/esphome:2024.6.2
github/esphome:2024.6.1
github/esphome:2024.6.0
github/esphome:2024.6.0b5
github/esphome:2024.6.0b4
github/esphome:2024.6.0b3
github/esphome:2024.6.0b2
github/esphome:2024.6.0b1
github/esphome:2024.5.5
github/esphome:2024.5.4
github/esphome:2024.5.3
github/esphome:2024.5.2
github/esphome:2024.5.1
github/esphome:2024.5.0
github/esphome:2024.5.0b6
github/esphome:2024.5.0b5
github/esphome:2024.5.0b4
github/esphome:2024.5.0b3
github/esphome:2024.5.0b2
github/esphome:2024.5.0b1
github/esphome:2024.4.2
github/esphome:2024.4.1
github/esphome:2024.4.0
github/esphome:2024.4.0b3
github/esphome:2024.4.0b2
github/esphome:2024.4.0b1
github/esphome:2024.3.2
github/esphome:2024.3.1
github/esphome:2024.3.0
github/esphome:2024.3.0b5
github/esphome:2024.3.0b4
github/esphome:2024.3.0b3
github/esphome:2024.3.0b2
github/esphome:2024.3.0b1
github/esphome:2024.2.2
github/esphome:2024.2.1
github/esphome:2024.2.0
github/esphome:2024.2.0b3
github/esphome:2024.2.0b2
github/esphome:2024.2.0b1
github/esphome:2023.12.9
github/esphome:2023.12.8
github/esphome:2023.12.7
github/esphome:2023.12.6
github/esphome:2023.12.5
github/esphome:2023.12.4
github/esphome:2023.12.3
github/esphome:2023.12.2
github/esphome:2023.12.1
github/esphome:2023.12.0
github/esphome:2023.12.0b6
github/esphome:2023.12.0b5
github/esphome:2023.12.0b4
github/esphome:2023.12.0b3
github/esphome:2023.12.0b2
github/esphome:2023.12.0b1
github/esphome:2023.11.6
github/esphome:2023.11.5
github/esphome:2023.11.4
github/esphome:2023.11.3
github/esphome:2023.11.2
github/esphome:2023.11.1
github/esphome:2023.11.0
github/esphome:2023.11.0b7
github/esphome:2023.11.0b6
github/esphome:2023.11.0b5
github/esphome:2023.11.0b4
github/esphome:2023.11.0b3
github/esphome:2023.11.0b2
github/esphome:2023.11.0b1
github/esphome:2023.10.6
github/esphome:2023.10.5
github/esphome:2023.10.4
github/esphome:2023.10.3
github/esphome:2023.10.2
github/esphome:2023.10.1
github/esphome:2023.10.0
github/esphome:2023.10.0b4
github/esphome:2023.10.0b3
github/esphome:2023.10.0b2
github/esphome:2023.10.0b1
github/esphome:2023.9.3
github/esphome:2023.9.2
github/esphome:2023.9.1
github/esphome:2023.9.0
github/esphome:2023.9.0b4
github/esphome:2023.9.0b3
github/esphome:2023.9.0b2
github/esphome:2023.9.0b1
github/esphome:2023.8.3
github/esphome:2023.8.2
github/esphome:2023.8.1
github/esphome:2023.8.0
github/esphome:2023.8.0b4
github/esphome:2023.8.0b3
github/esphome:2023.8.0b2
github/esphome:2023.8.0b1
github/esphome:2023.7.1
github/esphome:2023.7.0
github/esphome:2023.7.0b3
github/esphome:2023.7.0b2
github/esphome:2023.7.0b1
github/esphome:2023.6.5
github/esphome:2023.6.4
github/esphome:2023.6.3
github/esphome:2023.6.2
github/esphome:2023.6.1
github/esphome:2023.6.0
github/esphome:2023.6.0b7
github/esphome:2023.6.0b6
github/esphome:2023.6.0b5
github/esphome:2023.6.0b4
github/esphome:2023.6.0b3
github/esphome:2023.6.0b2
github/esphome:2023.6.0b1
github/esphome:2023.5.5
github/esphome:2023.5.4
github/esphome:2023.5.3
github/esphome:2023.5.2
github/esphome:2023.5.1
github/esphome:2023.5.0
github/esphome:2023.5.0b5
github/esphome:2023.5.0b4
github/esphome:2023.5.0b3
github/esphome:2023.5.0b2
github/esphome:2023.5.0b1
github/esphome:2023.4.4
github/esphome:2023.4.3
github/esphome:2023.4.2
github/esphome:2023.4.1
github/esphome:2023.4.0
github/esphome:2023.4.0b4
github/esphome:2023.4.0b3
github/esphome:2023.4.0b2
github/esphome:2023.4.0b1
github/esphome:2023.3.2
github/esphome:2023.3.1
github/esphome:2023.3.0
github/esphome:2023.3.0b6
github/esphome:2023.3.0b5
github/esphome:2023.3.0b4
github/esphome:2023.3.0b3
github/esphome:2023.3.0b2
github/esphome:2023.3.0b1
github/esphome:2023.2.4
github/esphome:2023.2.3
github/esphome:2023.2.2
github/esphome:2023.2.1
github/esphome:2023.2.0
github/esphome:2023.2.0b5
github/esphome:2023.2.0b4
github/esphome:2023.2.0b3
github/esphome:2023.2.0b2
github/esphome:2023.2.0b1
github/esphome:2022.12.8
github/esphome:2022.12.7
github/esphome:2022.12.6
github/esphome:2022.12.5
github/esphome:2022.12.4
github/esphome:2022.12.3
github/esphome:2022.12.2
github/esphome:2022.12.1
github/esphome:2022.12.0
github/esphome:2022.12.0b6
github/esphome:2022.12.0b5
github/esphome:2022.12.0b4
github/esphome:2022.12.0b3
github/esphome:2022.12.0b2
github/esphome:2022.12.0b1
github/esphome:2022.11.5
github/esphome:2022.11.4
github/esphome:2022.11.3
github/esphome:2022.11.2
github/esphome:2022.11.1
github/esphome:2022.11.0
github/esphome:2022.11.0b6
github/esphome:2022.11.0b5
github/esphome:2022.11.0b4
github/esphome:2022.11.0b3
github/esphome:2022.11.0b2
github/esphome:2022.11.0b1
github/esphome:2022.10.2
github/esphome:2022.10.1
github/esphome:2022.10.0
github/esphome:2022.10.0b2
github/esphome:2022.10.0b1
github/esphome:2022.9.4
github/esphome:2022.9.3
github/esphome:2022.9.2
github/esphome:2022.9.1
github/esphome:2022.9.0
github/esphome:2022.9.0b5
github/esphome:2022.9.0b4
github/esphome:2022.9.0b3
github/esphome:2022.9.0b2
github/esphome:2022.9.0b1
github/esphome:2022.8.3
github/esphome:2022.8.2
github/esphome:2022.8.1
github/esphome:2022.8.0
github/esphome:2022.8.0b3
github/esphome:2022.8.0b2
github/esphome:2022.8.0b1
github/esphome:2022.6.3
github/esphome:2022.6.2
github/esphome:2022.6.1
github/esphome:2022.6.0
github/esphome:2022.6.0b4
github/esphome:2022.6.0b3
github/esphome:2022.6.0b2
github/esphome:2022.6.0b1
github/esphome:2022.5.1
github/esphome:2022.5.0
github/esphome:2022.5.0b4
github/esphome:2022.5.0b3
github/esphome:2022.5.0b2
github/esphome:2022.5.0b1
github/esphome:2022.4.0
github/esphome:2022.4.0b4
github/esphome:2022.4.0b3
github/esphome:2022.4.0b2
github/esphome:2022.4.0b1
github/esphome:2022.3.2
github/esphome:2022.3.1
github/esphome:2022.3.0
github/esphome:2022.3.0b2
github/esphome:2022.3.0b1
github/esphome:2022.2.6
github/esphome:2022.2.5
github/esphome:2022.2.4
github/esphome:2022.2.3
github/esphome:2022.2.2
github/esphome:2022.2.1
github/esphome:2022.2.0
github/esphome:2022.2.0b3
github/esphome:2022.2.0b2
github/esphome:2022.2.0b1
github/esphome:2022.1.4
github/esphome:2022.1.3
github/esphome:2022.1.2
github/esphome:2022.1.1
github/esphome:2022.1.0
github/esphome:2022.1.0b4
github/esphome:2022.1.0b3
github/esphome:2022.1.0b2
github/esphome:2022.1.0b1
github/esphome:2021.12.3
github/esphome:2021.12.2
github/esphome:2021.12.1
github/esphome:2021.12.0
github/esphome:2021.12.0b6
github/esphome:2021.12.0b5
github/esphome:2021.12.0b4
github/esphome:2021.12.0b3
github/esphome:2021.12.0b2
github/esphome:2021.12.0b1
github/esphome:2021.11.4
github/esphome:2021.11.3
github/esphome:2021.11.2
github/esphome:2021.11.1
github/esphome:2021.11.0
github/esphome:2021.11.0b9
github/esphome:2021.11.0b8
github/esphome:2021.11.0b7
github/esphome:2021.11.0b6
github/esphome:2021.11.0b5
github/esphome:2021.11.0b4
github/esphome:2021.11.0b3
github/esphome:2021.11.0b2
github/esphome:2021.11.0b1
github/esphome:2021.10.3
github/esphome:2021.10.2
github/esphome:2021.10.1
github/esphome:2021.10.0
github/esphome:2021.10.0b11
github/esphome:2021.10.0b10
github/esphome:2021.10.0b9
github/esphome:2021.10.0b8
github/esphome:2021.10.0b7
github/esphome:2021.10.0b6
github/esphome:2021.10.0b5
github/esphome:2021.10.0b4
github/esphome:2021.10.0b3
github/esphome:2021.10.0b2
github/esphome:2021.10.0b1
github/esphome:2021.9.3
github/esphome:2021.9.2
github/esphome:2021.9.1
github/esphome:2021.9.0
github/esphome:2021.9.0b5
github/esphome:2021.9.0b4
github/esphome:2021.9.0b3
github/esphome:2021.9.0b2
github/esphome:2021.9.0b1
github/esphome:2021.8.2
github/esphome:2021.8.1
github/esphome:2021.8.0
github/esphome:v1.21.0b3
github/esphome:v1.21.0b2
github/esphome:v1.21.0b1
github/esphome:v1.20.4
github/esphome:v1.20.3
github/esphome:v1.20.2
github/esphome:v1.20.1
github/esphome:v1.20.0
github/esphome:v1.20.0b6
github/esphome:v1.20.0b5
github/esphome:v1.20.0b4
github/esphome:v1.20.0b3
github/esphome:v1.20.0b2
github/esphome:v1.20.0b1
github/esphome:v1.19.4
github/esphome:v1.19.3
github/esphome:v1.19.2
github/esphome:v1.19.1
github/esphome:v1.19.0
github/esphome:v1.19.0b7
github/esphome:v1.19.0b6
github/esphome:v1.19.0b5
github/esphome:v1.19.0b4
github/esphome:v1.19.0b3
github/esphome:v1.19.0b2
github/esphome:v1.19.0b1
github/esphome:v1.18.0
github/esphome:v1.18.0b4
github/esphome:v1.18.0b3
github/esphome:v1.18.0b2
github/esphome:v1.18.0b1
github/esphome:v1.17.2
github/esphome:v1.17.1
github/esphome:v1.17.0
github/esphome:v1.17.0b1
github/esphome:v1.16.2
github/esphome:v1.16.1
github/esphome:v1.16.0
github/esphome:v1.16.0b8
github/esphome:v1.16.0b7
github/esphome:v1.16.0b6
github/esphome:v1.16.0b5
github/esphome:v1.16.0b4
github/esphome:v1.16.0b3
github/esphome:v1.16.0b2
github/esphome:v1.16.0b1
github/esphome:v1.15.3
github/esphome:v1.15.2
github/esphome:v1.15.1
github/esphome:v1.15.0
github/esphome:v1.15.0b4
github/esphome:v1.15.0b3
github/esphome:v1.15.0b2
github/esphome:v1.15.0b1
github/esphome:v1.14.5
github/esphome:v1.14.4
github/esphome:v1.14.3
github/esphome:v1.14.2
github/esphome:v1.14.1
github/esphome:v1.14.0
github/esphome:v1.14.0b5
github/esphome:v1.14.0b4
github/esphome:v1.14.0b3
github/esphome:v1.14.0b2
github/esphome:v1.14.0b1
github/esphome:v1.13.6
github/esphome:v1.13.5
github/esphome:v1.13.4
github/esphome:v1.13.3
github/esphome:v1.13.2
github/esphome:v1.13.1
github/esphome:v1.13.0
github/esphome:v1.13.0b7
github/esphome:v1.13.0b6
github/esphome:v1.13.0b5
github/esphome:v1.13.0b4
github/esphome:v1.13.0b3
github/esphome:v1.13.0b2
github/esphome:v1.13.0b1
github/esphome:v1.12.2
github/esphome:v1.12.1
github/esphome:v1.12.0
github/esphome:v1.12.0b4
github/esphome:v1.12.0b3
github/esphome:v1.12.0b2
github/esphome:v1.12.0b1
github/esphome:v1.11.2
github/esphome:v1.11.1
github/esphome:v1.11.0
github/esphome:v1.11.0b3
github/esphome:v1.11.0b2
github/esphome:v1.11.0b1
github/esphome:v1.10.1
github/esphome:v1.10.0
github/esphome:v1.10.0b2
github/esphome:v1.10.0b1
github/esphome:v1.9.3
github/esphome:v1.9.2
github/esphome:v1.9.1
github/esphome:v1.9.0
github/esphome:v1.9.0b6
github/esphome:v1.9.0b5
github/esphome:v1.9.0b4
github/esphome:v1.9.0b3
github/esphome:v1.9.0b2
github/esphome:v1.9.0b1
github/esphome:v1.8.2
github/esphome:v1.8.1
github/esphome:v1.8.0
github/esphome:v1.7.0
github/esphome:v1.6.2
github/esphome:v1.6.1
github/esphome:v1.6.0
github/esphome:v1.5.3
github/esphome:v1.5.2
github/esphome:v1.5.1
github/esphome:v1.5.0
github/esphome:v1.4.0
github/esphome:v1.3.0
github/esphome:v1.2.2
github/esphome:v1.2.1
github/esphome:v1.1
7
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
095004bd33 | Restore the parent attributes to what they held, not to the submodules | ||
|
|
9802f106fa | Put the package attributes and core registry entries back after each case | ||
|
|
a31ce9bd9e | Drop the components package too so the re-import is real | ||
|
|
5860a392bd |
Merge remote-tracking branch 'origin/component-import-benchmarks' into component-import-benchmarks
# Conflicts: # tests/benchmarks/python/test_component_import_bench.py |
||
|
|
de6991144e | Time only the component import and put the original modules back afterwards | ||
|
|
af1285f006 | Put the session's esphome modules back after each import benchmark | ||
|
|
926f2561b4 | [core] Add CodSpeed benchmarks for importing entity components |
1 changed files with 105 additions and 0 deletions
@@ -0,0 +1,105 @@
|
||||
"""CodSpeed benchmarks for importing entity components.
|
||||
|
||||
Every ``esphome config`` or ``esphome compile`` imports the Python module of
|
||||
each component the YAML uses. A component that imports its optional
|
||||
integrations (mqtt, web_server, zigbee) at module scope drags their whole
|
||||
import chains in for every user, so the cost of a fresh import is what these
|
||||
benchmarks pin down.
|
||||
|
||||
The core of esphome is imported once up front and stays loaded; each run
|
||||
drops only the component modules from ``sys.modules`` and imports the
|
||||
component again, so the import machinery and the module bodies of the
|
||||
component and everything it pulls in run every time, as they do in a new
|
||||
process, while a change to the core moves no number here. The modules and
|
||||
registry entries the session had before a case are put back afterwards, so
|
||||
later tests keep the objects they already hold.
|
||||
|
||||
Skipped when ``pytest-codspeed`` isn't installed so the regular unit-test
|
||||
suite keeps working unchanged.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from collections.abc import Generator, Iterable
|
||||
import importlib
|
||||
import sys
|
||||
|
||||
import pytest
|
||||
|
||||
pytest.importorskip("pytest_codspeed")
|
||||
|
||||
# Load the core before the first case so no case pays for it.
|
||||
from esphome import automation, pins # noqa: E402
|
||||
import esphome.codegen # noqa: E402, F401
|
||||
import esphome.config_validation # noqa: E402, F401
|
||||
|
||||
COMPONENTS = ("binary_sensor", "sensor", "logger")
|
||||
COMPONENT_PACKAGE = "esphome.components"
|
||||
COMPONENT_PREFIX = COMPONENT_PACKAGE + "."
|
||||
# Core registries that component module bodies write to when they are imported
|
||||
REGISTRIES = (
|
||||
automation.ACTION_REGISTRY,
|
||||
automation.CONDITION_REGISTRY,
|
||||
pins.PIN_SCHEMA_REGISTRY,
|
||||
)
|
||||
|
||||
|
||||
def _component_modules() -> dict[str, object]:
|
||||
# The package itself goes too: ``from esphome.components import x`` is
|
||||
# answered from its attributes, so a stale package would hide the import.
|
||||
return {
|
||||
n: m
|
||||
for n, m in sys.modules.items()
|
||||
if n == COMPONENT_PACKAGE or n.startswith(COMPONENT_PREFIX)
|
||||
}
|
||||
|
||||
|
||||
def _forget_component_modules() -> None:
|
||||
for name in _component_modules():
|
||||
del sys.modules[name]
|
||||
|
||||
|
||||
def _import_component(name: str) -> object:
|
||||
_forget_component_modules()
|
||||
return importlib.import_module(COMPONENT_PREFIX + name)
|
||||
|
||||
|
||||
_MISSING = object()
|
||||
|
||||
|
||||
def _parent_bindings(names: Iterable[str]) -> list[tuple[object, str, object]]:
|
||||
# An import binds the module to its parent package; a package may hold something else
|
||||
# under that name (substitutions keeps a Jinja() instance as ``jinja``), so the value
|
||||
# the parent has now is what goes back, not the module.
|
||||
bindings = []
|
||||
for name in names:
|
||||
parent, _, child = name.rpartition(".")
|
||||
bindings.append(
|
||||
(sys.modules[parent], child, getattr(sys.modules[parent], child, _MISSING))
|
||||
)
|
||||
return bindings
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def restore_component_modules() -> Generator[None]:
|
||||
saved = _component_modules()
|
||||
saved_bindings = _parent_bindings(saved)
|
||||
saved_registries = [dict(registry) for registry in REGISTRIES]
|
||||
yield
|
||||
_forget_component_modules()
|
||||
sys.modules.update(saved)
|
||||
for parent, child, value in saved_bindings:
|
||||
if value is _MISSING:
|
||||
delattr(parent, child)
|
||||
else:
|
||||
setattr(parent, child, value)
|
||||
# The re-imported bodies registered their actions, conditions and pin schemas again
|
||||
for registry, entries in zip(REGISTRIES, saved_registries, strict=True):
|
||||
registry.clear()
|
||||
registry.update(entries)
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("restore_component_modules")
|
||||
@pytest.mark.parametrize("component", COMPONENTS)
|
||||
def test_import_component(benchmark, component: str) -> None:
|
||||
benchmark(_import_component, component)
|
||||
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.