﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
23551	Exception raised when using the bash autocompletion with Python 3	Marco Buttu	Marco Buttu	"My environment is Python 3.4 and Linux Mint 17. When using the django autocompletion, a TAB-completion after a command gives me an exception. For instance, typing a TAB after `django-admin startproject`:

{{{
$ django-admin startproject Traceback (most recent call last):
      ...
  File "".../django/core/management/__init__.py"", line 262, in autocomplete
    options = sorted((k, v) for k, v in options if k.startswith(curr))
  TypeError: unorderable types: bool() < NoneType()
}}}


That happens because at line 225 the `options` list is initilized as:


{{{
    options = [('--help', None)]
}}}


and at line 263:


{{{
    options = sorted((k, v) for k, v in options if k.startswith(curr))
}}}


But since `options` contains `--help` twice, in Python 3 we get an error comparing a `bool` with `None`:


{{{
    >>> sorted([('foo', True), ('--help', False), ('--help', None)])
    Traceback (most recent call last):
        ...
    TypeError: unorderable types: NoneType() < bool()
}}}


That obviously does not happen in Python 2. The doctring of `autocomplete()` says:


{{{
    >>> from django.core.management import ManagementUtility
    >>> for line in ManagementUtility.autocomplete.__doc__.splitlines()[10:15]:
    ...     print(line)
    ... 

            Subcommand options are saved as pairs. A pair consists of
            the long option string (e.g. '--exclude') and a boolean
            value indicating if the option requires arguments. When printing to
            stdout, an equal sign is appended to options which require arguments.
}}}


So, how come `options` is initialized with the pair `('--help', None)` instead of `('--help', False)`? "	Bug	assigned	Utilities	dev	Normal			marco.buttu@…	Unreviewed	0	0	0	0	0	0
