43 lines
1.2 KiB
Python
43 lines
1.2 KiB
Python
from typing import Optional
|
|
|
|
from cpl_core.configuration.configuration_model_abc import ConfigurationModelABC
|
|
from cpl_cli.configuration.version_settings_name_enum import VersionSettingsNameEnum
|
|
|
|
|
|
class VersionSettings(ConfigurationModelABC):
|
|
def __init__(self, major: str = None, minor: str = None, micro: str = None):
|
|
ConfigurationModelABC.__init__(self)
|
|
|
|
self._major: Optional[str] = major
|
|
self._minor: Optional[str] = minor
|
|
self._micro: Optional[str] = micro if micro != "" else None
|
|
|
|
@property
|
|
def major(self) -> str:
|
|
return self._major
|
|
|
|
@property
|
|
def minor(self) -> str:
|
|
return self._minor
|
|
|
|
@property
|
|
def micro(self) -> str:
|
|
return self._micro
|
|
|
|
def to_str(self) -> str:
|
|
if self._micro is None:
|
|
return f"{self._major}.{self._minor}"
|
|
else:
|
|
return f"{self._major}.{self._minor}.{self._micro}"
|
|
|
|
def to_dict(self) -> dict:
|
|
version = {
|
|
VersionSettingsNameEnum.major.value: self._major,
|
|
VersionSettingsNameEnum.minor.value: self._minor,
|
|
}
|
|
|
|
if self._micro is not None:
|
|
version[VersionSettingsNameEnum.micro.value] = self._micro
|
|
|
|
return version
|