예제 #1
0
def open_vector(fname, key="", where=''):
    """ Open vector or feature """
    parts = fname.split(':')
    if len(parts) == 1:
        vector = GeoVector(fname)
        vector.SetPrimaryKey(key)
    else:
        # or it is a database
        if parts[0] not in settings().DATABASES.keys():
            raise Exception("%s is not a valid database" % parts[0])
        try:
            db = settings().DATABASES[parts[0]]
            filename = ("PG:dbname=%s host=%s port=%s user=%s password=%s" %
                        (db['NAME'], db['HOST'], db['PORT'], db['USER'], db['PASSWORD']))
            vector = GeoVector(filename, parts[1])
            vector.SetPrimaryKey(key)

        except Exception as e:
            VerboseOut(traceback.format_exc(), 4)
    if where != '':
        # return array of features

        # set_trace()

        return vector.where(where)
        features = []
    else:
        return vector
예제 #2
0
파일: utils.py 프로젝트: ircwaves/gips
def open_vector(fname, key="", where=''):
    """ Open vector or feature """
    parts = fname.split(':')
    if len(parts) == 1:
        vector = GeoVector(fname)
        vector.SetPrimaryKey(key)
    else:
        # or it is a database
        if parts[0] not in settings().DATABASES.keys():
            raise Exception("%s is not a valid database" % parts[0])
        try:
            db = settings().DATABASES[parts[0]]
            filename = ("PG:dbname=%s host=%s port=%s user=%s password=%s" %
                        (db['NAME'], db['HOST'], db['PORT'], db['USER'],
                         db['PASSWORD']))
            vector = GeoVector(filename, parts[1])
            vector.SetPrimaryKey(key)

        except Exception as e:
            VerboseOut(traceback.format_exc(), 4)
    if where != '':
        # return array of features

        # set_trace()

        return vector.where(where)
        features = []
    else:
        return vector
예제 #3
0
def create_repos():
    """ Create any necessary repository directories """
    repos = settings().REPOS
    for key in repos.keys():
        repo = import_repository_class(key)
        for d in repo._subdirs:
            mkdir(os.path.join(repos[key]['repository'], d))
예제 #4
0
def import_data_module(clsname):
    """ Import a data driver by name and return as module """
    import imp
    path = settings().REPOS[clsname].get('driver', '')
    if path == '':
        path = os.path.join(os.path.dirname(__file__), 'data', clsname)
    with error_handler('Error loading driver ' + clsname):
        fmtup = imp.find_module(clsname, [path])
        mod = imp.load_module(clsname, *fmtup)
        return mod
예제 #5
0
파일: utils.py 프로젝트: dchowdhury/gips
def import_data_module(clsname):
    """ Import a data driver by name and return as module """
    import imp
    path = settings().REPOS[clsname].get('driver', '')
    if path == '':
        path = os.path.join( os.path.dirname(__file__), 'data', clsname, clsname + '.py') #__init__.py' )
    try:
        mod = imp.load_source(clsname, path)
        return mod
    except:
        print traceback.format_exc()
예제 #6
0
def import_data_module(clsname):
    """ Import a data driver by name and return as module """
    import imp
    path = settings().REPOS[clsname].get('driver', '')
    if path == '':
        path = os.path.join(os.path.dirname(__file__), 'data', clsname,
                            clsname + '.py')  #__init__.py' )
    try:
        mod = imp.load_source(clsname, path)
        return mod
    except:
        print traceback.format_exc()
예제 #7
0
파일: utils.py 프로젝트: ircwaves/gips
def import_data_module(clsname):
    """ Import a data driver by name and return as module """
    import imp
    path = settings().REPOS[clsname].get('driver', '')
    if path == '':
        path = os.path.join(os.path.dirname(__file__), 'data', clsname)
    try:
        fmtup = imp.find_module(clsname, [path])
        mod = imp.load_module(clsname, *fmtup)
        return mod
    except:
        print traceback.format_exc()
예제 #8
0
def open_vector(fname, key="", where=''):
    """Open vector or feature, returned as a gippy GeoVector or GeoFeature."""
    parts = fname.split(':')
    if len(parts) == 1:
        vector = GeoVector(fname)
        vector.SetPrimaryKey(key)
    else:
        # or it is a database
        if parts[0] not in settings().DATABASES.keys():
            raise Exception("%s is not a valid database" % parts[0])
        db = settings().DATABASES[parts[0]]
        filename = (
            "PG:dbname=%s host=%s port=%s user=%s password=%s" %
            (db['NAME'], db['HOST'], db['PORT'], db['USER'], db['PASSWORD']))
        vector = GeoVector(filename, parts[1])
        vector.SetPrimaryKey(key)
    if where != '':
        # return array of features
        return vector.where(where)
    else:
        return vector
예제 #9
0
def data_sources():
    """ Get enabled data sources (and verify) from settings """
    sources = {}
    repos = settings().REPOS
    for key in sorted(repos.keys()):
        if not os.path.isdir(repos[key]['repository']):
            raise Exception(
                'ERROR: archive %s is not a directory or is not available' %
                key)
        repo = import_repository_class(key)
        sources[key] = repo.description
    return sources
예제 #10
0
def import_data_module(clsname):
    """ Import a data driver by name and return as module """
    import imp
    path = settings().REPOS[clsname].get('driver', '')
    if path == '':
        path = os.path.join( os.path.dirname(__file__), 'data', clsname)
    try:
        fmtup = imp.find_module(clsname, [path])
        mod = imp.load_module(clsname, *fmtup)
        return mod
    except:
        print traceback.format_exc()
예제 #11
0
파일: utils.py 프로젝트: dchowdhury/gips
def create_repos():
    """ Create any necessary repository directories """
    try:
        repos = settings().REPOS
    except:
        print traceback.format_exc()
        raise Exception('Problem reading repository...check settings files')
    for key in repos.keys():
        repo = import_repository_class(key)
        for d in repo._subdirs:
            path = os.path.join(repos[key]['repository'], d)
            if not os.path.isdir(path):
                os.makedirs(path)
예제 #12
0
def create_repos():
    """ Create any necessary repository directories """
    try:
        repos = settings().REPOS
    except:
        print traceback.format_exc()
        raise Exception('Problem reading repository...check settings files')
    for key in repos.keys():
        repo = import_repository_class(key)
        for d in repo._subdirs:
            path = os.path.join(repos[key]['repository'], d)
            if not os.path.isdir(path):
                os.makedirs(path)
예제 #13
0
파일: utils.py 프로젝트: danlopez00/gips
def data_sources():
    from gips.data.core import repository_class
    sources = {}
    repos = settings().REPOS
    found = False
    for key in sorted(repos.keys()):
        if os.path.isdir(repos[key]['rootpath']):
            try:
                repo = repository_class(key)
                sources[key] = repo.description
                found = True
            except:
                VerboseOut(traceback.format_exc(), 4)
    if not found:
        print "There are no available data sources!"
    return sources
예제 #14
0
파일: utils.py 프로젝트: dchowdhury/gips
def data_sources():
    """ Get enabled data sources (and verify) from settings """
    sources = {}
    repos = settings().REPOS
    found = False
    for key in sorted(repos.keys()):
        if os.path.isdir(repos[key]['repository']):
            try:
                repo = import_repository_class(key)
                sources[key] = repo.description
                found = True
            except:
                VerboseOut(traceback.format_exc(), 1)
        else:
            raise Exception('ERROR: archive %s is not a directory or is not available' % key)
    if not found:
        print "There are no available data sources!"
    return sources
예제 #15
0
def data_sources():
    """ Get enabled data sources (and verify) from settings """
    sources = {}
    repos = settings().REPOS
    found = False
    for key in sorted(repos.keys()):
        if os.path.isdir(repos[key]['repository']):
            try:
                repo = import_repository_class(key)
                sources[key] = repo.description
                found = True
            except:
                VerboseOut(traceback.format_exc(), 1)
        else:
            raise Exception(
                'ERROR: archive %s is not a directory or is not available' %
                key)
    if not found:
        print "There are no available data sources!"
    return sources