def release(): """Create a new version of the podparser""" # upload new package to pypi upload() # upload new package to pypi upload_docs() # create new tag local('git tag -a %s -m "release version %s"' % (podparser.get_version(), podparser.get_version()))
def build_docs(): """ Create parser documentation requires: python-sphinx """ with lcd('docs'): fname = 'docs.zip' with settings(warn_only=True): local('rm %s' % fname) local('rm -rf html/%s' % podparser.get_version()) local('make clean html', capture=False) # copy current version to root and versioned directory local('cp -rf _build/html html/%s' % podparser.get_version()) local('cp -rf _build/html .') with lcd('html'): local('zip -r ../%s .' % fname)
from setuptools import setup, find_packages import os import podparser import sys setup(name='podparser', version=podparser.get_version(), description="Post Office Directory Parser", long_description="The podparser is a tool for parsing Scotland's post office directories", keywords='post-office pod directory geneology history scotland', author='George Hamilton', author_email='*****@*****.**', url='https://github.com/gmh04/podparser', license='GPL', packages=find_packages(exclude=['ez_setup']), classifiers=[ 'Development Status :: 4 - Beta', 'Environment :: Console', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Topic :: System :: Archiving', 'Topic :: Text Processing :: Indexing' ], install_requires=[ ['argparse', 'lxml'] ], entry_points=""" [console_scripts] podparser = podparser.parser:run_parser
def run_parser(): # kick off parser process # print unicode to std out sys.stdout = codecs.getwriter('utf8')(sys.stdout) # get the pod parser directory cur_dir = os.path.dirname(sys.argv[0]) if len(cur_dir) == 0: cur_dir = '.' os.chdir('%s%c..' % (cur_dir, os.sep)) podparser_dir = os.getcwd() # parse commandline arguments arg_parser = argparse.ArgumentParser( description='Tool for parsing postoffice directories') parse_group = arg_parser.add_argument_group('Parse Options') parse_group.add_argument( '-p', '--page', help='single postoffice directory page to be parsed') parse_group.add_argument( '-d', '--directory', nargs=1, help='postoffice directory to be parsed') parse_group.add_argument( '-s', '--start', default=0, help="""Start page to be parsed (only applies to -d). If no start page given start from 0.""") parse_group.add_argument( '-e', '--end', default=9999, type=int, help="""End page to be parsed (only applies to -d), If no end page given parse until last.""") parse_group.add_argument('-C', '--config', nargs=1, help='configuration directory') parse_group.add_argument('-w', '--williamson', action='store_false', help="parse williamson's directory") arg_parser.add_argument('-v', '--verbose', action='store_true', help='print detailed output') arg_parser.add_argument('-V', '--version', action='store_true', help='print podparser version') google_group = arg_parser.add_argument_group('Google Options') google_group.add_argument('-k', '--key', help='Google premium private key') google_group.add_argument('-i', '--client_id', help='Google premium client identifier') db_group = arg_parser.add_argument_group('Database Options') db_group.add_argument('-H', '--dbhost', default='localhost', help='database host') db_group.add_argument('-D', '--dbname', default='ahistory', help='database name') db_group.add_argument('-P', '--dbport', type=int, default=5432, help='database port') db_group.add_argument('-U', '--dbuser', default='ahistory', help='database user name') db_group.add_argument('-W', '--dbpassword', help='database password') db_group.add_argument('-c', '--commit', action='store_true', help='commit parsed results to database') args = arg_parser.parse_args() if args.version: print podparser.get_version() sys.exit(0) if args.config: if os.path.isdir(args.config[0]): config_dir = args.config[0] else: print '*** Invalid config directory ***' print arg_parser.print_help() sys.exit(1) else: config_dir = '%s/etc' % podparser_dir if args.directory: directory = args.directory[0] elif args.page: directory = args.page else: print '*** No directory given ***' print arg_parser.print_help() sys.exit(1) directory = os.path.abspath(directory) db_conn = None if args.dbpassword: # putting import here ensures that there is no # database library dependency unless needed from db import connection db_conn = connection.PodConnection(db_password=args.dbpassword, db_name=args.dbname, db_user=args.dbuser, db_host=args.dbhost, db_port=args.dbport) else: print 'No database defined' if not db and args.key: print 'To use google premium a database must be defined' args.key = None # kick off parsing parser.Parser(config=config_dir, dir_path=directory, start=args.start, end=args.end, encoder_key=args.key, client_id=args.client_id, verbose=args.verbose, pre_post_office=args.williamson, db=db_conn, commit=args.commit).run_parser(read_page) sys.exit(0)
from setuptools import setup, find_packages import os import podparser import sys setup( name='podparser', version=podparser.get_version(), description="Post Office Directory Parser", long_description= "The podparser is a tool for parsing Scotland's post office directories", keywords='post-office pod directory geneology history scotland', author='George Hamilton', author_email='*****@*****.**', url='https://github.com/gmh04/podparser', license='GPL', packages=find_packages(exclude=['ez_setup']), classifiers=[ 'Development Status :: 4 - Beta', 'Environment :: Console', 'License :: OSI Approved :: GNU General Public License (GPL)', 'Operating System :: OS Independent', 'Programming Language :: Python', 'Topic :: System :: Archiving', 'Topic :: Text Processing :: Indexing' ], install_requires=[['argparse', 'lxml']], entry_points=""" [console_scripts] podparser = podparser.parser:run_parser podfetch = podparser.fetcher:fetch_pod """, include_package_data=True,