Source code for dremio_client

# -*- coding: utf-8 -*-
#
# Copyright (c) 2019 Ryan Murray.
#
# This file is part of Dremio Client
# (see https://github.com/rymurr/dremio_client).
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.
#
from __future__ import absolute_import, division, print_function
import os

from .conf import build_config
from .dremio_client import DremioClient
from .dremio_simple_client import SimpleClient
from .model.endpoints import catalog, catalog_item, job_results, job_status, sql


__author__ = """Ryan Murray"""
__email__ = "rymurr@gmail.com"
__version__ = "__version__ = '0.13.2'"


def get_config(config_dir=None, args=None):
    if config_dir:
        os.environ["DREMIO_CLIENTDIR"] = config_dir
    return build_config(args)


[docs]def init(config_dir=None, simple_client=False, config_dict=None): """ create a new Dremio client object This returns a rich client by default. This client abstracts the Dremio catalog into a a set of Python objects and enables *<Tab>* completion where possible. It also supports fetching datasets via flight or odbc The simple client simply wraps the Dremio REST endpoints an returns ``dict`` objects :param config_dir: optional directory to look for config in :param simple_client: return the 'simple' client. :param config_dict: dictionary of extra config arguments :return: either a simple or rich client :example: >>> client = init('/my/config/dir') """ if config_dict is None: config_dict = dict() config = get_config(config_dir, args=config_dict) return _connect(config, simple_client)
def _connect(config, simple=False): if simple: return SimpleClient(config) return DremioClient(config) __all__ = ["init", "catalog", "catalog_item", "sql", "job_status", "job_results"] # https://github.com/ipython/ipython/issues/11653 # autocomplete doesn't work when using jedi so turn it off! try: __IPYTHON__ except NameError: pass else: from IPython import __version__ major = int(__version__.split(".")[0]) if major >= 6: from IPython import get_ipython get_ipython().Completer.use_jedi = False