Skip to content

Commit 8adfb5c

Browse files
committed
Update docstring, comments and todos
- Intermediate commit. Please rebase or ammend. - Discuss the todos and comments, fix issues if any. Update docstring, comments and remove todos. - Need travis ci
1 parent 63825aa commit 8adfb5c

File tree

16 files changed

+77
-50
lines changed

16 files changed

+77
-50
lines changed

waterbutler/core/metadata.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,10 +136,10 @@ def kind(self) -> str:
136136
@property
137137
@abc.abstractmethod
138138
def id(self) -> str:
139-
"""
140-
This property consolidated "path-based" ids and "id-based" ids under a single property. This
141-
makes inter provider move/copies easier. This should be identical to the path object
142-
identifier as this is used to revalidate paths.
139+
""" This property consolidates path-based and id-based file/folder/object identity under a
140+
single one: ``id``, which makes inter provider move/copy actions easier. For path-based
141+
providers, the value is identical to ``path`` property. For id-based providers, it is the
142+
raw identity by definition (``self.raw['id']`` for most providers).
143143
"""
144144
raise NotImplementedError
145145

waterbutler/providers/bitbucket/metadata.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,14 +24,15 @@ def __init__(self, raw, path_obj, owner=None, repo=None):
2424
self.owner = owner
2525
self.repo = repo
2626

27-
@property
28-
def id(self):
29-
return self.build_path()
30-
3127
@property
3228
def provider(self):
3329
return 'bitbucket'
3430

31+
# Bitbucket is a path-based provider and uses the default ``revalidate_path()``.
32+
@property
33+
def id(self):
34+
return self.path
35+
3536
@property
3637
def path(self):
3738
return self.build_path()

waterbutler/providers/box/metadata.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ def __init__(self, raw, path_obj):
77
super().__init__(raw)
88
self._path_obj = path_obj
99

10-
@property
11-
def id(self):
12-
return self.raw['id']
13-
1410
@property
1511
def provider(self):
1612
return 'box'
1713

14+
# Box is an id-based provider and uses its own ``revalidate_path()``.
15+
@property
16+
def id(self):
17+
return self.raw['id']
18+
1819
@property
1920
def materialized_path(self):
2021
return str(self._path_obj)

waterbutler/providers/cloudfiles/metadata.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,18 @@
55

66
class BaseCloudFilesMetadata(metadata.BaseMetadata):
77

8-
@property
9-
def id(self):
10-
return self.path
11-
128
@property
139
def provider(self):
1410
return 'cloudfiles'
1511

12+
# CloudFiles is a path-based provider. However, it never called ``revalidate_path()`` even when
13+
# it was the backend storage provider for OSFStorage. The provider is no longer active until it
14+
# is upgraded to an addon provider for the users.
15+
@property
16+
def id(self):
17+
# TODO: Do we need this ``id`` to be actually set?
18+
return self.path
19+
1620

1721
class CloudFilesFileMetadata(BaseCloudFilesMetadata, metadata.BaseFileMetadata):
1822

waterbutler/providers/dataverse/metadata.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,18 @@
33

44
class BaseDataverseMetadata(metadata.BaseMetadata):
55

6-
@property
7-
def id(self):
8-
return str(self.raw['id'])
9-
106
@property
117
def provider(self):
128
return 'dataverse'
139

10+
# TODO: Should this be in ``DataverseFileMetadata``?
11+
# TODO: Does ``self.raw['id']`` exists for ``DataverseDatasetMetadata``?
12+
# TODO: DataVerse's ``revalidate_path()`` looks very different. Is this an issue?
13+
# DataVerse is an id-based provider and has its own ``revalidate_path()``.
14+
@property
15+
def id(self):
16+
return str(self.raw['id'])
17+
1418

1519
class DataverseFileMetadata(BaseDataverseMetadata, metadata.BaseFileMetadata):
1620

waterbutler/providers/dropbox/metadata.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,16 @@ def __init__(self, raw, folder):
99
super().__init__(raw)
1010
self._folder = folder
1111

12-
@property
13-
def id(self):
14-
return self.raw['id']
15-
1612
@property
1713
def provider(self):
1814
return 'dropbox'
1915

16+
# TODO: Is Dropbox path-based instead of id-based?
17+
# TODO: Dropbox does not have a ``revalidate_path()``, should we use path instead of id?
18+
@property
19+
def id(self):
20+
return self.raw['id']
21+
2022
def build_path(self, path):
2123
# TODO write a test for this
2224
if path.lower().startswith(self._folder.lower()):

waterbutler/providers/figshare/metadata.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ def __init__(self, raw, raw_file=None):
2020
else:
2121
self.raw_file = self.raw['files'][0]
2222

23+
# FigShare are id-based providers and use their own ``revalidate_path()``.
2324
@property
2425
def id(self):
2526
return self.raw_file['id']
@@ -116,6 +117,7 @@ class FigshareFolderMetadata(BaseFigshareMetadata, metadata.BaseFolderMetadata):
116117
considered folders.
117118
"""
118119

120+
# FigShare are id-based providers
119121
@property
120122
def id(self):
121123
return self.raw['id']

waterbutler/providers/filesystem/metadata.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,14 +9,15 @@ def __init__(self, raw, folder):
99
super().__init__(raw)
1010
self._folder = folder
1111

12-
@property
13-
def id(self):
14-
return self.build_path(self.raw['path'])
15-
1612
@property
1713
def provider(self):
1814
return 'filesystem'
1915

16+
# FileSystem is a path-based provider and uses the default ``revalidate_path()``.
17+
@property
18+
def id(self):
19+
return self.path
20+
2021
def build_path(self, path):
2122
# TODO write a test for this
2223
if path.lower().startswith(self._folder.lower()):

waterbutler/providers/github/metadata.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@ def __init__(self, raw, commit=None, ref=None):
1919
self.commit = commit
2020
self.ref = ref
2121

22-
@property
23-
def id(self):
24-
return self.path
25-
2622
@property
2723
def provider(self):
2824
return 'github'
2925

26+
# GitHub is a path-based provider. However, it has its own ``revalidate_path()``.
27+
# TODO: Investigate if this is an issue.
28+
@property
29+
def id(self):
30+
return self.path
31+
3032
@property
3133
def extra(self):
3234
ret = {}

waterbutler/providers/gitlab/metadata.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,14 +15,15 @@ def __init__(self, raw, path):
1515
super().__init__(raw)
1616
self._path_obj = path
1717

18-
@property
19-
def id(self) -> str:
20-
return self.build_path()
21-
2218
@property
2319
def provider(self) -> str:
2420
return 'gitlab'
2521

22+
# GitLab is a path-based provider and uses the default ``revalidate_path()``.
23+
@property
24+
def id(self) -> str:
25+
return self.path
26+
2627
@property
2728
def path(self) -> str:
2829
return self.build_path()

0 commit comments

Comments
 (0)