예제 #1
0
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()))
예제 #2
0
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()))
예제 #3
0
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)
예제 #4
0
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)
예제 #5
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
예제 #6
0
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)
예제 #7
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,