-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathfile.py
More file actions
24 lines (19 loc) · 734 Bytes
/
file.py
File metadata and controls
24 lines (19 loc) · 734 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from __future__ import absolute_import
from dataverse.utils import sanitize
class DataverseFile(object):
def __init__(self, dataset, name, file_id=None):
self.dataset = dataset
self.name = sanitize(name)
self.id = file_id
self.download_url = '{0}/access/datafile/{1}'.format(
dataset.connection.native_base_url, self.id
)
edit_media_base = '{0}/edit-media/file/{1}'
self.edit_media_uri = edit_media_base.format(
dataset.connection.sword_base_url, self.id
)
@classmethod
def from_json(cls, dataset, json):
name = json['datafile']['name']
file_id = json['datafile']['id']
return cls(dataset, name, file_id)