Module nafparserpy.layers.attribution
Expand source code
from dataclasses import dataclass
from typing import List
from nafparserpy.layers.utils import create_node, IdrefGetter
from nafparserpy.layers.elements import Span
@dataclass
class StatementSource(IdrefGetter):
"""Represents the source of a statement"""
span: Span
"""span covered by the statement source"""
def node(self):
"""Create etree node from object"""
return create_node('statement_source', None, [self.span], {})
@staticmethod
def object(node):
"""Create object from etree node"""
return StatementSource(Span.object(node.find('span')))
@staticmethod
def create(target_ids):
return StatementSource(Span.create(target_ids))
@dataclass
class StatementTarget(IdrefGetter):
span: Span
"""span covered by the statement target"""
def node(self):
"""Create etree node from object"""
return create_node('statement_target', None, [self.span], {})
@staticmethod
def object(node):
"""Create object from etree node"""
return StatementTarget(Span.object(node.find('span')))
@staticmethod
def create(target_ids):
return StatementTarget(Span.create(target_ids))
@dataclass
class StatementCue(IdrefGetter):
span: Span
"""span covered by the statement cue"""
def node(self):
"""Create etree node from object"""
return create_node('statement_cue', None, [self.span], {})
@staticmethod
def object(node):
"""Create object from etree node"""
return StatementCue(Span.object(node.find('span')))
@staticmethod
def create(target_ids):
return StatementCue(Span.create(target_ids))
@dataclass
class Statement:
"""A statement has an id and one or more targets, sources or cues"""
id: str
targets: List[StatementTarget]
sources: List[StatementSource]
cues: List[StatementCue]
def node(self):
"""Create etree node from object"""
return create_node('statement', None, self.sources + self.targets + self.cues, {})
@staticmethod
def object(node):
"""Create object from etree node"""
return Statement(node.get('id'),
[StatementTarget.object(n) for n in node.findall('statement_target')],
[StatementSource.object(n) for n in node.findall('statement_source')],
[StatementCue.object(n) for n in node.findall('statement_cue')])
def target_spans(self):
return [t.span.target_ids() for t in self.targets]
def source_spans(self):
return [t.span.target_ids() for t in self.sources]
def cue_spans(self):
return [t.span.target_ids() for t in self.cues]
@dataclass
class Attribution:
"""Attribution-layer class """
items: List[Statement]
"""list of attribution statements"""
def node(self):
"""Create etree node from object"""
return create_node('attribution', None, self.items, {})
@staticmethod
def object(node):
"""Create list of `Statement` objects from etree node"""
return [Statement.object(n) for n in node]
Classes
class Attribution (items: List[Statement])
-
Attribution-layer class
Expand source code
@dataclass class Attribution: """Attribution-layer class """ items: List[Statement] """list of attribution statements""" def node(self): """Create etree node from object""" return create_node('attribution', None, self.items, {}) @staticmethod def object(node): """Create list of `Statement` objects from etree node""" return [Statement.object(n) for n in node]
Class variables
var items : List[Statement]
-
list of attribution statements
Static methods
def object(node)
-
Create list of
Statement
objects from etree nodeExpand source code
@staticmethod def object(node): """Create list of `Statement` objects from etree node""" return [Statement.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('attribution', None, self.items, {})
class Statement (id: str, targets: List[StatementTarget], sources: List[StatementSource], cues: List[StatementCue])
-
A statement has an id and one or more targets, sources or cues
Expand source code
@dataclass class Statement: """A statement has an id and one or more targets, sources or cues""" id: str targets: List[StatementTarget] sources: List[StatementSource] cues: List[StatementCue] def node(self): """Create etree node from object""" return create_node('statement', None, self.sources + self.targets + self.cues, {}) @staticmethod def object(node): """Create object from etree node""" return Statement(node.get('id'), [StatementTarget.object(n) for n in node.findall('statement_target')], [StatementSource.object(n) for n in node.findall('statement_source')], [StatementCue.object(n) for n in node.findall('statement_cue')]) def target_spans(self): return [t.span.target_ids() for t in self.targets] def source_spans(self): return [t.span.target_ids() for t in self.sources] def cue_spans(self): return [t.span.target_ids() for t in self.cues]
Class variables
var cues : List[StatementCue]
var id : str
var sources : List[StatementSource]
var targets : List[StatementTarget]
Static methods
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return Statement(node.get('id'), [StatementTarget.object(n) for n in node.findall('statement_target')], [StatementSource.object(n) for n in node.findall('statement_source')], [StatementCue.object(n) for n in node.findall('statement_cue')])
Methods
def cue_spans(self)
-
Expand source code
def cue_spans(self): return [t.span.target_ids() for t in self.cues]
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" return create_node('statement', None, self.sources + self.targets + self.cues, {})
def source_spans(self)
-
Expand source code
def source_spans(self): return [t.span.target_ids() for t in self.sources]
def target_spans(self)
-
Expand source code
def target_spans(self): return [t.span.target_ids() for t in self.targets]
class StatementCue (span: Span)
-
StatementCue(span: nafparserpy.layers.elements.Span)
Expand source code
@dataclass class StatementCue(IdrefGetter): span: Span """span covered by the statement cue""" def node(self): """Create etree node from object""" return create_node('statement_cue', None, [self.span], {}) @staticmethod def object(node): """Create object from etree node""" return StatementCue(Span.object(node.find('span'))) @staticmethod def create(target_ids): return StatementCue(Span.create(target_ids))
Ancestors
Class variables
var span : Span
-
span covered by the statement cue
Static methods
def create(target_ids)
-
Expand source code
@staticmethod def create(target_ids): return StatementCue(Span.create(target_ids))
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return StatementCue(Span.object(node.find('span')))
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" return create_node('statement_cue', None, [self.span], {})
Inherited members
class StatementSource (span: Span)
-
Represents the source of a statement
Expand source code
@dataclass class StatementSource(IdrefGetter): """Represents the source of a statement""" span: Span """span covered by the statement source""" def node(self): """Create etree node from object""" return create_node('statement_source', None, [self.span], {}) @staticmethod def object(node): """Create object from etree node""" return StatementSource(Span.object(node.find('span'))) @staticmethod def create(target_ids): return StatementSource(Span.create(target_ids))
Ancestors
Class variables
var span : Span
-
span covered by the statement source
Static methods
def create(target_ids)
-
Expand source code
@staticmethod def create(target_ids): return StatementSource(Span.create(target_ids))
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return StatementSource(Span.object(node.find('span')))
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" return create_node('statement_source', None, [self.span], {})
Inherited members
class StatementTarget (span: Span)
-
StatementTarget(span: nafparserpy.layers.elements.Span)
Expand source code
@dataclass class StatementTarget(IdrefGetter): span: Span """span covered by the statement target""" def node(self): """Create etree node from object""" return create_node('statement_target', None, [self.span], {}) @staticmethod def object(node): """Create object from etree node""" return StatementTarget(Span.object(node.find('span'))) @staticmethod def create(target_ids): return StatementTarget(Span.create(target_ids))
Ancestors
Class variables
var span : Span
-
span covered by the statement target
Static methods
def create(target_ids)
-
Expand source code
@staticmethod def create(target_ids): return StatementTarget(Span.create(target_ids))
def object(node)
-
Create object from etree node
Expand source code
@staticmethod def object(node): """Create object from etree node""" return StatementTarget(Span.object(node.find('span')))
Methods
def node(self)
-
Create etree node from object
Expand source code
def node(self): """Create etree node from object""" return create_node('statement_target', None, [self.span], {})
Inherited members