[Biopython-dev] Question about "class _Argument(_AbstractParameter):"

Vincent Davis vincent at vincentdavis.net
Sat May 17 09:39:29 EDT 2014


I don't understand how self.value = None can ever be anything but None?
Which then leads me to wonder how the assert in _ArgumentList can ever pass
"assert isinstance(self.value, list)"
Probably something I don't understand about how arguments work with
subclasses.

Here is an example
>>> exp1 = _ArgumentList(["input_bam", "in_bam", "input", "bam"], "Input
BAM", >>> filename=True, is_required=True)
>>> print(exp1.value)
>>> print(exp1.names)
None

['input_bam', 'in_bam', 'input', 'bam']


But this will never work?

print(exp1)




class _Argument(_AbstractParameter):
    """Represent an argument on a commandline.

    The names argument should be a list containing one string.
    This must be a valid Python identifer as it is used as the
    property name and as a keyword argument, and should therefore
    follow PEP8 naming.
    """
    def __init__(self, names, description, filename=False,
                 checker_function=None, is_required=False):
        #if len(names) != 1:
        #    raise ValueError("The names argument to _Argument should be a "
        #                     "single entry list with a PEP8 property
name.")
        self.names = names
        assert isinstance(description, basestring), \
               "%r for %s" % (description, names[-1])
        self.is_filename = filename
        self.checker_function = checker_function
        self.description = description
        self.is_required = is_required
        self.is_set = False
        *self.value = None*

class _ArgumentList(_Argument):
    """Represent a variable list of arguments on a command line, e.g.
multiple filenames."""
    *def __str__(self):*
*        assert isinstance(self.value, list), \*
*                "Arguments should be a list"*
    ........

Vincent Davis
720-301-3003


More information about the Biopython-dev mailing list