1 # -*- coding: utf-8 -*- |
1 # -*- coding: utf-8 -*- |
2 |
2 |
|
3 from django.core.management import BaseCommand |
|
4 from django.db import reset_queries, transaction |
|
5 from optparse import make_option |
|
6 from p4l.models import Record, Language |
3 from p4l.utils import show_progress, get_code_from_language_uri |
7 from p4l.utils import show_progress, get_code_from_language_uri |
4 from p4l.models import Record, Language |
|
5 from rdflib import Graph, Namespace, BNode, URIRef |
8 from rdflib import Graph, Namespace, BNode, URIRef |
6 from rdflib.plugins.sparql import prepareQuery |
9 from rdflib.plugins.sparql import prepareQuery |
7 from django.core.management import BaseCommand |
10 import logging |
8 from optparse import make_option |
|
9 import xml.etree.cElementTree as ET |
11 import xml.etree.cElementTree as ET |
10 from django.db import reset_queries, transaction |
|
11 import traceback |
|
12 import logging |
|
13 import sys |
|
14 |
12 |
15 logger = logging.getLogger(__name__) |
13 logger = logging.getLogger(__name__) |
16 |
14 |
17 |
15 |
18 RDF = Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#") |
16 RDF = Namespace("http://www.w3.org/1999/02/22-rdf-syntax-ns#") |
295 |
293 |
296 self.add_to_related_collection( |
294 self.add_to_related_collection( |
297 record.volumeIssues, |
295 record.volumeIssues, |
298 graph, |
296 graph, |
299 ['volume', 'number', 'lang'], |
297 ['volume', 'number', 'lang'], |
300 "SELECT ?v ?n (lang(COALESCE(?v, ?n)) as ?lang) WHERE { [ iiep:volumeIssue ?bnode ]. OPTIONAL { ?bnode iiep:volume ?v }. OPTIONAL { ?bnode iiep:number ?v }}", |
298 "SELECT ?v ?n (lang(COALESCE(?v, ?n)) as ?lang) WHERE { [ iiep:volumeIssue ?bnode ]. OPTIONAL { ?bnode iiep:volume ?v }. OPTIONAL { ?bnode iiep:number ?n }}", |
301 convert={'lang':lambda l: self.convert_lang(l, default_language_code)} |
299 convert={'lang':lambda l: self.convert_lang(l, default_language_code)} |
302 ) |
300 ) |
303 |
301 |
304 self.add_to_related_collection( |
302 self.add_to_related_collection( |
305 record.urls, |
303 record.urls, |
333 writer = None |
331 writer = None |
334 errors=[] |
332 errors=[] |
335 |
333 |
336 context = ET.iterparse(records_url, events=("end",)) |
334 context = ET.iterparse(records_url, events=("end",)) |
337 i = 0 |
335 i = 0 |
338 for event,elem in context: |
336 for _,elem in context: |
339 if elem.tag == "{%s}Record" % IIEP: |
337 if elem.tag == "{%s}Record" % IIEP: |
340 i += 1 |
338 i += 1 |
341 writer = show_progress(i, total_records, "Processing record nb %d " % i, 50, writer=writer) |
339 writer = show_progress(i, total_records, "Processing record nb %d " % i, 50, writer=writer) |
342 try: |
340 try: |
343 record_graph = self.get_empty_graph() |
341 record_graph = self.get_empty_graph() |