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()
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()
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()
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()
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
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
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
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)
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)
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()
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()