Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: snakemake/snakemake-interface-common
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v1.17.4
Choose a base ref
...
head repository: snakemake/snakemake-interface-common
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v1.18.0
Choose a head ref
  • 2 commits
  • 17 files changed
  • 2 contributors

Commits on Mar 27, 2025

  1. feat: setup pixi, move to src layout, run ruff format once (#58)

    This is the first iteration of PRs to start enforcing type annotations. 
    
    The move to the src layout also helps with the finicky nature of
    pytest-cov
    
    While mypy type-checking is possible, there are currently ~50 issues to
    be addressed
    
    <details>
    <summary>mypy output</summary>
    
    
    
    ```console
    ➜ pixi run type-check
    ✨ Pixi task (type-check in dev): mypy src/
    src/snakemake_interface_common/settings.py:15: error: Need type annotation for "skip"  [var-annotated]
    src/snakemake_interface_common/settings.py:16: error: Generator has incompatible item type "SettingsEnumBase"; expected "TSettingsEnumBase"  [misc]
    src/snakemake_interface_common/settings.py:20: error: Argument 1 to "_parse_choices_into" of "SettingsEnumBase" has incompatible type "list[str]"; expected "str"  [arg-type]
    src/snakemake_interface_common/settings.py:24: error: Incompatible return value type (got "list[Never]", expected "set[TSettingsEnumBase]")  [return-value]
    src/snakemake_interface_common/settings.py:24: error: Argument 1 to "_parse_choices_into" of "SettingsEnumBase" has incompatible type "list[str]"; expected "str"  [arg-type]
    src/snakemake_interface_common/settings.py:27: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
    src/snakemake_interface_common/settings.py:31: error: A function returning TypeVar should receive at least one argument containing the same TypeVar  [type-var]
    src/snakemake_interface_common/settings.py:31: note: Consider using the upper bound "SettingsEnumBase" instead
    src/snakemake_interface_common/settings.py:32: error: Incompatible return value type (got "SettingsEnumBase", expected "TSettingsEnumBase")  [return-value]
    src/snakemake_interface_common/settings.py:42: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/logging.py:7: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/attribute_types.py:23: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/attribute_types.py:27: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/attribute_types.py:30: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/exceptions.py:19: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/exceptions.py:39: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
    src/snakemake_interface_common/exceptions.py:50: error: Incompatible types in assignment (expression has type "int | None", variable has type "int")  [assignment]
    src/snakemake_interface_common/exceptions.py:51: error: Incompatible types in assignment (expression has type "Path | None", variable has type "Path")  [assignment]
    src/snakemake_interface_common/exceptions.py:58: error: Incompatible types in assignment (expression has type "list[Any]", variable has type "tuple[Any, ...]")  [assignment]
    src/snakemake_interface_common/exceptions.py:63: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/utils.py:7: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/utils.py:19: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/utils.py:22: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/utils.py:27: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/utils.py:38: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
    src/snakemake_interface_common/utils.py:56: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/utils.py:72: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/utils.py:77: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:28: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:41: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:42: error: Invalid index type "str | None" for "dict[str, SettingsBase]"; expected type "str"  [index]
    src/snakemake_interface_common/plugin_registry/plugin.py:45: error: Argument 1 to "get" of "dict" has incompatible type "str | None"; expected "str"  [arg-type]
    src/snakemake_interface_common/plugin_registry/plugin.py:48: error: No overload variant of "get" of "dict" matches argument type "None"  [call-overload]
    src/snakemake_interface_common/plugin_registry/plugin.py:48: note: Possible overload variants:
    src/snakemake_interface_common/plugin_registry/plugin.py:48: note:     def get(self, str, /) -> SettingsBase | None
    src/snakemake_interface_common/plugin_registry/plugin.py:48: note:     def get(self, str, SettingsBase, /) -> SettingsBase
    src/snakemake_interface_common/plugin_registry/plugin.py:48: note:     def [_T] get(self, str, _T, /) -> SettingsBase | _T
    src/snakemake_interface_common/plugin_registry/plugin.py:57: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:78: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:87: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:113: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:172: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:173: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:195: error: Function is missing a type annotation for one or more arguments  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:211: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:217: error: Need type annotation for "kwargs_tagged"  [var-annotated]
    src/snakemake_interface_common/plugin_registry/plugin.py:232: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:300: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/plugin.py:301: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/__init__.py:22: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/__init__.py:27: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/__init__.py:27: note: Use "-> None" if function does not return a value
    src/snakemake_interface_common/plugin_registry/__init__.py:56: error: Function is missing a type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/__init__.py:62: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/__init__.py:62: note: Use "-> None" if function does not return a value
    src/snakemake_interface_common/plugin_registry/__init__.py:80: error: Function is missing a return type annotation  [no-untyped-def]
    src/snakemake_interface_common/plugin_registry/__init__.py:95: error: Function is missing a return type annotation  [no-untyped-def]
    Found 50 errors in 7 files (checked 11 source files)
    ```
    
    </details>
    
    I've also realized that there are some inconsistencies between some of
    the abstract classes and their concrete implementations in the
    `snakemake-interface-*-plugins` repos which need to be addressed.
    
    I will begin addressing these in a set of separate PRs and iterate over
    them.
    
    
    
    
    <!-- This is an auto-generated comment: release notes by coderabbit.ai
    -->
    
    ## Summary by CodeRabbit
    
    - **Chores**
    - Streamlined CI/CD workflows for package publishing and testing by
    updating dependency management and automation steps.
    - Enhanced repository configurations and ignore rules to support new
    build environments.
    
    - **Refactor**
    - Simplified internal method structures to boost maintainability without
    impacting functionality.
    
    - **Tests**
    - Improved quality control checks within test workflows for more
    consistent formatting and linting results.
    
    <!-- end of auto-generated comment: release notes by coderabbit.ai -->
    jjjermiah authored Mar 27, 2025
    Configuration menu
    Copy the full SHA
    95d1d8d View commit details
    Browse the repository at this point in the history

Commits on May 15, 2025

  1. chore(main): release 1.18.0 (#60)

    🤖 I have created a release *beep* *boop*
    ---
    
    
    ##
    [1.18.0](v1.17.4...v1.18.0)
    (2025-03-27)
    
    
    ### Features
    
    * setup pixi, move to src layout, run ruff format once
    ([#58](#58))
    ([95d1d8d](95d1d8d))
    
    ---
    This PR was generated with [Release
    Please](https://github.com/googleapis/release-please). See
    [documentation](https://github.com/googleapis/release-please#release-please).
    
    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored May 15, 2025
    Configuration menu
    Copy the full SHA
    ed061c3 View commit details
    Browse the repository at this point in the history
Loading