def _get_date_and_granularity(self):

        date = self._get_text_or_none('.//memorix:MEMORIX/field[@name="Datum_afbeelding"]/value')
        if date is not None:
            return parse_date(self.regexen, date)
        else:
            date = self._get_text_or_none('.//item/dcterms:created')
            if date is not None:
                return parse_date(self.regexen, date)
            else:
                date = self._get_text_or_none('.//item/dc:date')
                if date is not None:
                    return parse_date(self.regexen, date)
                else:
                    return None, None
Пример #2
0
 def _get_date_and_granularity(self):
     if self.original_item.find('production.date.start') is not None:
         pds_text = self.original_item.find('production.date.start').text
         # always take the production start date. period does not matter.
         return parse_date(self.regexen, pds_text)
     else:
         return None, None
Пример #3
0
    def _get_date_and_granularity(self):

        date = self._get_text_or_none(
            './/memorix:MEMORIX/field[@name="Datum_afbeelding"]/value')
        if date is not None:
            return parse_date(self.regexen, date)
        else:
            date = self._get_text_or_none('.//item/dcterms:created')
            if date is not None:
                return parse_date(self.regexen, date)
            else:
                date = self._get_text_or_none('.//item/dc:date')
                if date is not None:
                    return parse_date(self.regexen, date)
                else:
                    return None, None
Пример #4
0
 def _get_date_and_granularity(self):
     if self.original_item.find('production.date.start') is not None:
         pds_text = self.original_item.find('production.date.start').text
         # always take the production start date. period does not matter.
         return parse_date(self.regexen, pds_text)
     else:
         return None, None
Пример #5
0
    def get_index_data(self):
        index_data = {}

        # measurements
        fields = ['type', 'value', 'unit']
        dim = zip(
            *[[c.text for c in self.original_item.iter('dimension.' + f)]
              for f in fields])
        index_data['measurements'] = [{
            'type': t,
            'value': v.replace(',', '.'),
            'unit': u
        } for (t, v, u) in dim if t and v and v not in ['?', '...', '....']]

        # acquisition
        date = self.original_item.find('acquisition.date')
        method = self.original_item.find('acquisition.method')
        g, d = 0, None
        if not method == None and method.text:
            method = method.text
        if not date == None and date.text:
            date = date.text.replace(
                "+", "").strip()  # the meaning of '+' is unknown
            if date not in ['?', '??', 'onbekend']:
                g, d = parse_date(self.regexen, date)
        index_data['acquisition'] = {
            'method': method,
            'date': d,
            'date_granularity': g
        }

        # creator roles
        fields = ['creator', 'creator.role']
        # creator.qualifier is never defined
        roles = [[c.text for c in self.original_item.iter(f) if c.text]
                 for f in fields]
        if all(roles):
            index_data['creator_roles'] = [{
                'creator': r[0],
                'role': r[1]
            } for r in zip(*roles)]

        # listed attributes
        attrs = {
            'collections': 'collections',
            'material': 'materials',
            'object_name': 'tags',
            'techniek.vrije.tekst': 'technique',
            'notes': 'notes',
        }
        for attr, index_name in attrs.items():
            val = [
                unicode(c.text) for c in self.original_item.iter(attr)
                if c.text
            ]
            if val:
                index_data[index_name] = val

        return index_data
Пример #6
0
    def get_index_data(self):
        index_data = {}

        # measurements
        fields = ['type', 'value', 'unit']
        dim = zip(*[[c.text for c in self.original_item.iter('dimension.'+f)] for f in fields])
        index_data['measurements'] = [
            {
                'type' : t,
                'value' : v.replace(',','.'),
                'unit' : u
            }
            for (t,v,u) in dim if t and v and v not in ['?','...','....']]

        # acquisition
        date = self.original_item.find('acquisition.date')
        method = self.original_item.find('acquisition.method')
        g,d = 0, None
        if not method == None and method.text:
            method = method.text
        if not date == None and date.text:
            date = date.text.replace("+","").strip() # the meaning of '+' is unknown
            if date not in ['?', '??', 'onbekend']:
                g,d = parse_date(self.regexen, date)
        index_data['acquisition'] = {
            'method' : method,
            'date' : d,
            'date_granularity' : g
        }

        # creator roles
        fields = ['creator', 'creator.role']
        # creator.qualifier is never defined
        roles = [[c.text for c in self.original_item.iter(f) if c.text] for f in fields]
        if all(roles):
            index_data['creator_roles'] = [
                {
                    'creator' : r[0],
                    'role' : r[1]
                }
                for r in zip(*roles)]

        # listed attributes
        attrs = {
            'collections' : 'collections',
            'material' : 'materials',
            'object_name' : 'tags',
            'techniek.vrije.tekst' : 'technique',
            'notes' : 'notes',
        }
        for attr, index_name in attrs.items():
            val = [unicode(c.text) for c in self.original_item.iter(attr) if c.text]
            if val:
                index_data[index_name] = val

        return index_data
Пример #7
0
    def get_index_data(self):
        index_data = {}

        # measurements
        fields = ['type', 'value', 'unit']
        dim = zip(
            *[[c.text for c in self.original_item.iter('dimension.' + f)]
              for f in fields])
        index_data['measurements'] = [{
            'type': t,
            'value': v.replace(',', '.'),
            'unit': u
        } for (t, v, u) in dim if t and v and v not in ['?', '...', '....']]

        # acquisition
        fields = ['date', 'method']
        aq = zip(
            *[[c.text for c in self.original_item.iter('acquisition.' + f)]
              for f in fields])
        aq = [{
            'date': d,
            'date_granularity': g,
            'method': m
        } for (ds, m) in aq if ds or m
              for g, d in [parse_date(self.regexen, ds)]]
        index_data['acquisition'] = aq[0] if aq else None  # singleton

        # listed attributes
        attrs = {
            'collection': 'collections',
            'material': 'materials',
            'production.place': 'production_place',
            'technique': 'technique',
            'object_name': 'tags',
        }
        for attr, index_name in attrs.items():
            val = [
                unicode(c.text) for c in self.original_item.iter(attr)
                if c.text
            ]
            if val:
                index_data[index_name] = val

        if 'production_place' in index_data:  # singleton
            index_data['production_place'] = index_data['production_place'][0]

        return index_data
Пример #8
0
    def get_index_data(self):
        index_data = {}

        # measurements
        fields = ['type', 'value', 'unit']
        dim = zip(*[[c.text for c in self.original_item.iter('dimension.'+f)]
                    for f in fields])
        index_data['measurements'] = [
            {
                'type': t,
                'value': v.replace(',','.'),
                'unit': u
            }
            for (t, v, u) in dim if t and v and v not in ['?', '...', '....']]

        # acquisition
        fields = ['date', 'method']
        aq = zip(*[[c.text for c in self.original_item.iter('acquisition.'+f)]
                   for f in fields])
        aq = [
            {
                'date' : d,
                'date_granularity' : g,
                'method' : m
            }
            for (ds,m) in aq if ds or m for g,d in [parse_date(self.regexen, ds)]]
        index_data['acquisition'] = aq[0] if aq else None  # singleton

        # listed attributes
        attrs = {
            'collection': 'collections',
            'material': 'materials',
            'production.place': 'production_place',
            'technique': 'technique',
            'object_name': 'tags',
        }
        for attr, index_name in attrs.items():
            val = [unicode(c.text) for c in self.original_item.iter(attr) if c.text]
            if val:
                index_data[index_name] = val

        if 'production_place' in index_data: # singleton
            index_data['production_place'] = index_data['production_place'][0]

        return index_data