Module nafparserpy.layers.topics

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

from nafparserpy.layers.utils import AttributeGetter, create_node


@dataclass
class Topic(AttributeGetter):
    """Represents a topic"""
    text: str
    attrs: dict = field(default_factory=dict)
    """optional attributes ('source', 'method', 'confidence', 'uri')"""

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

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return Topic(node.text, node.attrib)


@dataclass
class Topics:
    """Topics layer class"""
    items: List[Topic]
    """list of topics"""

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

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

Classes

class Topic (text: str, attrs: dict = <factory>)

Represents a topic

Expand source code
@dataclass
class Topic(AttributeGetter):
    """Represents a topic"""
    text: str
    attrs: dict = field(default_factory=dict)
    """optional attributes ('source', 'method', 'confidence', 'uri')"""

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

    @staticmethod
    def object(node):
        """Create object from etree node"""
        return Topic(node.text, node.attrib)

Ancestors

Class variables

var attrs : dict

optional attributes ('source', 'method', 'confidence', 'uri')

var text : str

Static methods

def object(node)

Create object from etree node

Expand source code
@staticmethod
def object(node):
    """Create object from etree node"""
    return Topic(node.text, 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('topic', self.text, [], self.attrs)

Inherited members

class Topics (items: List[Topic])

Topics layer class

Expand source code
@dataclass
class Topics:
    """Topics layer class"""
    items: List[Topic]
    """list of topics"""

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

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

Class variables

var items : List[Topic]

list of topics

Static methods

def object(node)

Create list of Topic objects from etree node

Expand source code
@staticmethod
def object(node):
    """Create list of `Topic` objects from etree node"""
    return [Topic.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('topics', None, self.items, {})