Skip to content

Commit d6e2199

Browse files
committed
Add flake8 for style checking and improve adherence to PEP8
1 parent e1c24f7 commit d6e2199

File tree

10 files changed

+59
-25
lines changed

10 files changed

+59
-25
lines changed

.travis.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,4 +7,5 @@ python:
77
install:
88
- pip install -U .
99
script:
10+
- flake8 .
1011
- py.test

dataverse/connection.py

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,11 @@ class Connection(object):
1313
def __init__(self, host, token):
1414
self.token = token
1515
self.host = host
16-
self.sd_uri = 'https://{host}/dvn/api/data-deposit/v1.1/swordv2/service-document'.format(host=self.host)
16+
17+
self.base_url = 'https://{0}'.format(self.host)
18+
self.native_base_url = '{0}/api/v1'.format(self.base_url)
19+
self.sword_base_url = '{0}/dvn/api/data-deposit/v1.1/swordv2'.format(self.base_url)
20+
self.sd_uri = '{0}/service-document'.format(self.sword_base_url)
1721
self._service_document = None
1822

1923
self.get_service_document()
@@ -38,7 +42,7 @@ def get_service_document(self, refresh=False):
3842

3943
def create_dataverse(self, alias, name, email, parent=':root'):
4044
resp = requests.post(
41-
'https://{0}/api/dataverses/{1}'.format(self.host, parent),
45+
'{0}/dataverses/{1}'.format(self.native_base_url, parent),
4246
json={
4347
'alias': alias,
4448
'name': name,
@@ -48,26 +52,36 @@ def create_dataverse(self, alias, name, email, parent=':root'):
4852
)
4953

5054
if resp.status_code == 404:
51-
raise exceptions.DataverseNotFoundError('Dataverse {0} was not found.'.format(parent))
55+
raise exceptions.DataverseNotFoundError(
56+
'Dataverse {0} was not found.'.format(parent)
57+
)
5258
elif resp.status_code != 201:
53-
raise exceptions.OperationFailedError('{0} Dataverse could not be created.'.format(name))
59+
raise exceptions.OperationFailedError(
60+
'{0} Dataverse could not be created.'.format(name)
61+
)
5462

5563
self.get_service_document(refresh=True)
5664
return self.get_dataverse(alias)
5765

5866
def delete_dataverse(self, dataverse):
5967

6068
resp = requests.delete(
61-
'https://{0}/api/dataverses/{1}'.format(self.host, dataverse.alias),
69+
'{0}/dataverses/{1}'.format(self.native_base_url, dataverse.alias),
6270
params={'key': self.token},
6371
)
6472

6573
if resp.status_code == 401:
66-
raise exceptions.UnauthorizedError('Delete Dataverse unauthorized.')
74+
raise exceptions.UnauthorizedError(
75+
'Delete Dataverse {0} unauthorized.'.format(dataverse.alias)
76+
)
6777
elif resp.status_code == 404:
68-
raise exceptions.DataverseNotFoundError('Dataverse {0} was not found.'.format(dataverse.alias))
78+
raise exceptions.DataverseNotFoundError(
79+
'Dataverse {0} was not found.'.format(dataverse.alias)
80+
)
6981
elif resp.status_code != 200:
70-
raise exceptions.OperationFailedError('Dataverse {0} could not be deleted.'.format(dataverse.alias))
82+
raise exceptions.OperationFailedError(
83+
'Dataverse {0} could not be deleted.'.format(dataverse.alias)
84+
)
7185

7286
self.get_service_document(refresh=True)
7387

dataverse/dataset.py

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -185,16 +185,18 @@ def get_metadata(self, version='latest', refresh=False):
185185
if not self.dataverse:
186186
raise NoContainerError('This dataset has not been added to a Dataverse.')
187187

188-
url = 'https://{0}/api/datasets/{1}/versions/:{2}'.format(
189-
self.connection.host,
188+
url = '{0}/datasets/{1}/versions/:{2}'.format(
189+
self.connection.native_base_url,
190190
self.id,
191191
version,
192192
)
193193

194194
resp = requests.get(url, params={'key': self.connection.token})
195195

196196
if resp.status_code == 404:
197-
raise VersionJsonNotFoundError('JSON metadata could not be found for this version.')
197+
raise VersionJsonNotFoundError(
198+
'JSON metadata could not be found for this version.'
199+
)
198200
elif resp.status_code != 200:
199201
raise ConnectionError('JSON metadata could not be retrieved.')
200202

@@ -203,7 +205,11 @@ def get_metadata(self, version='latest', refresh=False):
203205

204206
# Update corresponding version metadata if retrieving 'latest'
205207
if version == 'latest':
206-
latest_version = 'latest-published' if metadata['versionState'] == 'RELEASED' else 'draft'
208+
latest_version = (
209+
'latest-published'
210+
if metadata['versionState'] == 'RELEASED'
211+
else 'draft'
212+
)
207213
self._metadata[latest_version] = metadata
208214

209215
return metadata
@@ -214,8 +220,8 @@ def update_metadata(self, metadata):
214220
215221
:param dict metadata: json retrieved from `get_version_metadata`
216222
"""
217-
url = 'https://{0}/api/datasets/{1}/versions/:draft'.format(
218-
self.connection.host,
223+
url = '{0}/datasets/{1}/versions/:draft'.format(
224+
self.connection.native_base_url,
219225
self.id,
220226
)
221227
resp = requests.put(

dataverse/dataverse.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,8 @@ def get_contents(self, refresh=False):
5151
if not refresh and self._contents_json:
5252
return self._contents_json
5353

54-
content_uri = 'https://{0}/api/dataverses/{1}/contents'.format(
55-
self.connection.host, self.alias
54+
content_uri = '{0}/dataverses/{1}/contents'.format(
55+
self.connection.native_base_url, self.alias
5656
)
5757
resp = requests.get(
5858
content_uri,
@@ -76,8 +76,8 @@ def get_collection_info(self, refresh=False):
7676
return self._collection_info
7777

7878
def publish(self):
79-
edit_uri = 'https://{0}/dvn/api/data-deposit/v1.1/swordv2/edit/dataverse/{1}'.format(
80-
self.connection.host, self.alias
79+
edit_uri = '{0}/edit/dataverse/{1}'.format(
80+
self.connection.sword_base_url, self.alias
8181
)
8282
resp = requests.post(
8383
edit_uri,

dataverse/exceptions.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
from __future__ import absolute_import
22

3+
34
class DataverseError(Exception):
45
"""Base exception class for Dataverse-related error."""
56
pass

dataverse/file.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,16 @@ def __init__(self, dataset, name, file_id=None):
99
self.name = sanitize(name)
1010
self.id = file_id
1111

12-
self.download_url = 'http://{0}/api/access/datafile/{1}'.format(
13-
dataset.connection.host, self.id
12+
self.download_url = '{0}/access/datafile/{1}'.format(
13+
dataset.connection.native_base_url, self.id
1414
)
15-
self.edit_media_uri = 'https://{0}/dvn/api/data-deposit/v1.1/swordv2/edit-media/file/{1}'.format(
16-
dataset.connection.host, self.id
15+
edit_media_base = '{0}/edit-media/file/{1}'
16+
self.edit_media_uri = edit_media_base.format(
17+
dataset.connection.sword_base_url, self.id
1718
)
1819

1920
@classmethod
2021
def from_json(cls, dataset, json):
2122
name = json['datafile']['name']
2223
file_id = json['datafile']['id']
23-
return cls(dataset, name, file_id)
24+
return cls(dataset, name, file_id)

dataverse/test/test_dataverse.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,9 @@ def test_connect_unauthorized(self):
120120
def test_connect_unknown_failure(self):
121121
httpretty.register_uri(
122122
httpretty.GET,
123-
'https://{host}/dvn/api/data-deposit/v1.1/swordv2/service-document'.format(host=TEST_HOST),
123+
'https://{host}/dvn/api/data-deposit/v1.1/swordv2/service-document'.format(
124+
host=TEST_HOST
125+
),
124126
status=400,
125127
)
126128

@@ -229,7 +231,8 @@ def test_init_from_xml(self):
229231
tag='rights'
230232
).text
231233
assert title == 'Roasting at Home'
232-
assert publisher == 'Creative Commons CC-BY 3.0 (unported) http://creativecommons.org/licenses/by/3.0/'
234+
assert publisher == 'Creative Commons CC-BY 3.0 (unported) ' \
235+
'http://creativecommons.org/licenses/by/3.0/'
233236

234237

235238
class TestDatasetOperations(DataverseServerTestBase):

readme.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,7 @@ To run tests:
5151
Or, to run a specific test:
5252

5353
$ py.test dataverse/test/test_dataverse.py::TestClassName::test_method_name
54+
55+
To check for style:
56+
57+
$ flake8 .

setup.cfg

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[flake8]
2+
max-line-length = 100
3+
exclude = dataverse/__init__.py,dataverse/settings/__init__.py

setup.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
TESTS_REQUIRE = [
1313
'httpretty>=0.8.8',
1414
'pytest>=2.7.0',
15+
'flake8>=2.4.0',
1516
]
1617

1718

0 commit comments

Comments
 (0)