iolanta 1.2.11__tar.gz → 2.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. {iolanta-1.2.11 → iolanta-2.0.0}/PKG-INFO +1 -2
  2. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/main.py +1 -1
  3. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/facet.py +1 -20
  4. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/page_title.py +1 -1
  5. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/page_switcher.py +1 -1
  6. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_class/facets.py +1 -1
  7. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/widgets.py +2 -2
  8. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_graph/facets.py +1 -1
  9. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_graph_triples.py +1 -1
  10. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_nanopublication/nanopublication_widget.py +1 -1
  11. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_nanopublication/term_list_widget.py +1 -1
  12. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/iolanta.py +2 -3
  13. {iolanta-1.2.11 → iolanta-2.0.0}/pyproject.toml +1 -2
  14. iolanta-1.2.11/iolanta/stack.py +0 -11
  15. {iolanta-1.2.11 → iolanta-2.0.0}/README.md +0 -0
  16. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/__init__.py +0 -0
  17. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/base_plugin.py +0 -0
  18. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/__init__.py +0 -0
  19. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/formatters/__init__.py +0 -0
  20. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/formatters/choose.py +0 -0
  21. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/formatters/csv.py +0 -0
  22. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/formatters/json.py +0 -0
  23. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/formatters/pretty.py +0 -0
  24. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/models.py +0 -0
  25. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cli/pretty_print.py +0 -0
  26. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/context.py +0 -0
  27. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/conversions.py +0 -0
  28. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cyberspace/__init__.py +0 -0
  29. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cyberspace/inference/wikibase-claim.sparql +0 -0
  30. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cyberspace/inference/wikibase-statement-property.sparql +0 -0
  31. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/cyberspace/processor.py +0 -0
  32. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/data/cli.yaml +0 -0
  33. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/data/context.yaml +0 -0
  34. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/data/html.yaml +0 -0
  35. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/data/iolanta.yaml +0 -0
  36. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/data/textual-browser.yaml +0 -0
  37. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/ensure_is_context.py +0 -0
  38. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/entry_points.py +0 -0
  39. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/errors.py +0 -0
  40. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/__init__.py +0 -0
  41. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/cli/__init__.py +0 -0
  42. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/cli/base.py +0 -0
  43. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/cli/default.py +0 -0
  44. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/cli/record.py +0 -0
  45. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/cli/sparql/link.sparql +0 -0
  46. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/cli/sparql/record.sparql +0 -0
  47. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/errors.py +0 -0
  48. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/foaf_person_title/__init__.py +0 -0
  49. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/foaf_person_title/facet.py +0 -0
  50. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/foaf_person_title/sparql/names.sparql +0 -0
  51. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/generic/__init__.py +0 -0
  52. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/generic/bool_literal.py +0 -0
  53. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/generic/date_literal.py +0 -0
  54. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/generic/default.py +0 -0
  55. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/generic/sparql/default.sparql +0 -0
  56. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/html/__init__.py +0 -0
  57. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/html/base.py +0 -0
  58. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/html/code_literal.py +0 -0
  59. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/html/default.py +0 -0
  60. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/icon.py +0 -0
  61. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/locator.py +0 -0
  62. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/qname.py +0 -0
  63. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/__init__.py +0 -0
  64. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/app.py +0 -0
  65. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/facet.py +0 -0
  66. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/history.py +0 -0
  67. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/home.py +0 -0
  68. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/location.py +0 -0
  69. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/models.py +0 -0
  70. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_browser/page.py +0 -0
  71. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_class/__init__.py +0 -0
  72. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_class/sparql/instances.sparql +0 -0
  73. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/__init__.py +0 -0
  74. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/facets.py +0 -0
  75. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/sparql/inverse-properties.sparql +0 -0
  76. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/sparql/label.sparql +0 -0
  77. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/sparql/nodes-for-property.sparql +0 -0
  78. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/sparql/properties.sparql +0 -0
  79. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/tcss/default.tcss +0 -0
  80. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/templates/default.md +0 -0
  81. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_default/triple_uri_ref.py +0 -0
  82. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_graph/__init__.py +0 -0
  83. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_graph/sparql/triples.sparql +0 -0
  84. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_link/__init__.py +0 -0
  85. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_link/facet.py +0 -0
  86. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_nanopublication/__init__.py +0 -0
  87. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_nanopublication/facet.py +0 -0
  88. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_nanopublication/models.py +0 -0
  89. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_nanopublication/term_widget.py +0 -0
  90. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_ontology/__init__.py +0 -0
  91. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_ontology/facets.py +0 -0
  92. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_ontology/sparql/terms.sparql +0 -0
  93. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_ontology/sparql/visualization-vocab.sparql +0 -0
  94. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_provenance/__init__.py +0 -0
  95. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_provenance/facets.py +0 -0
  96. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_provenance/sparql/graphs.sparql +0 -0
  97. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/textual_provenance/sparql/triples.sparql +0 -0
  98. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/title/__init__.py +0 -0
  99. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/title/facets.py +0 -0
  100. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/title/sparql/title.sparql +0 -0
  101. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/wikibase_statement_title/__init__.py +0 -0
  102. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/wikibase_statement_title/facets.py +0 -0
  103. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/facets/wikibase_statement_title/sparql/statement-title.sparql +0 -0
  104. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/__init__.py +0 -0
  105. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/base.py +0 -0
  106. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/data_type_choice.py +0 -0
  107. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/dict_loader.py +0 -0
  108. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/errors.py +0 -0
  109. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/http.py +0 -0
  110. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/local_directory.py +0 -0
  111. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/local_file.py +0 -0
  112. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/loaders/scheme_choice.py +0 -0
  113. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/models.py +0 -0
  114. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/namespaces.py +0 -0
  115. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/node_to_qname.py +0 -0
  116. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parse_quads.py +0 -0
  117. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parsers/__init__.py +0 -0
  118. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parsers/base.py +0 -0
  119. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parsers/dict_parser.py +0 -0
  120. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parsers/errors.py +0 -0
  121. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parsers/json.py +0 -0
  122. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parsers/markdown.py +0 -0
  123. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/parsers/yaml.py +0 -0
  124. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/plugin.py +0 -0
  125. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/reformat_blank_nodes.py +0 -0
  126. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/resolvers/__init__.py +0 -0
  127. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/resolvers/base.py +0 -0
  128. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/resolvers/python_import.py +0 -0
  129. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/shortcuts.py +0 -0
  130. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/widgets/__init__.py +0 -0
  131. {iolanta-1.2.11 → iolanta-2.0.0}/iolanta/widgets/mixin.py +0 -0
  132. {iolanta-1.2.11 → iolanta-2.0.0}/ldflex/__init__.py +0 -0
  133. {iolanta-1.2.11 → iolanta-2.0.0}/ldflex/ldflex.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: iolanta
3
- Version: 1.2.11
3
+ Version: 2.0.0
4
4
  Summary: Semantic Web browser
5
5
  License: MIT
6
6
  Author: Anatoly Scherbakov
@@ -19,7 +19,6 @@ Requires-Dist: diskcache (>=5.6.3)
19
19
  Requires-Dist: documented (>=0.1.1)
20
20
  Requires-Dist: dominate (>=2.6.0)
21
21
  Requires-Dist: funcy (>=2.0)
22
- Requires-Dist: iolanta-tables (>=0.1.7,<0.2.0) ; extra == "all"
23
22
  Requires-Dist: loguru (>=0.7.3)
24
23
  Requires-Dist: more-itertools (>=9.0.0)
25
24
  Requires-Dist: nanopub (>=2.0.1)
@@ -111,7 +111,7 @@ def render_command( # noqa: WPS231, WPS238, WPS210, C901
111
111
  )
112
112
 
113
113
  try:
114
- renderable, stack = iolanta.render(
114
+ renderable = iolanta.render(
115
115
  node=URIRef(node),
116
116
  as_datatype=URIRef(as_datatype),
117
117
  )
@@ -7,7 +7,6 @@ from typing import Any, Generic, Iterable, List, Optional, TypeVar, Union
7
7
  from rdflib.term import BNode, Literal, Node, URIRef
8
8
 
9
9
  from iolanta.models import NotLiteralNode, Triple, TripleTemplate
10
- from iolanta.stack import Stack
11
10
  from ldflex import LDFlex
12
11
  from ldflex.ldflex import QueryResult, SPARQLQueryArgument
13
12
 
@@ -21,7 +20,6 @@ class Facet(Generic[FacetOutput]):
21
20
  iri: NotLiteralNode
22
21
  iolanta: 'iolanta.Iolanta' = field(repr=False)
23
22
  as_datatype: Optional[NotLiteralNode] = None
24
- stack_children: List[Stack] = field(default_factory=list, repr=False)
25
23
 
26
24
  @property
27
25
  def stored_queries_path(self) -> Path:
@@ -58,15 +56,11 @@ class Facet(Generic[FacetOutput]):
58
56
  as_datatype: NotLiteralNode,
59
57
  ) -> Any:
60
58
  """Shortcut to render something via iolanta."""
61
- rendered, stack = self.iolanta.render(
59
+ return self.iolanta.render(
62
60
  node=node,
63
61
  as_datatype=as_datatype,
64
62
  )
65
63
 
66
- self.stack_children.append(stack)
67
-
68
- return rendered
69
-
70
64
  def render_all(
71
65
  self,
72
66
  node: Node,
@@ -92,19 +86,6 @@ class Facet(Generic[FacetOutput]):
92
86
  """Preferred language for Iolanta output."""
93
87
  return self.iolanta.language
94
88
 
95
- @property
96
- def stack(self):
97
- """
98
- Return stack.
99
-
100
- FIXME: I have no idea. Maybe delete this nonsense.
101
- """
102
- return Stack(
103
- node=self.iri,
104
- facet=self,
105
- children=self.stack_children,
106
- )
107
-
108
89
  def find_triple(
109
90
  self,
110
91
  triple: TripleTemplate,
@@ -29,7 +29,7 @@ class PageTitle(IolantaWidgetMixin, Static):
29
29
  return self.iolanta.render(
30
30
  self.iri,
31
31
  as_datatype=DATATYPES.title,
32
- )[0]
32
+ )
33
33
 
34
34
  def on_mount(self):
35
35
  """Initialize rendering of a title."""
@@ -131,7 +131,7 @@ class PageSwitcher(IolantaWidgetMixin, ContentSwitcher): # noqa: WPS214
131
131
  self.iolanta.render,
132
132
  facet,
133
133
  as_datatype=DATATYPES.title,
134
- )[0],
134
+ ),
135
135
  )
136
136
  for facet in other_facets
137
137
  ]
@@ -103,7 +103,7 @@ class InstancesList(ListView): # noqa: WPS214
103
103
  self.app.iolanta.render(
104
104
  instance_item.node,
105
105
  as_datatype=DATATYPES.title,
106
- )[0],
106
+ ),
107
107
  )
108
108
 
109
109
  def stream_instance_items_chunk(
@@ -60,7 +60,7 @@ class PropertyName(Widget, can_focus=True, inherit_bindings=False):
60
60
 
61
61
  def render_title(self):
62
62
  """Render title in a separate thread."""
63
- return self.app.iolanta.render(self.iri, DATATYPES.title)[0]
63
+ return self.app.iolanta.render(self.iri, DATATYPES.title)
64
64
 
65
65
  def render(self) -> RenderResult:
66
66
  """Render node title."""
@@ -202,7 +202,7 @@ class PropertiesContainer(Vertical):
202
202
  widget.renderable = self.app.iolanta.render(
203
203
  widget.iri,
204
204
  as_datatype=DATATYPES.title,
205
- )[0]
205
+ )
206
206
 
207
207
  def on_mount(self):
208
208
  """Initiate rendering in the background."""
@@ -22,7 +22,7 @@ class GraphFacet(Facet[Widget]):
22
22
  triples_view = self.iolanta.render(
23
23
  self.iri,
24
24
  as_datatype=DATATYPES['textual-graph-triples'],
25
- )[0]
25
+ )
26
26
 
27
27
  return VerticalScroll(
28
28
  PageTitle(self.iri, extra=f'({triple_count} triples)'),
@@ -121,7 +121,7 @@ class TriplesView(IolantaWidgetMixin, Vertical):
121
121
  term_view.renderable = self.iolanta.render(
122
122
  term_view.uri,
123
123
  as_datatype=term_view.as_datatype,
124
- )[0]
124
+ )
125
125
 
126
126
 
127
127
  class GraphTriplesFacet(Facet[Widget]):
@@ -61,7 +61,7 @@ class NanopublicationScreen(IolantaWidgetMixin, VerticalScroll):
61
61
  yield self.iolanta.render(
62
62
  row['assertion'],
63
63
  as_datatype=DATATYPES['textual-graph-triples'],
64
- )[0]
64
+ )
65
65
 
66
66
  provenance = []
67
67
  if row.get('author'):
@@ -36,4 +36,4 @@ class TermList(IolantaWidgetMixin, Horizontal):
36
36
  child.renderable = self.iolanta.render(
37
37
  child.uri,
38
38
  as_datatype=child.as_datatype,
39
- )[0]
39
+ )
@@ -45,7 +45,6 @@ from iolanta.parse_quads import parse_quads
45
45
  from iolanta.parsers.yaml import YAML
46
46
  from iolanta.plugin import Plugin
47
47
  from iolanta.resolvers.python_import import PythonImportResolver
48
- from iolanta.stack import Stack
49
48
  from ldflex import LDFlex
50
49
 
51
50
 
@@ -318,7 +317,7 @@ class Iolanta: # noqa: WPS214
318
317
  self,
319
318
  node: Node,
320
319
  as_datatype: NotLiteralNode,
321
- ) -> Tuple[Any, Stack]:
320
+ ) -> Any:
322
321
  """Find an Iolanta facet for a node and render it."""
323
322
  node = normalize_term(node)
324
323
 
@@ -345,7 +344,7 @@ class Iolanta: # noqa: WPS214
345
344
  )
346
345
 
347
346
  try:
348
- return facet.show(), facet.stack
347
+ return facet.show()
349
348
 
350
349
  except Exception as err:
351
350
  raise FacetError(
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "iolanta"
3
- version = "1.2.11"
3
+ version = "2.0.0"
4
4
  description = "Semantic Web browser"
5
5
  authors = ["Anatoly Scherbakov <altaisoft@gmail.com>"]
6
6
  license = "MIT"
@@ -26,7 +26,6 @@ owlrl = ">=6.0.2"
26
26
  funcy = ">=2.0"
27
27
  rich = ">=13.3.1"
28
28
  textual = ">=0.83.0"
29
- iolanta-tables = {version = "^0.1.7", optional = true}
30
29
  yarl = ">=1.9.4"
31
30
  boltons = ">=24.0.0"
32
31
  yaml-ld = ">=1.1.7"
@@ -1,11 +0,0 @@
1
- from dataclasses import dataclass, field
2
- from typing import List
3
-
4
- from rdflib.term import Node
5
-
6
-
7
- @dataclass
8
- class Stack:
9
- node: Node
10
- facet: 'iolanta.facets.facet.Facet'
11
- children: List['Stack'] = field(default_factory=list)
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes