added parent files
This commit is contained in:
81
_parent_files/load_articles.py
Normal file
81
_parent_files/load_articles.py
Normal file
@@ -0,0 +1,81 @@
|
||||
import sys
|
||||
import json
|
||||
from src.articles.model import Article, FullArticleSchema
|
||||
from src.sections.model import Section, FullSectionSchema
|
||||
from src.organizations.model import Organization, FullOrganizationSchema
|
||||
from src.database import db_session
|
||||
from sqlalchemy.exc import IntegrityError
|
||||
|
||||
if len(sys.argv) <= 1:
|
||||
raise Error("Kein Zieldateiname angegeben")
|
||||
|
||||
|
||||
def load_article(a):
|
||||
return Article.deserialize(a[0])
|
||||
|
||||
def load_section(s):
|
||||
return Section.deserialize(s[0])
|
||||
|
||||
def load_organization(s):
|
||||
return Organization.deserialize(s[0])
|
||||
|
||||
|
||||
file = open(sys.argv[1], "r")
|
||||
|
||||
data=json.load(file)
|
||||
articles=None
|
||||
sections=None
|
||||
organizations=None
|
||||
|
||||
if isinstance(data,dict):
|
||||
if data.has_key("articles"):
|
||||
articles=data["articles"]
|
||||
if data.has_key("sections"):
|
||||
sections=data["sections"]
|
||||
if data.has_key("organizations"):
|
||||
organizations=data["organizations"]
|
||||
|
||||
else:
|
||||
articles=data
|
||||
|
||||
|
||||
articles= map (load_article, articles)
|
||||
if sections is not None:
|
||||
sections=map(load_section, sections)
|
||||
if organizations is not None:
|
||||
organizations=map(load_organization,organizations)
|
||||
|
||||
|
||||
if organizations is not None:
|
||||
for s in organizations:
|
||||
if not isinstance(s,Organization):
|
||||
print type(s)
|
||||
try:
|
||||
db_session.add(s)
|
||||
db_session.commit()
|
||||
except IntegrityError:
|
||||
db_session.rollback()
|
||||
|
||||
|
||||
if sections is not None:
|
||||
for s in sections:
|
||||
if not isinstance(s,Section):
|
||||
print type(s)
|
||||
try:
|
||||
db_session.add(s)
|
||||
db_session.commit()
|
||||
except IntegrityError:
|
||||
db_session.rollback()
|
||||
|
||||
|
||||
for a in articles:
|
||||
try:
|
||||
db_session.add(a)
|
||||
db_session.commit()
|
||||
except IntegrityError:
|
||||
db_session.rollback()
|
||||
finally:
|
||||
db_session.rollback()
|
||||
|
||||
|
||||
file.close()
|
||||
Reference in New Issue
Block a user