Skip to content

Commit

Permalink
Constants refactoring
Browse files Browse the repository at this point in the history
  • Loading branch information
alryaz committed Jun 16, 2021
1 parent cf7d753 commit 94f8c02
Show file tree
Hide file tree
Showing 3 changed files with 93 additions and 92 deletions.
3 changes: 2 additions & 1 deletion custom_components/lkcomu_interrao/_schema.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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,
),
Expand Down
3 changes: 2 additions & 1 deletion custom_components/lkcomu_interrao/config_flow.py
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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
Expand Down
179 changes: 89 additions & 90 deletions custom_components/lkcomu_interrao/const.py
Original file line number Diff line number Diff line change
@@ -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": "ЕЛК ЖКХ (АО «Мосэнергосбыт», МосОблЕИРЦ, ПАО «Россети Московский регион»)",
Expand All @@ -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"

0 comments on commit 94f8c02

Please sign in to comment.