DeepSea icon indicating copy to clipboard operation
DeepSea copied to clipboard

deepsea cli breaks with python3-click version 7

Open tserong opened this issue 5 years ago • 0 comments

Transferred from https://bugzilla.suse.com/show_bug.cgi?id=1136698

# deepsea                                                                                                               
Traceback (most recent call last):                                                                                                                      
  File "/usr/bin/deepsea", line 11, in <module>                                                                                                         
    load_entry_point('deepsea==0.9.20+git.0.7113d8fd7', 'console_scripts', 'deepsea')()                                                                 
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 484, in load_entry_point                                                      
    return get_distribution(dist).load_entry_point(group, name)                                                                                         
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2725, in load_entry_point                                                     
    return ep.load()                                                                                                                                    
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2343, in load                                                                 
    return self.resolve()                                                                                                                               
  File "/usr/lib/python3.6/site-packages/pkg_resources/__init__.py", line 2349, in resolve                                                              
    module = __import__(self.module_name, fromlist=['__name__'], level=0)                                                                               
  File "/usr/lib/python3.6/site-packages/deepsea/__main__.py", line 10, in <module>                                                                     
    from .deepsea import main                                                                                                                           
  File "/usr/lib/python3.6/site-packages/deepsea/deepsea.py", line 299, in <module>                                                                     
    @requires_root_privileges                                                                                                                           
  File "/usr/lib/python3.6/site-packages/click/decorators.py", line 151, in decorator                                                                   
    _param_memo(f, ArgumentClass(param_decls, **attrs))                                                                                                 
  File "/usr/lib/python3.6/site-packages/click/core.py", line 1808, in __init__                                                                         
    Parameter.__init__(self, param_decls, required=required, **attrs)                                                                                   
  File "/usr/lib/python3.6/site-packages/click/core.py", line 1338, in __init__                                                                         
    self._parse_decls(param_decls or (), expose_value)                                                                                                  
  File "/usr/lib/python3.6/site-packages/click/core.py", line 1841, in _parse_decls                                                                     
    'parameter declaration, got %d' % len(decls))                                                                                                       
TypeError: Arguments take exactly one parameter declaration, got 2 

# rpm -qf /usr/lib/python3.6/site-packages/click/core.py
python3-click-7.0-2.2.noarch 
(coming from obs://build.opensuse.org/devel:languages:python)

This should presumably be reproducible on Tumbleweed ATM, as it has python3-click-7.0-1.4. Looks like _parse_decls in click/core.py in version 6 took one or two parameter declarations, while version 7 only takes one. Possibly this means the various @click.argument decorators (e.g. @click.argument('stage_name', 'the DeepSea stage name')) are incorrect -- maybe that description needs to be removed? Not sure, I've not used click before myself.

tserong avatar Jun 19 '19 02:06 tserong