1"""Interactive shell""" 2 3import sys 4import code 5import random 6import pylibmc 7 8tips = [ 9 "Want to use 127.0.0.1? Just hit Enter immediately.", 10 "Hit Enter immediately and you'll connect to 127.0.0.1.", 11 "Did you know there's a --binary flag? Try it!", 12 "Want to use binary mode? Pass --binary as a sole argument." 13] 14 15def print_header(outf=sys.stdout): 16 outf.write("pylibmc interactive shell\n\n") 17 outf.write("Input list of servers, terminating by a blank line.\n") 18 outf.write(random.choice(tips) + "\n") 19 20def collect_servers(): 21 try: 22 in_addr = raw_input("Address [127.0.0.1]: ") 23 except NameError: 24 in_addr = input("Address [127.0.0.1]: ") 25 if in_addr: 26 while in_addr: 27 yield in_addr 28 try: 29 in_addr = raw_input("Address [<stop>]: ") 30 except NameError: 31 in_addr = input("Address [<stop>]: ") 32 else: 33 yield "127.0.0.1" 34 35banner = "\nmc client available as `mc`\n" 36def interact(servers, banner=banner, binary=False): 37 mc = pylibmc.Client(servers, binary=binary) 38 local = {"pylibmc": pylibmc, 39 "mc": mc} 40 code.interact(banner=banner, local=local) 41 42def main(): 43 binary = False 44 if sys.argv[1:] == ["--binary"]: 45 binary = True 46 print_header() 47 interact(list(collect_servers()), binary=binary) 48 49if __name__ == "__main__": 50 main() 51