From 0d7585bac32bf2ed1665710ab7b8be00d7a96aae Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 00:05:54 +0300 Subject: [PATCH 01/31] typing: Helper__AggregateAllOptionValues is updated --- src/implementation/v00/configuration_base.py | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 09fefad..a00a347 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1942,7 +1942,7 @@ def Helper__FindSimpleOption( # -------------------------------------------------------------------- def Helper__AggregateAllOptionValues( self, allOptionsByName: dict[str, PgCfgModel__OptionData], optionName: str - ) -> list: + ) -> typing.Optional[list]: assert type(allOptionsByName) is dict assert type(optionName) is str @@ -1952,17 +1952,14 @@ def Helper__AggregateAllOptionValues( data = allOptionsByName[optionName] assert data is not None - typeOfData = type(data) - - if typeOfData is PgCfgModel__OptionData: + if type(data) is PgCfgModel__OptionData: assert data.IsAlive() assert data.m_Name == optionName assert data.m_Value is not None assert type(data.m_Value) is list return data.m_Value - if typeOfData is list: - assert type(data) is list + if type(data) is list: data = data.copy() assert type(data) is list @@ -1976,6 +1973,7 @@ def Helper__AggregateAllOptionValues( assert optionData.m_Value is not None assert type(optionData.m_Value) is list result.extend(optionData.m_Value) + continue assert result is not None assert type(result) is list @@ -1985,7 +1983,7 @@ def Helper__AggregateAllOptionValues( # Unknown type of option data in dictionary assert type(optionName) is str - BugCheckError.UnkOptObjectDataType(optionName, typeOfData) + BugCheckError.UnkOptObjectDataType(optionName, type(data)) # -------------------------------------------------------------------- def Helper__FindAndDeleteOption( From be1184cf4440b1f4d7521fc72457433de838caad Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 00:07:14 +0300 Subject: [PATCH 02/31] formatting --- src/implementation/v00/configuration_base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index a00a347..ccd5822 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1589,7 +1589,8 @@ def DataHandler__GetOptionValue__Simple( # -------------------------------------- ROOT if sourceData is None: optionData = self.Helper__FindSimpleOption( - self.m_Data.m_AllOptionsByName, optionName + self.m_Data.m_AllOptionsByName, + optionName, ) if optionData is not None: From 1ca18b2657151dc26de0f63c7b283253d03460ea Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 00:08:35 +0300 Subject: [PATCH 03/31] typing: DataHandler__GetOptionValue__Simple --- src/implementation/v00/configuration_base.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index ccd5822..cf12555 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1603,10 +1603,8 @@ def DataHandler__GetOptionValue__Simple( return None - typeOfSource = type(sourceData) - # -------------------------------------- OPTION DATA - if typeOfSource == PgCfgModel__OptionData: + if type(sourceData) is PgCfgModel__OptionData: optionData: PgCfgModel__OptionData = sourceData assert optionData.IsAlive() @@ -1615,7 +1613,7 @@ def DataHandler__GetOptionValue__Simple( return self.Helper__PrepareGetValue(optionData.m_Name, optionData.m_Value) # -------------------------------------- FILE DATA - if typeOfSource == PgCfgModel__FileData: + if type(sourceData) is PgCfgModel__FileData: fileData: PgCfgModel__FileData = sourceData assert fileData.IsAlive() @@ -1636,7 +1634,7 @@ def DataHandler__GetOptionValue__Simple( return None - BugCheckError.UnkObjectDataType(typeOfSource) + BugCheckError.UnkObjectDataType(type(sourceData)) # -------------------------------------------------------------------- def DataHandler__GetOptionValue__UnionList( From cede81794e3ebbe713f9db386b2a92ec322e20f0 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 00:10:23 +0300 Subject: [PATCH 04/31] formatting --- src/implementation/v00/configuration_base.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index cf12555..2e13911 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1598,7 +1598,8 @@ def DataHandler__GetOptionValue__Simple( assert optionData.IsAlive() assert optionData.m_Value is not None return self.Helper__PrepareGetValue( - optionData.m_Name, optionData.m_Value + optionData.m_Name, + optionData.m_Value, ) return None @@ -1610,7 +1611,10 @@ def DataHandler__GetOptionValue__Simple( assert optionData.IsAlive() assert optionData.m_Value is not None assert optionData.m_Name == optionName - return self.Helper__PrepareGetValue(optionData.m_Name, optionData.m_Value) + return self.Helper__PrepareGetValue( + optionData.m_Name, + optionData.m_Value, + ) # -------------------------------------- FILE DATA if type(sourceData) is PgCfgModel__FileData: @@ -1621,7 +1625,8 @@ def DataHandler__GetOptionValue__Simple( assert type(fileData.m_OptionsByName) is dict optionData = self.Helper__FindSimpleOption( - fileData.m_OptionsByName, optionName + fileData.m_OptionsByName, + optionName, ) if optionData is not None: @@ -1629,7 +1634,8 @@ def DataHandler__GetOptionValue__Simple( assert optionData.IsAlive() assert optionData.m_Value is not None return self.Helper__PrepareGetValue( - optionData.m_Name, optionData.m_Value + optionData.m_Name, + optionData.m_Value, ) return None From 53d37729ee47d148d1f53b39c0da384a3f76cf2f Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:31:11 +0300 Subject: [PATCH 05/31] explicit returns --- src/implementation/v00/configuration_base.py | 10 ++++++++++ src/implementation/v00/configuration_std.py | 1 + 2 files changed, 11 insertions(+) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 2e13911..6e1d5d4 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -90,6 +90,7 @@ def __init__( self.m_FileLine = fileLine self.m_CommentData = commentData + return # Object interface --------------------------------------------------- def get_Configuration(self) -> PostgresConfiguration_Base: @@ -127,6 +128,7 @@ def Delete(self, withLineIfLast: bool) -> None: PgCfgModel__DataControllerUtils.Comment__delete( cfgData, self.m_CommentData, withLineIfLast ) + return # Helper interface --------------------------------------------------- def Helper__CheckAlive(self): @@ -161,6 +163,7 @@ def __init__( self.m_FileLine = fileLine self.m_OptionData = optionData + return # Object interface --------------------------------------------------- def get_Configuration(self) -> PostgresConfiguration_Base: @@ -263,6 +266,7 @@ def Helper__CheckAlive(self): assert type(self.m_FileLine) is PostgresConfigurationFileLine_Base assert isinstance(self.m_FileLine, PostgresConfigurationFileLine) + return # ////////////////////////////////////////////////////////////////////////////// @@ -286,6 +290,7 @@ def __init__( self.m_FileLine = fileLine self.m_IncludeData = includeData + return # Object interface --------------------------------------------------- def get_Configuration(self) -> PostgresConfiguration_Base: @@ -322,6 +327,7 @@ def Delete(self, withLine: bool): PgCfgModel__DataControllerUtils.Include__delete( cfgData, self.m_IncludeData, withLine ) + return # Private interface -------------------------------------------------- def Private__CheckAlive(self): @@ -1037,6 +1043,7 @@ def Internal__CheckAlive(self): assert isinstance(self.m_Cfg, PostgresConfiguration_Base) assert isinstance(self.m_Cfg, PostgresConfiguration) + return # ////////////////////////////////////////////////////////////////////////////// @@ -1197,6 +1204,7 @@ def __init__( self.m_Cfg = cfg self.m_FileDataIterator = fileDataIterator + return # interface ---------------------------------------------------------- def __iter__(self) -> PostgresConfiguration_Base__AllFilesIterator: @@ -1323,6 +1331,7 @@ def __init__( self.m_Cfg = cfg self.m_OptionDataIterator = optionDataIterator + return # interface ---------------------------------------------------------- def __iter__(self) -> PostgresConfiguration_Base__AllOptionsIterator: @@ -1416,6 +1425,7 @@ def __init__(self, data_dir: str, osOps: ConfigurationOsOps): self.m_Data = PgCfgModel__ConfigurationData(data_dir, osOps) self.m_AllFiles = None self.m_AllOptions = None + return # interface ---------------------------------------------------------- def get_Configuration(self) -> PostgresConfiguration_Base: diff --git a/src/implementation/v00/configuration_std.py b/src/implementation/v00/configuration_std.py index 838ec4e..f4a060e 100644 --- a/src/implementation/v00/configuration_std.py +++ b/src/implementation/v00/configuration_std.py @@ -229,6 +229,7 @@ def __init__( self.GetValue = getValue self.SetValueItem = setValueItem self.Write = write + return # -------------------------------------------------------------------- # fmt: off From 5b148e49fcdb75f5ba9f9b965b5c57ffd96ad89d Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:36:39 +0300 Subject: [PATCH 06/31] FileData::T_OPTIONS_BY_NAME --- src/core/model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/core/model.py b/src/core/model.py index 7528b47..acb6a15 100644 --- a/src/core/model.py +++ b/src/core/model.py @@ -204,6 +204,8 @@ class FileStatus(enum.Enum): class FileData(ObjectData): + T_OPTIONS_BY_NAME = typing.Dict[str, OptionData] + m_Parent: ConfigurationData m_Status: FileStatus @@ -212,7 +214,7 @@ class FileData(ObjectData): m_Path: str m_Lines: typing.List[FileLineData] - m_OptionsByName: typing.Dict[str, OptionData] + m_OptionsByName: T_OPTIONS_BY_NAME # -------------------------------------------------------------------- def __init__(self, parent: ConfigurationData, path: str): From 9d26f965d2efdf24662f27ee2821794e16306d15 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:37:52 +0300 Subject: [PATCH 07/31] ConfigurationData::T_xxx --- src/core/model.py | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/src/core/model.py b/src/core/model.py index acb6a15..c0d2061 100644 --- a/src/core/model.py +++ b/src/core/model.py @@ -258,15 +258,33 @@ def IsAlive(self) -> bool: class ConfigurationData(ObjectData): + T_OPTION_OR_OPTIONS = typing.Union[ + OptionData, + typing.List[OptionData], + ] + + T_ALL_OPTIONS_BY_NAME = typing.Dict[ + str, + T_OPTION_OR_OPTIONS, + ] + + T_FILE_OR_FILES = typing.Union[ + FileData, + typing.List[FileData], + ] + + T_ALL_FILES_BY_NAME = typing.Dict[ + str, + T_FILE_OR_FILES, + ] + m_DataDir: str m_OsOps: ConfigurationOsOps m_Files: typing.List[FileData] - m_AllOptionsByName: typing.Dict[ - str, typing.Union[OptionData, typing.List[OptionData]] - ] - m_AllFilesByName: typing.Dict[str, typing.Union[FileData, typing.List[FileData]]] + m_AllOptionsByName: T_ALL_OPTIONS_BY_NAME + m_AllFilesByName: T_ALL_FILES_BY_NAME # -------------------------------------------------------------------- def __init__(self, data_dir: str, osOps: ConfigurationOsOps): From ac4b4703c239d07a7dda4d7ab0e31290e2f0cafe Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:39:42 +0300 Subject: [PATCH 08/31] PostgresConfigurationOptions is fixed --- src/abstract/v00/configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/abstract/v00/configuration.py b/src/abstract/v00/configuration.py index 66f1ae6..83c68e0 100644 --- a/src/abstract/v00/configuration.py +++ b/src/abstract/v00/configuration.py @@ -144,7 +144,7 @@ def __len__(self) -> int: RaiseError.MethodIsNotImplemented(__class__, "__len__") # -------------------------------------------------------------------- - def __iter__(self) -> PostgresConfigurationFileLinesIterator: + def __iter__(self) -> PostgresConfigurationOptionsIterator: RaiseError.MethodIsNotImplemented(__class__, "__iter__") From 4da770195f3eacf0e5b475b9a159caa86fe83342 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:40:32 +0300 Subject: [PATCH 09/31] PostgresConfigurationInclude::Delete returns None --- src/abstract/v00/configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/abstract/v00/configuration.py b/src/abstract/v00/configuration.py index 83c68e0..fd04c9a 100644 --- a/src/abstract/v00/configuration.py +++ b/src/abstract/v00/configuration.py @@ -161,7 +161,7 @@ def get_File(self) -> PostgresConfigurationFile: RaiseError.MethodIsNotImplemented(__class__, "get_File") # -------------------------------------------------------------------- - def Delete(self, withLine: bool): + def Delete(self, withLine: bool) -> None: assert type(withLine) is bool RaiseError.MethodIsNotImplemented(__class__, "Delete") From 5e1d7cecf21d05af5452decaca0d750b668f32c6 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:43:08 +0300 Subject: [PATCH 10/31] PostgresConfigurationInclude_Base::Delete returns None --- src/implementation/v00/configuration_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 6e1d5d4..5590291 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -309,7 +309,7 @@ def get_File(self) -> PostgresConfigurationIncludedFile_Base: return PostgresConfigurationIncludedFile_Base(self, self.m_IncludeData.m_File) # -------------------------------------------------------------------- - def Delete(self, withLine: bool): + def Delete(self, withLine: bool) -> None: assert type(withLine) is bool self.Helper__CheckAlive() From 5847c85ef67732b46792b32bd3f2cc7c12c9ca64 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:45:36 +0300 Subject: [PATCH 11/31] PostgresConfigurationFile_Base::Internal__CheckAlive returns None --- src/implementation/v00/configuration_base.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 5590291..547dbb3 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -970,7 +970,7 @@ def Private__GetFileData(self) -> PgCfgModel__FileData: return self.m_FileData # Internal interface ------------------------------------------------- - def Internal__CheckAlive(self): + def Internal__CheckAlive(self) -> None: RaiseError.MethodIsNotImplemented(__class__, "Internal__CheckAlive") @@ -993,7 +993,7 @@ def get_Parent(self) -> PostgresConfiguration_Base: return self.m_Cfg # Internal interface ------------------------------------------------- - def Internal__CheckAlive(self): + def Internal__CheckAlive(self) -> None: assert self.m_FileData is not None assert type(self.m_FileData) is PgCfgModel__FileData @@ -1002,6 +1002,7 @@ def Internal__CheckAlive(self): assert isinstance(self.m_Cfg, PostgresConfiguration_Base) assert isinstance(self.m_Cfg, PostgresConfiguration) + return # ////////////////////////////////////////////////////////////////////////////// @@ -1030,7 +1031,7 @@ def get_Parent(self) -> PostgresConfigurationInclude_Base: return self.m_Include # Internal interface ------------------------------------------------- - def Internal__CheckAlive(self): + def Internal__CheckAlive(self) -> None: assert self.m_FileData is not None assert self.m_Include is not None assert type(self.m_FileData) is PgCfgModel__FileData From 6504757af7d49d9285af654cb8ea7b14cea7960f Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:47:53 +0300 Subject: [PATCH 12/31] PostgresConfigurationSetOptionValueResult_Base is updated --- src/implementation/v00/configuration_base.py | 32 +++++++++++++------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 547dbb3..68653bc 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1054,16 +1054,16 @@ def Internal__CheckAlive(self) -> None: class PostgresConfigurationSetOptionValueResult_Base( PostgresConfigurationSetOptionValueResult ): - m_Cfg: PostgresConfiguration_Base - m_Opt: PostgresConfigurationOption_Base - m_OptData: PgCfgModel__OptionData + m_Cfg: typing.Optional[PostgresConfiguration_Base] + m_Opt: typing.Optional[PostgresConfigurationOption_Base] + m_OptData: typing.Optional[PgCfgModel__OptionData] m_EventID: PostgresConfigurationSetOptionValueEventID # -------------------------------------------------------------------- def __init__( self, - cfg: PostgresConfiguration_Base, - optData: PgCfgModel__OptionData, + cfg: typing.Optional[PostgresConfiguration_Base], + optData: typing.Optional[PgCfgModel__OptionData], eventID: PostgresConfigurationSetOptionValueEventID, ): assert cfg is None or isinstance(cfg, PostgresConfiguration_Base) @@ -1099,14 +1099,18 @@ def Create__OptWasAdded( assert type(optData) is PgCfgModel__OptionData return __class__( - cfg, optData, PostgresConfigurationSetOptionValueEventID.OPTION_WAS_ADDED + cfg, + optData, + PostgresConfigurationSetOptionValueEventID.OPTION_WAS_ADDED, ) # --------------------------------------------------------------------- @staticmethod def Create__OptWasDeleted() -> PostgresConfigurationSetOptionValueResult_Base: return __class__( - None, None, PostgresConfigurationSetOptionValueEventID.OPTION_WAS_DELETED + None, + None, + PostgresConfigurationSetOptionValueEventID.OPTION_WAS_DELETED, ) # --------------------------------------------------------------------- @@ -1141,10 +1145,10 @@ def Create__OptValueItemWasAdded( # --------------------------------------------------------------------- @property - def Option(self) -> PostgresConfigurationOption_Base: + def Option(self) -> typing.Optional[PostgresConfigurationOption_Base]: assert self.m_Cfg is None or isinstance(self.m_Cfg, PostgresConfiguration_Base) assert self.m_OptData is None or type(self.m_OptData) is PgCfgModel__OptionData - assert (self.m_Cfg is None) == (self.m_OptData is None) + assert (self.m_Cfg is None) is (self.m_OptData is None) assert type(self.m_EventID) is PostgresConfigurationSetOptionValueEventID if self.m_OptData is None: @@ -1155,8 +1159,11 @@ def Option(self) -> PostgresConfigurationOption_Base: ) assert self.m_Opt is None + assert self.m_Cfg is None return None + assert self.m_Cfg is not None + assert ( self.m_EventID == PostgresConfigurationSetOptionValueEventID.OPTION_WAS_ADDED @@ -1169,9 +1176,12 @@ def Option(self) -> PostgresConfigurationOption_Base: ) if self.m_Opt is None: - self.m_Opt = PostgresConfigurationFactory_Base.GetObject( - self.m_Cfg, self.m_OptData + x = PostgresConfigurationFactory_Base.GetObject( + self.m_Cfg, + self.m_OptData, ) + assert type(x) is PostgresConfigurationOption_Base + self.m_Opt = x assert self.m_Opt is not None assert type(self.m_Opt) is PostgresConfigurationOption_Base From 1594e6c9141f65ad803cb4d414a3335df9018bb5 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:49:11 +0300 Subject: [PATCH 13/31] PostgresConfigurationSetOptionValueResult::Option can return None --- src/abstract/v00/configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/abstract/v00/configuration.py b/src/abstract/v00/configuration.py index fd04c9a..bc1593b 100644 --- a/src/abstract/v00/configuration.py +++ b/src/abstract/v00/configuration.py @@ -49,7 +49,7 @@ def __init__(self): # interface ----------------------------------------------------------- @property - def Option(self) -> PostgresConfigurationOption: + def Option(self) -> typing.Optional[PostgresConfigurationOption]: RaiseError.GetPropertyIsNotImplemented(__class__, "Option") # --------------------------------------------------------------------- From 83c3ab44131660e170fccf626eea08f6de985946 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 01:49:46 +0300 Subject: [PATCH 14/31] PostgresConfigurationObject::get_Parent can return None --- src/abstract/v00/configuration.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/abstract/v00/configuration.py b/src/abstract/v00/configuration.py index bc1593b..a7d142e 100644 --- a/src/abstract/v00/configuration.py +++ b/src/abstract/v00/configuration.py @@ -21,7 +21,7 @@ def get_Configuration(self) -> PostgresConfiguration: RaiseError.MethodIsNotImplemented(__class__, "get_Configuration") # -------------------------------------------------------------------- - def get_Parent(self) -> PostgresConfigurationObject: + def get_Parent(self) -> typing.Optional[PostgresConfigurationObject]: RaiseError.MethodIsNotImplemented(__class__, "get_Parent") From 09f5b3714104554a27fab3d8609265687b9ffb00 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:03:45 +0300 Subject: [PATCH 15/31] Internal__GetOptionHandlerToPrepareGetValue is fixed --- src/implementation/v00/configuration_std.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/implementation/v00/configuration_std.py b/src/implementation/v00/configuration_std.py index f4a060e..26a06ae 100644 --- a/src/implementation/v00/configuration_std.py +++ b/src/implementation/v00/configuration_std.py @@ -363,8 +363,9 @@ def Internal__GetOptionHandlerToPrepareSetValue( # -------------------------------------------------------------------- def Internal__GetOptionHandlerToPrepareGetValue( - self, name: str - ) -> PgCfgModel__OptionHandlerToPrepareSetValue: + self, + name: str, + ) -> PgCfgModel__OptionHandlerToPrepareGetValue: assert type(name) is str assert type(self.sm_OptionHandlers) is dict From 3dc4dea3a229c18cb8f466f7dbad53dd93decf43 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:04:52 +0300 Subject: [PATCH 16/31] tagOptionHandlers::__init__(... write) is fixed --- src/implementation/v00/configuration_std.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_std.py b/src/implementation/v00/configuration_std.py index 26a06ae..b4b4a70 100644 --- a/src/implementation/v00/configuration_std.py +++ b/src/implementation/v00/configuration_std.py @@ -196,7 +196,7 @@ def __init__( getValue: PgCfgModel__OptionHandlerToGetValue, addIntoFile: PgCfgModel__OptionHandlerToAddOption, setValueItem: PgCfgModel__OptionHandlerToSetValueItem, - write: PgCfgModel__OptionHandlerToGetValue, + write: PgCfgModel__OptionHandlerToWrite, ): assert prepareSetValue is None or isinstance( prepareSetValue, PgCfgModel__OptionHandlerToPrepareSetValue From 889046c4c62cc0c833c348b5d1b01ca250ed3b21 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:06:16 +0300 Subject: [PATCH 17/31] tagOptionHandlers is updated (typing) --- src/implementation/v00/configuration_std.py | 24 +++++++++++++++------ 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/implementation/v00/configuration_std.py b/src/implementation/v00/configuration_std.py index b4b4a70..f5ccb69 100644 --- a/src/implementation/v00/configuration_std.py +++ b/src/implementation/v00/configuration_std.py @@ -94,6 +94,8 @@ from ...core.bugcheck_error import BugCheckError +import typing + # ////////////////////////////////////////////////////////////////////////////// # class PostgresConfiguration_Std @@ -179,11 +181,13 @@ class PostgresConfiguration_Std(PostgresConfiguration_Base): class tagOptionHandlers: PrepareSetValue: PgCfgModel__OptionHandlerToPrepareSetValue PrepareGetValue: PgCfgModel__OptionHandlerToPrepareGetValue - PrepareSetValueItem: PgCfgModel__OptionHandlerToPrepareSetValueItem - SetValue: PgCfgModel__OptionHandlerToSetValue + PrepareSetValueItem: typing.Optional[ + PgCfgModel__OptionHandlerToPrepareSetValueItem, + ] + SetValue: typing.Optional[PgCfgModel__OptionHandlerToSetValue] GetValue: PgCfgModel__OptionHandlerToGetValue AddOption: PgCfgModel__OptionHandlerToAddOption - SetValueItem: PgCfgModel__OptionHandlerToSetValueItem + SetValueItem: typing.Optional[PgCfgModel__OptionHandlerToSetValueItem] Write: PgCfgModel__OptionHandlerToWrite # ---------------------------------------------------------------- @@ -191,11 +195,13 @@ def __init__( self, prepareSetValue: PgCfgModel__OptionHandlerToPrepareSetValue, prepareGetValue: PgCfgModel__OptionHandlerToPrepareGetValue, - prepareSetValueItem: PgCfgModel__OptionHandlerToPrepareSetValueItem, - setValue: PgCfgModel__OptionHandlerToSetValue, + prepareSetValueItem: typing.Optional[ + PgCfgModel__OptionHandlerToPrepareSetValueItem + ], + setValue: typing.Optional[PgCfgModel__OptionHandlerToSetValue], getValue: PgCfgModel__OptionHandlerToGetValue, addIntoFile: PgCfgModel__OptionHandlerToAddOption, - setValueItem: PgCfgModel__OptionHandlerToSetValueItem, + setValueItem: typing.Optional[PgCfgModel__OptionHandlerToSetValueItem], write: PgCfgModel__OptionHandlerToWrite, ): assert prepareSetValue is None or isinstance( @@ -309,7 +315,11 @@ def __init__( } # -------------------------------------------------------------------- - def __init__(self, data_dir: str, cfgOsOps: ConfigurationOsOps = None): + def __init__( + self, + data_dir: str, + cfgOsOps: typing.Optional[ConfigurationOsOps] = None, + ): assert type(data_dir) is str assert cfgOsOps is None or isinstance(cfgOsOps, ConfigurationOsOps) From fb283c4fa50025c457173f5105d2a45f985be33d Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:07:14 +0300 Subject: [PATCH 18/31] PostgresConfiguration_Base__AllFilesIterator::T_FILE_DATA_ITERATOR --- src/implementation/v00/configuration_base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 68653bc..d05bcd1 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1199,14 +1199,18 @@ def EventID(self) -> PostgresConfigurationSetOptionValueEventID: class PostgresConfiguration_Base__AllFilesIterator(PostgresConfigurationFilesIterator): + T_FILE_DATA_ITERATOR = typing.Iterator[ + PgCfgModel__ConfigurationData.T_FILE_OR_FILES, + ] + m_Cfg: PostgresConfiguration_Base - m_FileDataIterator: typing.Iterator[PgCfgModel__FileData] + m_FileDataIterator: T_FILE_DATA_ITERATOR # -------------------------------------------------------------------- def __init__( self, cfg: PostgresConfiguration_Base, - fileDataIterator: typing.Iterator[PgCfgModel__FileData], + fileDataIterator: T_FILE_DATA_ITERATOR, ): assert cfg is not None assert isinstance(cfg, PostgresConfiguration_Base) From a623a16540e2f444f94f81fb17a69cce9d84b950 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:07:49 +0300 Subject: [PATCH 19/31] PostgresConfiguration_Base__AllOptionsIterator::T_OPTION_DATA_ITERATOR --- src/implementation/v00/configuration_base.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index d05bcd1..02829ba 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1330,14 +1330,18 @@ def GetFileByName(self, file_name: str) -> PostgresConfigurationFile_Base: class PostgresConfiguration_Base__AllOptionsIterator( PostgresConfigurationOptionsIterator ): + T_OPTION_DATA_ITERATOR = typing.Iterator[ + PgCfgModel__ConfigurationData.T_OPTION_OR_OPTIONS, + ] + m_Cfg: PostgresConfiguration_Base - m_OptionDataIterator: typing.Iterator[PgCfgModel__OptionData] + m_OptionDataIterator: T_OPTION_DATA_ITERATOR # -------------------------------------------------------------------- def __init__( self, cfg: PostgresConfiguration_Base, - optionDataIterator: typing.Iterator[PgCfgModel__OptionData], + optionDataIterator: T_OPTION_DATA_ITERATOR, ): assert cfg is not None assert isinstance(cfg, PostgresConfiguration_Base) From 1e12673959e5d41499c07049436e2a8b1a2fda51 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:09:30 +0300 Subject: [PATCH 20/31] PostgresConfiguration_Base__AllOptionsIterator is fixed --- src/implementation/v00/configuration_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 02829ba..0b8a674 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1369,7 +1369,7 @@ def __iter__(self) -> PostgresConfiguration_Base__AllOptionsIterator: return __class__(self.m_Cfg, it) # -------------------------------------------------------------------- - def __next__(self) -> PostgresConfigurationFile_Base: + def __next__(self) -> PostgresConfigurationOption_Base: assert self.m_Cfg is not None assert isinstance(self.m_Cfg, PostgresConfiguration_Base) assert self.m_OptionDataIterator is not None From 2911227f57f744976c0a08866052094d12ac9615 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:09:58 +0300 Subject: [PATCH 21/31] PostgresConfiguration_Base__AllOptions is fixed --- src/implementation/v00/configuration_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 0b8a674..70c1e85 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1408,7 +1408,7 @@ def __len__(self) -> int: return len(self.m_Cfg.m_Data.m_AllOptionsByName.values()) # -------------------------------------------------------------------- - def __iter__(self) -> PostgresConfiguration_Base__AllFilesIterator: + def __iter__(self) -> PostgresConfiguration_Base__AllOptionsIterator: assert self.m_Cfg is not None assert isinstance(self.m_Cfg, PostgresConfiguration_Base) assert type(self.m_Cfg.m_Data) is PgCfgModel__ConfigurationData From bc8f5745685d625f9f8851293bb6b76516fefb97 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:11:45 +0300 Subject: [PATCH 22/31] formatting --- src/implementation/v00/configuration_base.py | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 70c1e85..e4f76a9 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1288,7 +1288,8 @@ def __iter__(self) -> PostgresConfiguration_Base__AllFilesIterator: assert isinstance(fileDataIterator, typing.Iterator) return PostgresConfiguration_Base__AllFilesIterator( - self.m_Cfg, fileDataIterator + self.m_Cfg, + fileDataIterator, ) # -------------------------------------------------------------------- @@ -1419,7 +1420,8 @@ def __iter__(self) -> PostgresConfiguration_Base__AllOptionsIterator: assert isinstance(optionDataIterator, typing.Iterator) return PostgresConfiguration_Base__AllOptionsIterator( - self.m_Cfg, optionDataIterator + self.m_Cfg, + optionDataIterator, ) @@ -1780,7 +1782,8 @@ def DataHandler__ResetOption( assert type(targetData) is PgCfgModel__FileData eventID = self.Helper__FindAndDeleteOption( - targetData.m_OptionsByName, optionName + targetData.m_OptionsByName, + optionName, ) assert ( @@ -2101,7 +2104,8 @@ def Helper__GetFileForSimpleOption( assert fileData is None fileData = PgCfgModel__DataControllerUtils.Cfg__CreateAndAddTopLevelFile__AUTO( - self.m_Data, self.Internal__GetAutoConfFileName() + self.m_Data, + self.Internal__GetAutoConfFileName(), ) assert fileData is not None @@ -2439,7 +2443,8 @@ def Helper__SetSimpleOptionValue__Common( # ------------------------------------------------ optionData = self.Helper__FindSimpleOption( - self.m_Data.m_AllOptionsByName, optionName + self.m_Data.m_AllOptionsByName, + optionName, ) if optionData is not None: @@ -2483,7 +2488,10 @@ def Helper__SetSimpleOptionValue__File( assert optionValue is not None # ------------------------------------------------ - optionData = self.Helper__FindSimpleOption(fileData.m_OptionsByName, optionName) + optionData = self.Helper__FindSimpleOption( + fileData.m_OptionsByName, + optionName, + ) if optionData is not None: assert type(optionData) is PgCfgModel__OptionData From bd215436298c0761687e759855a155b76d4daea1 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:12:39 +0300 Subject: [PATCH 23/31] PostgresConfiguration_Base__AllFiles is fixed --- src/implementation/v00/configuration_base.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index e4f76a9..f0a9a02 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1318,7 +1318,7 @@ def GetFileByName(self, file_name: str) -> PostgresConfigurationFile_Base: return file if typeOfIndexData is list: - assert len(typeOfIndexData) > 1 + assert len(indexData) > 1 RaiseError.MultipleDefOfFileIsFound(file_name, len(indexData)) BugCheckError.UnkFileObjectDataType(file_name, typeOfIndexData) From 3ef338973bd73115e93ef6b5b5688fb12ec44ee1 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:13:44 +0300 Subject: [PATCH 24/31] PostgresConfiguration_Base__AllFiles is updated --- src/implementation/v00/configuration_base.py | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index f0a9a02..ddd3c4c 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1308,20 +1308,18 @@ def GetFileByName(self, file_name: str) -> PostgresConfigurationFile_Base: assert indexData is not None - typeOfIndexData = type(indexData) - - if typeOfIndexData is PgCfgModel__FileData: + if type(indexData) is PgCfgModel__FileData: assert self.m_Cfg.m_Data.OsOps.Path_BaseName(indexData.m_Path) == file_name2 file = PostgresConfigurationFactory_Base.GetObject(self.m_Cfg, indexData) assert file is not None assert isinstance(file, PostgresConfigurationFile_Base) return file - if typeOfIndexData is list: + if type(indexData) is list: assert len(indexData) > 1 RaiseError.MultipleDefOfFileIsFound(file_name, len(indexData)) - BugCheckError.UnkFileObjectDataType(file_name, typeOfIndexData) + BugCheckError.UnkFileObjectDataType(file_name, type(indexData)) # ////////////////////////////////////////////////////////////////////////////// From 34b0823b3b3021d271e92f57704442b5b62a83c7 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:15:56 +0300 Subject: [PATCH 25/31] typing --- src/implementation/v00/configuration_base.py | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index ddd3c4c..95c6596 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1635,7 +1635,7 @@ def DataHandler__GetOptionValue__Simple( # -------------------------------------- OPTION DATA if type(sourceData) is PgCfgModel__OptionData: - optionData: PgCfgModel__OptionData = sourceData + optionData = sourceData assert optionData.IsAlive() assert optionData.m_Value is not None @@ -1647,7 +1647,7 @@ def DataHandler__GetOptionValue__Simple( # -------------------------------------- FILE DATA if type(sourceData) is PgCfgModel__FileData: - fileData: PgCfgModel__FileData = sourceData + fileData = sourceData assert fileData.IsAlive() assert fileData.m_OptionsByName is not None @@ -1698,11 +1698,9 @@ def DataHandler__GetOptionValue__UnionList( assert type(unionList) is list return self.Helper__PrepareGetValue(optionName, unionList) - typeOfSource = type(sourceData) - # -------------------------------------- OPTION DATA - if typeOfSource == PgCfgModel__OptionData: - optionData: PgCfgModel__OptionData = sourceData + if type(sourceData) is PgCfgModel__OptionData: + optionData = sourceData assert optionData.IsAlive() assert optionData.m_Value is not None @@ -1711,8 +1709,8 @@ def DataHandler__GetOptionValue__UnionList( return self.Helper__PrepareGetValue(optionData.m_Name, optionData.m_Value) # -------------------------------------- FILE DATA - if typeOfSource is PgCfgModel__FileData: - sourceFileData: PgCfgModel__FileData = sourceData + if type(sourceData) is PgCfgModel__FileData: + sourceFileData = sourceData assert type(sourceFileData) is PgCfgModel__FileData assert sourceFileData.IsAlive() @@ -1734,7 +1732,7 @@ def DataHandler__GetOptionValue__UnionList( BugCheckError.UnkObjectDataType(typeOfOption) - BugCheckError.UnkObjectDataType(typeOfSource) + BugCheckError.UnkObjectDataType(type(sourceData)) # -------------------------------------------------------------------- def DataHandler__ResetOption( From 52ea3cb892e35d2b8410e02cce0f77a0308000bc Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:18:55 +0300 Subject: [PATCH 26/31] typing --- src/implementation/v00/configuration_base.py | 67 ++++++++++---------- 1 file changed, 35 insertions(+), 32 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 95c6596..3bac4c6 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -1430,8 +1430,8 @@ def __iter__(self) -> PostgresConfiguration_Base__AllOptionsIterator: class PostgresConfiguration_Base(PostgresConfiguration, PgCfgModel__DataHandler): m_Data: PgCfgModel__ConfigurationData - m_AllFiles: PostgresConfiguration_Base__AllFiles - m_AllOptions: PostgresConfiguration_Base__AllOptions + m_AllFiles: typing.Optional[PostgresConfiguration_Base__AllFiles] + m_AllOptions: typing.Optional[PostgresConfiguration_Base__AllOptions] # -------------------------------------------------------------------- def __init__(self, data_dir: str, osOps: ConfigurationOsOps): @@ -1451,7 +1451,7 @@ def get_Configuration(self) -> PostgresConfiguration_Base: return self # -------------------------------------------------------------------- - def get_Parent(self) -> PostgresConfigurationObject: + def get_Parent(self) -> typing.Optional[PostgresConfigurationObject]: return None # PostgresConfiguration interface ------------------------------------ @@ -1761,9 +1761,7 @@ def DataHandler__ResetOption( return PostgresConfigurationSetOptionValueResult_Base(None, None, eventID) # -------------------------------- target is FileData or OptionData - typeOfTarget = type(targetData) - - if typeOfTarget == PgCfgModel__OptionData: + if type(targetData) is PgCfgModel__OptionData: self.Debug__CheckOurObjectData(targetData) PgCfgModel__DataControllerUtils.Option__delete( @@ -1774,7 +1772,7 @@ def DataHandler__ResetOption( PostgresConfigurationSetOptionValueResult_Base.Create__OptWasDeleted() ) - if typeOfTarget is PgCfgModel__FileData: + if type(targetData) is PgCfgModel__FileData: assert type(targetData) is PgCfgModel__FileData eventID = self.Helper__FindAndDeleteOption( @@ -1789,7 +1787,7 @@ def DataHandler__ResetOption( return PostgresConfigurationSetOptionValueResult_Base(None, None, eventID) - BugCheckError.UnkObjectDataType(typeOfTarget) + BugCheckError.UnkObjectDataType(type(targetData)) # -------------------------------------------------------------------- def DataHandler__AddSimpleOption( @@ -1813,22 +1811,20 @@ def DataHandler__AddSimpleOption( assert self.m_Data.m_AllOptionsByName is not None assert type(self.m_Data.m_AllOptionsByName) is dict - typeOfTarget = type(target) - - if typeOfTarget == PgCfgModel__FileLineData: + if type(target) is PgCfgModel__FileLineData: return self.Helper__AddSimpleOption__FileLine( target, optionOffset, optionName, optionValue ) assert optionOffset is None - if typeOfTarget == PgCfgModel__FileData: + if type(target) is PgCfgModel__FileData: return self.Helper__AddSimpleOption__File(target, optionName, optionValue) if target is None: return self.Helper__AddSimpleOption__Common(optionName, optionValue) - BugCheckError.UnkObjectDataType(typeOfTarget) + BugCheckError.UnkObjectDataType(type(target)) # -------------------------------------------------------------------- def DataHandler__SetUniqueOptionValueItem( @@ -1851,11 +1847,8 @@ def DataHandler__SetUniqueOptionValueItem( optionName, optionValueItem ) - # -------------------------------- - typeOfTarget = type(targetData) - # -------------------------------- target is OPTION DATA - if typeOfTarget is PgCfgModel__OptionData: + if type(targetData) is PgCfgModel__OptionData: assert targetData.m_Name == optionName return self.Helper__SetUniqueOptionValueItem__Exact( @@ -1863,12 +1856,12 @@ def DataHandler__SetUniqueOptionValueItem( ) # -------------------------------- target is FILE DATA - if typeOfTarget is PgCfgModel__FileData: + if type(targetData) is PgCfgModel__FileData: return self.Helper__SetUniqueOptionValueItem__File( targetData, optionName, optionValueItem ) - BugCheckError.UnkObjectDataType(typeOfTarget) + BugCheckError.UnkObjectDataType(type(targetData)) # Internal interface ------------------------------------------------- def Internal__GetAutoConfFileName(self) -> str: @@ -1947,8 +1940,15 @@ def Internal__GetOptionHandlerToWrite( ) # helper methods ----------------------------------------------------- + T_OPTIONS_BY_NAME = typing.Union[ + PgCfgModel__ConfigurationData.T_ALL_OPTIONS_BY_NAME, + PgCfgModel__FileData.T_OPTIONS_BY_NAME, + ] + def Helper__FindSimpleOption( - self, allOptionsByName: dict[str, PgCfgModel__OptionData], optionName: str + self, + allOptionsByName: T_OPTIONS_BY_NAME, + optionName: str, ) -> typing.Optional[PgCfgModel__OptionData]: assert type(allOptionsByName) is dict assert type(optionName) is str @@ -1974,7 +1974,9 @@ def Helper__FindSimpleOption( # -------------------------------------------------------------------- def Helper__AggregateAllOptionValues( - self, allOptionsByName: dict[str, PgCfgModel__OptionData], optionName: str + self, + allOptionsByName: PgCfgModel__ConfigurationData.T_ALL_OPTIONS_BY_NAME, + optionName: str, ) -> typing.Optional[list]: assert type(allOptionsByName) is dict assert type(optionName) is str @@ -2020,7 +2022,9 @@ def Helper__AggregateAllOptionValues( # -------------------------------------------------------------------- def Helper__FindAndDeleteOption( - self, allOptionsByName: dict[str, PgCfgModel__OptionData], optionName: str + self, + allOptionsByName: T_OPTIONS_BY_NAME, + optionName: str, ) -> PostgresConfigurationSetOptionValueEventID: assert type(allOptionsByName) is dict assert type(optionName) is str @@ -2031,9 +2035,7 @@ def Helper__FindAndDeleteOption( data = allOptionsByName[optionName] assert data is not None - typeOfData = type(data) - - if typeOfData == PgCfgModel__OptionData: + if type(data) is PgCfgModel__OptionData: assert data.IsAlive() assert data.m_Name == optionName @@ -2041,8 +2043,7 @@ def Helper__FindAndDeleteOption( return PostgresConfigurationSetOptionValueEventID.OPTION_WAS_DELETED - if typeOfData is list: - assert type(data) is list + if type(data) is list: data = data.copy() assert type(data) is list @@ -2064,7 +2065,7 @@ def Helper__FindAndDeleteOption( # Unknown type of option data in dictionary assert type(optionName) is str - BugCheckError.UnkOptObjectDataType(optionName, typeOfData) + BugCheckError.UnkOptObjectDataType(optionName, type(data)) # -------------------------------------------------------------------- # returns tuple[FileData, Bool_signal_about_creating_a_new_file] @@ -2110,7 +2111,10 @@ def Helper__GetFileForSimpleOption( return (fileData, True) # -------------------------------------------------------------------- - def Helper__FindFile(self, file_name: str) -> PgCfgModel__FileData: + def Helper__FindFile( + self, + file_name: str, + ) -> typing.Optional[PgCfgModel__FileData]: assert type(file_name) is str assert file_name != "" assert type(self.m_Data) is PgCfgModel__ConfigurationData @@ -2857,8 +2861,7 @@ def Helper__SetUniqueOptionValueItem__File( fileData2.m_Path, optionName ) - if typeOfData is list: - assert type(data) is list + if type(data) is list: assert len(data) > 1 for optionData2 in data: @@ -2890,7 +2893,7 @@ def Helper__SetUniqueOptionValueItem__File( C_BUGCHECK_SRC, "#001", "optionName=[{0}].".format(optionName) ) - BugCheckError.UnkOptObjectDataType(optionName, typeOfData) + BugCheckError.UnkOptObjectDataType(optionName, type(data)) assert optionName not in fileData.m_OptionsByName.keys() assert optionName not in self.m_Data.m_AllOptionsByName.keys() From 0d490e3bfda694864247be04145f204446eb4f0c Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:20:17 +0300 Subject: [PATCH 27/31] Helper__AddSimpleOption__FileLine is fixed (delete: withLine=False) --- src/implementation/v00/configuration_base.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 3bac4c6..4bf39a1 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -2331,7 +2331,11 @@ def Helper__AddSimpleOption__FileLine( assert type(option) is PostgresConfigurationOption_Base assert option.m_OptionData is optionData except: - PgCfgModel__DataControllerUtils.Option__delete(self.m_Data, optionData()) + PgCfgModel__DataControllerUtils.Option__delete( + self.m_Data, + optionData, + withLine=False, + ) assert not optionData.IsAlive() assert optionName not in fileData.m_OptionsByName.keys() From 22811a7141909e8f5c5cd0c268edbedfab8f6093 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:21:45 +0300 Subject: [PATCH 28/31] Helper__SetUniqueOptionValueItem__Common is fixed --- src/implementation/v00/configuration_base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 4bf39a1..54e92b7 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -2622,7 +2622,8 @@ def Helper__SetUniqueOptionValueItem__Common( if __class__.Helper__DoesOptionValueAlreadyHaveThisUniqueItem( optionData, optionValueItem ): - return PostgresConfigurationSetOptionValueResult_Base.Create__OptWithThisValueItemAlreadyExist( + # Create__OptWithThisValueItemAlreadyExist + return PostgresConfigurationSetOptionValueResult_Base.Create__OptValueItemWasAlreadyDefined( self, optionData ) From c65aa58dd6b9a7ec833eccbb27d9683d344323bc Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:22:59 +0300 Subject: [PATCH 29/31] Helper__SetUniqueOptionPreparedValueItem__Exact is corrected --- src/implementation/v00/configuration_base.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 54e92b7..39c024f 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -2734,10 +2734,13 @@ def Helper__SetUniqueOptionPreparedValueItem__Exact( assert fileData2.IsAlive() if __class__.Helper__DoesOptionValueAlreadyHaveThisUniqueItem( - optionData2.m_Value, optionPreparedValueItem + optionData2, + optionPreparedValueItem, ): RaiseError.OptionValueItemIsAlreadyDefined( - fileData2.m_Path, optionData2.m_Name, optionPreparedValueItem + fileData2.m_Path, + optionData2.m_Name, + optionPreparedValueItem, ) # [2025-01-07] Postgres does not able to join multiple list From 49a0b317a33e8f084f9507f637eef041349590f5 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:24:02 +0300 Subject: [PATCH 30/31] Helper__SetUniqueOptionValueItem__File is updated (cleanup) --- src/implementation/v00/configuration_base.py | 48 +++++--------------- 1 file changed, 11 insertions(+), 37 deletions(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 39c024f..5198d40 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -2785,55 +2785,32 @@ def Helper__SetUniqueOptionValueItem__File( data = fileData.m_OptionsByName[optionName] assert data is not None - typeOfData = type(data) - - if typeOfData == PgCfgModel__OptionData: + if type(data) is PgCfgModel__OptionData: assert data.IsAlive() assert data.m_Name == optionName assert data.m_Value is not None assert type(data.m_Value) is list if __class__.Helper__DoesOptionValueAlreadyHaveThisUniqueItem( - data, optionValueItem + data, + optionValueItem, ): return PostgresConfigurationSetOptionValueResult_Base.Create__OptValueItemWasAlreadyDefined( - self, data + self, + data, ) # this option value does not have this item return self.Helper__SetUniqueOptionPreparedValueItem__Exact( - data, optionValueItem + data, + optionValueItem, ) - assert typeOfData != PgCfgModel__OptionData - - if typeOfData is list: - assert type(data) is list - assert len(data) > 1 - - for optionData in data: - assert optionData is not None - assert type(optionData) is PgCfgModel__OptionData - assert optionData.IsAlive() - assert optionData.m_Name == optionName - assert optionData.m_Value is not None - assert type(optionData.m_Value) is list - - if __class__.Helper__DoesOptionValueAlreadyHaveThisUniqueItem( - optionData, optionValueItem - ): - return PostgresConfigurationSetOptionValueResult_Base.Create__OptValueItemWasAlreadyDefined( - self, optionData - ) - - # Our optionValueItem is not found - # Postgres does not support a concatention of option lists - BugCheckError.MultipleDefOfOptionIsFound(optionName, len(data)) + assert type(data) is not PgCfgModel__OptionData + assert type(data) is not list - assert typeOfData is not list - - BugCheckError.UnkOptObjectDataType(optionName, typeOfData) + BugCheckError.UnkOptObjectDataType(optionName, type(data)) assert optionName not in fileData.m_OptionsByName.keys() @@ -2842,10 +2819,7 @@ def Helper__SetUniqueOptionValueItem__File( data = self.m_Data.m_AllOptionsByName[optionName] assert data is not None - typeOfData = type(data) - - if typeOfData == PgCfgModel__OptionData: - assert type(data) is PgCfgModel__OptionData + if type(data) is PgCfgModel__OptionData: assert data.IsAlive() assert data.m_Name == optionName assert data.m_Value is not None From 1d0ab2c4086ab9da9565cc7dcc51ee341b9d7e02 Mon Sep 17 00:00:00 2001 From: Dmitry Kovalenko Date: Tue, 7 Jul 2026 02:24:22 +0300 Subject: [PATCH 31/31] formatting --- src/implementation/v00/configuration_base.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/implementation/v00/configuration_base.py b/src/implementation/v00/configuration_base.py index 5198d40..0e11935 100644 --- a/src/implementation/v00/configuration_base.py +++ b/src/implementation/v00/configuration_base.py @@ -3019,7 +3019,8 @@ def Helper__FinalRegSimpleOptionValue__File( # -------------------------------------------------------------------- @staticmethod def Helper__DoesOptionValueAlreadyHaveThisUniqueItem( - optionData: PgCfgModel__OptionData, optionValueItem: typing.Any + optionData: PgCfgModel__OptionData, + optionValueItem: typing.Any, ) -> bool: assert optionData is not None assert optionValueItem is not None