Module nafparserpy.layers.factualities

Expand source code
from dataclasses import dataclass, field
from typing import List

from nafparserpy.layers.utils import AttributeGetter, IdrefGetter, create_node
from nafparserpy.layers.elements import Span


@dataclass
class FactVal(AttributeGetter):
    """Represents a factuality value"""
    value: str
    resource: str
    attrs: dict = field(default_factory=dict)
    """optional attributes ('confidence', 'source')"""

    def __post_init__(self):
        """Copy compulsory attributes to `attrs` field"""
        self.attrs.update({'value': self.value, 'resource': self.resource})

    def node(self):
        """Create etree node from object"""
        return create_node('factVal', None, [], self.attrs)

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return FactVal(node.get('value'), node.get('resource'), node.attrib)


@dataclass
class Factuality(IdrefGetter):
    """Represents a factuality"""
    id: str
    span: Span
    fact_vals: List[FactVal]

    def node(self):
        """Create etree node from object"""
        return create_node('factuality', None, [self.span] + self.fact_vals, {'id': self.id})

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return Factuality(node.get('id'),
                          Span.object(node.find('span')),
                          [FactVal.object(n) for n in node.findall('factVal')])


@dataclass
class Factualities:
    """Factualities layer class"""
    items: List[Factuality]
    """list of factualities"""

    def node(self):
        """Create etree node from object"""
        return create_node('factualities', None, self.items, {})

    @staticmethod
    def object(node):
        """Create list of `Factuality` objects from etree node"""
        return [Factuality.object(n) for n in node]

Classes

class FactVal (value: str, resource: str, attrs: dict = <factory>)

Represents a factuality value

Expand source code
@dataclass
class FactVal(AttributeGetter):
    """Represents a factuality value"""
    value: str
    resource: str
    attrs: dict = field(default_factory=dict)
    """optional attributes ('confidence', 'source')"""

    def __post_init__(self):
        """Copy compulsory attributes to `attrs` field"""
        self.attrs.update({'value': self.value, 'resource': self.resource})

    def node(self):
        """Create etree node from object"""
        return create_node('factVal', None, [], self.attrs)

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return FactVal(node.get('value'), node.get('resource'), node.attrib)

Ancestors

Class variables

var attrs : dict

optional attributes ('confidence', 'source')

var resource : str
var value : str

Static methods

def object(node)

Create object from etree node

Expand source code
@staticmethod
def object(node):
    """Create object from etree node"""
    return FactVal(node.get('value'), node.get('resource'), 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('factVal', None, [], self.attrs)

Inherited members

class Factualities (items: List[Factuality])

Factualities layer class

Expand source code
@dataclass
class Factualities:
    """Factualities layer class"""
    items: List[Factuality]
    """list of factualities"""

    def node(self):
        """Create etree node from object"""
        return create_node('factualities', None, self.items, {})

    @staticmethod
    def object(node):
        """Create list of `Factuality` objects from etree node"""
        return [Factuality.object(n) for n in node]

Class variables

var items : List[Factuality]

list of factualities

Static methods

def object(node)

Create list of Factuality objects from etree node

Expand source code
@staticmethod
def object(node):
    """Create list of `Factuality` objects from etree node"""
    return [Factuality.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('factualities', None, self.items, {})
class Factuality (id: str, span: Span, fact_vals: List[FactVal])

Represents a factuality

Expand source code
@dataclass
class Factuality(IdrefGetter):
    """Represents a factuality"""
    id: str
    span: Span
    fact_vals: List[FactVal]

    def node(self):
        """Create etree node from object"""
        return create_node('factuality', None, [self.span] + self.fact_vals, {'id': self.id})

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return Factuality(node.get('id'),
                          Span.object(node.find('span')),
                          [FactVal.object(n) for n in node.findall('factVal')])

Ancestors

Class variables

var fact_vals : List[FactVal]
var id : str
var spanSpan

Static methods

def object(node)

Create object from etree node

Expand source code
@staticmethod
def object(node):
    """Create object from etree node"""
    return Factuality(node.get('id'),
                      Span.object(node.find('span')),
                      [FactVal.object(n) for n in node.findall('factVal')])

Methods

def node(self)

Create etree node from object

Expand source code
def node(self):
    """Create etree node from object"""
    return create_node('factuality', None, [self.span] + self.fact_vals, {'id': self.id})

Inherited members