snk-cli 0.6.2__tar.gz → 0.7.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {snk_cli-0.6.2 → snk_cli-0.7.1}/PKG-INFO +1 -1
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/__about__.py +1 -1
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/config/config.py +8 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/options/utils.py +3 -2
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/snk.yaml +1 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_dynamic_options.py +11 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/.github/workflows/publish.yml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/.github/workflows/tests.yml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/.gitignore +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/LICENSE.txt +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/README.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/index.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/cli.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/config.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/dynamic_typer.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/options.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/subcommands.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/testing.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/utils.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/validate.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/workflow.md +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/mkdocs.yml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/pyproject.toml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/__init__.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/cli.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/conda.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/config/__init__.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/config/utils.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/dynamic_typer.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/options/__init__.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/options/option.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/__init__.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/config.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/env.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/profile.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/run.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/script.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/testing.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/utils.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/validate.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/workflow.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/__init__.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/conftest.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/artic_v4.1.bed +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/config.yaml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/cov.fasta +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/Snakefile +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/cli.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/config.yaml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/snk.yaml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/cli.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/config.yaml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/resources/data.txt +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/things/__about__.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/Snakefile +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/envs/wget.yml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/profiles/base/config.yaml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/profiles/slurm/config.yaml +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/scripts/hello.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_SnkConfig.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/__init__.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_profile.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_run.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_snk_config.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_subcommands.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_validate.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_workflow_cli.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_conda_env.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_dynamic_typer.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_types.py +0 -0
- {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/utils.py +0 -0
|
@@ -112,6 +112,14 @@ class SnkConfig:
|
|
|
112
112
|
# TODO: remove conda_required in the future
|
|
113
113
|
snk_config_dict["conda"] = snk_config_dict["conda_required"]
|
|
114
114
|
del snk_config_dict["conda_required"]
|
|
115
|
+
# print warning about any invalid keys
|
|
116
|
+
fields = set(cls.__dict__["__dataclass_fields__"])
|
|
117
|
+
invalid_config_keys = set(snk_config_dict.keys()) - fields
|
|
118
|
+
if invalid_config_keys:
|
|
119
|
+
import warnings
|
|
120
|
+
warnings.warn(f"invalid keys in `snk.yaml` file: {invalid_config_keys}.")
|
|
121
|
+
# filer out any invalid keys
|
|
122
|
+
snk_config_dict = {k: v for k, v in snk_config_dict.items() if k in fields}
|
|
115
123
|
snk_config = cls(**snk_config_dict)
|
|
116
124
|
snk_config.resources = [
|
|
117
125
|
snk_config_path.parent / resource for resource in snk_config.resources
|
|
@@ -67,9 +67,10 @@ def create_option_from_annotation(
|
|
|
67
67
|
if config_default is None or default != config_default:
|
|
68
68
|
updated = True
|
|
69
69
|
annotation_type = annotation_values.get(f"{annotation_key}:type", None)
|
|
70
|
-
if annotation_type is not None:
|
|
70
|
+
if annotation_type is not None:
|
|
71
|
+
annotation_type = annotation_type.lower()
|
|
71
72
|
assert annotation_type in types, f"Type '{annotation_type}' not supported."
|
|
72
|
-
annotation_type = annotation_type or get_default_type(default)
|
|
73
|
+
annotation_type = (annotation_type or get_default_type(default)).lower()
|
|
73
74
|
annotation_type = types.get(
|
|
74
75
|
annotation_type, List[str] if "list" in annotation_type else str
|
|
75
76
|
)
|
|
@@ -38,6 +38,17 @@ def test_create_option_from_annotation(
|
|
|
38
38
|
assert option.type is str
|
|
39
39
|
assert option.required is True
|
|
40
40
|
|
|
41
|
+
|
|
42
|
+
def test_create_option_from_annotation_type_Case_insensitive(
|
|
43
|
+
default_annotation_values, default_default_values
|
|
44
|
+
):
|
|
45
|
+
default_annotation_values["test:type"] = "STR"
|
|
46
|
+
option = create_option_from_annotation(
|
|
47
|
+
"test", default_annotation_values, default_default_values
|
|
48
|
+
)
|
|
49
|
+
assert option.type is str
|
|
50
|
+
|
|
51
|
+
|
|
41
52
|
def test_create_option_from_annotation_with_short(
|
|
42
53
|
default_annotation_values, default_default_values
|
|
43
54
|
):
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|