Ejemplo n.º 1
0
    def upload(cls, url, f, filename=None, session=None):
        if session is None:
            session = Session()

        should_close = True

        if isinstance(f, six.string_types):
            if not filename:
                filename = os.path.basename(f)

            f = open(f, 'rb')
            should_close = True

        try:
            if 'csrftoken' not in session.cookies:
                session.get('http://databasin.org')

            r = session.post(
                url, data={'csrfmiddlewaretoken': session.cookies['csrftoken']}, files={'file': (filename, f)}
            )
            raise_for_authorization(r, session.client.username is not None)
            r.raise_for_status()

            o = urlparse(url)
            return cls.get(
                '{0}://{1}{2}'.format(o.scheme, o.netloc, TEMPORARY_FILE_DETAIL_PATH.format(uuid=r.json()['uuid'])),
                session=session,
                lazy=False
            )
        finally:
            if should_close:
                f.close()
Ejemplo n.º 2
0
 def _set_private(self, private):
     r = self._session.patch(self._url, json={'private': private})
     raise_for_authorization(
         r,
         hasattr(self._session, 'client')
         and self._session.client.username is not None)
     r.raise_for_status()
Ejemplo n.º 3
0
 def cancel(self):
     r = self._session.delete(self._url)
     raise_for_authorization(
         r,
         hasattr(self._session, 'client')
         and self._session.client.username is not None)
     r.raise_for_status()
Ejemplo n.º 4
0
    def upload(cls, url, f, filename=None, session=None):
        if session is None:
            session = Session()

        should_close = True

        if isinstance(f, six.string_types):
            if not filename:
                filename = os.path.basename(f)

            f = open(f, 'rb')
            should_close = True

        try:
            if 'csrftoken' not in session.cookies:
                session.get('http://databasin.org')

            r = session.post(
                url,
                data={'csrfmiddlewaretoken': session.cookies['csrftoken']},
                files={'file': (filename, f)})
            raise_for_authorization(r, session.client.username is not None)
            r.raise_for_status()

            o = urlparse(url)
            return cls.get('{0}://{1}{2}'.format(
                o.scheme, o.netloc,
                TEMPORARY_FILE_DETAIL_PATH.format(uuid=r.json()['uuid'])),
                           session=session,
                           lazy=False)
        finally:
            if should_close:
                f.close()
Ejemplo n.º 5
0
 def get_dataset(self, dataset_id):
     try:
         return DatasetResource.get(
             self.build_url(DATASET_DETAIL_PATH.format(id=dataset_id)), session=self._session, lazy=False
         )
     except HTTPException as e:
         raise_for_authorization(e.response, self.username is not None)
         raise
Ejemplo n.º 6
0
 def get_temporary_file(self, uuid):
     try:
         return TemporaryFileResource.get(
             self.build_url(TEMPORARY_FILE_DETAIL_PATH.format(uuid=uuid)), session=self._session, lazy=False
         )
     except HTTPException as e:
         raise_for_authorization(e.response, self.username is not None)
         raise
Ejemplo n.º 7
0
 def get_job(self, job_id):
     try:
         return JobResource.get(
             self.build_url(JOB_DETAIL_PATH.format(id=job_id)), session=self._session, lazy=False
         )
     except HTTPException as e:
         raise_for_authorization(e.response, self.username is not None)
         raise
Ejemplo n.º 8
0
    def create(cls, url, name, job_args={}, session=None):
        if session is None:
            session = Session()

        data = {'job_name': name, 'job_args': job_args}
        r = session.post(url, json=data)
        raise_for_authorization(
            r,
            hasattr(session, 'client') and session.client.username is not None)
        r.raise_for_status()

        return cls.get(r.headers['Location'], session=session)
Ejemplo n.º 9
0
    def create(cls, url, name, job_args={}, session=None):
        if session is None:
            session = Session()

        data = {
            'job_name': name,
            'job_args': job_args
        }
        r = session.post(url, json=data)
        raise_for_authorization(r, hasattr(session, 'client') and session.client.username is not None)
        r.raise_for_status()

        return cls.get(r.headers['Location'], session=session)
Ejemplo n.º 10
0
 def cancel(self):
     r = self._session.delete(self._url)
     raise_for_authorization(r, hasattr(self._session, "client") and self._session.client.username is not None)
     r.raise_for_status()
Ejemplo n.º 11
0
 def _set_private(self, private):
     r = self._session.patch(self._url, json={"private": private})
     raise_for_authorization(r, hasattr(self._session, "client") and self._session.client.username is not None)
     r.raise_for_status()