Module nafparserpy.layers.multiwords
Expand source code
from dataclasses import dataclass, field
from typing import List
from nafparserpy.layers.elements import ExternalReferences, Component
from nafparserpy.layers.utils import AttributeGetter, create_node, ExternalReferenceHolder
@dataclass
class Mw(AttributeGetter, ExternalReferenceHolder):
"""Represents a multiword expression"""
id: str
type: str
components: List[Component]
external_references: ExternalReferences = ExternalReferences([])
attrs: dict = field(default_factory=dict)
def __post_init__(self):
"""Copy compulsory attributes to `attrs` field"""
self.attrs.update({'id': self.id, 'type': self.type})
def node(self):
"""Create etree node from object"""
return create_node('mw', None, self.components + [self.external_references], self.attrs)
@staticmethod
def object(node):
"""Create object from etree node"""
return Mw(node.get('id'),
node.get('type'),
[Component.object(n) for n in node.findall('component')],
ExternalReferences(ExternalReferences.object(node.find('externalReferences'))),
node.attrib)
@dataclass
class Multiwords:
"""Multiwords layer class"""
items: List[Mw]
"""list of multiwords"""
def node(self):
"""Create etree node from object"""
return create_node('multiwords', None, self.items, {})
@staticmethod
def object(node):
"""Create list of `Mw` objects from etree node"""
return [Mw.object(n) for n in node]
Classes
class Multiwords (items: List[Mw])
-
Multiwords layer class
Expand source code
@dataclass class Multiwords: """Multiwords layer class""" items: List[Mw] """list of multiwords""" def node(self): """Create etree node from object""" return create_node('multiwords', None, self.items, {}) @staticmethod def object(node): """Create list of `Mw` objects from etree node""" return [Mw.object(n) for n in node]
Class variables
var items : List[Mw]
-
list of multiwords
Static methods
def object(node)
-
Create list of
Mw
objects from etree nodeExpand source code
@staticmethod def object(node): """Create list of `Mw` objects from etree node""" return [Mw.object(n) for n in node]
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" return create_node('multiwords', None, self.items, {})
class Mw (id: str, type: str, components: List[Component], external_references: ExternalReferences = ExternalReferences(items=[]), attrs: dict = <factory>)
-
Represents a multiword expression
Expand source code
@dataclass class Mw(AttributeGetter, ExternalReferenceHolder): """Represents a multiword expression""" id: str type: str components: List[Component] external_references: ExternalReferences = ExternalReferences([]) attrs: dict = field(default_factory=dict) def __post_init__(self): """Copy compulsory attributes to `attrs` field""" self.attrs.update({'id': self.id, 'type': self.type}) def node(self): """Create etree node from object""" return create_node('mw', None, self.components + [self.external_references], self.attrs) @staticmethod def object(node): """Create object from etree node""" return Mw(node.get('id'), node.get('type'), [Component.object(n) for n in node.findall('component')], ExternalReferences(ExternalReferences.object(node.find('externalReferences'))), node.attrib)
Ancestors
Class variables
var attrs : dict
var components : List[Component]
var external_references : ExternalReferences
var id : str
var type : str
Static methods
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return Mw(node.get('id'), node.get('type'), [Component.object(n) for n in node.findall('component')], ExternalReferences(ExternalReferences.object(node.find('externalReferences'))), node.attrib)
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" return create_node('mw', None, self.components + [self.external_references], self.attrs)
Inherited members