@@ -34,6 +34,18 @@ def __lt__(self, requirement: 'Requirement') -> int:
3434 else :
3535 return self .name < requirement .name
3636
37+ def is_complete (self ) -> bool :
38+ return (
39+ self .value is not None and
40+ not self .value .rstrip (b'\r \n ' ).endswith (b'\\ ' )
41+ )
42+
43+ def append_value (self , value : bytes ) -> None :
44+ if self .value is not None :
45+ self .value += value
46+ else :
47+ self .value = value
48+
3749
3850def fix_requirements (f : IO [bytes ]) -> int :
3951 requirements : List [Requirement ] = []
@@ -55,7 +67,7 @@ def fix_requirements(f: IO[bytes]) -> int:
5567 # If the most recent requirement object has a value, then it's
5668 # time to start building the next requirement object.
5769
58- if not len (requirements ) or requirements [- 1 ].value is not None :
70+ if not len (requirements ) or requirements [- 1 ].is_complete () :
5971 requirements .append (Requirement ())
6072
6173 requirement = requirements [- 1 ]
@@ -73,7 +85,7 @@ def fix_requirements(f: IO[bytes]) -> int:
7385 elif line .startswith (b'#' ) or line .strip () == b'' :
7486 requirement .comments .append (line )
7587 else :
76- requirement .value = line
88+ requirement .append_value ( line )
7789
7890 # if a file ends in a comment, preserve it at the end
7991 if requirements [- 1 ].value is None :
0 commit comments