Skip to content

Commit 46f8815

Browse files
committed
refactor(settings): Normalize setttings to match pydantic
- Refactored config naming to settings to match pydantic settings naming structure. - Enabled .env / .env.prod evaluation capability . - Add ORTHW_CONFIG_DIR and ORTHW_CONFIG_FILE variables that can be evaluated in runtime bypassing as environment file or inside .env. The variables are case sensitive. Signed-off-by: Helio Chissini de Castro <heliocastro@gmail.com>
1 parent 4ec9782 commit 46f8815

40 files changed

+183
-198
lines changed

pyproject.toml

-23
Original file line numberDiff line numberDiff line change
@@ -70,29 +70,6 @@
7070
types-requests = "^2.32.0.20240622"
7171
twine = "^5.1.1"
7272

73-
[tool.black]
74-
target-version = ["py310"]
75-
line-length = 120
76-
include = '\.pyi?$'
77-
exclude = '''
78-
(
79-
/(
80-
\.eggs # exclude a few common directories in the
81-
| \.git # root of the project
82-
| \.hg
83-
| \.mypy_cache
84-
| \.tox
85-
| \.venv
86-
| _build
87-
| buck-out
88-
| build
89-
| dist
90-
)/
91-
| foo.py # also separately exclude a file named foo.py in
92-
# the root of the project
93-
)
94-
'''
95-
9673
[tool.pytest.ini_options]
9774
addopts = ["--import-mode=importlib"]
9875
log_cli = true

src/orthw/__init__.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
# License-Filename: LICENSE
1717
from __future__ import annotations
1818

19-
from orthw.utils.config import Config
19+
from orthw.utils.settings import Settings
2020

2121
"""Make config object global
2222
"""
23-
config: Config = Config()
23+
settings: Settings = Settings()

src/orthw/commands/analyze.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import click
2222
from docker.models.containers import Container
2323

24-
from orthw import config
24+
from orthw import settings
2525
from orthw.utils import logging
2626
from orthw.utils.cmdgroups import command_group
2727
from orthw.utils.process import run
@@ -56,9 +56,9 @@ def analyze(
5656
]
5757

5858
if not docker:
59-
if config.ort_config_package_curations_dir.exists():
59+
if settings.ort_config_package_curations_dir.exists():
6060
args.append("--package-curations-dir")
61-
args.append(config.ort_config_package_curations_dir.as_posix())
61+
args.append(settings.ort_config_package_curations_dir.as_posix())
6262
else:
6363
logging.warning("No curations folder available. Running without curations.")
6464

src/orthw/commands/clean.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -16,25 +16,25 @@
1616
# License-Filename: LICENSE
1717
from __future__ import annotations
1818

19-
from orthw import config
19+
from orthw import settings
2020
from orthw.utils import logging
2121
from orthw.utils.cmdgroups import command_group
2222

2323

2424
def clean() -> None:
2525
try:
26-
dot_dir = config.configdir
26+
dot_dir = settings.configdir
2727
if dot_dir and dot_dir.is_dir():
2828
logging.info(f"Removed directory {dot_dir}")
2929
except OSError:
3030
logging.error(f"Removing directory {dot_dir}")
3131
try:
32-
config_file = config.repository_configuration_file
32+
config_file = settings.repository_configuration_file
3333
if config_file and config_file.is_file():
3434
config_file.unlink(missing_ok=True)
3535
logging.info(f"Removed file {config_file}")
3636
except OSError:
37-
logging.error(f"Error removing directory {config.repository_configuration_file}")
37+
logging.error(f"Error removing directory {settings.repository_configuration_file}")
3838

3939

4040
@command_group.command(

src/orthw/commands/copyrights.py

+6-6
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import click
2222

23-
from orthw import config
23+
from orthw import settings
2424
from orthw.utils import logging
2525
from orthw.utils.cmdgroups import command_group
2626
from orthw.utils.process import run
@@ -36,9 +36,9 @@ def copyrights(package_id: str = "") -> None:
3636

3737
require_initialized()
3838

39-
ort_config_copyright_garbage_file: Path = config.ort_config_copyright_garbage_file
40-
ort_config_package_configuration_dir: Path = config.ort_config_package_configuration_dir
41-
scan_result_file: Path = config.scan_result_file
39+
ort_config_copyright_garbage_file: Path = settings.ort_config_copyright_garbage_file
40+
ort_config_package_configuration_dir: Path = settings.ort_config_package_configuration_dir
41+
scan_result_file: Path = settings.scan_result_file
4242

4343
if not scan_result_file or not ort_config_package_configuration_dir or not ort_config_copyright_garbage_file:
4444
logging.error("Invalid configuration.")
@@ -57,10 +57,10 @@ def copyrights(package_id: str = "") -> None:
5757
ort_config_package_configuration_dir.as_posix(),
5858
]
5959

60-
run(args=args, output_file=config.copyrights_file)
60+
run(args=args, output_file=settings.copyrights_file)
6161

6262
args += ["--show-raw-statements"]
63-
run(args=args, output_file=config.copyrights_debug_file)
63+
run(args=args, output_file=settings.copyrights_debug_file)
6464

6565

6666
@command_group.command(

src/orthw/commands/evaluate.py

+7-7
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import click
2222
from docker.models.containers import Container
2323

24-
from orthw import config
24+
from orthw import settings
2525
from orthw.utils import logging
2626
from orthw.utils.cmdgroups import command_group
2727
from orthw.utils.process import run
@@ -48,21 +48,21 @@ def evaluate(
4848
"ort",
4949
"evaluate",
5050
"--copyright-garbage-file",
51-
config.ort_config_copyright_garbage_file.as_posix(),
51+
settings.ort_config_copyright_garbage_file.as_posix(),
5252
"--package-curations-dir",
53-
config.ort_config_package_curations_dir.as_posix(),
53+
settings.ort_config_package_curations_dir.as_posix(),
5454
"--output-formats",
5555
format_,
5656
"--ort-file",
5757
ort_file.name,
5858
"--repository-configuration-file",
59-
config.repository_configuration_file.as_posix(),
59+
settings.repository_configuration_file.as_posix(),
6060
"--rules-file",
61-
config.ort_config_rules_file.as_posix(),
61+
settings.ort_config_rules_file.as_posix(),
6262
"--license-classifications-file",
63-
config.ort_config_license_classifications_file.as_posix(),
63+
settings.ort_config_license_classifications_file.as_posix(),
6464
"--package-configuration-dir",
65-
config.ort_config_package_configuration_dir.as_posix(),
65+
settings.ort_config_package_configuration_dir.as_posix(),
6666
]
6767

6868
# Execute external run

src/orthw/commands/export_copyright_garbage.py

+5-5
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121

2222
from rich.pretty import pprint
2323

24-
from orthw import config
24+
from orthw import settings
2525
from orthw.utils import logging
2626
from orthw.utils.cmdgroups import command_group
2727
from orthw.utils.process import run
@@ -32,9 +32,9 @@ def export_copyright_garbage() -> None:
3232
"""Command export-copyright-garbage"""
3333
require_initialized()
3434

35-
copyrights_file: Path = config.copyrights_file
36-
ort_config_copyright_garbage_file: Path = config.ort_config_copyright_garbage_file
37-
scan_result_file: Path = config.scan_result_file
35+
copyrights_file: Path = settings.copyrights_file
36+
ort_config_copyright_garbage_file: Path = settings.ort_config_copyright_garbage_file
37+
scan_result_file: Path = settings.scan_result_file
3838
if (
3939
copyrights_file.is_file() is None
4040
or not ort_config_copyright_garbage_file.is_file()
@@ -71,7 +71,7 @@ def export_copyright_garbage() -> None:
7171
"--input-copyright-garbage-file",
7272
mapped_copyrights_file.as_posix(),
7373
"--output-copyright-garbage-file",
74-
config.ort_config_copyright_garbage_file.as_posix(),
74+
settings.ort_config_copyright_garbage_file.as_posix(),
7575
]
7676
run(args=args)
7777

src/orthw/commands/find_license_url.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
import click
2222
import git
2323

24-
from orthw import config
24+
from orthw import settings
2525
from orthw.utils.cmdgroups import command_group
2626

2727

@@ -30,9 +30,9 @@ def find_license_url(license_id: str) -> str:
3030
key = license_id.strip("LicenseRef-scancode-")
3131
license_file_path = f"src/licensedcode/data/licenses/{key}.LICENSE"
3232

33-
license_file: Path = config.scancode_home / license_file_path
33+
license_file: Path = settings.scancode_home / license_file_path
3434
if license_file.exists():
35-
git_repo = git.repo.Repo(config.scancode_home.as_posix())
35+
git_repo = git.repo.Repo(settings.scancode_home.as_posix())
3636
revision = git_repo.git.rev_parse("HEAD")
3737
return f"https://github.com/nexB/scancode-toolkit/blob/{revision}/{license_file_path}"
3838

src/orthw/commands/handled_licenses.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# License-Filename: LICENSE
1717
from __future__ import annotations
1818

19-
from orthw import config
19+
from orthw import settings
2020
from orthw.utils.cmdgroups import command_group
2121
from orthw.utils.process import run
2222

@@ -28,7 +28,7 @@ def handled_licenses() -> None:
2828
"orth",
2929
"list-license-categories",
3030
"--license-classifications-file",
31-
config.ort_config_license_classifications_file.as_posix(),
31+
settings.ort_config_license_classifications_file.as_posix(),
3232
]
3333

3434
run(args)

src/orthw/commands/handled_licenses_by_category.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
# License-Filename: LICENSE
1717
from __future__ import annotations
1818

19-
from orthw import config
19+
from orthw import settings
2020
from orthw.utils.cmdgroups import command_group
2121
from orthw.utils.process import run
2222

@@ -28,7 +28,7 @@ def handled_licenses_by_category() -> None:
2828
"orth",
2929
"list-license-categories",
3030
"--license-classifications-file",
31-
config.ort_config_license_classifications_file.as_posix(),
31+
settings.ort_config_license_classifications_file.as_posix(),
3232
"--group-by-category",
3333
]
3434

src/orthw/commands/init.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
import yaml
2828
from docker.models.containers import Container
2929

30-
from orthw import config
30+
from orthw import settings
3131
from orthw.utils import logging
3232
from orthw.utils.cmdgroups import command_group
3333
from orthw.utils.process import run
@@ -41,7 +41,7 @@ def init(target_url: str) -> int | Container:
4141
logging.debug(f"filename: {filename}")
4242
logging.debug(f"extension: {extension}")
4343

44-
evaluation_md5_sum_file: Path = config.evaluation_md5_sum_file
44+
evaluation_md5_sum_file: Path = settings.evaluation_md5_sum_file
4545
if evaluation_md5_sum_file.exists():
4646
evaluation_md5_sum_file.unlink()
4747

@@ -82,7 +82,7 @@ def init(target_url: str) -> int | Container:
8282
"orth",
8383
"extract-repository-configuration",
8484
"--repository-configuration-file",
85-
config.repository_configuration_file.as_posix(),
85+
settings.repository_configuration_file.as_posix(),
8686
"--ort-file",
8787
scan_result_file.as_posix(),
8888
]
@@ -97,7 +97,7 @@ def init(target_url: str) -> int | Container:
9797
"--ort-file",
9898
scan_result_file.as_posix(),
9999
"--scan-results-storage-dir",
100-
config.scan_results_storage_dir.as_posix(),
100+
settings.scan_results_storage_dir.as_posix(),
101101
]
102102

103103
return run(args)

src/orthw/commands/licenses.py

+4-4
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import click
2020

21-
from orthw import config
21+
from orthw import settings
2222
from orthw.utils.cmdgroups import command_group
2323
from orthw.utils.process import run
2424
from orthw.utils.required import require_initialized
@@ -42,9 +42,9 @@ def licenses(package_id: str, source_code_dir: str | None = None) -> None:
4242
"--omit-excluded",
4343
]
4444

45-
args += ["--ort-file", config.evaluation_result_file.as_posix()]
46-
args += ["--repository-configuration-file", config.repository_configuration_file.as_posix()]
47-
args += ["--package-configuration-dir", config.ort_config_package_configuration_dir.as_posix()]
45+
args += ["--ort-file", settings.evaluation_result_file.as_posix()]
46+
args += ["--repository-configuration-file", settings.repository_configuration_file.as_posix()]
47+
args += ["--package-configuration-dir", settings.ort_config_package_configuration_dir.as_posix()]
4848

4949
if source_code_dir:
5050
args += ["--source-code-dir", source_code_dir]

src/orthw/commands/offending_packages.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
from pathlib import Path
2020

21-
from orthw import config
21+
from orthw import settings
2222
from orthw.utils.cmdgroups import command_group
2323
from orthw.utils.process import run
2424
from orthw.utils.required import require_initialized
@@ -27,7 +27,7 @@
2727
def offending_packages() -> None:
2828
require_initialized()
2929

30-
scan_result_file: Path = config.scan_result_file
30+
scan_result_file: Path = settings.scan_result_file
3131

3232
args: list[str] = [
3333
"orth",

src/orthw/commands/package_config/clean.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import click
2222

23-
from orthw import config
23+
from orthw import settings
2424
from orthw.utils.cmdgroups import package_config_group
2525
from orthw.utils.process import run
2626
from orthw.utils.required import require_initialized
@@ -30,7 +30,7 @@ def clean(package_id: str) -> None:
3030
require_initialized()
3131

3232
package_configuration_file = "FIXME find_package(package_id)"
33-
scan_result_file: Path = config.scan_result_file
33+
scan_result_file: Path = settings.scan_result_file
3434

3535
args: list[str] = [
3636
"orth",

src/orthw/commands/package_config/create.py

+8-8
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020

2121
import click
2222

23-
from orthw import config
23+
from orthw import settings
2424
from orthw.utils.cmdgroups import package_config_group
2525
from orthw.utils.process import run
2626
from orthw.utils.required import require_initialized
@@ -29,11 +29,11 @@
2929
def create(package_id: str) -> None:
3030
require_initialized()
3131

32-
scan_results_storage_dir: Path = config.scan_results_storage_dir
33-
ort_config_license_classifications_file: Path = config.ort_config_license_classifications_file
34-
non_offending_license_categories = config.non_offending_license_categories
35-
non_offending_license_ids = config.non_offending_license_ids
36-
ort_config_package_configurations_dir: Path = config.ort_config_package_configurations_dir
32+
scan_results_storage_dir: Path = settings.scan_results_storage_dir
33+
ort_config_license_classifications_file: Path = settings.ort_config_license_classifications_file
34+
non_offending_license_categories = settings.non_offending_license_categories
35+
non_offending_license_ids = settings.non_offending_license_ids
36+
ort_config_package_configurations_dir: Path = settings.ort_config_package_configurations_dir
3737

3838
args: list[str] = [
3939
"orth",
@@ -70,10 +70,10 @@ def create(package_id: str) -> None:
7070
7171
orthw package-config create Maven:org.apache.curator:curator-framework:2.13.0
7272
""".format(
73-
dir=config.ort_config_package_configurations_dir,
73+
dir=settings.ort_config_package_configurations_dir,
7474
),
7575
short_help=f"Creates one package configuration in '{dir}' for given package id.".format(
76-
dir=config.ort_config_package_configurations_dir,
76+
dir=settings.ort_config_package_configurations_dir,
7777
),
7878
)
7979
@click.argument("package_id")

0 commit comments

Comments
 (0)