Example #1
0
 def create(self, req, filename=None, verbose=True):  # pragma: no cover
     meanings = [(p.name, p.id)
                 for p in DBSession.query(Parameter).order_by(Parameter.pk)]
     tmp = mkdtemp()
     path = os.path.join(tmp, 'asjp.tab')
     with UnicodeWriter(f=path, delimiter=binary_type("\t")) as writer:
         writer.writerow([f[0] for f in self.fields] + [m[0] for m in meanings])
         for lang in DBSession.query(Doculect).order_by(Doculect.pk).options(
                 joinedload_all(Language.valuesets, ValueSet.values),
                 joinedload_all(Language.valuesets, ValueSet.parameter)
         ).limit(10000):
             row = [f[1](lang) for f in self.fields]
             vss = {vs.parameter.id: vs for vs in lang.valuesets}
             row.extend([Doculect.format_words(vss.get(m[1])) for m in meanings])
             writer.writerow(row)
     Download.create(self, req, filename=path)
     rmtree(tmp)
Example #2
0
 def create(self, req, filename=None, verbose=True):  # pragma: no cover
     meanings = [(p.name, p.id)
                 for p in DBSession.query(Parameter).order_by(Parameter.pk)]
     tmp = mkdtemp()
     path = os.path.join(tmp, 'asjp.tab')
     with UnicodeWriter(f=path, delimiter=binary_type("\t")) as writer:
         writer.writerow([f[0]
                          for f in self.fields] + [m[0] for m in meanings])
         for lang in DBSession.query(Doculect).order_by(
                 Doculect.pk).options(
                     joinedload_all(Language.valuesets, ValueSet.values),
                     joinedload_all(Language.valuesets,
                                    ValueSet.parameter)).limit(10000):
             row = [f[1](lang) for f in self.fields]
             vss = {vs.parameter.id: vs for vs in lang.valuesets}
             row.extend(
                 [Doculect.format_words(vss.get(m[1])) for m in meanings])
             writer.writerow(row)
     Download.create(self, req, filename=path)
     rmtree(tmp)
Example #3
0
    def test_Download(self):
        from clld.web.adapters.download import Download

        dl = Download(Source, 'clld', ext='x')
        assert dl.asset_spec(Mock()).startswith('clld:')

        class TestDownload(Download):
            _path = mktemp()

            def asset_spec(self, req):
                return self._path

        dl = TestDownload(Source, 'clld', ext='bib')
        abspath = dl.abspath(self.env['request'])
        assert not abspath.exists()
        dl.create(self.env['request'], verbose=False)
        dl.size(self.env['request'])
        dl.label(self.env['request'])
        assert abspath.exists()
        os.remove(abspath.as_posix())

        dl = TestDownload(Source, 'clld', ext='rdf')
        dl.create(self.env['request'], verbose=False)
        os.remove(dl.abspath(self.env['request']).as_posix())
Example #4
0
    def test_Download(self):
        from clld.web.adapters.download import Download

        dl = Download(Source, 'clld', ext='x')
        assert dl.asset_spec(Mock()).startswith('clld:')

        class TestDownload(Download):
            _path = mktemp()

            def asset_spec(self, req):
                return self._path

        dl = TestDownload(Source, 'clld', ext='bib')
        abspath = dl.abspath(self.env['request'])
        assert not abspath.exists()
        dl.create(self.env['request'], verbose=False)
        dl.size(self.env['request'])
        dl.label(self.env['request'])
        assert abspath.exists()
        os.remove(abspath.as_posix())

        dl = TestDownload(Source, 'clld', ext='rdf')
        dl.create(self.env['request'], verbose=False)
        os.remove(dl.abspath(self.env['request']).as_posix())