mirror of
https://github.com/aykhans/AzSuicideDataVisualization.git
synced 2025-04-21 18:23:35 +00:00
62 lines
1.4 KiB
Python
62 lines
1.4 KiB
Python
from openpyxl.descriptors.serialisable import Serialisable
|
|
from openpyxl.descriptors import (
|
|
String,
|
|
Sequence,
|
|
)
|
|
from openpyxl.descriptors.excel import Relation
|
|
|
|
|
|
class Hyperlink(Serialisable):
|
|
|
|
tagname = "hyperlink"
|
|
|
|
ref = String()
|
|
location = String(allow_none=True)
|
|
tooltip = String(allow_none=True)
|
|
display = String(allow_none=True)
|
|
id = Relation()
|
|
target = String(allow_none=True)
|
|
|
|
__attrs__ = ("ref", "location", "tooltip", "display", "id")
|
|
|
|
def __init__(self,
|
|
ref=None,
|
|
location=None,
|
|
tooltip=None,
|
|
display=None,
|
|
id=None,
|
|
target=None,
|
|
):
|
|
self.ref = ref
|
|
self.location = location
|
|
self.tooltip = tooltip
|
|
self.display = display
|
|
self.id = id
|
|
self.target = target
|
|
|
|
|
|
class HyperlinkList(Serialisable):
|
|
|
|
tagname = "hyperlinks"
|
|
|
|
hyperlink = Sequence(expected_type=Hyperlink)
|
|
|
|
def __init__(self, hyperlink=()):
|
|
self.hyperlink = hyperlink
|
|
|
|
|
|
def __bool__(self):
|
|
return bool(self.hyperlink)
|
|
|
|
|
|
def __len__(self):
|
|
return len(self.hyperlink)
|
|
|
|
|
|
def append(self, value):
|
|
values = self.hyperlink[:]
|
|
values.append(value)
|
|
if not value.id:
|
|
value.id = "rId{0}".format(len(values))
|
|
self.hyperlink = values
|