From 94f8c02db4188d26a4e62e58dfa2f1ed9307c643 Mon Sep 17 00:00:00 2001 From: Alexander Ryazanov Date: Wed, 16 Jun 2021 10:05:52 +0300 Subject: [PATCH] Constants refactoring --- custom_components/lkcomu_interrao/_schema.py | 3 +- .../lkcomu_interrao/config_flow.py | 3 +- custom_components/lkcomu_interrao/const.py | 179 +++++++++--------- 3 files changed, 93 insertions(+), 92 deletions(-) diff --git a/custom_components/lkcomu_interrao/_schema.py b/custom_components/lkcomu_interrao/_schema.py index c924ef7..7515fb4 100644 --- a/custom_components/lkcomu_interrao/_schema.py +++ b/custom_components/lkcomu_interrao/_schema.py @@ -15,6 +15,7 @@ from custom_components.lkcomu_interrao._util import IS_IN_RUSSIA from custom_components.lkcomu_interrao.const import ( + API_TYPE_DEFAULT, API_TYPE_NAMES, CONF_ACCOUNTS, CONF_DEV_PRESENTATION, @@ -183,7 +184,7 @@ def _make_provider_schema( vol.Schema( { # Set default type to 'moscow' before validating further - vol.Optional(CONF_TYPE, default="moscow"): PROFILE_TYPE_VALIDATOR, + vol.Optional(CONF_TYPE, default=API_TYPE_DEFAULT): PROFILE_TYPE_VALIDATOR, }, extra=vol.ALLOW_EXTRA, ), diff --git a/custom_components/lkcomu_interrao/config_flow.py b/custom_components/lkcomu_interrao/config_flow.py index bb01d1d..ebd4541 100644 --- a/custom_components/lkcomu_interrao/config_flow.py +++ b/custom_components/lkcomu_interrao/config_flow.py @@ -34,6 +34,7 @@ from custom_components.lkcomu_interrao._util import import_api_cls from custom_components.lkcomu_interrao.const import ( + API_TYPE_DEFAULT, API_TYPE_NAMES, CONF_ACCOUNTS, CONF_INVOICES, @@ -119,7 +120,7 @@ async def async_step_user(self, user_input: Optional[ConfigType] = None) -> Dict default_user_agent = DEFAULT_USER_AGENT schema_user = OrderedDict() - schema_user[vol.Required(CONF_TYPE, default="moscow")] = vol.In(API_TYPE_NAMES) + schema_user[vol.Required(CONF_TYPE, default=API_TYPE_DEFAULT)] = vol.In(API_TYPE_NAMES) schema_user[vol.Required(CONF_USERNAME)] = str schema_user[vol.Required(CONF_PASSWORD)] = str schema_user[vol.Optional(CONF_USER_AGENT, default=default_user_agent)] = str diff --git a/custom_components/lkcomu_interrao/const.py b/custom_components/lkcomu_interrao/const.py index 76f307b..860cef7 100644 --- a/custom_components/lkcomu_interrao/const.py +++ b/custom_components/lkcomu_interrao/const.py @@ -1,84 +1,92 @@ """Constants for lkcomu_interrao integration""" +from typing import Final -DOMAIN = "lkcomu_interrao" +DOMAIN: Final = "lkcomu_interrao" -ATTRIBUTION_RU = "Данные получены с %s" -ATTRIBUTION_EN = "Data acquired from %s" +ATTRIBUTION_RU: Final = "Данные получены с %s" +ATTRIBUTION_EN: Final = "Data acquired from %s" -ATTR_ACCOUNT_CODE = "account_code" -ATTR_ADDRESS = "address" -ATTR_BENEFITS = "benefits" -ATTR_CALL_PARAMS = "call_params" -ATTR_CHARGED = "charged" -ATTR_COMMENT = "comment" -ATTR_CORRECT = "correct" -ATTR_COST = "cost" -ATTR_DESCRIPTION = "description" -ATTR_FMT_LAST_VALUE = "last_value_%s" -ATTR_FMT_SUBMITTED_VALUE = "submitted_value_%s" -ATTR_FMT_TODAY_VALUE = "today_value_%s" -ATTR_IGNORE_INDICATIONS = "ignore_indications" -ATTR_IGNORE_PERIOD = "ignore_period" -ATTR_INCREMENTAL = "incremental" -ATTR_INDICATIONS = "indications" -ATTR_INITIAL = "initial" -ATTR_INSTALL_DATE = "install_date" -ATTR_INSURANCE = "insurance" -ATTR_INVOICE_ID = "invoice_id" -ATTR_LAST_PAYMENT_AMOUNT = "last_payment_amount" -ATTR_LAST_PAYMENT_DATE = "last_payment_date" -ATTR_LAST_PAYMENT_STATUS = "last_payment_status" -ATTR_LAST_INDICATIONS_DATE = "last_indications_date" -ATTR_METER_CODE = "meter_code" -ATTR_MODEL = "model" -ATTR_NOTIFICATION = "notification" -ATTR_PAID = "paid" -ATTR_PENALTY = "penalty" -ATTR_PERIOD = "period" -ATTR_PROVIDER_NAME = "provider_name" -ATTR_REASON = "reason" -ATTR_REMAINING_DAYS = "remaining_days" -ATTR_SERVICE_NAME = "service_name" -ATTR_SERVICE_TYPE = "service_type" -ATTR_STATUS = "status" -ATTR_SUBMIT_PERIOD_ACTIVE = "submit_period_active" -ATTR_SUBMIT_PERIOD_END = "submit_period_end" -ATTR_SUBMIT_PERIOD_START = "submit_period_start" -ATTR_SUCCESS = "success" -ATTR_TOTAL = "total" -ATTR_UNIT = "unit" -ATTR_PROVIDER_TYPE = "provider_type" +ATTR_ACCOUNT_CODE: Final = "account_code" +ATTR_ACCOUNT_ID: Final = "account_id" +ATTR_ADDRESS: Final = "address" +ATTR_AGENT: Final = "agent" +ATTR_AMOUNT: Final = "amount" +ATTR_BENEFITS: Final = "benefits" +ATTR_CALL_PARAMS: Final = "call_params" +ATTR_CHARGED: Final = "charged" +ATTR_CLEAR: Final = "clear" +ATTR_COMMENT: Final = "comment" +ATTR_CORRECT: Final = "correct" +ATTR_COST: Final = "cost" +ATTR_DESCRIPTION: Final = "description" +ATTR_FULL_NAME: Final = "full_name" +ATTR_GROUP: Final = "group" +ATTR_IGNORE_INDICATIONS: Final = "ignore_indications" +ATTR_IGNORE_PERIOD: Final = "ignore_period" +ATTR_INCREMENTAL: Final = "incremental" +ATTR_INDICATIONS: Final = "indications" +ATTR_INITIAL: Final = "initial" +ATTR_INSTALL_DATE: Final = "install_date" +ATTR_INSURANCE: Final = "insurance" +ATTR_INVOICE_ID: Final = "invoice_id" +ATTR_LAST_INDICATIONS_DATE: Final = "last_indications_date" +ATTR_LAST_PAYMENT_AMOUNT: Final = "last_payment_amount" +ATTR_LAST_PAYMENT_DATE: Final = "last_payment_date" +ATTR_LAST_PAYMENT_STATUS: Final = "last_payment_status" +ATTR_LIVING_AREA: Final = "living_area" +ATTR_METER_CODE: Final = "meter_code" +ATTR_MODEL: Final = "model" +ATTR_NOTIFICATION: Final = "notification" +ATTR_PAID: Final = "paid" +ATTR_PAID_AT: Final = "paid_at" +ATTR_PENALTY: Final = "penalty" +ATTR_PERIOD: Final = "period" +ATTR_PREVIOUS: Final = "previous" +ATTR_PROVIDER_NAME: Final = "provider_name" +ATTR_PROVIDER_TYPE: Final = "provider_type" +ATTR_REASON: Final = "reason" +ATTR_REMAINING_DAYS: Final = "remaining_days" +ATTR_SERVICE_NAME: Final = "service_name" +ATTR_SERVICE_TYPE: Final = "service_type" +ATTR_STATUS: Final = "status" +ATTR_SUBMIT_PERIOD_ACTIVE: Final = "submit_period_active" +ATTR_SUBMIT_PERIOD_END: Final = "submit_period_end" +ATTR_SUBMIT_PERIOD_START: Final = "submit_period_start" +ATTR_SUCCESS: Final = "success" +ATTR_TOTAL: Final = "total" +ATTR_TOTAL_AREA: Final = "total_area" +ATTR_UNIT: Final = "unit" -CONF_ACCOUNTS = "accounts" -CONF_INVOICES = "invoices" -CONF_METERS = "meters" -CONF_NAME_FORMAT = "name_format" -CONF_USER_AGENT = "user_agent" -CONF_PAYMENTS = "payments" -CONF_DEV_PRESENTATION = "dev_presentation" +CONF_ACCOUNTS: Final = "accounts" +CONF_INVOICES: Final = "invoices" +CONF_METERS: Final = "meters" +CONF_NAME_FORMAT: Final = "name_format" +CONF_USER_AGENT: Final = "user_agent" +CONF_PAYMENTS: Final = "payments" +CONF_DEV_PRESENTATION: Final = "dev_presentation" -DATA_API_OBJECTS = DOMAIN + "_api_objects" -DATA_ENTITIES = DOMAIN + "_entities" -DATA_FINAL_CONFIG = DOMAIN + "_final_config" -DATA_UPDATE_LISTENERS = DOMAIN + "_update_listeners" -DATA_YAML_CONFIG = DOMAIN + "_yaml_config" -DATA_UPDATE_DELEGATORS = DOMAIN + "_update_delegators" +DATA_API_OBJECTS: Final = DOMAIN + "_api_objects" +DATA_ENTITIES: Final = DOMAIN + "_entities" +DATA_FINAL_CONFIG: Final = DOMAIN + "_final_config" +DATA_UPDATE_LISTENERS: Final = DOMAIN + "_update_listeners" +DATA_YAML_CONFIG: Final = DOMAIN + "_yaml_config" +DATA_UPDATE_DELEGATORS: Final = DOMAIN + "_update_delegators" -DEFAULT_NAME_FORMAT_EN_ACCOUNTS = "{provider_code_upper} {account_code} {type_en_cap}" -DEFAULT_NAME_FORMAT_EN_INVOICES = "{provider_code_upper} {account_code} {type_en_cap}" -DEFAULT_NAME_FORMAT_EN_METERS = "{provider_code_upper} {account_code} {type_en_cap} {code}" -DEFAULT_NAME_FORMAT_EN_PAYMENTS = "{provider_code_upper} {account_code} {type_en_cap}" +DEFAULT_NAME_FORMAT_EN_ACCOUNTS: Final = "{provider_code_upper} {account_code} {type_en_cap}" +DEFAULT_NAME_FORMAT_EN_INVOICES: Final = "{provider_code_upper} {account_code} {type_en_cap}" +DEFAULT_NAME_FORMAT_EN_METERS: Final = "{provider_code_upper} {account_code} {type_en_cap} {code}" +DEFAULT_NAME_FORMAT_EN_PAYMENTS: Final = "{provider_code_upper} {account_code} {type_en_cap}" -DEFAULT_NAME_FORMAT_RU_ACCOUNTS = "{provider_code_upper} {account_code} {type_ru_cap}" -DEFAULT_NAME_FORMAT_RU_INVOICES = "{provider_code_upper} {account_code} {type_ru_cap}" -DEFAULT_NAME_FORMAT_RU_METERS = "{provider_code_upper} {account_code} {type_ru_cap} {code}" -DEFAULT_NAME_FORMAT_RU_PAYMRUTS = "{provider_code_upper} {account_code} {type_ru_cap}" +DEFAULT_NAME_FORMAT_RU_ACCOUNTS: Final = "{provider_code_upper} {account_code} {type_ru_cap}" +DEFAULT_NAME_FORMAT_RU_INVOICES: Final = "{provider_code_upper} {account_code} {type_ru_cap}" +DEFAULT_NAME_FORMAT_RU_METERS: Final = "{provider_code_upper} {account_code} {type_ru_cap} {code}" +DEFAULT_NAME_FORMAT_RU_PAYMRUTS: Final = "{provider_code_upper} {account_code} {type_ru_cap}" -DEFAULT_MAX_INDICATIONS = 3 -DEFAULT_SCAN_INTERVAL = 60 * 60 # 1 hour +DEFAULT_MAX_INDICATIONS: Final = 3 +DEFAULT_SCAN_INTERVAL: Final = 60 * 60 # 1 hour -API_TYPE_DEFAULT = "moscow" -API_TYPE_NAMES = { +API_TYPE_DEFAULT: Final = "moscow" +API_TYPE_NAMES: Final = { "altai": "ЛК Алтай (АО «АлтайЭнергосбыт»)", "bashkortostan": "ЛКК ЭСКБ (Башэлектросбыт)", "moscow": "ЕЛК ЖКХ (АО «Мосэнергосбыт», МосОблЕИРЦ, ПАО «Россети Московский регион»)", @@ -91,22 +99,13 @@ } -SUPPORTED_PLATFORMS = ("sensor", "binary_sensor") -ATTR_AMOUNT = "amount" -ATTR_AGENT = "agent" -ATTR_GROUP = "group" -ATTR_PAID_AT = "paid_at" -FORMAT_VAR_TYPE_RU = "type_ru" -FORMAT_VAR_TYPE_EN = "type_en" -FORMAT_VAR_CODE = "code" -FORMAT_VAR_ID = "id" -FORMAT_VAR_ACCOUNT_ID = "account_id" -FORMAT_VAR_ACCOUNT_CODE = "account_code" -FORMAT_VAR_PROVIDER_CODE = "provider_code" -FORMAT_VAR_PROVIDER_NAME = "provider_name" -ATTR_FULL_NAME = "full_name" -ATTR_LIVING_AREA = "living_area" -ATTR_TOTAL_AREA = "total_area" -ATTR_ACCOUNT_ID = "account_id" -ATTR_CLEAR = "clear" -ATTR_PREVIOUS = "previous" +SUPPORTED_PLATFORMS: Final = ("sensor", "binary_sensor") + +FORMAT_VAR_TYPE_RU: Final = "type_ru" +FORMAT_VAR_TYPE_EN: Final = "type_en" +FORMAT_VAR_CODE: Final = "code" +FORMAT_VAR_ID: Final = "id" +FORMAT_VAR_ACCOUNT_ID: Final = "account_id" +FORMAT_VAR_ACCOUNT_CODE: Final = "account_code" +FORMAT_VAR_PROVIDER_CODE: Final = "provider_code" +FORMAT_VAR_PROVIDER_NAME: Final = "provider_name"