daler / gffutils

GFF and GTF file manipulation and interconversion
http://daler.github.io/gffutils
MIT License
282 stars 76 forks source link

gffutils-cli incompatability with argh >= 0.30.0 #224

Open photocyte opened 8 months ago

photocyte commented 8 months ago

Hi there,

A breaking change in argh seems to have impacted gffutils-cli :

https://argh.readthedocs.io/en/latest/changes.html#version-0-30-0-2023-10-21

mamba create -y -p gffutils_cli_env2 'argh>=0.30.0' 'gffutils'
conda run -p ./gffutils_cli_env2 gffutils-cli children symlinks/{gff_name}.db {transcript_id}
File "./gffutils_cli_env2/lib/python3.12/site-packages/argh/assembling.py", line 155, in infer_argspecs_from_function
    raise ArgumentNameMappingError(
argh.assembling.ArgumentNameMappingError: Argument "limit" in function "children"
is not keyword-only but has a default value.

Please note that since Argh v.0.30 the default name mapping
policy has changed.

More information:
https://argh.readthedocs.io/en/latest/changes.html#version-0-30-0-2023-10-21

You need to upgrade your functions so that the arguments
that have default values become keyword-only:

    f(x=1) -> f(*, x=1)

If you actually want an optional positional argument,
please set the name mapping policy explicitly to `BY_NAME_IF_KWONLY`.

If you choose to postpone the migration, you have two options:

a) set the policy explicitly to `BY_NAME_IF_HAS_DEFAULT`;
b) pin Argh version to 0.29 until you are ready to migrate.

Thank you for understanding!

Works just fine with:

mamba create -p gffutils_cli_env 'argh<0.30.0' 'gffutils'