Skip to content

Commit 5e0586b

Browse files
committed
add missing docstrings to modified functions
1 parent a7d1d50 commit 5e0586b

File tree

3 files changed

+19
-8
lines changed

3 files changed

+19
-8
lines changed

cwltool/cwlprov/provenance_profile.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@
5050
CWLArtifact = TypedDict("CWLArtifact", {"@id": str})
5151

5252

53-
class CWLDirectoryArtifact(CWLArtifact, CWLDirectoryType):
53+
class _CWLDirectoryArtifact(CWLArtifact, CWLDirectoryType):
5454
pass
5555

5656

57-
class CWLFileArtifact(CWLArtifact, CWLFileType):
57+
class _CWLFileArtifact(CWLArtifact, CWLFileType):
5858
pass
5959

6060

@@ -260,7 +260,7 @@ def record_process_end(
260260
self.generate_output_prov(outputs, process_run_id, process_name)
261261
self.document.wasEndedBy(process_run_id, None, self.workflow_run_uri, when)
262262

263-
def declare_file(self, value: CWLFileArtifact) -> tuple[ProvEntity, ProvEntity, str]:
263+
def declare_file(self, value: _CWLFileArtifact) -> tuple[ProvEntity, ProvEntity, str]:
264264
"""Construct a FileEntity for the given CWL File object."""
265265
if not is_file(value):
266266
raise ValueError("Must have class:File: %s" % value)
@@ -315,9 +315,9 @@ def declare_file(self, value: CWLFileArtifact) -> tuple[ProvEntity, ProvEntity,
315315
for sec in cast(MutableSequence[CWLObjectType], value.get("secondaryFiles", [])):
316316
# TODO: Record these in a specializationOf entity with UUID?
317317
if is_file(sec):
318-
(sec_entity, _, _) = self.declare_file(cast(CWLFileArtifact, sec))
318+
(sec_entity, _, _) = self.declare_file(cast(_CWLFileArtifact, sec))
319319
elif is_directory(sec):
320-
sec_entity = self.declare_directory(cast(CWLDirectoryArtifact, sec))
320+
sec_entity = self.declare_directory(cast(_CWLDirectoryArtifact, sec))
321321
else:
322322
raise ValueError(f"Got unexpected secondaryFiles value: {sec}")
323323
# We don't know how/when/where the secondary file was generated,
@@ -332,7 +332,7 @@ def declare_file(self, value: CWLFileArtifact) -> tuple[ProvEntity, ProvEntity,
332332

333333
return file_entity, entity, checksum
334334

335-
def declare_directory(self, value: CWLDirectoryArtifact) -> ProvEntity:
335+
def declare_directory(self, value: _CWLDirectoryArtifact) -> ProvEntity:
336336
"""Register any nested files/directories."""
337337
# FIXME: Calculate a hash-like identifier for directory
338338
# so we get same value if it's the same filenames/hashes
@@ -492,11 +492,11 @@ def declare_artefact(self, value: Any) -> ProvEntity:
492492

493493
# Base case - we found a File we need to update
494494
case {"class": "File"}:
495-
entity = self.declare_file(cast(CWLFileArtifact, value))[0]
495+
entity = self.declare_file(cast(_CWLFileArtifact, value))[0]
496496
value["@id"] = entity.identifier.uri
497497
return entity
498498
case {"class": "Directory"}:
499-
entity = self.declare_directory(cast(CWLDirectoryArtifact, value))
499+
entity = self.declare_directory(cast(_CWLDirectoryArtifact, value))
500500
value["@id"] = entity.identifier.uri
501501
return entity
502502
case {**rest}:

cwltool/process.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1138,6 +1138,7 @@ def uniquename(stem: str, names: set[str] | None = None) -> str:
11381138

11391139

11401140
def nestdir(base: str, deps: CWLFileType | CWLDirectoryType) -> CWLFileType | CWLDirectoryType:
1141+
"""Add intermediate directory objects to preserve the relative layout."""
11411142
dirname = os.path.dirname(base) + "/"
11421143
subid = deps["location"]
11431144
if subid.startswith(dirname):

cwltool/utils.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -251,6 +251,7 @@ def adjustDirObjs(rec: Any, op: Union[Callable[..., Any], "partial[Any]"]) -> No
251251
def dedup(
252252
listing: MutableSequence[CWLFileType | CWLDirectoryType],
253253
) -> MutableSequence[CWLFileType | CWLDirectoryType]:
254+
"""Remove duplicate entries from a CWL Directory 'listing'."""
254255
marksub = set()
255256

256257
def mark(d: dict[str, str]) -> None:
@@ -403,6 +404,15 @@ def ensure_non_writable(path: str) -> None:
403404
def normalizeFilesDirs(
404405
job: Sequence[CWLObjectType | CWLOutputType | None] | CWLObjectType | CWLOutputType | None,
405406
) -> None:
407+
"""
408+
Add missing `location`s and `basename`s to CWL File and Directory objects.
409+
410+
:raises ValidationException: if anonymous objects are missing required fields,
411+
or if the location ends in '/' but the object isn't
412+
a directory
413+
414+
"""
415+
406416
def addLocation(d: CWLFileType | CWLDirectoryType) -> None:
407417
if "location" not in d:
408418
if is_file(d) and ("contents" not in d):

0 commit comments

Comments
 (0)