pyinvoke / invoke

Pythonic task management & command execution.
http://pyinvoke.org
BSD 2-Clause "Simplified" License
4.41k stars 369 forks source link

`auto_dash_names` setting not working when using `Collection` with modules in `__init__` #1008

Open amrishparmar opened 2 months ago

amrishparmar commented 2 months ago

We've found that auto_dash_names setting is not taking effect when setting up a collection from a module in the __init__.py file

Output

invoke --list             
Available tasks:

  module_a.a-task
  module_b.b-task

The only issue I could find was closed a while back, not sure if this is a symptom of that described in this comment? https://github.com/pyinvoke/invoke/issues/465#issuecomment-319767461

Repro

invoke.yaml:

tasks:
  auto_dash_names: false

tasks/__init__.py:

from invoke import Collection
from . import module_a, module_b
ns = Collection(module_a, module_b)

tasks/module_a.py:

from invoke import task

@task
def a_task(c):
    c.run('echo foo')

tasks/module_b.py:

from invoke import task

@task
def b_task(c):
    c.run('echo bar')

Versions

Python 3.12.2 Invoke 2.2.0