Skip to content

Commit 7c36f17

Browse files
authored
Merge pull request #2182 from strictdoc-project/stanislaw/remove_free_text
Code climate: backend/sdoc: free_text: remove unused code
2 parents 989d8e8 + db39d7a commit 7c36f17

File tree

5 files changed

+23
-114
lines changed

5 files changed

+23
-114
lines changed

strictdoc/backend/reqif/p01_sdoc/reqif_to_sdoc_converter.py

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
GrammarElement,
2424
create_default_relations,
2525
)
26-
from strictdoc.backend.sdoc.models.free_text import FreeText
2726
from strictdoc.backend.sdoc.models.node import SDocNode, SDocNodeField
2827
from strictdoc.backend.sdoc.models.reference import (
2928
ParentReqReference,
@@ -208,7 +207,7 @@ def node_converter_lambda(
208207
spec_object_type_identifier_
209208
)
210209
)
211-
if spec_object_type.long_name in ("SECTION", "FREETEXT"):
210+
if spec_object_type.long_name == "SECTION":
212211
continue
213212
grammar_element = (
214213
context.map_spec_object_type_identifier_to_grammar_node_tags[
@@ -604,15 +603,3 @@ def create_requirement_from_spec_object(
604603
if len(parent_refs) > 0:
605604
requirement.relations = parent_refs
606605
return requirement
607-
608-
@staticmethod
609-
def create_free_text_from_spec_object(
610-
spec_object: ReqIFSpecObject,
611-
) -> FreeText:
612-
free_text = unescape(
613-
spec_object.attribute_map[ReqIFChapterField.TEXT].value
614-
)
615-
return FreeText(
616-
parent=None,
617-
parts=[free_text],
618-
)
Lines changed: 2 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,9 @@
1-
"""
2-
@relation(SDOC-SRS-135, scope=file)
3-
"""
4-
51
from typing import Any, List, Optional
62

7-
from strictdoc.backend.sdoc.models.anchor import Anchor
8-
from strictdoc.backend.sdoc.models.inline_link import InlineLink
9-
from strictdoc.helpers.auto_described import auto_described
10-
113

12-
@auto_described
13-
class FreeText:
14-
def __init__(self, parent: Any, parts: List[Any]) -> None:
4+
class FreeTextContainer:
5+
def __init__(self, parts: List[Any]) -> None:
156
assert isinstance(parts, list)
16-
self.parent = parent
177
self.parts = parts
188
self.ng_level = None
199
self.ng_line_start: Optional[int] = None
@@ -22,43 +12,3 @@ def __init__(self, parent: Any, parts: List[Any]) -> None:
2212
self.ng_col_end: Optional[int] = None
2313
self.ng_byte_start: Optional[int] = None
2414
self.ng_byte_end: Optional[int] = None
25-
26-
@property
27-
def parent_or_including_document(self) -> Optional[Any]:
28-
return self.parent.parent_or_including_document
29-
30-
@property
31-
def is_requirement(self) -> bool:
32-
return False
33-
34-
@property
35-
def is_section(self) -> bool:
36-
return False
37-
38-
def get_parts_as_text(self) -> str:
39-
# [LINK: SECTION-CUSTOM-GRAMMARS]
40-
text = ""
41-
for part in self.parts:
42-
if isinstance(part, str):
43-
text += part
44-
elif isinstance(part, InlineLink):
45-
text += "[LINK: "
46-
text += part.link
47-
text += "]"
48-
elif isinstance(part, Anchor):
49-
text += "[ANCHOR: "
50-
text += part.value
51-
if part.has_title:
52-
text += ", "
53-
text += part.title
54-
text += "]"
55-
text += "\n"
56-
text += "\n"
57-
else:
58-
raise NotImplementedError(part)
59-
return text
60-
61-
62-
class FreeTextContainer(FreeText):
63-
def __init__(self, parts: List[Any]) -> None:
64-
super().__init__(None, parts)

strictdoc/core/traceability_index.py

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -416,32 +416,31 @@ def create_section(self, section: SDocSection) -> None:
416416

417417
def create_inline_link(self, new_link: InlineLink):
418418
assert isinstance(new_link, InlineLink)
419+
419420
# InlineLink points to a section, node or to anchor.
420-
# FIXME: De-nest this code by returning early.
421-
if self.graph_database.has_link(
421+
assert self.graph_database.has_link(
422422
link_type=GraphLinkType.UID_TO_NODE, lhs_node=new_link.link
423-
):
424-
node_or_anchor: Union[
425-
SDocDocument, SDocNode, SDocSection, Anchor
426-
] = assert_cast(
423+
)
424+
425+
node_or_anchor: Union[SDocDocument, SDocNode, SDocSection, Anchor] = (
426+
assert_cast(
427427
self.graph_database.get_link_value(
428428
link_type=GraphLinkType.UID_TO_NODE,
429429
lhs_node=new_link.link,
430430
),
431431
(SDocDocument, SDocNode, SDocSection, Anchor),
432432
)
433-
self.graph_database.create_link(
434-
link_type=GraphLinkType.NODE_TO_INCOMING_LINKS,
435-
lhs_node=node_or_anchor.reserved_mid,
436-
rhs_node=new_link,
437-
)
438-
self.graph_database.create_link(
439-
link_type=GraphLinkType.MID_TO_NODE,
440-
lhs_node=new_link.reserved_mid,
441-
rhs_node=new_link,
442-
)
443-
else:
444-
raise NotImplementedError
433+
)
434+
self.graph_database.create_link(
435+
link_type=GraphLinkType.NODE_TO_INCOMING_LINKS,
436+
lhs_node=node_or_anchor.reserved_mid,
437+
rhs_node=new_link,
438+
)
439+
self.graph_database.create_link(
440+
link_type=GraphLinkType.MID_TO_NODE,
441+
lhs_node=new_link.reserved_mid,
442+
rhs_node=new_link,
443+
)
445444

446445
def update_last_updated(self) -> None:
447446
"""

strictdoc/export/json/json_generator.py

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,10 @@
44
from enum import Enum
55
from typing import Any, Dict, List, Optional, Tuple
66

7-
from strictdoc.backend.sdoc.models.anchor import Anchor
87
from strictdoc.backend.sdoc.models.document import SDocDocument
98
from strictdoc.backend.sdoc.models.document_config import DocumentConfig
109
from strictdoc.backend.sdoc.models.document_from_file import DocumentFromFile
1110
from strictdoc.backend.sdoc.models.document_grammar import DocumentGrammar
12-
from strictdoc.backend.sdoc.models.free_text import FreeText
13-
from strictdoc.backend.sdoc.models.inline_link import InlineLink
1411
from strictdoc.backend.sdoc.models.node import SDocCompositeNode, SDocNode
1512
from strictdoc.backend.sdoc.models.reference import (
1613
ChildReqReference,
@@ -310,30 +307,6 @@ def _write_grammar_field_type(cls, grammar_field) -> Dict:
310307
}
311308
return grammar_field_dict
312309

313-
@classmethod
314-
def _write_free_text_content(cls, free_text) -> str:
315-
assert isinstance(free_text, FreeText)
316-
output = ""
317-
318-
for _, part in enumerate(free_text.parts):
319-
if isinstance(part, str):
320-
output += part
321-
elif isinstance(part, InlineLink):
322-
output += "[LINK: "
323-
output += part.link
324-
output += "]"
325-
elif isinstance(part, Anchor):
326-
output += "[ANCHOR: "
327-
output += part.value
328-
if part.has_title:
329-
output += ", "
330-
output += part.title
331-
output += "]"
332-
output += "\n"
333-
else:
334-
raise NotImplementedError(part)
335-
return output
336-
337310
@staticmethod
338311
def _write_requirement_relations(node: SDocNode) -> List:
339312
relations_list = []

tests/unit/strictdoc/backend/sdoc/test_free_text_reader.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
from strictdoc.backend.sdoc.free_text_reader import SDFreeTextReader
55
from strictdoc.backend.sdoc.models.anchor import Anchor
6-
from strictdoc.backend.sdoc.models.free_text import FreeText
6+
from strictdoc.backend.sdoc.models.free_text import FreeTextContainer
77

88

99
def test_001_anchor_without_space():
@@ -118,7 +118,7 @@ def test_014_two_anchors():
118118
reader = SDFreeTextReader()
119119

120120
document = reader.read(free_text_input)
121-
assert isinstance(document, FreeText)
121+
assert isinstance(document, FreeTextContainer)
122122

123123
assert document.parts[0] == "Hello world\n\n"
124124
assert document.parts[1].value == "AD1"
@@ -134,7 +134,7 @@ def test_020_link():
134134
reader = SDFreeTextReader()
135135

136136
document = reader.read(free_text_input)
137-
assert isinstance(document, FreeText)
137+
assert isinstance(document, FreeTextContainer)
138138

139139
assert document.parts[0] == "Hello world "
140140
assert document.parts[1].link == "FOO"

0 commit comments

Comments
 (0)