Subversion Repositories freemyipod

Rev

Rev 582 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 582 Rev 584
Line 345... Line 345...
345
    """
345
    """
346
        Converts quite everything into bool.
346
        Converts quite everything into bool.
347
    """
347
    """
348
    try: long
348
    try: long
349
    except NameError: long = int
349
    except NameError: long = int
350
    if type(something) == bool:
350
    if type(something).__name__ in ("bool", "NoneType"):
351
        return something
351
        return something
352
    if something is None:
-
 
353
        return False
-
 
354
    elif type(something) == int or type(something) == long:
352
    elif type(something).__name__ in ("int", "long"):
355
        return bool(something)
353
        return something != 0
356
    elif type(something == str):
354
    elif type(something) == str:
357
        if something.lower() in ['true', '1', 't', 'y', 'yes']:
355
        if something.lower() in ['true', '1', 't', 'y', 'yes']:
358
            return True
356
            return True
359
        elif something.lower() in ['false', '0', 'f', 'n', 'no']:
357
        elif something.lower() in ['false', '0', 'f', 'n', 'no']:
360
            return False
358
            return False
361
    raise ArgumentTypeError("bool", "'%s'" % something)
359
    raise ArgumentTypeError("bool", "'%s' (%s)" % (something, type(something).__name__))
362
 
360
 
363
def to_int(something):
361
def to_int(something):
364
    """
362
    """
365
        Converts quite everything to a hexadecimal represented integer.
363
        Converts quite everything to a hexadecimal represented integer.
366
        This works for default arguments too, because it returns
364
        This works for default arguments too, because it returns
367
        None when it found that it got a NoneType object.
365
        None when it found that it got a NoneType object.
368
    """
366
    """
369
    try: long
-
 
370
    except NameError: long = int
-
 
371
    if type(something) == int or type(something) == long:
367
    if type(something).__name__ in ("int", "long", "NoneType"):
372
        return something
368
        return something
373
    elif something is None:
-
 
374
        return None
-
 
375
    elif type(something) == str:
369
    elif type(something) == str:
376
        try:
370
        try:
377
            if something[:2] == "0x": # Hexadecimal notation
371
            if something[:2] == "0x": # Hexadecimal notation
378
                return int(something[2:], 16)
372
                return int(something[2:], 16)
379
            elif something[:2] == "0b": # Binary notation
373
            elif something[:2] == "0b": # Binary notation
380
                return int(something[2:], 2)
374
                return int(something[2:], 2)
381
            else: # Decimal notation
375
            else: # Decimal notation
382
                return int(something, 10)
376
                return int(something, 10)
383
        except ValueError:
377
        except ValueError:
384
            raise ArgumentTypeError("integer", "'%s'" % something)
378
            raise ArgumentTypeError("integer", "'%s' (%s)" % (something, type(something).__name__))
385
    else:
379
    else:
386
        raise ArgumentTypeError("integer", "'%s'" % something)
380
        raise ArgumentTypeError("integer", "'%s' (%s)" % (something, type(something).__name__))
387
 
381
 
388
 
382
 
389
def majorver():
383
def majorver():
390
    """
384
    """
391
        Returns the major version of python
385
        Returns the major version of python