Skip to content

Commit b6677ee

Browse files
author
d.kovalenko
committed
PostgresConfiguration_Std supports external cfgOsOps
1 parent 43a64c0 commit b6677ee

File tree

1 file changed

+27
-1
lines changed

1 file changed

+27
-1
lines changed

src/implementation/v00/configuration_std.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
# //////////////////////////////////////////////////////////////////////////////
22
# Postgres Pro. PostgreSQL Configuration Python Library.
33

4+
from __future__ import annotations
5+
46
from .configuration_base import PostgresConfiguration_Base
57
from .configuration_base import PostgresConfigurationReader_Base
68
from .configuration_base import PostgresConfigurationWriter_Base
@@ -14,6 +16,7 @@
1416
from .configuration_base import PgCfgModel__OptionHandlerToSetValueItem
1517
from .configuration_base import PgCfgModel__OptionHandlerToWrite
1618

19+
from ...os.abstract.configuration_os_ops import ConfigurationOsOps
1720
from ...os.local.configuration_os_ops import SingleInstance as LocalCfgOsOps
1821

1922
# fmt: off
@@ -305,11 +308,34 @@ def __init__(
305308
}
306309

307310
# --------------------------------------------------------------------
308-
def __init__(self, data_dir: str):
311+
def __init__(self, data_dir: str, cfgOsOps: ConfigurationOsOps = None):
309312
assert type(data_dir) == str
313+
assert cfgOsOps is None or isinstance(cfgOsOps, ConfigurationOsOps)
314+
315+
if cfgOsOps is None:
316+
cfgOsOps = LocalCfgOsOps
317+
318+
assert isinstance(cfgOsOps, ConfigurationOsOps)
310319

311320
super().__init__(data_dir, LocalCfgOsOps)
312321

322+
# --------------------------------------------------------------------
323+
@staticmethod
324+
def Create(data_dir: str) -> PostgresConfiguration_Std:
325+
assert type(data_dir) == str
326+
assert isinstance(LocalCfgOsOps, ConfigurationOsOps)
327+
return __class__(data_dir, LocalCfgOsOps)
328+
329+
# --------------------------------------------------------------------
330+
@staticmethod
331+
def CreateWithCfgOsOps(
332+
data_dir: str,
333+
cfgOsOps: ConfigurationOsOps
334+
) -> PostgresConfiguration_Std:
335+
assert type(data_dir) == str
336+
assert isinstance(cfgOsOps, ConfigurationOsOps)
337+
return __class__(data_dir, cfgOsOps)
338+
313339
# PostgresConfiguration_Base interface -------------------------------
314340
def Internal__GetAutoConfFileName(self):
315341
assert type(__class__.C_POSTGRESQL_AUTO_CONF) == str

0 commit comments

Comments
 (0)