main template using argparse

--HG--
branch : sandbox
This commit is contained in:
baloan
2011-03-14 23:43:42 +01:00
parent 38e71583c4
commit 8ae6cc967c
2 changed files with 25 additions and 84 deletions

View File

@@ -1,45 +1,41 @@
#!/usr/bin/env python
# Copyright (c) 2009 Andreas Balogh
# Copyright (c) 2011 Andreas Balogh
# See LICENSE for details.
""" new module template """
""" main progam template """
# system imports
from argparse import ArgumentParser
import logging
import sys
import os
from optparse import OptionParser
# local imports
# constants
import sys
# globals
LOG = logging.getLogger()
logging.basicConfig(level=logging.DEBUG,
format="%(asctime)s %(levelname).3s %(process)d:%(thread)d %(message)s",
datefmt="%H:%M:%S")
# definitions
def main(argv=None):
if argv is None:
argv = sys.argv
# parse options and arguments
parser = ArgumentParser(description="Price Publisher")
parser.add_argument("-f", "--file", dest="filename",
help="read configuration from %(dest)s")
parser.add_argument("-p", "--port", default=8001, type=int,
help="server port [default: %(default)s")
args = parser.parse_args()
LOG.info("starting '%s %s'", os.path.basename(argv[0]), args)
# startup application
# insert your code here
LOG.info("done.")
def main(argv = [__file__]):
# check for parameters
LOG.debug("starting '%s %s'", argv[0], " ".join(argv[1:]))
script_name = os.path.basename(argv[0])
# parse arguments and options
usage = "usage: %prog [options] arg"
version = "%prog 1.0"
parser = OptionParser(usage, version)
parser.add_option("-f", "--file", dest="filename",
help="read configuration from FILENAME")
parser.add_option("-p", "--port", default="8001", type="int",
help="server port [default: %default]")
if __name__ == "__main__":
sys.exit(main(sys.argv))
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s.%(msecs)03i %(levelname).4s %(funcName)10s %(message)s',
datefmt='%H:%M:%S')
main()

View File

@@ -1,55 +0,0 @@
#!/usr/bin/env python
# Copyright (c) 2011 Andreas Balogh
# See LICENSE for details.
""" zmq.primes """
# system imports
import logging
import sys
import os
from optparse import OptionParser
import zmq
# globals
LOG = logging.getLogger()
# definitions
def main(argv = None):
if argv is None:
argv = sys.argv
script_name = os.path.basename(argv[0])
LOG.info("starting '%s %s'", script_name, " ".join(argv[1:]))
# parse options and arguments
usage = "usage: %prog [options] arg"
version = "%prog 1.0"
parser = OptionParser(usage, version)
parser.add_option("-f", "--file", dest="filename",
help="read configuration from FILENAME")
parser.add_option("-p", "--port", default="8001", type="int",
help="server port [default: %default]")
(opts, args) = parser.parse_args()
if len(args) > 0:
parser.error("too many arguments")
# call method with appropriate arguments
ctx = zmq.Context()
s = ctx.socket(zmq.REP)
s.bind('tcp://localhost:12345')
loop = zmq.eventloop.ioloop.IOLoop.instance()
stream = zmq.eventloop.zmqstream.ZMQStream(s, loop)
def echo(msg):
stream.send_multipart(msg)
stream.on_recv(echo)
loop.start()
return 0
if __name__ == '__main__':
logging.basicConfig(level=logging.DEBUG,
format='%(asctime)s.%(msecs)03i %(levelname).4s %(process)d:%(thread)d %(message)s',
datefmt='%H:%M:%S')
rc = main()
sys.exit(rc)