Skip to content

Commit e2dfddb

Browse files
ConfigurationFileReader::ReadLine returns typing.Optional[str] (#4)
It returns str or None None - it is EOF.
1 parent 212de33 commit e2dfddb

File tree

4 files changed

+24
-6
lines changed

4 files changed

+24
-6
lines changed

src/implementation/v00/configuration_base.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3308,7 +3308,7 @@ def Helper__LoadFileContent(
33083308
lineData = fileContent.ReadLine()
33093309

33103310
if not lineData:
3311-
# assert lineData is None
3311+
assert lineData is None
33123312
break
33133313

33143314
assert type(lineData) == str

src/os/abstract/configuration_os_ops.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66
from ...core.raise_error import RaiseError
77

88
import datetime
9+
import typing
910

1011

1112
# //////////////////////////////////////////////////////////////////////////////
1213
# class ConfigurationFileReader
1314

1415

1516
class ConfigurationFileReader:
16-
def ReadLine(self) -> str:
17+
def ReadLine(self) -> typing.Optional[str]:
1718
RaiseError.MethodIsNotImplemented(__class__, "ReadLine")
1819

1920

src/os/local/configuration_os_ops.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
import os
99
import io
1010
import datetime
11+
import typing
1112

1213
# //////////////////////////////////////////////////////////////////////////////
1314
# class ConfigurationOsFile
@@ -49,9 +50,16 @@ def IsClosed(self) -> bool:
4950
return self.m_file is None
5051

5152
# --------------------------------------------------------------------
52-
def ReadLine(self) -> str:
53+
def ReadLine(self) -> typing.Optional[str]:
5354
assert isinstance(self.m_file, io.TextIOWrapper)
54-
return self.m_file.readline()
55+
r = self.m_file.readline()
56+
assert type(r) == str # noqa: E721
57+
if not r:
58+
assert r == ""
59+
return None
60+
61+
assert r != ""
62+
return r
5563

5664
# --------------------------------------------------------------------
5765
def Overwrite(self, text: str) -> None:

tests/CfgFileReader.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
from src.os.abstract.configuration_os_ops import ConfigurationFileReader
55

66
import io
7+
import typing
78

89
# //////////////////////////////////////////////////////////////////////////////
910
# class CfgFileReader
@@ -19,9 +20,17 @@ def __init__(self, text: str):
1920
self.m_file = io.StringIO(text)
2021

2122
# --------------------------------------------------------------------
22-
def ReadLine(self) -> str:
23+
def ReadLine(self) -> typing.Optional[str]:
2324
assert type(self.m_file) == io.StringIO
24-
return self.m_file.readline()
25+
26+
r = self.m_file.readline()
27+
assert type(r) == str # noqa: E721
28+
if not r:
29+
assert r == ""
30+
return None
31+
32+
assert r != ""
33+
return r
2534

2635

2736
# //////////////////////////////////////////////////////////////////////////////

0 commit comments

Comments
 (0)