Module nafparserpy.layers.time_expressions

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

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


@dataclass
class Timex3(AttributeGetter, IdrefGetter):
    """Represents a temporal expression """
    id: str
    type: str
    span: Span
    """optional list of spans"""
    attrs: dict = field(default_factory=dict)
    """optional attributes ('beginPoint', 'endPoint', 'quant', 'freq', 'functionInDocument', 'temporalFunction',
    'value', 'valueFromFunction', 'mod', 'anchorTimeID')"""

    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('timex3', None, [self.span], self.attrs)

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return Timex3(node.get('id'),
                      node.get('type'),
                      Span.object(node.find('span')),
                      node.attrib)


@dataclass
class TimeExpressions:
    """TimeExpressions layer class"""
    items: List[Timex3] = field(default_factory=list)
    """list of time expressions"""

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

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

Classes

class TimeExpressions (items: List[Timex3] = <factory>)

TimeExpressions layer class

Expand source code
@dataclass
class TimeExpressions:
    """TimeExpressions layer class"""
    items: List[Timex3] = field(default_factory=list)
    """list of time expressions"""

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

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

Class variables

var items : List[Timex3]

list of time expressions

Static methods

def object(node)

Create list of Timex3 objects from etree node

Expand source code
@staticmethod
def object(node):
    """Create list of `Timex3` objects from etree node"""
    return [Timex3.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('timeExpressions', None, self.items, {})
class Timex3 (id: str, type: str, span: Span, attrs: dict = <factory>)

Represents a temporal expression

Expand source code
@dataclass
class Timex3(AttributeGetter, IdrefGetter):
    """Represents a temporal expression """
    id: str
    type: str
    span: Span
    """optional list of spans"""
    attrs: dict = field(default_factory=dict)
    """optional attributes ('beginPoint', 'endPoint', 'quant', 'freq', 'functionInDocument', 'temporalFunction',
    'value', 'valueFromFunction', 'mod', 'anchorTimeID')"""

    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('timex3', None, [self.span], self.attrs)

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return Timex3(node.get('id'),
                      node.get('type'),
                      Span.object(node.find('span')),
                      node.attrib)

Ancestors

Class variables

var attrs : dict

optional attributes ('beginPoint', 'endPoint', 'quant', 'freq', 'functionInDocument', 'temporalFunction', 'value', 'valueFromFunction', 'mod', 'anchorTimeID')

var id : str
var spanSpan

optional list of spans

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 Timex3(node.get('id'),
                  node.get('type'),
                  Span.object(node.find('span')),
                  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('timex3', None, [self.span], self.attrs)

Inherited members