Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
211 lines (126 sloc) 4.36 KB
#!/usr/bin/env python
# encoding=utf8
import sys
import yaml
import os
from yaml.representer import SafeRepresenter
def unicode_representer (dumper, uni):
node = yaml.ScalarNode (tag = u'tag:yaml.org,2002:str', value = uni)
return node
yaml.add_representer(unicode, unicode_representer)
yaml.add_representer(str, SafeRepresenter.represent_str)
class Abstimmung:
data = {}
def parse_abstimmung (self, abstimmungsfile):
with open(abstimmungsfile, 'r') as f:
for data in yaml.load_all (f):
if data:
self.data = data
break
def __init__(self):
self.data = {}
def get_title (self):
return self.data["title"]
def set_title (self, title):
self.data["title"] = title
def get_legislaturperiode (self):
return self.data["abstimmung"]["legislaturperiode"]
def set_legislaturperiode (self, legislaturperiode):
if not "abstimmung" in self.data:
self.data["abstimmung"] = {}
self.data["abstimmung"]["legislaturperiode"] = legislaturperiode
def get_bundestagssitzung (self):
return self.data["abstimmung"]["bundestagssitzung"]
def set_bundestagssitzung (self, bundestagssitzung):
if not "abstimmung" in self.data:
self.data["abstimmung"] = {}
self.data["abstimmung"]["bundestagssitzung"] = bundestagssitzung
def get_abstimmung (self):
return self.data["abstimmung"]["abstimmung"]
def set_abstimmung (self, abstimmung):
if not "abstimmung" in self.data:
self.data["abstimmung"] = {}
self.data["abstimmung"]["abstimmung"] = abstimmung
def get_datum (self):
return self.data["abstimmung"]["datum"]
def set_datum (self, datum):
if not "abstimmung" in self.data:
self.data["abstimmung"] = {}
self.data["abstimmung"]["datum"] = datum
def get_categories (self):
return self.data["categories"]
def set_categories (self, categories):
self.data["categories"] = categories
def add_category (self, category):
if not "categories" in self.data:
self.data["categories"] = []
self.data["categories"].append (category)
def get_tags (self):
return self.data["tags"]
def set_tags (self, tags):
self.data["tags"] = tags
def add_tag (self, tag):
if not "tags" in self.data:
self.data["tags"] = []
self.data["tags"].append (tag)
def get_abstimmungs_ergebnisse (self):
return self.data["ergebnis"]
def set_abstimmungs_ergebnisse (self, tag):
self.data["ergebnis"] = (tag)
#######################################################################
#
# DATA FILES ...
#
# sind Dateien, die Daten zu einer Bestimmten Abstimmung enthalten.
# Jedes "data_file" Objekt ist ein dict und sollte die folgenden
# keys enthalten:
# - titel: Menschenlesbare Beschreibung
# - url: Link zur Datei
#
# get_data_files returns alle bekannten data_files.
def get_data_files (self):
return self.data["data"]
#
# set_data_files ueberschreibt alle data_files mit einem neuen array
def set_data_files (self, data):
self.data["data"] = data
#
# add_data_file fuegt ein neues "data_file" Objekt hinzu
def add_data_file (self, data_file):
if not "data" in self.data:
self.data["data"] = []
self.data["data"].append (data_file)
#
#######################################################################
def get_documents (self):
return self.data["documents"]
def set_documents (self, documents):
self.data["documents"] = documents
def add_document (self, document):
if not "documents" in self.data:
self.data["documents"] = []
self.data["documents"].append (document)
def get_links (self):
return self.data["links"]
def set_links (self, links):
self.data["links"] = links
def add_link (self, links):
if not "links" in self.data:
self.data["links"] = []
self.data["links"].append (links)
def get_preview (self):
return self.data["preview"]
def set_preview (self, preview):
self.data["preview"] = (preview)
def write_abstimmung (self, abstimmungsfile):
self.data["layout"] = "abstimmung"
if not os.path.exists (os.path.dirname (abstimmungsfile)):
os.makedirs (os.path.dirname (abstimmungsfile))
with open(abstimmungsfile, 'w') as f:
yaml.dump (self.data, f, explicit_start=True, default_flow_style=False, encoding='utf-8', allow_unicode=True)
f.write ("---")
if __name__ == "__main__":
curfile = sys.argv[1]
a = Abstimmung ()
neu = a.parse_abstimmung (curfile)
print a.get_title ()