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.
Files changed (71) hide show
  1. {snk_cli-0.6.2 → snk_cli-0.7.1}/PKG-INFO +1 -1
  2. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/__about__.py +1 -1
  3. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/config/config.py +8 -0
  4. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/options/utils.py +3 -2
  5. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/snk.yaml +1 -0
  6. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_dynamic_options.py +11 -0
  7. {snk_cli-0.6.2 → snk_cli-0.7.1}/.github/workflows/publish.yml +0 -0
  8. {snk_cli-0.6.2 → snk_cli-0.7.1}/.github/workflows/tests.yml +0 -0
  9. {snk_cli-0.6.2 → snk_cli-0.7.1}/.gitignore +0 -0
  10. {snk_cli-0.6.2 → snk_cli-0.7.1}/LICENSE.txt +0 -0
  11. {snk_cli-0.6.2 → snk_cli-0.7.1}/README.md +0 -0
  12. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/index.md +0 -0
  13. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/cli.md +0 -0
  14. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/config.md +0 -0
  15. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/dynamic_typer.md +0 -0
  16. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/options.md +0 -0
  17. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/subcommands.md +0 -0
  18. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/testing.md +0 -0
  19. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/utils.md +0 -0
  20. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/validate.md +0 -0
  21. {snk_cli-0.6.2 → snk_cli-0.7.1}/docs/reference/workflow.md +0 -0
  22. {snk_cli-0.6.2 → snk_cli-0.7.1}/mkdocs.yml +0 -0
  23. {snk_cli-0.6.2 → snk_cli-0.7.1}/pyproject.toml +0 -0
  24. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/__init__.py +0 -0
  25. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/cli.py +0 -0
  26. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/conda.py +0 -0
  27. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/config/__init__.py +0 -0
  28. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/config/utils.py +0 -0
  29. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/dynamic_typer.py +0 -0
  30. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/options/__init__.py +0 -0
  31. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/options/option.py +0 -0
  32. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/__init__.py +0 -0
  33. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/config.py +0 -0
  34. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/env.py +0 -0
  35. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/profile.py +0 -0
  36. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/run.py +0 -0
  37. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/subcommands/script.py +0 -0
  38. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/testing.py +0 -0
  39. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/utils.py +0 -0
  40. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/validate.py +0 -0
  41. {snk_cli-0.6.2 → snk_cli-0.7.1}/src/snk_cli/workflow.py +0 -0
  42. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/__init__.py +0 -0
  43. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/conftest.py +0 -0
  44. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/artic_v4.1.bed +0 -0
  45. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/config.yaml +0 -0
  46. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/cov.fasta +0 -0
  47. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/Snakefile +0 -0
  48. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/cli.py +0 -0
  49. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/config.yaml +0 -0
  50. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/print_config/snk.yaml +0 -0
  51. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/cli.py +0 -0
  52. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/config.yaml +0 -0
  53. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/resources/data.txt +0 -0
  54. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/things/__about__.py +0 -0
  55. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/Snakefile +0 -0
  56. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/envs/wget.yml +0 -0
  57. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/profiles/base/config.yaml +0 -0
  58. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/profiles/slurm/config.yaml +0 -0
  59. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/data/workflow/workflow/scripts/hello.py +0 -0
  60. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_SnkConfig.py +0 -0
  61. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/__init__.py +0 -0
  62. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_profile.py +0 -0
  63. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_run.py +0 -0
  64. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_snk_config.py +0 -0
  65. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_subcommands.py +0 -0
  66. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_validate.py +0 -0
  67. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_cli/test_workflow_cli.py +0 -0
  68. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_conda_env.py +0 -0
  69. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_dynamic_typer.py +0 -0
  70. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/test_types.py +0 -0
  71. {snk_cli-0.6.2 → snk_cli-0.7.1}/tests/utils.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: snk-cli
3
- Version: 0.6.2
3
+ Version: 0.7.1
4
4
  Project-URL: Documentation, https://github.com/wytamma/snk-cli#readme
5
5
  Project-URL: Issues, https://github.com/wytamma/snk-cli/issues
6
6
  Project-URL: Source, https://github.com/wytamma/snk-cli
@@ -1,4 +1,4 @@
1
1
  # SPDX-FileCopyrightText: 2024-present Wytamma Wirth <wytamma.wirth@me.com>
2
2
  #
3
3
  # SPDX-License-Identifier: MIT
4
- __version__ = "0.6.2"
4
+ __version__ = "0.7.1"
@@ -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
  )
@@ -1,4 +1,5 @@
1
1
  art: null
2
+ invalid: false
2
3
  cli:
3
4
  hidden:
4
5
  hidden: true
@@ -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