Skip to content

Commit ebb54b2

Browse files
committed
💚 Fix CI?
1 parent 9fce459 commit ebb54b2

18 files changed

Lines changed: 414 additions & 153 deletions

continuous_delivery_scripts/plugins/basic.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66

77
import logging
88
from pathlib import Path
9-
from typing import Optional
9+
from typing import TYPE_CHECKING, Optional
1010

11-
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1211
from continuous_delivery_scripts.utils.definitions import CommitType
13-
from continuous_delivery_scripts.utils.language_specifics_base import BaseLanguage, get_language_from_file_name
12+
from continuous_delivery_scripts.utils.language_specifics_base import (
13+
BaseLanguage,
14+
get_language_from_file_name,
15+
)
16+
17+
if TYPE_CHECKING:
18+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1419

1520
logger = logging.getLogger(__name__)
1621

@@ -46,6 +51,6 @@ def can_get_project_metadata(self) -> bool:
4651
"""States whether project metadata can be retrieved."""
4752
return False
4853

49-
def get_current_spdx_project(self) -> Optional[SpdxProject]:
54+
def get_current_spdx_project(self) -> Optional["SpdxProject"]:
5055
"""Basic."""
5156
return None

continuous_delivery_scripts/plugins/ci.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,20 @@
66

77
import logging
88
from pathlib import Path
9-
from typing import Optional
9+
from typing import TYPE_CHECKING, Optional
1010

11-
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
12-
from continuous_delivery_scripts.utils.configuration import configuration, ConfigurationVariable
11+
from continuous_delivery_scripts.utils.configuration import (
12+
configuration,
13+
ConfigurationVariable,
14+
)
1315
from continuous_delivery_scripts.utils.definitions import CommitType
14-
from continuous_delivery_scripts.utils.language_specifics_base import BaseLanguage, get_language_from_file_name
16+
from continuous_delivery_scripts.utils.language_specifics_base import (
17+
BaseLanguage,
18+
get_language_from_file_name,
19+
)
20+
21+
if TYPE_CHECKING:
22+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1523

1624
logger = logging.getLogger(__name__)
1725

@@ -53,7 +61,7 @@ def can_get_project_metadata(self) -> bool:
5361
"""States whether project metadata can be retrieved."""
5462
return False
5563

56-
def get_current_spdx_project(self) -> Optional[SpdxProject]:
64+
def get_current_spdx_project(self) -> Optional["SpdxProject"]:
5765
"""Gets current SPDX description."""
5866
# TODO
5967
return None

continuous_delivery_scripts/plugins/docker.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,16 @@
66

77
import logging
88
from pathlib import Path
9-
from typing import Optional
9+
from typing import TYPE_CHECKING, Optional
1010

11-
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1211
from continuous_delivery_scripts.utils.definitions import CommitType
13-
from continuous_delivery_scripts.utils.language_specifics_base import BaseLanguage, get_language_from_file_name
12+
from continuous_delivery_scripts.utils.language_specifics_base import (
13+
BaseLanguage,
14+
get_language_from_file_name,
15+
)
16+
17+
if TYPE_CHECKING:
18+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1419

1520
logger = logging.getLogger(__name__)
1621

@@ -48,7 +53,7 @@ def can_get_project_metadata(self) -> bool:
4853
"""States whether project metadata can be retrieved."""
4954
return False
5055

51-
def get_current_spdx_project(self) -> Optional[SpdxProject]:
56+
def get_current_spdx_project(self) -> Optional["SpdxProject"]:
5257
"""Gets current SPDX description."""
5358
# TODO
5459
return None

continuous_delivery_scripts/plugins/golang.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,13 +8,24 @@
88
import os
99
from pathlib import Path
1010
from subprocess import check_call
11-
from typing import Optional, List, Dict
11+
from typing import TYPE_CHECKING, Optional, List, Dict
1212

13-
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
14-
from continuous_delivery_scripts.utils.configuration import configuration, ConfigurationVariable
13+
from continuous_delivery_scripts.utils.configuration import (
14+
configuration,
15+
ConfigurationVariable,
16+
)
1517
from continuous_delivery_scripts.utils.definitions import CommitType
16-
from continuous_delivery_scripts.utils.git_helpers import LocalProjectRepository, GitWrapper
17-
from continuous_delivery_scripts.utils.language_specifics_base import BaseLanguage, get_language_from_file_name
18+
from continuous_delivery_scripts.utils.git_helpers import (
19+
LocalProjectRepository,
20+
GitWrapper,
21+
)
22+
from continuous_delivery_scripts.utils.language_specifics_base import (
23+
BaseLanguage,
24+
get_language_from_file_name,
25+
)
26+
27+
if TYPE_CHECKING:
28+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1829

1930
logger = logging.getLogger(__name__)
2031

@@ -160,7 +171,7 @@ def can_get_project_metadata(self) -> bool:
160171
"""States whether project metadata can be retrieved."""
161172
return False
162173

163-
def get_current_spdx_project(self) -> Optional[SpdxProject]:
174+
def get_current_spdx_project(self) -> Optional["SpdxProject"]:
164175
"""Gets current SPDX description."""
165176
# TODO
166177
return None
@@ -195,4 +206,8 @@ def _call_goreleaser_release(self, version: str) -> None:
195206
changelogPath = configuration.get_value(ConfigurationVariable.CHANGELOG_FILE_PATH)
196207
env[ENVVAR_GORELEASER_CUSTOMISED_TAG] = tag
197208
env[ENVVAR_GORELEASER_GIT_TOKEN] = configuration.get_value(ConfigurationVariable.GIT_TOKEN)
198-
check_call(_generate_goreleaser_release_command_list(changelogPath), cwd=ROOT_DIR, env=env)
209+
check_call(
210+
_generate_goreleaser_release_command_list(changelogPath),
211+
cwd=ROOT_DIR,
212+
env=env,
213+
)

continuous_delivery_scripts/plugins/noop.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,17 @@
66

77
import logging
88
from pathlib import Path
9-
from typing import Optional, Dict
9+
from typing import TYPE_CHECKING, Optional, Dict
1010

11-
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1211
from continuous_delivery_scripts.utils.definitions import CommitType
1312
from continuous_delivery_scripts.utils.git_helpers import GitWrapper
14-
from continuous_delivery_scripts.utils.language_specifics_base import BaseLanguage, get_language_from_file_name
13+
from continuous_delivery_scripts.utils.language_specifics_base import (
14+
BaseLanguage,
15+
get_language_from_file_name,
16+
)
17+
18+
if TYPE_CHECKING:
19+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
1520

1621
logger = logging.getLogger(__name__)
1722

@@ -48,7 +53,7 @@ def can_get_project_metadata(self) -> bool:
4853
"""States whether project metadata can be retrieved."""
4954
return False
5055

51-
def get_current_spdx_project(self) -> Optional[SpdxProject]:
56+
def get_current_spdx_project(self) -> Optional["SpdxProject"]:
5257
"""No Op."""
5358
return None
5459

continuous_delivery_scripts/plugins/python.py

Lines changed: 32 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,28 @@
99
import sys
1010
from pathlib import Path
1111
from subprocess import check_call
12-
from typing import List, Optional
12+
from typing import TYPE_CHECKING, List, Optional
1313

14-
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
15-
from continuous_delivery_scripts.utils.configuration import configuration, ConfigurationVariable
14+
from continuous_delivery_scripts.utils.configuration import (
15+
configuration,
16+
ConfigurationVariable,
17+
)
1618
from continuous_delivery_scripts.utils.definitions import CommitType
1719
from continuous_delivery_scripts.utils.filesystem_helpers import TemporaryDirectory
1820
from continuous_delivery_scripts.utils.filesystem_helpers import cd
19-
from continuous_delivery_scripts.utils.language_specifics_base import BaseLanguage, get_language_from_file_name
21+
from continuous_delivery_scripts.utils.language_specifics_base import (
22+
BaseLanguage,
23+
get_language_from_file_name,
24+
)
2025
from continuous_delivery_scripts.utils.logging import log_exception
2126
from continuous_delivery_scripts.utils.python.package_helpers import (
2227
CurrentPythonProjectMetadataFetcher,
2328
generate_package_info,
2429
)
2530

31+
if TYPE_CHECKING:
32+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
33+
2634
ENVVAR_TWINE_USERNAME = "TWINE_USERNAME"
2735
ENVVAR_TWINE_PASSWORD = "TWINE_PASSWORD"
2836
OUTPUT_DIRECTORY = "release-dist"
@@ -110,22 +118,34 @@ def _generate_pdoc_in_correct_structure(module_to_document: str, output_director
110118
Pdoc nests its docs output in a folder with the module's name.
111119
This process removes this unwanted folder.
112120
"""
113-
with TemporaryDirectory() as temp_dir:
114-
_call_pdoc(temp_dir, module_to_document)
115-
docs_contents_dir = temp_dir.joinpath(module_to_document)
116-
if docs_contents_dir.exists() and docs_contents_dir.is_dir():
117-
for element in docs_contents_dir.iterdir():
118-
shutil.move(str(element), str(output_directory))
121+
temp_directory = TemporaryDirectory()
122+
if hasattr(temp_directory, "__enter__") and hasattr(temp_directory, "__exit__"):
123+
with temp_directory as temp_dir:
124+
_call_pdoc(temp_dir, module_to_document)
125+
docs_contents_dir = temp_dir.joinpath(module_to_document)
126+
if docs_contents_dir.exists() and docs_contents_dir.is_dir():
127+
for element in docs_contents_dir.iterdir():
128+
shutil.move(str(element), str(output_directory))
129+
return
130+
131+
temp_dir = Path(str(temp_directory))
132+
_call_pdoc(temp_dir, module_to_document)
133+
docs_contents_dir = temp_dir.joinpath(module_to_document)
134+
if docs_contents_dir.exists() and docs_contents_dir.is_dir():
135+
for element in docs_contents_dir.iterdir():
136+
shutil.move(str(element), str(output_directory))
119137

120138

121-
def _get_current_spdx_project() -> SpdxProject:
139+
def _get_current_spdx_project() -> "SpdxProject":
122140
"""Gets information about the current project/package."""
123141
logger.info("Generating package information.")
124142
try:
125143
# Trying to generate the egg for the package but this may fail. If so, continue.
126144
generate_package_info()
127145
except Exception as e:
128146
log_exception(logger, e)
147+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
148+
129149
return SpdxProject(CurrentPythonProjectMetadataFetcher())
130150

131151

@@ -174,6 +194,6 @@ def should_include_spdx_in_package(self) -> bool:
174194
# FIXME Comment out SPDX package as no longer working
175195
return False
176196

177-
def get_current_spdx_project(self) -> Optional[SpdxProject]:
197+
def get_current_spdx_project(self) -> Optional["SpdxProject"]:
178198
"""Gets the current SPDX description."""
179199
return _get_current_spdx_project()

continuous_delivery_scripts/report_third_party_ip.py

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,18 @@
1616
import logging
1717
import sys
1818
from pathlib import Path
19-
from typing import Any, Optional
19+
from typing import TYPE_CHECKING, Any, Optional
2020

2121
from continuous_delivery_scripts.language_specifics import get_language_specifics
22-
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
2322
from continuous_delivery_scripts.utils.logging import set_log_level, log_exception
2423

24+
if TYPE_CHECKING:
25+
from continuous_delivery_scripts.spdx_report.spdx_project import SpdxProject
26+
2527
logger = logging.getLogger(__name__)
2628

2729

28-
def generate_spdx_project_reports(project: SpdxProject, output_directory: Path) -> SpdxProject:
30+
def generate_spdx_project_reports(project: "SpdxProject", output_directory: Path) -> "SpdxProject":
2931
"""Generates all the SPDX reports for a given project."""
3032
logger.info("Generating SPDX report.")
3133
project.generate_tag_value_files(output_directory)
@@ -34,7 +36,7 @@ def generate_spdx_project_reports(project: SpdxProject, output_directory: Path)
3436
return project
3537

3638

37-
def generate_spdx_reports(output_directory: Path) -> Optional[SpdxProject]:
39+
def generate_spdx_reports(output_directory: Path) -> Optional["SpdxProject"]:
3840
"""Generates all the SPDX reports for the current project."""
3941
project = get_language_specifics().get_current_spdx_project()
4042
if not project:
@@ -51,10 +53,20 @@ def convert_to_path(arg: Any) -> Path:
5153
return Path(arg)
5254

5355
parser.add_argument(
54-
"-o", "--output-dir", help="Output directory where the files are generated", required=True, type=convert_to_path
56+
"-o",
57+
"--output-dir",
58+
help="Output directory where the files are generated",
59+
required=True,
60+
type=convert_to_path,
5561
)
5662

57-
parser.add_argument("-v", "--verbose", action="count", default=0, help="Verbosity, by default errors are reported.")
63+
parser.add_argument(
64+
"-v",
65+
"--verbose",
66+
action="count",
67+
default=0,
68+
help="Verbosity, by default errors are reported.",
69+
)
5870
args = parser.parse_args()
5971
set_log_level(args.verbose)
6072

continuous_delivery_scripts/spdx_report/spdx_dependency.py

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,10 @@
44
#
55
"""Definition of dependency SPDX Document."""
66

7-
from spdx.checksum import Algorithm
8-
from spdx.document import ExternalDocumentRef
7+
from typing import TYPE_CHECKING
8+
9+
if TYPE_CHECKING:
10+
from spdx.document import ExternalDocumentRef
911

1012

1113
class DependencySpdxDocumentRef:
@@ -24,7 +26,7 @@ def __init__(self, name: str, namespace: str, checksum: str) -> None:
2426
self._document_namespace = namespace
2527
self._document_checksum = checksum
2628

27-
def generate_external_reference(self) -> ExternalDocumentRef:
29+
def generate_external_reference(self) -> "ExternalDocumentRef":
2830
"""Generates the external SPDX reference.
2931
3032
e.g.
@@ -34,6 +36,9 @@ def generate_external_reference(self) -> ExternalDocumentRef:
3436
Returns:
3537
corresponding reference
3638
"""
39+
from spdx.checksum import Algorithm
40+
from spdx.document import ExternalDocumentRef
41+
3742
return ExternalDocumentRef(
3843
external_document_id=self._document_name,
3944
spdx_document_uri=self._document_namespace,

0 commit comments

Comments
 (0)