def print_good(): """ Good format strings """ "{0} {1}".format(1, 2) "{0!r:20}".format("Hello") "{!r:20}".format("Hello") "{a!r:20}".format(a="Hello") "{pid}".format(pid=os.getpid()) str("{}").format(2) "{0.missing.length}".format(ReturnYes()) "{1.missing.length}".format(ReturnYes()) "{a.ids[3][1]}".format(a=Test()) "{a[0][0]}".format(a=[[1]]) "{[0][0]}".format({0: {0: 1}}) "{a.test}".format(a=Custom()) "{a.__len__}".format(a=[]) "{a.ids.__len__}".format(a=Test()) "{a[0]}".format(a=Getitem()) "{a[0][0]}".format(a=[Getitem()]) "{[0][0]}".format(["test"]) # these are skipped "{0} {1}".format(*[1, 2]) "{a} {b}".format(**{'a': 1, 'b': 2}) "{a}".format(a=Missing()) logging.debug("%s", 42) logging.debug("%s %s", 42, 43)
class ReturnYes(object): """ can't be properly infered """ missing = Missing()
def dec(): yield with dec(): # valid use pass # Tests a message is produced when a contextlib.contextmanager # decorated function is used without being called. with dec: # [not-context-manager] pass # Tests no messages about context manager protocol # if the type can't be inferred. from missing import Missing with Missing(): pass # Tests context managers as names. def penelopa(): return 42 hopa = dec() tropa = penelopa() with tropa: # [not-context-manager] pass