SYMBOL INDEX (655 symbols across 119 files) FILE: action/action.py function error (line 50) | def error(error: str): function output_in_group (line 55) | def output_in_group(group: str, content: str): function get_event_data (line 61) | def get_event_data(): function choose_repository (line 68) | async def choose_repository(githubapi: GitHubAPI, category: str): function choose_category (line 88) | def choose_category(): function preflight (line 94) | async def preflight(): function validate_repository (line 163) | async def validate_repository(hacs: HacsBase, repository: str, category:... FILE: custom_components/hacs/__init__.py function _async_initialize_integration (line 36) | async def _async_initialize_integration( function async_setup_entry (line 182) | async def async_setup_entry(hass: HomeAssistant, config_entry: ConfigEnt... function async_unload_entry (line 190) | async def async_unload_entry(hass: HomeAssistant, config_entry: ConfigEn... function async_reload_entry (line 225) | async def async_reload_entry(hass: HomeAssistant, config_entry: ConfigEn... FILE: custom_components/hacs/base.py class RemovedRepository (line 77) | class RemovedRepository: method update_data (line 86) | def update_data(self, data: dict): method to_json (line 99) | def to_json(self): class HacsConfiguration (line 111) | class HacsConfiguration: method to_json (line 133) | def to_json(self) -> str: method update_from_dict (line 137) | def update_from_dict(self, data: dict) -> None: class HacsCore (line 149) | class HacsCore: class HacsCommon (line 158) | class HacsCommon: class HacsStatus (line 169) | class HacsStatus: class HacsSystem (line 180) | class HacsSystem: method disabled (line 190) | def disabled(self) -> bool: class HacsRepositories (line 196) | class HacsRepositories: method list_all (line 206) | def list_all(self) -> list[HacsRepository]: method list_removed (line 211) | def list_removed(self) -> list[RemovedRepository]: method list_downloaded (line 216) | def list_downloaded(self) -> list[HacsRepository]: method category_downloaded (line 220) | def category_downloaded(self, category: HacsCategory) -> bool: method register (line 227) | def register(self, repository: HacsRepository, default: bool = False) ... method unregister (line 253) | def unregister(self, repository: HacsRepository) -> None: method mark_default (line 272) | def mark_default(self, repository: HacsRepository) -> None: method set_repository_id (line 284) | def set_repository_id(self, repository: HacsRepository, repo_id: str): method is_default (line 297) | def is_default(self, repository_id: str | None = None) -> bool: method is_registered (line 303) | def is_registered( method is_downloaded (line 315) | def is_downloaded( method get_by_id (line 329) | def get_by_id(self, repository_id: str | None) -> HacsRepository | None: method get_by_full_name (line 335) | def get_by_full_name(self, repository_full_name: str | None) -> HacsRe... method is_removed (line 341) | def is_removed(self, repository_full_name: str) -> bool: method removed_repository (line 345) | def removed_repository(self, repository_full_name: str) -> RemovedRepo... class HacsBase (line 355) | class HacsBase: method __init__ (line 372) | def __init__(self) -> None: method integration_dir (line 385) | def integration_dir(self) -> pathlib.Path: method set_stage (line 389) | def set_stage(self, stage: HacsStage | None) -> None: method disable_hacs (line 399) | def disable_hacs(self, reason: HacsDisabledReason) -> None: method enable_hacs (line 411) | def enable_hacs(self) -> None: method enable_hacs_category (line 417) | def enable_hacs_category(self, category: HacsCategory) -> None: method disable_hacs_category (line 424) | def disable_hacs_category(self, category: HacsCategory) -> None: method async_save_file (line 431) | async def async_save_file(self, file_path: str, content: Any) -> bool: method async_can_update (line 470) | async def async_can_update(self) -> int: method async_github_api_method (line 491) | async def async_github_api_method( method async_register_repository (line 524) | async def async_register_repository( method startup_tasks (line 606) | async def startup_tasks(self, _=None) -> None: method async_download_file (line 676) | async def async_download_file( method async_recreate_entities (line 750) | async def async_recreate_entities(self) -> None: method async_dispatch (line 775) | def async_dispatch(self, signal: HacsDispatchEvent, data: dict | None ... method set_active_categories (line 779) | def set_active_categories(self) -> None: method async_load_hacs_from_github (line 799) | async def async_load_hacs_from_github(self, _=None) -> None: method async_get_all_category_repositories (line 840) | async def async_get_all_category_repositories(self, _=None) -> None: method async_get_category_repositories_experimental (line 852) | async def async_get_category_repositories_experimental(self, category:... method async_check_rate_limit (line 904) | async def async_check_rate_limit(self, _=None) -> None: method async_process_queue (line 916) | async def async_process_queue(self, _=None) -> None: method async_handle_removed_repositories (line 948) | async def async_handle_removed_repositories(self, _=None) -> None: method async_update_downloaded_custom_repositories (line 999) | async def async_update_downloaded_custom_repositories(self, _=None) ->... method async_handle_critical_repositories (line 1039) | async def async_handle_critical_repositories(self, _=None) -> None: method async_setup_frontend_endpoint_plugin (line 1101) | async def async_setup_frontend_endpoint_plugin(self) -> None: FILE: custom_components/hacs/config_flow.py class HacsFlowHandler (line 39) | class HacsFlowHandler(ConfigFlow, domain=DOMAIN): method __init__ (line 52) | def __init__(self) -> None: method async_step_user (line 57) | async def async_step_user(self, user_input): method async_step_device (line 77) | async def async_step_device(self, _user_input): method _show_config_form (line 124) | async def _show_config_form(self, user_input): method async_step_device_done (line 150) | async def async_step_device_done(self, user_input: dict[str, bool] | N... method async_step_could_not_register (line 170) | async def async_step_could_not_register(self, _user_input=None): method async_step_reauth (line 174) | async def async_step_reauth(self, _user_input=None): method async_step_reauth_confirm (line 178) | async def async_step_reauth_confirm(self, user_input=None): method async_get_options_flow (line 190) | def async_get_options_flow(config_entry): class HacsOptionsFlowHandler (line 194) | class HacsOptionsFlowHandler(OptionsFlow): method __init__ (line 197) | def __init__(self, config_entry): method async_step_init (line 202) | async def async_step_init(self, _user_input=None): method async_step_user (line 206) | async def async_step_user(self, user_input=None): FILE: custom_components/hacs/coordinator.py class HacsUpdateCoordinator (line 12) | class HacsUpdateCoordinator(BaseDataUpdateCoordinatorProtocol): method __init__ (line 15) | def __init__(self) -> None: method async_add_listener (line 20) | def async_add_listener( method async_update_listeners (line 35) | def async_update_listeners(self) -> None: FILE: custom_components/hacs/data_client.py class HacsDataClient (line 25) | class HacsDataClient: method __init__ (line 28) | def __init__(self, session: ClientSession, client_name: str) -> None: method _do_request (line 34) | async def _do_request( method get_data (line 64) | async def get_data(self, section: str | None, *, validate: bool) -> di... method get_repositories (line 96) | async def get_repositories(self, section: str) -> list[str]: FILE: custom_components/hacs/diagnostics.py function async_get_config_entry_diagnostics (line 16) | async def async_get_config_entry_diagnostics( FILE: custom_components/hacs/entity.py function system_info (line 22) | def system_info(hacs: HacsBase) -> dict: class HacsBaseEntity (line 35) | class HacsBaseEntity(Entity): method __init__ (line 41) | def __init__(self, hacs: HacsBase) -> None: class HacsDispatcherEntity (line 46) | class HacsDispatcherEntity(HacsBaseEntity): method async_added_to_hass (line 49) | async def async_added_to_hass(self) -> None: method _update (line 60) | def _update(self) -> None: method async_update (line 63) | async def async_update(self) -> None: method _update_and_write_state (line 68) | def _update_and_write_state(self, _: Any) -> None: class HacsSystemEntity (line 74) | class HacsSystemEntity(HacsDispatcherEntity): method device_info (line 81) | def device_info(self) -> dict[str, any]: class HacsRepositoryEntity (line 86) | class HacsRepositoryEntity(BaseCoordinatorEntity[HacsUpdateCoordinator],... method __init__ (line 89) | def __init__( method available (line 102) | def available(self) -> bool: method device_info (line 107) | def device_info(self) -> dict[str, any]: method _handle_coordinator_update (line 127) | def _handle_coordinator_update(self) -> None: method async_update (line 139) | async def async_update(self) -> None: FILE: custom_components/hacs/enums.py class HacsGitHubRepo (line 7) | class HacsGitHubRepo(StrEnum): class HacsCategory (line 14) | class HacsCategory(StrEnum): method __str__ (line 24) | def __str__(self): class HacsDispatchEvent (line 28) | class HacsDispatchEvent(StrEnum): class RepositoryFile (line 41) | class RepositoryFile(StrEnum): class LovelaceMode (line 48) | class LovelaceMode(StrEnum): class HacsStage (line 57) | class HacsStage(StrEnum): class HacsDisabledReason (line 65) | class HacsDisabledReason(StrEnum): FILE: custom_components/hacs/exceptions.py class HacsException (line 4) | class HacsException(Exception): class HacsRepositoryArchivedException (line 8) | class HacsRepositoryArchivedException(HacsException): class HacsNotModifiedException (line 12) | class HacsNotModifiedException(HacsException): class HacsExpectedException (line 16) | class HacsExpectedException(HacsException): class HacsRepositoryExistException (line 20) | class HacsRepositoryExistException(HacsException): class HacsExecutionStillInProgress (line 24) | class HacsExecutionStillInProgress(HacsException): class AddonRepositoryException (line 28) | class AddonRepositoryException(HacsException): method __init__ (line 36) | def __init__(self) -> None: class HomeAssistantCoreRepositoryException (line 40) | class HomeAssistantCoreRepositoryException(HacsException): method __init__ (line 48) | def __init__(self) -> None: FILE: custom_components/hacs/frontend.py function async_register_frontend (line 23) | async def async_register_frontend(hass: HomeAssistant, hacs: HacsBase) -... FILE: custom_components/hacs/repairs.py class RestartRequiredFixFlow (line 17) | class RestartRequiredFixFlow(RepairsFlow): method __init__ (line 20) | def __init__(self, issue_id: str) -> None: method async_step_init (line 23) | async def async_step_init( method async_step_confirm_restart (line 30) | async def async_step_confirm_restart( function async_create_fix_flow (line 48) | async def async_create_fix_flow( FILE: custom_components/hacs/repositories/appdaemon.py class HacsAppdaemonRepository (line 18) | class HacsAppdaemonRepository(HacsRepository): method __init__ (line 21) | def __init__(self, hacs: HacsBase, full_name: str): method localpath (line 31) | def localpath(self): method validate_repository (line 35) | async def validate_repository(self): method update_repository (line 63) | async def update_repository(self, ignore_issues=False, force=False): FILE: custom_components/hacs/repositories/base.py class FileInformation (line 130) | class FileInformation: method __init__ (line 133) | def __init__(self, url, path, name): class RepositoryData (line 140) | class RepositoryData: method name (line 178) | def name(self): method to_json (line 184) | def to_json(self): method create_from_dict (line 189) | def create_from_dict(source: dict, action: bool = False) -> Repository... method update_data (line 195) | def update_data(self, data: dict, action: bool = False) -> None: class HacsManifest (line 218) | class HacsManifest: method to_dict (line 233) | def to_dict(self): method from_dict (line 238) | def from_dict(manifest: dict): method update_data (line 257) | def update_data(self, data: dict) -> None: class RepositoryReleases (line 272) | class RepositoryReleases: class RepositoryPath (line 283) | class RepositoryPath: class RepositoryContent (line 290) | class RepositoryContent: class HacsRepository (line 299) | class HacsRepository: method __init__ (line 302) | def __init__(self, hacs: HacsBase) -> None: method __str__ (line 323) | def __str__(self) -> str: method string (line 328) | def string(self) -> str: method display_name (line 333) | def display_name(self) -> str: method ignored_by_country_configuration (line 347) | def ignored_by_country_configuration(self) -> bool: method display_status (line 361) | def display_status(self) -> str: method display_installed_version (line 376) | def display_installed_version(self) -> str: method display_available_version (line 388) | def display_available_version(self) -> str: method display_version_or_commit (line 402) | def display_version_or_commit(self) -> str: method pending_update (line 411) | def pending_update(self) -> bool: method can_download (line 433) | def can_download(self) -> bool: method localpath (line 445) | def localpath(self) -> str | None: method should_try_releases (line 450) | def should_try_releases(self) -> bool: method validate_repository (line 464) | async def validate_repository(self) -> None: method update_repository (line 468) | async def update_repository(self, ignore_issues=False, force=False) ->... method common_validate (line 471) | async def common_validate(self, ignore_issues: bool = False) -> None: method common_registration (line 488) | async def common_registration(self) -> None: method common_update (line 510) | async def common_update(self, ignore_issues=False, force=False, skip_r... method download_zip_files (line 559) | async def download_zip_files(self, validate: Validate) -> None: method async_download_zip_file (line 580) | async def async_download_zip_file( method download_content (line 620) | async def download_content(self, version: string | None = None) -> None: method download_repository_zip (line 657) | async def download_repository_zip(self): method async_get_hacs_json (line 714) | async def async_get_hacs_json(self, ref: str = None) -> dict[str, Any]... method async_get_info_file_contents (line 730) | async def async_get_info_file_contents(self, *, version: str | None = ... method remove (line 751) | def remove(self) -> None: method uninstall (line 757) | async def uninstall(self) -> None: method remove_local_directory (line 781) | async def remove_local_directory(self) -> None: method async_pre_registration (line 835) | async def async_pre_registration(self) -> None: method async_registration (line 839) | async def async_registration(self, ref=None) -> None: method async_post_registration (line 860) | async def async_post_registration(self) -> None: method async_pre_install (line 866) | async def async_pre_install(self) -> None: method _async_pre_install (line 869) | async def _async_pre_install(self) -> None: method async_install (line 875) | async def async_install(self, *, version: str | None = None, **_) -> N... method async_post_installation (line 895) | async def async_post_installation(self) -> None: method async_post_uninstall (line 898) | async def async_post_uninstall(self): method _async_post_uninstall (line 901) | async def _async_post_uninstall(self): method _async_post_install (line 905) | async def _async_post_install(self) -> None: method async_install_repository (line 921) | async def async_install_repository(self, *, version: str | None = None... method async_get_legacy_repository_object (line 1007) | async def async_get_legacy_repository_object( method update_filenames (line 1020) | def update_filenames(self) -> None: method get_tree (line 1023) | async def get_tree(self, ref: str): method get_releases (line 1033) | async def get_releases(self, prerelease=False, returnlimit=5) -> list[... method common_update_data (line 1048) | async def common_update_data( method gather_files_to_download (line 1173) | def gather_files_to_download(self) -> list[FileInformation]: method release_contents (line 1233) | async def release_contents(self, version: str | None = None) -> list[F... method dowload_repository_content (line 1253) | async def dowload_repository_content(self, content: FileInformation) -... method async_remove_entity_device (line 1295) | async def async_remove_entity_device(self) -> None: method version_to_download (line 1305) | def version_to_download(self) -> str: method get_documentation (line 1326) | async def get_documentation( method get_hacs_json (line 1367) | async def get_hacs_json(self, *, version: str, **kwargs) -> HacsManife... method get_hacs_json_raw (line 1374) | async def get_hacs_json_raw( method _ensure_download_capabilities (line 1389) | async def _ensure_download_capabilities(self, ref: str | None, **kwarg... method async_download_repository (line 1419) | async def async_download_repository(self, *, ref: str | None = None, *... method async_get_releases (line 1453) | async def async_get_releases(self, *, first: int = 30) -> list[GitHubR... FILE: custom_components/hacs/repositories/integration.py class HacsIntegrationRepository (line 23) | class HacsIntegrationRepository(HacsRepository): method __init__ (line 26) | def __init__(self, hacs: HacsBase, full_name: str): method localpath (line 36) | def localpath(self): method async_post_installation (line 40) | async def async_post_installation(self): method async_post_uninstall (line 64) | async def async_post_uninstall(self) -> None: method validate_repository (line 71) | async def validate_repository(self): method update_repository (line 121) | async def update_repository(self, ignore_issues=False, force=False): method reload_custom_components (line 165) | async def reload_custom_components(self): method async_get_integration_manifest (line 172) | async def async_get_integration_manifest(self, ref: str = None) -> dic... method get_integration_manifest (line 195) | async def get_integration_manifest(self, *, version: str, **kwargs) ->... FILE: custom_components/hacs/repositories/plugin.py class HacsPluginRepository (line 22) | class HacsPluginRepository(HacsRepository): method __init__ (line 25) | def __init__(self, hacs: HacsBase, full_name: str): method localpath (line 35) | def localpath(self): method validate_repository (line 39) | async def validate_repository(self): method async_post_installation (line 62) | async def async_post_installation(self): method async_post_uninstall (line 67) | async def async_post_uninstall(self): method update_repository (line 72) | async def update_repository(self, ignore_issues=False, force=False): method get_package_content (line 100) | async def get_package_content(self): method update_filenames (line 111) | def update_filenames(self) -> None: method generate_dashboard_resource_hacstag (line 149) | def generate_dashboard_resource_hacstag(self) -> str: method generate_dashboard_resource_namespace (line 158) | def generate_dashboard_resource_namespace(self) -> str: method generate_dashboard_resource_url (line 162) | def generate_dashboard_resource_url(self) -> str: method _get_resource_handler (line 173) | def _get_resource_handler(self) -> ResourceStorageCollection | None: method update_dashboard_resources (line 205) | async def update_dashboard_resources(self) -> None: method remove_dashboard_resources (line 232) | async def remove_dashboard_resources(self) -> None: FILE: custom_components/hacs/repositories/python_script.py class HacsPythonScriptRepository (line 16) | class HacsPythonScriptRepository(HacsRepository): method __init__ (line 21) | def __init__(self, hacs: HacsBase, full_name: str): method localpath (line 32) | def localpath(self): method validate_repository (line 36) | async def validate_repository(self): method async_post_registration (line 62) | async def async_post_registration(self): method update_repository (line 71) | async def update_repository(self, ignore_issues=False, force=False): method update_filenames (line 105) | def update_filenames(self) -> None: FILE: custom_components/hacs/repositories/template.py class HacsTemplateRepository (line 18) | class HacsTemplateRepository(HacsRepository): method __init__ (line 21) | def __init__(self, hacs: HacsBase, full_name: str): method localpath (line 32) | def localpath(self): method async_post_installation (line 36) | async def async_post_installation(self): method validate_repository (line 40) | async def validate_repository(self): method async_post_registration (line 65) | async def async_post_registration(self): method async_post_uninstall (line 74) | async def async_post_uninstall(self) -> None: method _reload_custom_templates (line 78) | async def _reload_custom_templates(self) -> None: method update_repository (line 87) | async def update_repository(self, ignore_issues=False, force=False): FILE: custom_components/hacs/repositories/theme.py class HacsThemeRepository (line 18) | class HacsThemeRepository(HacsRepository): method __init__ (line 21) | def __init__(self, hacs: HacsBase, full_name: str): method localpath (line 32) | def localpath(self): method async_post_installation (line 36) | async def async_post_installation(self): method validate_repository (line 40) | async def validate_repository(self): method async_post_registration (line 66) | async def async_post_registration(self): method _reload_frontend_themes (line 75) | async def _reload_frontend_themes(self) -> None: method async_post_uninstall (line 83) | async def async_post_uninstall(self) -> None: method update_repository (line 88) | async def update_repository(self, ignore_issues=False, force=False): method update_filenames (line 113) | def update_filenames(self) -> None: FILE: custom_components/hacs/switch.py function async_setup_entry (line 19) | async def async_setup_entry( class HacsRepositoryPreReleaseSwitchEntity (line 32) | class HacsRepositoryPreReleaseSwitchEntity(HacsRepositoryEntity, SwitchE... method __init__ (line 39) | def __init__(self, hacs: HacsBase, repository: HacsRepository) -> None: method is_on (line 45) | def is_on(self) -> bool: method async_turn_on (line 49) | async def async_turn_on(self, **kwargs: Any) -> None: method async_turn_off (line 53) | async def async_turn_off(self, **kwargs: Any) -> None: method _handle_change (line 57) | async def _handle_change(self, value: bool) -> None: FILE: custom_components/hacs/system_health.py function async_register (line 17) | def async_register(hass: HomeAssistant, register: system_health.SystemHe... function system_health_info (line 23) | async def system_health_info(hass: HomeAssistant) -> dict[str, Any]: FILE: custom_components/hacs/types.py class DownloadableContent (line 6) | class DownloadableContent(TypedDict): FILE: custom_components/hacs/update.py function async_setup_entry (line 20) | async def async_setup_entry( class HacsRepositoryUpdateEntity (line 31) | class HacsRepositoryUpdateEntity(HacsRepositoryEntity, UpdateEntity): method name (line 42) | def name(self) -> str | None: method latest_version (line 47) | def latest_version(self) -> str: method release_url (line 52) | def release_url(self) -> str: method installed_version (line 59) | def installed_version(self) -> str: method release_summary (line 64) | def release_summary(self) -> str | None: method entity_picture (line 71) | def entity_picture(self) -> str | None: method async_install (line 81) | async def async_install(self, version: str | None, backup: bool, **kwa... method async_release_notes (line 93) | async def async_release_notes(self) -> str | None: method async_added_to_hass (line 137) | async def async_added_to_hass(self) -> None: method _update_download_progress (line 149) | def _update_download_progress(self, data: dict) -> None: method _update_in_progress (line 156) | def _update_in_progress(self, progress: int | bool) -> None: FILE: custom_components/hacs/utils/backup.py class Backup (line 21) | class Backup: method __init__ (line 24) | def __init__( method _init_backup_dir (line 44) | def _init_backup_dir(self) -> bool: method create (line 59) | def create(self) -> None: method restore (line 83) | def restore(self) -> None: method cleanup (line 100) | def cleanup(self) -> None: FILE: custom_components/hacs/utils/data.py class HacsData (line 58) | class HacsData: method __init__ (line 61) | def __init__(self, hacs: HacsBase): method async_force_write (line 67) | async def async_force_write(self, _=None): method async_write (line 71) | async def async_write(self, force: bool = False) -> None: method _async_store_content_and_repos (line 91) | async def _async_store_content_and_repos(self, _=None): # bb: ignore method _async_store_experimental_content_and_repos (line 103) | async def _async_store_experimental_content_and_repos(self, _=None): method async_store_repository_data (line 114) | def async_store_repository_data(self, repository: HacsRepository) -> d... method async_store_experimental_repository_data (line 134) | def async_store_experimental_repository_data(self, repository: HacsRep... method restore (line 156) | async def restore(self): method register_unknown_repositories (line 235) | async def register_unknown_repositories( method async_restore_repository (line 259) | def async_restore_repository(self, entry: str, repository_data: dict[s... FILE: custom_components/hacs/utils/decode.py function decode_content (line 6) | def decode_content(content: str) -> str: FILE: custom_components/hacs/utils/decorator.py function concurrent (line 16) | def concurrent( function return_none_on_exception (line 46) | def return_none_on_exception(func): FILE: custom_components/hacs/utils/file_system.py function async_exists (line 16) | async def async_exists(hass: HomeAssistant, path: FileDescriptorOrPath) ... function async_remove (line 21) | async def async_remove( function async_remove_directory (line 33) | async def async_remove_directory( FILE: custom_components/hacs/utils/filters.py function filter_content_return_one_of_type (line 8) | def filter_content_return_one_of_type( function get_first_directory_in_directory (line 39) | def get_first_directory_in_directory(content: list[str | Any], dirname: ... FILE: custom_components/hacs/utils/path.py function _get_safe_paths (line 14) | def _get_safe_paths( function is_safe (line 32) | def is_safe(hacs: HacsBase, path: str | Path) -> bool: FILE: custom_components/hacs/utils/queue_manager.py class QueueManager (line 17) | class QueueManager: method __init__ (line 20) | def __init__(self, hass: HomeAssistant) -> None: method pending_tasks (line 26) | def pending_tasks(self) -> int: method has_pending_tasks (line 31) | def has_pending_tasks(self) -> bool: method clear (line 35) | def clear(self) -> None: method add (line 39) | def add(self, task: Coroutine) -> None: method execute (line 43) | async def execute(self, number_of_tasks: int | None = None) -> None: FILE: custom_components/hacs/utils/regex.py function extract_repository_from_url (line 12) | def extract_repository_from_url(url: str) -> str | None: FILE: custom_components/hacs/utils/store.py class HACSStore (line 14) | class HACSStore(Store): method load (line 17) | def load(self): function get_store_key (line 35) | def get_store_key(key): function _get_store_for_key (line 40) | def _get_store_for_key(hass, key, encoder): function get_store_for_key (line 45) | def get_store_for_key(hass, key): function async_load_from_store (line 50) | async def async_load_from_store(hass, key): function async_save_to_store (line 55) | async def async_save_to_store(hass, key, data): function async_remove_store (line 75) | async def async_remove_store(hass, key): FILE: custom_components/hacs/utils/url.py function github_release_asset (line 9) | def github_release_asset( function github_archive (line 20) | def github_archive( FILE: custom_components/hacs/utils/validate.py class Validate (line 17) | class Validate: method success (line 23) | def success(self) -> bool: function _country_validator (line 28) | def _country_validator(values) -> list[str]: function validate_repo_data (line 75) | def validate_repo_data(schema: dict[str, Any], extra: int) -> Callable[[... function validate_version (line 104) | def validate_version(data: Any) -> Any: FILE: custom_components/hacs/utils/version.py function version_left_higher_then_right (line 15) | def version_left_higher_then_right(left: str, right: str) -> bool | None: function version_left_higher_or_equal_then_right (line 31) | def version_left_higher_or_equal_then_right(left: str, right: str) -> bool: FILE: custom_components/hacs/utils/workarounds.py function async_register_static_path (line 14) | async def async_register_static_path( function async_register_static_path (line 26) | async def async_register_static_path( FILE: custom_components/hacs/validate/archived.py function async_setup_validator (line 11) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 16) | class Validator(ActionValidationBase): method async_validate (line 22) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/base.py class ValidationException (line 14) | class ValidationException(HacsException): class ActionValidationBase (line 18) | class ActionValidationBase: method __init__ (line 25) | def __init__(self, repository: HacsRepository) -> None: method slug (line 31) | def slug(self) -> str: method async_validate (line 35) | async def async_validate(self) -> None: method execute_validation (line 38) | async def execute_validation(self, *_: Any, **__: Any) -> None: FILE: custom_components/hacs/validate/brands.py function async_setup_validator (line 16) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 21) | class Validator(ActionValidationBase): method async_validate (line 27) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/description.py function async_setup_validator (line 11) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 16) | class Validator(ActionValidationBase): method async_validate (line 22) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/hacsjson.py function async_setup_validator (line 12) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 17) | class Validator(ActionValidationBase): method async_validate (line 22) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/images.py function async_setup_validator (line 14) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 19) | class Validator(ActionValidationBase): method async_validate (line 25) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/information.py function async_setup_validator (line 11) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 16) | class Validator(ActionValidationBase): method async_validate (line 21) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/integration_manifest.py function async_setup_validator (line 17) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 22) | class Validator(ActionValidationBase): method async_validate (line 29) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/issues.py function async_setup_validator (line 11) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 16) | class Validator(ActionValidationBase): method async_validate (line 22) | async def async_validate(self) -> None: FILE: custom_components/hacs/validate/manager.py class ValidationManager (line 19) | class ValidationManager: method __init__ (line 22) | def __init__(self, hacs: HacsBase, hass: HomeAssistant) -> None: method validators (line 29) | def validators(self) -> list[ActionValidationBase]: method async_load (line 33) | async def async_load(self, repository: HacsRepository) -> None: method async_run_repository_checks (line 50) | async def async_run_repository_checks(self, repository: HacsRepository... FILE: custom_components/hacs/validate/topics.py function async_setup_validator (line 11) | async def async_setup_validator(repository: HacsRepository) -> Validator: class Validator (line 16) | class Validator(ActionValidationBase): method async_validate (line 22) | async def async_validate(self) -> None: FILE: custom_components/hacs/websocket/__init__.py function async_register_websocket_commands (line 39) | def async_register_websocket_commands(hass: HomeAssistant) -> None: function hacs_subscribe (line 73) | async def hacs_subscribe( function hacs_info (line 100) | async def hacs_info( FILE: custom_components/hacs/websocket/critical.py function hacs_critical_list (line 24) | async def hacs_critical_list( function hacs_critical_acknowledge (line 46) | async def hacs_critical_acknowledge( FILE: custom_components/hacs/websocket/repositories.py function hacs_repositories_list (line 31) | async def hacs_repositories_list( function hacs_repositories_clear_new (line 88) | async def hacs_repositories_clear_new( function hacs_repositories_removed (line 120) | async def hacs_repositories_removed( function hacs_repositories_add (line 143) | async def hacs_repositories_add( function hacs_repositories_remove (line 204) | async def hacs_repositories_remove( FILE: custom_components/hacs/websocket/repository.py function hacs_repository_info (line 30) | async def hacs_repository_info( function hacs_repository_ignore (line 109) | async def hacs_repository_ignore( function hacs_repository_state (line 142) | async def hacs_repository_state( function hacs_repository_version (line 166) | async def hacs_repository_version( function hacs_repository_beta (line 196) | async def hacs_repository_beta( function hacs_repository_download (line 223) | async def hacs_repository_download( function hacs_repository_remove (line 254) | async def hacs_repository_remove( function hacs_repository_refresh (line 282) | async def hacs_repository_refresh( function hacs_repository_release_notes (line 307) | async def hacs_repository_release_notes( function hacs_repository_releases (line 341) | async def hacs_repository_releases( FILE: scripts/data/common.py function expand_and_humanize_error (line 10) | def expand_and_humanize_error(content: dict[str, Any], error: vol.Invali... function print_error_and_exit (line 19) | def print_error_and_exit(err: str, category: str, target_path: str | Non... FILE: scripts/data/generate_category_data.py function jsonprint (line 62) | def jsonprint(data: any): function dicts_are_equal (line 73) | def dicts_are_equal(a: dict, b: dict, ignore: set[str]) -> bool: function repository_has_missing_keys (line 84) | def repository_has_missing_keys( class AdjustedHacsData (line 110) | class AdjustedHacsData(HacsData): method register_base_data (line 113) | async def register_base_data( method async_store_repository_data (line 130) | def async_store_repository_data(self, repository: HacsRepository) -> d... class AdjustedHacs (line 153) | class AdjustedHacs(HacsBase): method __init__ (line 158) | def __init__(self, session: ClientSession, *, token: str | None = None): method async_can_update (line 184) | async def async_can_update(self) -> int: method concurrent_register_repository (line 191) | async def concurrent_register_repository( method concurrent_update_repository (line 202) | async def concurrent_update_repository(self, repository: HacsRepositor... method generate_data_for_category (line 301) | async def generate_data_for_category( method get_category_repositories (line 355) | async def get_category_repositories( method summarize_data (line 391) | async def summarize_data( method async_github_get_hacs_default_file (line 443) | async def async_github_get_hacs_default_file(self, filename: str) -> l... function generate_category_data (line 456) | async def generate_category_data(category: str, repository_name: str = N... FILE: scripts/data/validate_category_data.py function validate_category_data (line 18) | async def validate_category_data(category: str, file_path: str) -> None: FILE: scripts/update/default_repositories.py function update (line 7) | def update(): FILE: scripts/update/manifest.py function update_manifest (line 10) | def update_manifest(): FILE: tests/__init__.py function async_suggest_report_issue_mock (line 11) | def async_suggest_report_issue_mock(*args, **kwargs): FILE: tests/action/test_hacs_action_integration.py function test_hacs_action_integration (line 62) | async def test_hacs_action_integration( FILE: tests/common.py class CategoryTestData (line 48) | class CategoryTestData(TypedDict): function category_test_data_parametrized (line 116) | def category_test_data_parametrized( function current_function_name (line 136) | def current_function_name(): function safe_json_dumps (line 141) | def safe_json_dumps(data: dict | list) -> str: function recursive_remove_key (line 150) | def recursive_remove_key(data: dict[str, Any], to_remove: Iterable[str])... function fixture (line 193) | def fixture(filename, asjson=True): function dummy_repository_base (line 211) | def dummy_repository_base(hacs, repository=None): function ensure_auth_manager_loaded (line 237) | def ensure_auth_manager_loaded(auth_mgr): function mock_storage (line 245) | def mock_storage(data=None): class MockOwner (line 303) | class MockOwner(auth_models.User): method __init__ (line 306) | def __init__(self): method create (line 320) | def create(hass: ha.HomeAssistant): class MockConfigEntry (line 328) | class MockConfigEntry(config_entries.ConfigEntry): method add_to_hass (line 331) | def add_to_hass(self, hass: ha.HomeAssistant) -> None: class WSClient (line 336) | class WSClient: method __init__ (line 341) | def __init__(self, hass: ha.HomeAssistant, token: str) -> None: method _create_client (line 346) | async def _create_client(self) -> None: method send_json (line 374) | async def send_json(self, type: str, payload: dict[str, Any]) -> dict[... method receive_json (line 379) | async def receive_json(self) -> dict[str, Any]: method send_and_receive_json (line 382) | async def send_and_receive_json(self, type: str, payload: dict[str, An... class MockedResponse (line 387) | class MockedResponse: method __init__ (line 388) | def __init__(self, **kwargs) -> None: method status (line 394) | def status(self): method url (line 398) | def url(self): method headers (line 402) | def headers(self): method read (line 405) | async def read(self, **kwargs): method json (line 410) | async def json(self, **kwargs): method text (line 415) | async def text(self, **kwargs): method raise_for_status (line 420) | def raise_for_status(self) -> None: class ResponseMocker (line 425) | class ResponseMocker: method add (line 429) | def add(self, url: str, response: MockedResponse) -> None: method get (line 432) | def get(self, url: str, *args, **kwargs) -> MockedResponse: class ProxyClientSession (line 447) | class ProxyClientSession(ClientSession): method _request (line 450) | async def _request(self, method: str, str_or_url: StrOrURL, *args, **k... function client_session_proxy (line 498) | async def client_session_proxy(hass: ha.HomeAssistant) -> ClientSession: function create_config_entry (line 553) | def create_config_entry( function setup_integration (line 572) | async def setup_integration(hass: ha.HomeAssistant, config_entry: MockCo... function get_hacs (line 592) | def get_hacs(hass: ha.HomeAssistant) -> HacsBase: FILE: tests/conftest.py function time_freezer (line 88) | def time_freezer() -> Generator[freezegun.api.FrozenDateTimeFactory, Non... function set_request_context (line 94) | def set_request_context(request: pytest.FixtureRequest): function connection (line 100) | def connection(): function hass_storage (line 106) | def hass_storage(): function mock_zeroconf_resolver (line 113) | def mock_zeroconf_resolver(event_loop) -> Generator[_patch]: function hass (line 132) | async def hass(time_freezer, event_loop, tmpdir, check_report_issue: None): function hacs (line 193) | def hacs(hass: HomeAssistant, setup_integration: None) -> HacsBase: function repository (line 199) | def repository(hacs): function repository_integration (line 205) | def repository_integration(hacs): function repository_theme (line 212) | def repository_theme(hacs): function repository_plugin (line 219) | def repository_plugin(hacs): function repository_python_script (line 226) | def repository_python_script(hacs): function repository_template (line 233) | def repository_template(hacs): function repository_appdaemon (line 240) | def repository_appdaemon(hacs): class SnapshotFixture (line 246) | class SnapshotFixture(Snapshot): method assert_hacs_data (line 247) | async def assert_hacs_data( function snapshots (line 257) | def snapshots(snapshot: Snapshot) -> SnapshotFixture: function proxy_session (line 352) | async def proxy_session(hass: HomeAssistant) -> Generator: function ws_client (line 364) | async def ws_client(hass: HomeAssistant) -> WSClient: function response_mocker (line 388) | def response_mocker() -> ResponseMocker: function setup_integration (line 396) | async def setup_integration(hass: HomeAssistant, check_report_issue: Non... function check_report_issue (line 421) | async def check_report_issue() -> None: function track_api_usage (line 432) | def track_api_usage(snapshots: SnapshotFixture): FILE: tests/hacsbase/test_backup.py function test_file (line 8) | def test_file(hacs, tmpdir): function test_directory (line 25) | def test_directory(hacs, tmpdir): function test_muilti (line 41) | def test_muilti(hacs, tmpdir): FILE: tests/hacsbase/test_configuration.py function test_configuration_and_option (line 9) | def test_configuration_and_option(): function test_ignore_experimental (line 40) | def test_ignore_experimental(): function test_ignore_netdaemon (line 49) | def test_ignore_netdaemon(): function test_edge_update_with_none (line 58) | def test_edge_update_with_none(): FILE: tests/hacsbase/test_hacs.py function test_hacs (line 8) | async def test_hacs(hacs, repository, tmpdir): function test_add_remove_repository (line 36) | async def test_add_remove_repository(hacs, repository, tmpdir): FILE: tests/hacsbase/test_hacsbase_data.py function test_hacs_data_async_write1 (line 9) | async def test_hacs_data_async_write1(hacs, repository): function test_hacs_data_async_write2 (line 17) | async def test_hacs_data_async_write2(hacs): function test_hacs_data_restore_write_not_new (line 24) | async def test_hacs_data_restore_write_not_new(hacs, caplog): FILE: tests/helpers/classes/test_repository_data.py function test_guarded (line 4) | def test_guarded(): FILE: tests/helpers/classes/test_validate_class.py function test_validate (line 4) | def test_validate(): FILE: tests/helpers/download/test_gather_files_to_download.py function test_gather_files_to_download (line 7) | def test_gather_files_to_download(repository): function test_gather_plugin_files_from_root (line 18) | def test_gather_plugin_files_from_root(repository_plugin): function test_gather_plugin_files_from_dist (line 36) | def test_gather_plugin_files_from_dist(repository_plugin): function test_gather_plugin_multiple_plugin_files_from_dist (line 63) | def test_gather_plugin_multiple_plugin_files_from_dist(repository_plugin): function test_gather_plugin_files_from_release (line 82) | def test_gather_plugin_files_from_release(repository_plugin): function test_gather_plugin_files_from_release_multiple (line 92) | def test_gather_plugin_files_from_release_multiple(repository_plugin): function test_gather_zip_release (line 104) | def test_gather_zip_release(repository_plugin): function test_single_file_repo (line 116) | def test_single_file_repo(repository): function test_gather_content_in_root_theme (line 137) | def test_gather_content_in_root_theme(repository_theme): function test_gather_appdaemon_files_base (line 156) | def test_gather_appdaemon_files_base(repository_appdaemon): function test_gather_appdaemon_files_with_subdir (line 173) | def test_gather_appdaemon_files_with_subdir(repository_appdaemon): function test_gather_plugin_multiple_files_in_root (line 203) | def test_gather_plugin_multiple_files_in_root(repository_plugin): function test_gather_plugin_different_card_name (line 222) | def test_gather_plugin_different_card_name(repository_plugin): FILE: tests/helpers/download/test_should_try_releases.py function test_base (line 5) | def test_base(repository): function test_ref_is_default (line 12) | def test_ref_is_default(repository): function test_category_is_wrong (line 19) | def test_category_is_wrong(repository): function test_no_releases (line 26) | def test_no_releases(repository): function test_zip_release (line 33) | def test_zip_release(repository): FILE: tests/helpers/filters/test_filter_content_return_one_of_type.py function test_valid_objects (line 8) | def test_valid_objects(): function test_valid_list (line 29) | def test_valid_list(): FILE: tests/helpers/filters/test_get_first_directory_in_directory.py function test_valid (line 8) | def test_valid(): function test_not_valid (line 21) | def test_not_valid(): FILE: tests/helpers/functions/test_extract_repository_from_url.py function test_extract_repository_from_url (line 5) | def test_extract_repository_from_url(): FILE: tests/homeassistantfixtures/common.py function get_test_config_dir (line 12) | def get_test_config_dir(*add_path): function ensure_auth_manager_loaded (line 18) | def ensure_auth_manager_loaded(auth_mgr): class StoreWithoutWriteLoad (line 25) | class StoreWithoutWriteLoad(storage.Store[_T]): method async_save (line 28) | async def async_save(self, *args: Any, **kwargs: Any) -> None: method async_save_delay (line 35) | def async_save_delay(self, *args: Any, **kwargs: Any) -> None: FILE: tests/homeassistantfixtures/dev.py function async_test_home_assistant (line 45) | async def async_test_home_assistant( FILE: tests/homeassistantfixtures/min.py function async_test_home_assistant (line 46) | async def async_test_home_assistant( FILE: tests/integration/test_integration_setup.py function test_integration_setup (line 14) | async def test_integration_setup( function test_integration_setup_with_custom_updater (line 39) | async def test_integration_setup_with_custom_updater( FILE: tests/patch_time.py function _utcnow (line 14) | def _utcnow() -> datetime.datetime: function _monotonic (line 19) | def _monotonic() -> float: FILE: tests/repositories/helpers/test_properties.py function test_repository_helpers_properties_can_be_installed (line 8) | def test_repository_helpers_properties_can_be_installed(hacs): function test_repository_helpers_properties_pending_update (line 13) | def test_repository_helpers_properties_pending_update(hacs): FILE: tests/repositories/test_can_install.py function test_hacs_can_install (line 8) | def test_hacs_can_install(hacs): FILE: tests/repositories/test_display_status.py function test_display_status (line 8) | def test_display_status(hacs: HacsBase): FILE: tests/repositories/test_download_repository.py function test_download_repository (line 16) | async def test_download_repository( FILE: tests/repositories/test_get_documentation.py function test_repository_get_documentation (line 27) | async def test_repository_get_documentation( FILE: tests/repositories/test_get_hacs_json.py function test_validate_repository (line 12) | async def test_validate_repository( function test_get_hacs_json_with_exception (line 30) | async def test_get_hacs_json_with_exception(hacs: HacsBase): FILE: tests/repositories/test_get_hacs_json_raw.py function test_get_hacs_json_raw (line 15) | async def test_get_hacs_json_raw( function test_get_hacs_json_raw_with_exception (line 33) | async def test_get_hacs_json_raw_with_exception(hacs: HacsBase): FILE: tests/repositories/test_get_reposiotry_releases.py function test_get_reposiotry_releases (line 19) | async def test_get_reposiotry_releases( FILE: tests/repositories/test_hacs_manifest.py function test_manifest_structure (line 9) | def test_manifest_structure(): function test_edge_pass_none (line 42) | def test_edge_pass_none(): FILE: tests/repositories/test_plugin_repository.py function downloaded_plugin_repository (line 14) | async def downloaded_plugin_repository( function test_dashboard_namespace (line 34) | async def test_dashboard_namespace( function test_dashboard_hacstag (line 54) | async def test_dashboard_hacstag( function test_dashboard_url (line 73) | async def test_dashboard_url(downloaded_plugin_repository: HacsPluginRep... function test_get_resource_handler (line 81) | async def test_get_resource_handler( function test_get_resource_handler_wrong_version (line 91) | async def test_get_resource_handler_wrong_version( function test_get_resource_handler_wrong_key (line 108) | async def test_get_resource_handler_wrong_key( function test_get_resource_handler_none_store (line 126) | async def test_get_resource_handler_none_store( function test_get_resource_handler_no_store (line 144) | async def test_get_resource_handler_no_store( function test_get_resource_handler_no_lovelace_resources (line 162) | async def test_get_resource_handler_no_lovelace_resources( function test_get_resource_handler_no_lovelace_data (line 179) | async def test_get_resource_handler_no_lovelace_data( function test_get_resource_handler_no_hass_data (line 191) | async def test_get_resource_handler_no_hass_data( function test_remove_dashboard_resource (line 205) | async def test_remove_dashboard_resource( function test_add_dashboard_resource (line 230) | async def test_add_dashboard_resource( function test_update_dashboard_resource (line 250) | async def test_update_dashboard_resource( function test_add_dashboard_resource_with_invalid_file_name (line 284) | async def test_add_dashboard_resource_with_invalid_file_name( FILE: tests/repositories/test_register_repository.py function test_register_repository (line 20) | async def test_register_repository( function test_register_repository_failures (line 75) | async def test_register_repository_failures( FILE: tests/repositories/test_remove_repository.py function test_remove_repository (line 20) | async def test_remove_repository( FILE: tests/repositories/test_removed_repository.py function test_removed_repository (line 25) | def test_removed_repository(data: dict[str, any]): FILE: tests/repositories/test_update_repository.py function test_update_repository_entity (line 24) | async def test_update_repository_entity( function test_update_repository_websocket (line 66) | async def test_update_repository_websocket( function test_update_repository_entity_no_manifest (line 96) | async def test_update_repository_entity_no_manifest( function test_update_repository_entity_old_core_version (line 139) | async def test_update_repository_entity_old_core_version( function test_update_repository_entity_old_hacs_version (line 182) | async def test_update_repository_entity_old_hacs_version( function test_update_repository_entity_download_failure (line 221) | async def test_update_repository_entity_download_failure( function test_update_repository_entity_same_provided_version (line 269) | async def test_update_repository_entity_same_provided_version( function test_update_repository_entity_no_update (line 305) | async def test_update_repository_entity_no_update( FILE: tests/scripts/data/test_generate_category_data.py function get_generated_category_data (line 33) | def get_generated_category_data(category: str) -> dict[str, Any]: function test_generate_category_data_single_repository (line 52) | async def test_generate_category_data_single_repository( function test_generate_category_data (line 95) | async def test_generate_category_data( function test_generate_category_data_with_prior_content (line 138) | async def test_generate_category_data_with_prior_content( function test_generate_category_data_errors_release (line 187) | async def test_generate_category_data_errors_release( function test_generate_category_data_error_status_release (line 216) | async def test_generate_category_data_error_status_release( function test_generate_category_data_with_30plus_prereleases (line 264) | async def test_generate_category_data_with_30plus_prereleases( FILE: tests/test_config_flow.py function _mock_setup_entry (line 28) | def _mock_setup_entry(hass: HomeAssistant) -> Generator[None, None, None]: function test_full_user_flow_implementation (line 35) | async def test_full_user_flow_implementation( function test_flow_with_remove_while_activating (line 120) | async def test_flow_with_remove_while_activating( function test_flow_with_registration_failure (line 187) | async def test_flow_with_registration_failure( function test_flow_with_activation_failure (line 229) | async def test_flow_with_activation_failure( function test_already_configured (line 306) | async def test_already_configured( function test_options_flow (line 330) | async def test_options_flow(hass: HomeAssistant, setup_integration: Gene... FILE: tests/test_data_client.py function test_basic_functionality_data (line 27) | async def test_basic_functionality_data( function test_basic_functionality_repositories (line 42) | async def test_basic_functionality_repositories( function test_exception_handling (line 71) | async def test_exception_handling( function test_status_handling (line 109) | async def test_status_handling( function without (line 148) | def without(d: dict, key: str) -> dict: function test_basic_functionality_data_validate (line 168) | async def test_basic_functionality_data_validate( function test_discard_invalid_repo_data (line 205) | async def test_discard_invalid_repo_data( FILE: tests/test_diagnostics.py function test_diagnostics (line 19) | async def test_diagnostics(hacs: HacsBase, snapshots: SnapshotFixture): function test_diagnostics_with_exception (line 33) | async def test_diagnostics_with_exception( FILE: tests/test_emuns.py function test_enum_value (line 6) | def test_enum_value(): FILE: tests/test_sensor_cleanup.py function test_sensor_cleanup (line 11) | async def test_sensor_cleanup(hass: HomeAssistant) -> None: FILE: tests/test_switch.py function test_switch_entity_state (line 27) | async def test_switch_entity_state( FILE: tests/test_system_health.py function get_system_health_info (line 19) | async def get_system_health_info(hass: HomeAssistant, domain: str) -> di... function test_system_health (line 24) | async def test_system_health( function test_system_health_after_unload (line 65) | async def test_system_health_after_unload( function test_system_health_no_hacs (line 81) | async def test_system_health_no_hacs( FILE: tests/test_update.py function test_update_entity_state (line 27) | async def test_update_entity_state( FILE: tests/utils/test_decorator.py function test_sync_function_no_exception (line 7) | def test_sync_function_no_exception(): function test_sync_function_with_exception (line 16) | def test_sync_function_with_exception(): function test_sync_method_no_exception (line 25) | def test_sync_method_no_exception(): function test_sync_method_with_exception (line 36) | def test_sync_method_with_exception(): function test_async_function_no_exception (line 48) | async def test_async_function_no_exception(): function test_async_function_with_exception (line 58) | async def test_async_function_with_exception(): function test_async_method_no_exception (line 68) | async def test_async_method_no_exception(): function test_async_method_with_exception (line 80) | async def test_async_method_with_exception(): function test_async_method_with_args (line 92) | async def test_async_method_with_args(): function test_async_method_with_args_exception (line 107) | async def test_async_method_with_args_exception(): FILE: tests/utils/test_fs_util.py function test_async_exists (line 13) | async def test_async_exists(hass, tmpdir): function test_async_remove (line 21) | async def test_async_remove(hass, tmpdir): function test_async_remove_directory (line 43) | async def test_async_remove_directory(hass, tmpdir): FILE: tests/utils/test_path.py function test_is_safe (line 5) | def test_is_safe(hacs: HacsBase) -> None: FILE: tests/utils/test_queue_manager.py function test_queue_manager (line 13) | async def test_queue_manager(hacs: HacsBase, caplog: pytest.LogCaptureFi... FILE: tests/utils/test_store.py function test_store_load (line 17) | async def test_store_load(hass: HomeAssistant) -> None: function test_store_remove (line 38) | async def test_store_remove(hass: HomeAssistant) -> None: function test_store_store (line 50) | async def test_store_store(hass: HomeAssistant, caplog: pytest.LogCaptur... FILE: tests/utils/test_url.py function test_github_release_asset (line 16) | def test_github_release_asset(arguments: dict[str, str], url: str) -> None: function test_github_archive (line 50) | def test_github_archive(arguments: dict[str, str], url: str) -> None: FILE: tests/utils/test_validate.py function test_hacs_manifest_json_schema (line 22) | def test_hacs_manifest_json_schema(): function test_integration_json_schema (line 92) | def test_integration_json_schema(): function test_critical_repo_data_json_schema (line 110) | def test_critical_repo_data_json_schema(): function test_critical_repo_data_json_schema_bad_data (line 173) | def test_critical_repo_data_json_schema_bad_data(data: dict, expectation... function test_repo_data_json_schema (line 192) | def test_repo_data_json_schema(category: str): function without (line 223) | def without(d: dict, key: str) -> dict: function test_repo_data_json_schema_bad_data (line 591) | def test_repo_data_json_schema_bad_data( function test_repo_data_json_schema_multiple_bad_data (line 636) | def test_repo_data_json_schema_multiple_bad_data(categories: list[str], ... function test_removed_repo_data_json_schema (line 666) | def test_removed_repo_data_json_schema(): function test_removed_repo_data_json_schema_bad_data (line 738) | def test_removed_repo_data_json_schema_bad_data(data: dict, expectation_... FILE: tests/utils/test_version.py function test_version_to_download (line 7) | def test_version_to_download(repository): function test_version_left_higher_or_equal_then_right (line 85) | def test_version_left_higher_or_equal_then_right(left: str, right: str, ... FILE: tests/utils/test_workarounds.py function test_domain_ovverides (line 4) | def test_domain_ovverides() -> None: FILE: tests/validate/test_async_run_repository_checks.py function test_async_run_repository_checks (line 10) | async def test_async_run_repository_checks( FILE: tests/validate/test_brands_check.py function test_added_to_brands (line 7) | async def test_added_to_brands(repository, response_mocker: ResponseMock... function test_not_added_to_brands (line 18) | async def test_not_added_to_brands(repository, response_mocker: Response... function test_local_brands_asset_content_in_root (line 29) | async def test_local_brands_asset_content_in_root(repository): function test_local_brands_asset_not_in_root (line 39) | async def test_local_brands_asset_not_in_root(repository): function test_local_brands_asset_missing_falls_back_to_remote (line 50) | async def test_local_brands_asset_missing_falls_back_to_remote( FILE: tests/validate/test_hacsjson_check.py function test_hacs_manifest_no_manifest (line 17) | async def test_hacs_manifest_no_manifest(repository, caplog): function test_hacs_manifest_with_valid_manifest (line 24) | async def test_hacs_manifest_with_valid_manifest(repository): function test_hacs_manifest_with_invalid_manifest (line 38) | async def test_hacs_manifest_with_invalid_manifest(repository): function test_hacs_manifest_with_missing_filename (line 51) | async def test_hacs_manifest_with_missing_filename(repository, caplog): function test_hacs_manifest_integration_zip_release_with_filename (line 69) | async def test_hacs_manifest_integration_zip_release_with_filename(repos... FILE: tests/validate/test_images_check.py function test_repository_has_images (line 4) | async def test_repository_has_images(repository): function test_repository_has_not_images (line 19) | async def test_repository_has_not_images(repository): FILE: tests/validate/test_integration_manifest_check.py function test_integration_no_manifest (line 6) | async def test_integration_no_manifest(repository_integration): function test_integration_manifest_with_valid_manifest (line 12) | async def test_integration_manifest_with_valid_manifest(repository_integ... function test_hacs_manifest_with_invalid_manifest (line 36) | async def test_hacs_manifest_with_invalid_manifest(repository_integration): FILE: tests/validate/test_repository_archived_check.py function test_repository_archived (line 4) | async def test_repository_archived(repository): function test_repository_not_archived (line 11) | async def test_repository_not_archived(repository): FILE: tests/validate/test_repository_description_check.py function test_repository_no_description (line 4) | async def test_repository_no_description(repository): function test_repository_hacs_description (line 11) | async def test_repository_hacs_description(repository): FILE: tests/validate/test_repository_information_file_check.py function test_no_info_file (line 6) | async def test_no_info_file(repository): function test_no_readme_file (line 12) | async def test_no_readme_file(repository): function test_has_info_file (line 18) | async def test_has_info_file(repository): function test_has_info_md_file (line 27) | async def test_has_info_md_file(repository): function test_has_readme_file (line 36) | async def test_has_readme_file(repository): function test_has_readme_md_file (line 46) | async def test_has_readme_md_file(repository): FILE: tests/validate/test_repository_issues_check.py function test_repository_issues_enabled (line 4) | async def test_repository_issues_enabled(repository): function test_repository_issues_not_enabled (line 11) | async def test_repository_issues_not_enabled(repository): FILE: tests/validate/test_repository_topics_check.py function test_repository_no_topics (line 4) | async def test_repository_no_topics(repository): function test_repository_hacs_topics (line 11) | async def test_repository_hacs_topics(repository):