コード例 #1
0
    def dataset(self, req):
        ds = Dataset('%s-%s-%s' % (
            req.dataset.id, self.obj.__class__.__name__.lower(), self.obj.id))
        cols = self.columns(req)
        ds.fields = tuple(col['name'] if isinstance(col, dict) else col for col in cols)
        ds.table.schema.aboutUrl = url_template(req, 'value', 'ID')

        for col in cols:
            if isinstance(col, dict):
                name = col.pop('name')
                for attr, value in col.items():
                    setattr(ds.table.schema.columns[name], attr, value)

        ds.metadata['dc:bibliographicCitation '] = text_citation(req, self.obj)
        ds.metadata['dc:publisher'] = '%s, %s' % (
            req.dataset.publisher_name, req.dataset.publisher_place)
        ds.metadata['dc:license'] = req.dataset.license
        ds.metadata['dc:issued'] = req.dataset.published.isoformat()
        ds.metadata['dc:title'] = self.obj.name
        ds.metadata['dc:creator'] = self.obj.formatted_contributors()
        ds.metadata['dc:identifier'] = req.resource_url(self.obj)
        ds.metadata['dc:isPartOf'] = req.resource_url(req.dataset)
        ds.metadata['dcat:accessURL'] = req.route_url('download')

        for value in self.value_query():
            refs, sources = self.refs_and_sources(req, value)
            row = self.row(req, value, refs)
            if row:
                ds.sources.add(*sources)
                ds.add_row(row)
        return ds
コード例 #2
0
ファイル: util.py プロジェクト: LinguList/pycldf
def make_dataset(name='test', fields=None, rows=None):
    ds = Dataset(name)
    ds.fields = fields or tuple(f[0] for f in REQUIRED_FIELDS)
    if rows:
        for row in rows:
            ds.add_row(row)
    return ds
コード例 #3
0
ファイル: test_dataset.py プロジェクト: LinguList/pycldf
    def test_write_read(self):
        from pycldf.dataset import Dataset, REQUIRED_FIELDS

        row = ['1', 'abcd1234', 'fid', 'yes']
        ds = Dataset('name')
        ds.fields = tuple(v[0] for v in REQUIRED_FIELDS)
        ds.add_row(row)
        ds.write(self.tmp_path())
        self.assertTrue(self.tmp_path('name.csv').exists())
        ds2 = Dataset.from_file(self.tmp_path('name.csv'))
        self.assertEqual(list(ds2[0].values()), row)
        self.assertEqual(list(ds2['1'].values()), row)
コード例 #4
0
 def add_row(self, row):
     #
     # add segments column, value cleaned from "<>=..."
     #
     row = CldfDatasetBase.add_row(self, row)
     if row:
         for col, validator in self.validators.items():
             if not validator(row):
                 del self._rows[row['ID']]
                 return
     return row