5858from ...core .bugcheck_error import BugCheckError
5959# fmt: on
6060
61+ from ...os .abstract .configuration_os_ops import ConfigurationFileReader
62+ from ...os .abstract .configuration_os_ops import ConfigurationOsFile
6163from ...os .abstract .configuration_os_ops import ConfigurationOsOps
6264
6365import typing
64- import os
65- import io
6666import datetime
6767
6868# //////////////////////////////////////////////////////////////////////////////
@@ -3223,17 +3223,14 @@ def LoadConfigurationFile(
32233223 # load content
32243224 # process content
32253225
3226- with open (currentFileData .m_Path ) as f :
3227- assert isinstance (f , io . TextIOBase )
3226+ with cfg . m_Data . OsOps . OpenFileToRead (currentFileData .m_Path ) as f :
3227+ assert isinstance (f , ConfigurationOsFile )
32283228 currentFile = PostgresConfigurationFactory_Base .GetObject (
32293229 cfg , currentFileData
32303230 )
32313231 __class__ .Helper__LoadFileContent (currentFile , f ) # raise
32323232
3233- fd = f .fileno ()
3234- assert type (fd ) == int
3235-
3236- lastMDate = datetime .datetime .fromtimestamp (os .path .getmtime (fd ))
3233+ lastMDate = f .GetModificationTS ()
32373234 assert type (lastMDate ) == datetime .datetime
32383235
32393236 currentFileData .m_LastModifiedTimestamp = lastMDate
@@ -3289,23 +3286,23 @@ def LoadConfigurationFile(
32893286
32903287 # --------------------------------------------------------------------
32913288 def LoadFileContent (
3292- file : PostgresConfigurationFile_Base , fileContent : io . TextIOBase
3289+ file : PostgresConfigurationFile_Base , fileContent : ConfigurationFileReader
32933290 ) -> None :
32943291 assert isinstance (file , PostgresConfigurationFile_Base )
3295- assert isinstance (fileContent , io . TextIOBase )
3292+ assert isinstance (fileContent , ConfigurationFileReader )
32963293
32973294 return __class__ .Helper__LoadFileContent (file , fileContent )
32983295
32993296 # Helper methods -----------------------------------------------------
33003297 def Helper__LoadFileContent (
3301- file : PostgresConfigurationFile_Base , fileContent : io . TextIOBase
3298+ file : PostgresConfigurationFile_Base , fileContent : ConfigurationFileReader
33023299 ) -> None :
33033300 assert isinstance (file , PostgresConfigurationFile_Base )
3304- assert isinstance (fileContent , io . TextIOBase )
3301+ assert isinstance (fileContent , ConfigurationFileReader )
33053302
33063303 lineReader = ReadUtils__LineReader ()
33073304
3308- while lineData := fileContent .readline ():
3305+ while lineData := fileContent .ReadLine ():
33093306 assert type (lineData ) == str
33103307
33113308 lineReader .SetData (lineData )
@@ -3727,7 +3724,7 @@ def Helper__ProcessLineData__Option__Generic(
37273724class PostgresConfigurationWriterFileCtx_Base :
37283725 FileData : PgCfgModel__FileData
37293726 Content : typing .Optional [str ]
3730- File : typing .Optional [io . TextIOWrapper ]
3727+ File : typing .Optional [ConfigurationOsFile ]
37313728
37323729 # TODO: We can use filelock (it is a separated lock file)
37333730 # to provide an exclusive access to our File
@@ -3891,15 +3888,12 @@ def Helper__DoWork__Stage03__OpenUpdFilesToWrite(
38913888 assert fileCtx .File is None
38923889
38933890 # Let's open an exist file to read and write without truncation
3894- fileCtx .File = open (fileCtx .FileData .m_Path , "r+" ) # raise
3891+ fileCtx .File = ctx . Cfg . m_Data . OsOps . OpenFileToWrite (fileCtx .FileData .m_Path ) # raise
38953892
38963893 assert fileCtx .File is not None
3897- assert isinstance (fileCtx .File , io .TextIOWrapper )
3898-
3899- fd = fileCtx .File .fileno ()
3900- assert type (fd ) == int
3894+ assert isinstance (fileCtx .File , ConfigurationOsFile )
39013895
3902- lastMDate = datetime . datetime . fromtimestamp ( os . path . getmtime ( fd ) )
3896+ lastMDate = fileCtx . File . GetModificationTS ( )
39033897 assert type (lastMDate ) == datetime .datetime
39043898
39053899 if fileCtx .FileData .m_LastModifiedTimestamp != lastMDate :
@@ -3937,10 +3931,10 @@ def Helper__DoWork__Stage04__OpenNewFilesToWrite(
39373931 assert fileCtx .FileData .m_Status == PgCfgModel__FileStatus .IS_NEW
39383932 assert fileCtx .File is None
39393933
3940- fileCtx .File = open (fileCtx .FileData .m_Path , "x" ) # raise
3934+ fileCtx .File = ctx . Cfg . m_Data . OsOps . CreateFile (fileCtx .FileData .m_Path ) # raise
39413935
39423936 assert fileCtx .File is not None
3943- assert isinstance (fileCtx .File , io . TextIOWrapper )
3937+ assert isinstance (fileCtx .File , ConfigurationOsFile )
39443938
39453939 # OK
39463940 continue
@@ -3959,16 +3953,16 @@ def Helper__DoWork__Stage04__OpenNewFilesToWrite(
39593953
39603954 assert fileCtx .FileData .m_Status == PgCfgModel__FileStatus .IS_NEW
39613955 assert fileCtx .File is not None
3962- assert isinstance (fileCtx .File , io . TextIOWrapper )
3956+ assert isinstance (fileCtx .File , ConfigurationOsFile )
39633957
3964- assert not fileCtx .File .closed
3958+ assert not fileCtx .File .IsClosed
39653959
3966- filePath = fileCtx .File .name
3960+ filePath = fileCtx .File .Name
39673961 assert filePath is not None
39683962 assert type (filePath ) == str
39693963 assert filePath == fileCtx .FileData .m_Path
39703964
3971- fileCtx .File .close () # raise
3965+ fileCtx .File .Close () # raise
39723966
39733967 ctx .Cfg .m_Data .OsOps .Remove (filePath ) # raise
39743968 continue
@@ -3992,22 +3986,17 @@ def Helper__DoWork__Stage05__WriteContents(
39923986 assert type (fileCtx .FileData ) == PgCfgModel__FileData
39933987
39943988 assert fileCtx .File is not None
3995- assert isinstance (fileCtx .File , io . TextIOWrapper )
3989+ assert isinstance (fileCtx .File , ConfigurationOsFile )
39963990
39973991 assert fileCtx .Content is not None
39983992 assert type (fileCtx .Content ) == str
39993993
4000- fileCtx .File .write (fileCtx .Content )
4001- fileCtx .File .truncate ()
4002- fileCtx .File .flush ()
4003-
4004- fd = fileCtx .File .fileno ()
4005- assert type (fd ) == int
3994+ fileCtx .File .Overwrite (fileCtx .Content )
40063995
4007- lastMDate = datetime . datetime . fromtimestamp ( os . path . getmtime ( fd ) )
3996+ lastMDate = fileCtx . File . GetModificationTS ( )
40083997 assert type (lastMDate ) == datetime .datetime
40093998
4010- fileCtx .File .close ()
3999+ fileCtx .File .Close ()
40114000
40124001 fileCtx .FileData .m_LastModifiedTimestamp = lastMDate
40134002 fileCtx .FileData .m_Status = PgCfgModel__FileStatus .EXISTS
0 commit comments