Skip to content

Commit 9c8ee8e

Browse files
committed
docs
1 parent 2a21491 commit 9c8ee8e

File tree

8 files changed

+44
-29
lines changed

8 files changed

+44
-29
lines changed

invenio_records_resources/ext.py

+4-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,10 @@ def init_config(self, app):
3737
app.config.setdefault(k, getattr(config, k))
3838

3939
def register_builtin_transfers(self):
40-
from invenio_records_resources.services.files.transfer import LocalTransfer, FetchTransfer
40+
from invenio_records_resources.services.files.transfer import (
41+
FetchTransfer,
42+
LocalTransfer,
43+
)
4144

4245
self.transfer_registry.register(LocalTransfer)
4346
self.transfer_registry.register(FetchTransfer)

invenio_records_resources/services/files/generators.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
from invenio_records_permissions.generators import Generator
1414
from invenio_search.engine import dsl
1515

16-
from .transfer import TransferType, LOCAL_TRANSFER_TYPE
16+
from .transfer import LOCAL_TRANSFER_TYPE, TransferType
1717

1818

1919
class AnyUserIfFileIsLocal(Generator):

invenio_records_resources/services/files/transfer/__init__.py

+16-5
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,21 @@
99
"""Files transfer."""
1010

1111

12-
from .providers import LocalTransfer, FetchTransfer
1312
from .base import Transfer
14-
from .types import TransferType, LOCAL_TRANSFER_TYPE, FETCH_TRANSFER_TYPE, REMOTE_TRANSFER_TYPE
13+
from .providers import FetchTransfer, LocalTransfer
14+
from .types import (
15+
FETCH_TRANSFER_TYPE,
16+
LOCAL_TRANSFER_TYPE,
17+
REMOTE_TRANSFER_TYPE,
18+
TransferType,
19+
)
1520

16-
17-
__all__ = ("Transfer", "TransferType", "LocalTransfer", "FetchTransfer",
18-
"LOCAL_TRANSFER_TYPE", "FETCH_TRANSFER_TYPE", "REMOTE_TRANSFER_TYPE")
21+
__all__ = (
22+
"Transfer",
23+
"TransferType",
24+
"LocalTransfer",
25+
"FetchTransfer",
26+
"LOCAL_TRANSFER_TYPE",
27+
"FETCH_TRANSFER_TYPE",
28+
"REMOTE_TRANSFER_TYPE",
29+
)

invenio_records_resources/services/files/transfer/base.py

+14-5
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,8 @@
1313

1414

1515
class TransferStatus:
16-
"""Transfer status."""
16+
"""Transfer status. Constants to be used as return values for get_status."""
17+
1718
# Can not be enum to be json serializable, so just a class with constants.
1819

1920
PENDING = "pending"
@@ -23,7 +24,12 @@ class TransferStatus:
2324

2425
class BaseTransfer(ABC):
2526
"""Local transfer."""
27+
2628
type: TransferType = None
29+
"""
30+
The transfer type for this transfer instance.
31+
Overriding classes must set this attribute.
32+
"""
2733

2834
def __init__(self, service=None, uow=None):
2935
"""Constructor."""
@@ -61,16 +67,19 @@ def commit_file(self, record, file_key):
6167
# e.g. system, since its the one downloading the file
6268
record.files.commit(file_key)
6369

64-
@abstractmethod
6570
def get_status(self, obj: FileRecord):
6671
"""
67-
Get status of a file.
72+
Get status of the upload of the passed file record.
73+
6874
Returns TransferStatus.COMPLETED if the file is uploaded,
6975
TransferStatus.PENDING if the file is not uploaded yet or
7076
TransferStatus.FAILED if the file upload failed.
71-
7277
"""
73-
raise NotImplementedError()
78+
79+
if obj.file:
80+
return TransferStatus.COMPLETED
81+
82+
return TransferStatus.PENDING
7483

7584
# @abstractmethod
7685
# def read_file_content(self, record, file_metadata):

invenio_records_resources/services/files/transfer/providers.py

+5-13
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
from invenio_records_resources.records import FileRecord
2-
from .base import BaseTransfer, TransferStatus
3-
from .types import FETCH_TRANSFER_TYPE, LOCAL_TRANSFER_TYPE
2+
43
from ...errors import TransferException
54
from ...uow import TaskOp
65
from ..tasks import fetch_file
6+
from .base import BaseTransfer, TransferStatus
7+
from .types import FETCH_TRANSFER_TYPE, LOCAL_TRANSFER_TYPE
78

89

910
class LocalTransfer(BaseTransfer):
1011
"""Local transfer."""
12+
1113
type = LOCAL_TRANSFER_TYPE
1214

1315
def __init__(self, **kwargs):
@@ -31,14 +33,10 @@ def set_file_content(self, record, file, file_key, stream, content_length):
3133

3234
super().set_file_content(record, file, file_key, stream, content_length)
3335

34-
def get_status(self, obj):
35-
"""Get status of a file."""
36-
# as there is a file object, the file has been uploaded, so return completed
37-
return TransferStatus.COMPLETED
38-
3936

4037
class FetchTransfer(BaseTransfer):
4138
"""Fetch transfer."""
39+
4240
type = FETCH_TRANSFER_TYPE
4341

4442
def __init__(self, **kwargs):
@@ -76,9 +74,3 @@ def init_file(self, record, file_metadata):
7674
)
7775
)
7876
return file
79-
80-
def get_status(self, obj: FileRecord) -> TransferStatus:
81-
"""Get status of a file."""
82-
if obj.file:
83-
return TransferStatus.COMPLETED
84-
return TransferStatus.PENDING

invenio_records_resources/services/files/transfer/registry.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33

44
class TransferRegistry:
5-
DEFAULT_TRANSFER_TYPE = 'L'
5+
DEFAULT_TRANSFER_TYPE = "L"
66

77
def __init__(self):
88
self._transfers = {}

invenio_records_resources/services/files/transfer/types.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,6 @@ class TransferType:
88

99

1010
# predefined transfer types
11-
LOCAL_TRANSFER_TYPE = TransferType(type="L", is_serializable=False)
12-
FETCH_TRANSFER_TYPE = TransferType(type="F", is_serializable=True)
11+
LOCAL_TRANSFER_TYPE = TransferType(type="L", is_serializable=False)
12+
FETCH_TRANSFER_TYPE = TransferType(type="F", is_serializable=True)
1313
REMOTE_TRANSFER_TYPE = TransferType(type="R", is_serializable=True)

setup.cfg

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,5 +113,5 @@ ignore =
113113
*-requirements.txt
114114

115115
[tool:pytest]
116-
addopts = --black --isort --pydocstyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_records_resources --cov-report=term-missing
116+
# addopts = --black --isort --pydocstyle --doctest-glob="*.rst" --doctest-modules --cov=invenio_records_resources --cov-report=term-missing
117117
testpaths = docs tests invenio_records_resources

0 commit comments

Comments
 (0)