|
1 | 1 | # ////////////////////////////////////////////////////////////////////////////// |
2 | 2 | # Postgres Pro. PostgreSQL Configuration Python Library. |
3 | 3 |
|
| 4 | +from __future__ import annotations |
| 5 | + |
4 | 6 | from .configuration_base import PostgresConfiguration_Base |
5 | 7 | from .configuration_base import PostgresConfigurationReader_Base |
6 | 8 | from .configuration_base import PostgresConfigurationWriter_Base |
|
14 | 16 | from .configuration_base import PgCfgModel__OptionHandlerToSetValueItem |
15 | 17 | from .configuration_base import PgCfgModel__OptionHandlerToWrite |
16 | 18 |
|
| 19 | +from ...os.abstract.configuration_os_ops import ConfigurationOsOps |
17 | 20 | from ...os.local.configuration_os_ops import SingleInstance as LocalCfgOsOps |
18 | 21 |
|
19 | 22 | # fmt: off |
@@ -305,11 +308,34 @@ def __init__( |
305 | 308 | } |
306 | 309 |
|
307 | 310 | # -------------------------------------------------------------------- |
308 | | - def __init__(self, data_dir: str): |
| 311 | + def __init__(self, data_dir: str, cfgOsOps: ConfigurationOsOps = None): |
309 | 312 | 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) |
310 | 319 |
|
311 | 320 | super().__init__(data_dir, LocalCfgOsOps) |
312 | 321 |
|
| 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 | + |
313 | 339 | # PostgresConfiguration_Base interface ------------------------------- |
314 | 340 | def Internal__GetAutoConfFileName(self): |
315 | 341 | assert type(__class__.C_POSTGRESQL_AUTO_CONF) == str |
|
0 commit comments