Showing with 16,508 additions and 11,785 deletions.
  1. +28 −37 .circleci/config.yml
  2. +3 −2 .coveragerc
  3. +2 −0 .dockerignore
  4. +1 −0 .gitignore
  5. +13 −0 .pre-commit-config.yaml
  6. +43 −22 Makefile
  7. +9 −10 README.md
  8. +0 −61 appveyor.yml
  9. +4 −5 asv.conf.json
  10. +159 −0 azure-pipelines.yml
  11. +130 −80 benchmarks/benchmarks.py
  12. +27 −0 ci/.env
  13. +0 −29 ci/Dockerfile
  14. +20 −0 ci/Dockerfile.dev
  15. +19 −0 ci/Dockerfile.docs
  16. +3 −1 ci/asvconfig.py
  17. +3 −3 ci/benchmark.sh
  18. +144 −81 ci/datamgr.py
  19. +23 −34 ci/docker-compose.yml
  20. +10 −7 ci/docs.sh
  21. +49 −26 ci/feedstock.py
  22. +72 −45 ci/impalamgr.py
  23. +2 −1 ci/mapd.conf
  24. +0 −44 ci/requirements-dev-2.7.yml
  25. +0 −37 ci/requirements-dev-3.5.yml
  26. +0 −39 ci/requirements-dev-3.6.yml
  27. +39 −0 ci/requirements-dev.yml
  28. +0 −45 ci/requirements-docs-3.6.yml
  29. +11 −0 ci/requirements-docs.yml
  30. +10 −0 ci/schema/mapd.sql
  31. +0 −4 ci/setup_docker_volume.sh
  32. +1 −1 conftest.py
  33. +174 −216 dev/merge-pr.py
  34. +3 −1 docs/source/api.rst
  35. +17 −10 docs/source/conf.py
  36. +2 −2 docs/source/contributing.rst
  37. +8 −6 docs/source/developer.rst
  38. +60 −0 docs/source/getting-started.rst
  39. +4 −2 docs/source/index.rst
  40. +1 −18 docs/source/notebooks/tutorial/3-Projection-Join-Sort.ipynb
  41. +3 −3 docs/source/notebooks/tutorial/4-More-Value-Expressions.ipynb
  42. +3 −3 docs/source/notebooks/tutorial/5-IO-Create-Insert-External-Data.ipynb
  43. +665 −0 docs/source/release-pre-1.0.rst
  44. +71 −663 docs/source/release.rst
  45. +155 −0 docs/source/roadmap.rst
  46. +2 −31 docs/source/sql.rst
  47. +92 −42 docs/source/udf.rst
  48. +66 −69 ibis/__init__.py
  49. +75 −46 ibis/_version.py
  50. +1 −0 ibis/bigquery/__init__.py
  51. +53 −15 ibis/bigquery/api.py
  52. +99 −46 ibis/bigquery/client.py
  53. +92 −97 ibis/bigquery/compiler.py
  54. +9 −9 ibis/bigquery/datatypes.py
  55. +24 −17 ibis/bigquery/tests/conftest.py
  56. +176 −145 ibis/bigquery/tests/test_client.py
  57. +134 −94 ibis/bigquery/tests/test_compiler.py
  58. +33 −28 ibis/bigquery/tests/test_datatypes.py
  59. +29 −24 ibis/bigquery/udf/api.py
  60. +29 −34 ibis/bigquery/udf/core.py
  61. +9 −7 ibis/bigquery/udf/find.py
  62. +4 −1 ibis/bigquery/udf/rewrite.py
  63. +18 −5 ibis/bigquery/udf/tests/test_core.py
  64. +1 −2 ibis/bigquery/udf/tests/test_find.py
  65. +42 −34 ibis/bigquery/udf/tests/test_udf_execute.py
  66. +20 −5 ibis/clickhouse/api.py
  67. +35 −28 ibis/clickhouse/client.py
  68. +18 −17 ibis/clickhouse/compiler.py
  69. +110 −108 ibis/clickhouse/identifiers.py
  70. +43 −61 ibis/clickhouse/operations.py
  71. +1 −0 ibis/clickhouse/tests/conftest.py
  72. +117 −112 ibis/clickhouse/tests/test_aggregations.py
  73. +21 −16 ibis/clickhouse/tests/test_client.py
  74. +246 −183 ibis/clickhouse/tests/test_functions.py
  75. +18 −18 ibis/clickhouse/tests/test_literals.py
  76. +140 −99 ibis/clickhouse/tests/test_operators.py
  77. +97 −81 ibis/clickhouse/tests/test_select.py
  78. +2 −1 ibis/clickhouse/tests/test_types.py
  79. +25 −27 ibis/client.py
  80. +9 −111 ibis/compat.py
  81. +67 −54 ibis/config.py
  82. +4 −3 ibis/config_init.py
  83. +162 −136 ibis/expr/analysis.py
  84. +30 −15 ibis/expr/analytics.py
  85. +537 −224 ibis/expr/api.py
  86. +588 −301 ibis/expr/datatypes.py
  87. +64 −64 ibis/expr/format.py
  88. +38 −25 ibis/expr/groupby.py
  89. +62 −30 ibis/expr/lineage.py
  90. +602 −329 ibis/expr/operations.py
  91. +25 −15 ibis/expr/rules.py
  92. +8 −9 ibis/expr/schema.py
  93. +41 −65 ibis/expr/signature.py
  94. +11 −4 ibis/expr/tests/conftest.py
  95. +75 −33 ibis/expr/tests/mocks.py
  96. +38 −72 ibis/expr/tests/test_analysis.py
  97. +8 −9 ibis/expr/tests/test_analytics.py
  98. +2 −2 ibis/expr/tests/test_array.py
  99. +31 −26 ibis/expr/tests/test_case.py
  100. +239 −180 ibis/expr/tests/test_datatypes.py
  101. +10 −14 ibis/expr/tests/test_decimal.py
  102. +65 −40 ibis/expr/tests/test_format.py
  103. +65 −0 ibis/expr/tests/test_geospatial.py
  104. +3 −2 ibis/expr/tests/test_interactive.py
  105. +52 −19 ibis/expr/tests/test_lineage.py
  106. +1 −1 ibis/expr/tests/test_operations.py
  107. +9 −6 ibis/expr/tests/test_pipe.py
  108. +158 −129 ibis/expr/tests/test_rules.py
  109. +80 −51 ibis/expr/tests/test_schema.py
  110. +88 −103 ibis/expr/tests/test_signature.py
  111. +14 −11 ibis/expr/tests/test_sql_builtins.py
  112. +1 −4 ibis/expr/tests/test_string.py
  113. +123 −194 ibis/expr/tests/test_table.py
  114. +373 −268 ibis/expr/tests/test_temporal.py
  115. +18 −26 ibis/expr/tests/test_timestamp.py
  116. +244 −194 ibis/expr/tests/test_value_exprs.py
  117. +37 −23 ibis/expr/tests/test_visualize.py
  118. +30 −18 ibis/expr/tests/test_window_functions.py
  119. +378 −117 ibis/expr/types.py
  120. +44 −95 ibis/expr/visualize.py
  121. +57 −38 ibis/expr/window.py
  122. +2 −4 ibis/file/client.py
  123. +9 −7 ibis/file/csv.py
  124. +6 −4 ibis/file/hdf5.py
  125. +2 −2 ibis/file/parquet.py
  126. +7 −4 ibis/file/tests/conftest.py
  127. +4 −1 ibis/file/tests/test_hdf5.py
  128. +10 −1 ibis/file/tests/test_parquet.py
  129. +100 −57 ibis/file/tests/test_schema.py
  130. +52 −40 ibis/filesystems.py
  131. +24 −13 ibis/impala/api.py
  132. +350 −195 ibis/impala/client.py
  133. +76 −100 ibis/impala/compiler.py
  134. +168 −113 ibis/impala/ddl.py
  135. +1 −1 ibis/impala/identifiers.py
  136. +111 −56 ibis/impala/kudu_support.py
  137. +16 −12 ibis/impala/metadata.py
  138. +34 −33 ibis/impala/pandas_interop.py
  139. +51 −31 ibis/impala/tests/conftest.py
  140. +24 −15 ibis/impala/tests/test_client.py
  141. +50 −33 ibis/impala/tests/test_ddl.py
  142. +141 −101 ibis/impala/tests/test_ddl_compilation.py
  143. +377 −343 ibis/impala/tests/test_exprs.py
  144. +59 −38 ibis/impala/tests/test_kudu_support.py
  145. +35 −22 ibis/impala/tests/test_metadata.py
  146. +118 −45 ibis/impala/tests/test_pandas_interop.py
  147. +33 −14 ibis/impala/tests/test_parquet_ddl.py
  148. +53 −44 ibis/impala/tests/test_partition.py
  149. +16 −14 ibis/impala/tests/test_patched.py
  150. +206 −57 ibis/impala/tests/test_sql.py
  151. +152 −68 ibis/impala/tests/test_udf.py
  152. +56 −43 ibis/impala/tests/test_window.py
  153. +59 −33 ibis/impala/udf.py
  154. +17 −6 ibis/mapd/api.py
  155. +141 −76 ibis/mapd/client.py
  156. +51 −28 ibis/mapd/compiler.py
  157. +33 −44 ibis/mapd/ddl.py
  158. +129 −124 ibis/mapd/identifiers.py
  159. +186 −44 ibis/mapd/operations.py
  160. +47 −14 ibis/mapd/tests/conftest.py
  161. +26 −2 ibis/mapd/tests/test_client.py
  162. +140 −31 ibis/mapd/tests/test_operations.py
  163. +36 −29 ibis/pandas/aggcontext.py
  164. +9 −6 ibis/pandas/api.py
  165. +20 −19 ibis/pandas/client.py
  166. +53 −30 ibis/pandas/core.py
  167. +23 −20 ibis/pandas/dispatch.py
  168. +6 −13 ibis/pandas/execution/arrays.py
  169. +1 −3 ibis/pandas/execution/constants.py
  170. +4 −7 ibis/pandas/execution/decimal.py
  171. +119 −126 ibis/pandas/execution/generic.py
  172. +40 −6 ibis/pandas/execution/join.py
  173. +3 −1 ibis/pandas/execution/maps.py
  174. +42 −37 ibis/pandas/execution/selection.py
  175. +78 −109 ibis/pandas/execution/strings.py
  176. +19 −13 ibis/pandas/execution/temporal.py
  177. +77 −62 ibis/pandas/execution/tests/conftest.py
  178. +78 −59 ibis/pandas/execution/tests/test_arrays.py
  179. +47 −29 ibis/pandas/execution/tests/test_cast.py
  180. +36 −30 ibis/pandas/execution/tests/test_functions.py
  181. +93 −68 ibis/pandas/execution/tests/test_join.py
  182. +4 −8 ibis/pandas/execution/tests/test_maps.py
  183. +285 −164 ibis/pandas/execution/tests/test_operations.py
  184. +64 −34 ibis/pandas/execution/tests/test_strings.py
  185. +32 −50 ibis/pandas/execution/tests/test_temporal.py
  186. +126 −83 ibis/pandas/execution/tests/test_window.py
  187. +1 −2 ibis/pandas/execution/util.py
  188. +35 −23 ibis/pandas/execution/window.py
  189. +22 −20 ibis/pandas/tests/test_client.py
  190. +24 −24 ibis/pandas/tests/test_core.py
  191. +76 −53 ibis/pandas/tests/test_datatypes.py
  192. +165 −65 ibis/pandas/tests/test_schema.py
  193. +211 −55 ibis/pandas/tests/test_udf.py
  194. +301 −163 ibis/pandas/udf.py
  195. +66 −93 ibis/sql/alchemy.py
  196. +275 −242 ibis/sql/compiler.py
  197. +3 −3 ibis/sql/mysql/api.py
  198. +27 −16 ibis/sql/mysql/client.py
  199. +54 −58 ibis/sql/mysql/compiler.py
  200. +4 −4 ibis/sql/postgres/api.py
  201. +25 −15 ibis/sql/postgres/client.py
  202. +137 −141 ibis/sql/postgres/compiler.py
  203. +6 −10 ibis/sql/postgres/tests/conftest.py
  204. +6 −8 ibis/sql/postgres/tests/test_client.py
  205. +294 −244 ibis/sql/postgres/tests/test_functions.py
  206. +1 −0 ibis/sql/sqlite/api.py
  207. +68 −79 ibis/sql/sqlite/client.py
  208. +73 −92 ibis/sql/sqlite/compiler.py
  209. +5 −4 ibis/sql/sqlite/tests/conftest.py
  210. +83 −111 ibis/sql/sqlite/tests/test_functions.py
  211. +388 −320 ibis/sql/tests/test_compiler.py
  212. +132 −91 ibis/sql/tests/test_sqlalchemy.py
  213. +4 −7 ibis/sql/transforms.py
  214. +26 −5 ibis/tests/all/conftest.py
  215. +121 −114 ibis/tests/all/test_aggregation.py
  216. +3 −1 ibis/tests/all/test_array.py
  217. +50 −10 ibis/tests/all/test_client.py
  218. +9 −11 ibis/tests/all/test_column.py
  219. +73 −37 ibis/tests/all/test_generic.py
  220. +112 −0 ibis/tests/all/test_geospatial.py
  221. +32 −22 ibis/tests/all/test_join.py
  222. +105 −72 ibis/tests/all/test_numeric.py
  223. +14 −12 ibis/tests/all/test_param.py
  224. +43 −18 ibis/tests/all/test_string.py
  225. +112 −69 ibis/tests/all/test_temporal.py
  226. +129 −126 ibis/tests/all/test_window.py
  227. +107 −69 ibis/tests/backends.py
  228. +30 −38 ibis/tests/test_filesystems.py
  229. +1 −4 ibis/tests/test_version.py
  230. +32 −10 ibis/tests/util.py
  231. +12 −68 ibis/util.py
  232. +3 −0 pyproject.toml
  233. +2 −7 requirements.txt
  234. +6 −2 setup.cfg
  235. +28 −48 setup.py
  236. +142 −80 versioneer.py
65 changes: 28 additions & 37 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ test: &test
command: docker ps
- run:
name: Build Ibis Image
command: docker-compose build --pull ibis
command: docker-compose build ibis
- run:
name: List Docker Images
command: docker images
Expand All @@ -51,7 +51,7 @@ test: &test
command: docker-compose run ibis conda list
- run:
name: Capture the exact environment used
command: docker-compose run ibis conda env export > /tmp/env/env.yml
command: docker-compose run ibis conda list --export > /tmp/env/env.yml
- run:
name: Execute Pytest
command: |
Expand Down Expand Up @@ -84,7 +84,7 @@ build: &build
path: ~/ibis
- run:
name: Build Ibis Image
command: docker-compose build --pull ibis
command: docker-compose build ibis
- run:
name: List Docker Images
command: docker images
Expand All @@ -107,7 +107,7 @@ benchmark: &benchmark
path: ~/ibis
- run:
name: Build Ibis Image
command: docker-compose build --pull ibis
command: docker-compose build ibis
- run:
name: Run Benchmark (ASV)
command: |
Expand All @@ -130,28 +130,34 @@ docs: &docs
command: docker ps
- run:
name: Build Ibis Documentation Image
command: docker-compose build --pull ibis
command: docker-compose build ibis && docker-compose build ibis-docs
- run:
name: List Docker Images
command: docker images
- run:
name: Wait for Databases
command: docker-compose run waiter
- run:
name: Show Running Containers
command: docker ps
- run:
name: Load Test Datasets
command: docker-compose run ibis ci/load-data.sh
command: docker-compose run ibis-docs ci/load-data.sh
- run:
name: Ping the Notebook Impala Hostname
command: docker-compose run ibis ping -c 1 quickstart.cloudera
command: docker-compose run ibis-docs ping -c 1 quickstart.cloudera
- run:
name: Clone Documentation Repository
command: docker-compose run ibis git clone --branch gh-pages https://github.com/ibis-project/docs.ibis-project.org /tmp/docs.ibis-project.org
command: docker-compose run ibis-docs git clone --branch gh-pages https://github.com/ibis-project/docs.ibis-project.org /tmp/docs.ibis-project.org
- run:
name: Clear Out Old Documentation Files
command: docker-compose run ibis find /tmp/docs.ibis-project.org -maxdepth 1 ! -name '*.git' ! -wholename /tmp/docs.ibis-project.org ! -name 'CNAME' ! -name '*.nojekyll' -exec rm -rf {} \;
command: docker-compose run ibis-docs find /tmp/docs.ibis-project.org -maxdepth 1 ! -name '*.git' ! -wholename /tmp/docs.ibis-project.org ! -name 'CNAME' ! -name '*.nojekyll' -exec rm -rf {} \;
- run:
name: Show the environment used to build the docs
command: docker-compose run ibis-docs conda list
- run:
name: Build Documentation
command: docker-compose run ibis sphinx-build -b html docs/source /tmp/docs.ibis-project.org -W -T -j auto
command: docker-compose run ibis-docs sphinx-build -b html docs/source /tmp/docs.ibis-project.org -W -T
- run:
name: Who is Running
command: |
Expand All @@ -175,38 +181,27 @@ docs: &docs
path: /tmp/ibis/docs.ibis-project.org

jobs:
python27_test:
<<: *test
environment:
- PYTHONHASHSEED: ""
- PYTHON_VERSION: 2.7

python35_test:
<<: *test
environment:
- PYTHONHASHSEED: 0
- PYTHON_VERSION: 3.5

python36_test:
<<: *test
environment:
- PYTHONHASHSEED: ""
- PYTHON_VERSION: 3.6

python27_conda_build:
<<: *build
python37_test:
<<: *test
environment:
- PYTHON_VERSION: 2.7
- PYTHONHASHSEED: ""
- PYTHON_VERSION: 3.7

python35_conda_build:
python36_conda_build:
<<: *build
environment:
- PYTHON_VERSION: 3.5
- PYTHON_VERSION: 3.6

python36_conda_build:
python37_conda_build:
<<: *build
environment:
- PYTHON_VERSION: 3.6
- PYTHON_VERSION: 3.7

python36_benchmark:
<<: *benchmark
Expand All @@ -223,13 +218,9 @@ workflows:
version: 2
test:
jobs:
- python27_test
- python27_conda_build

- python35_test
- python35_conda_build

- python36_test
- python36_conda_build
- python36_benchmark
- python37_test
- python36_docs
- python36_benchmark
#- python36_conda_build
#- python37_conda_build
5 changes: 3 additions & 2 deletions .coveragerc
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,6 @@ exclude_lines =
if __name__ == .__main__.:
ignore_errors = True
omit =
_version.py
tests/*
*_version.py
*tests*
*__init__*
2 changes: 2 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
ci/udf/CMakeCache.txt
ci/udf/CMakeFiles/
ci/udf/Makefile
**/*.pyc
**/__pycache__
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -65,3 +65,4 @@ ibis_testing*
.asv/
.ipynb_checkpoints/
.pytest_cache
.mypy_cache
13 changes: 13 additions & 0 deletions .pre-commit-config.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
repos:
- repo: git://github.com/pre-commit/pre-commit-hooks
rev: v2.1.0
hooks:
- id: flake8
types:
- python
args: ['--config=setup.cfg']

- repo: https://github.com/ambv/black
rev: stable
hooks:
- id: black
65 changes: 43 additions & 22 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,61 +1,82 @@
.PHONY: all clean-pyc develop lint test docclean docs docserve
.PHONY: all clean develop typecheck stop build start load restart init test testmost testfast testparams docclean doc

SHELL := /bin/bash
ENVKIND := docs
MAKEFILE_DIR = $(patsubst %/,%,$(dir $(abspath $(lastword $(MAKEFILE_LIST)))))
COMPOSE_FILE := "$(MAKEFILE_DIR)/ci/docker-compose.yml"
DOCKER := ENVKIND=$(ENVKIND) docker-compose -f $(COMPOSE_FILE)
DOCKER := docker-compose -f $(COMPOSE_FILE)
DOCKER_RUN := $(DOCKER) run --rm
PYTEST_OPTIONS :=
SERVICES := mapd postgres mysql clickhouse impala kudu-master kudu-tserver

clean:
@find . -name '*.pyc' -exec -delete
python setup.py clean
find $(MAKEFILE_DIR) -name '*.pyc' -type f -delete
rm -rf $(MAKEFILE_DIR)/build $(MAKEFILE_DIR)/dist $(find $(MAKEFILE_DIR) -name __pycache__ -type d)

develop: clean
@python setup.py develop
python setup.py develop
pre-commit install

typecheck:
@mypy --ignore-missing-imports $(MAKEFILE_DIR)/ibis

lint:
@flake8
flake8

stop:
# stop all running docker compose services
@$(DOCKER) rm --force --stop
$(DOCKER) rm --force --stop ${SERVICES}

build:
# build the ibis image
@$(DOCKER) build --pull ibis
$(DOCKER) build --pull ibis

start:
# start all docker compose services
@$(DOCKER) up -d --no-build mapd postgres mysql clickhouse impala kudu-master kudu-tserver
$(DOCKER) up -d --no-build ${SERVICES}
# wait for services to start
@$(DOCKER_RUN) waiter
$(DOCKER_RUN) waiter

load:
@$(DOCKER_RUN) -e LOGLEVEL ibis ci/load-data.sh
$(DOCKER_RUN) -e LOGLEVEL ibis ci/load-data.sh

restart: stop
@$(MAKE) start
$(MAKE) start

init: restart
@$(MAKE) build
@$(MAKE) load
$(MAKE) build
$(MAKE) load

testparallel:
$(MAKEFILE_DIR)/ci/test.sh -n auto -m 'not udf' \
--doctest-modules --doctest-ignore-import-errors ${PYTEST_OPTIONS}

test:
@ENVKIND=$(ENVKIND) $(MAKEFILE_DIR)/ci/test.sh -n auto -m 'not udf'
$(MAKEFILE_DIR)/ci/test.sh ${PYTEST_OPTIONS} \
--doctest-modules --doctest-ignore-import-errors

testmost:
$(MAKEFILE_DIR)/ci/test.sh -n auto -m 'not (udf or impala or hdfs)' \
--doctest-modules --doctest-ignore-import-errors ${PYTEST_OPTIONS}

testfast:
@ENVKIND=$(ENVKIND) $(MAKEFILE_DIR)/ci/test.sh -n auto -m 'not udf and not impala and not bigquery'
$(MAKEFILE_DIR)/ci/test.sh -n auto -m 'not (udf or impala or hdfs or bigquery)' \
--doctest-modules --doctest-ignore-import-errors ${PYTEST_OPTIONS}

docclean:
@$(DOCKER_RUN) ibis rm -rf /tmp/docs.ibis-project.org
$(DOCKER_RUN) ibis-docs rm -rf /tmp/docs.ibis-project.org

builddoc:
# build the ibis-docs image
$(DOCKER) build ibis-docs

docs: docclean
@$(DOCKER_RUN) ibis ping -c 1 quickstart.cloudera
@$(DOCKER_RUN) ibis git clone --branch gh-pages https://github.com/ibis-project/docs.ibis-project.org /tmp/docs.ibis-project.org
@$(DOCKER_RUN) ibis find /tmp/docs.ibis-project.org -maxdepth 1 ! -wholename /tmp/docs.ibis-project.org \
doc: builddoc docclean
$(DOCKER_RUN) ibis-docs ping -c 1 quickstart.cloudera
$(DOCKER_RUN) ibis-docs git clone --branch gh-pages https://github.com/ibis-project/docs.ibis-project.org /tmp/docs.ibis-project.org --depth 1
$(DOCKER_RUN) ibis-docs find /tmp/docs.ibis-project.org -maxdepth 1 ! -wholename /tmp/docs.ibis-project.org \
! -name '*.git' \
! -name '.' \
! -name 'CNAME' \
! -name '*.nojekyll' \
-exec rm -rf {} \;
@$(DOCKER_RUN) ibis sphinx-build -b html docs/source /tmp/docs.ibis-project.org -W -j auto -T
$(DOCKER_RUN) ibis-docs sphinx-build -b html docs/source /tmp/docs.ibis-project.org -W -T
19 changes: 9 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@

|Service|Status|
| -------------: | :---- |
| Documentation | [![Documentation Status](https://img.shields.io/badge/docs-docs.ibis--project.org-blue.svg)](http://docs.ibis-project.org) |
| Documentation | [![Documentation Status](https://img.shields.io/badge/docs-docs.ibis--project.org-blue.svg)](http://docs.ibis-project.org) |
| Conda packages | [![Anaconda-Server Badge](https://anaconda.org/conda-forge/ibis-framework/badges/version.svg)](https://anaconda.org/conda-forge/ibis-framework) |
| PyPI | ![PyPI](https://img.shields.io/pypi/v/ibis-framework.svg) |
| CircleCI | [![CircleCI Status](https://circleci.com/gh/ibis-project/ibis.svg?style=shield&circle-token=b84ff8383cbb0d6788ee0f9635441cb962949a4f)](https://circleci.com/gh/ibis-project/ibis/tree/master) |
| AppVeyor | [![AppVeyor Status](https://ci.appveyor.com/api/projects/status/github/ibis-project/ibis?branch=master&svg=true)](https://ci.appveyor.com/project/cpcloud/ibis-xh5g1) |
| Coverage | ![Codecov branch](https://img.shields.io/codecov/c/github/ibis-project/ibis/master.svg) |
| PyPI | ![PyPI](https://img.shields.io/pypi/v/ibis-framework.svg) |
| CircleCI | [![CircleCI Status](https://circleci.com/gh/ibis-project/ibis.svg?style=shield&circle-token=b84ff8383cbb0d6788ee0f9635441cb962949a4f)](https://circleci.com/gh/ibis-project/ibis/tree/master) |
| Azure | [![Azure Status](https://dev.azure.com/ibis-project/ibis/_apis/build/status/ibis-project.ibis)](https://dev.azure.com/ibis-project/ibis/_build) |
| Coverage | ![Codecov branch](https://img.shields.io/codecov/c/github/ibis-project/ibis/master.svg) |


Ibis is a toolbox to bridge the gap between local Python environments, remote
Expand All @@ -29,16 +29,15 @@ conda install ibis-framework -c conda-forge

Ibis currently provides tools for interacting with the following systems:

- [Apache Impala (incubating)](http://impala.io/)
- [Apache Kudu](http://getkudu.io)
- [Apache Impala](https://impala.apache.org/)
- [Apache Kudu](https://kudu.apache.org/)
- [Hadoop Distributed File System (HDFS)](https://hadoop.apache.org/)
- [PostgreSQL](https://www.postgresql.org/)
- [MySQL](https://www.mysql.com/) (Experimental)
- [SQLite](https://www.sqlite.org/)
- [Pandas](https://pandas.pydata.org/) [DataFrames](http://pandas.pydata.org/pandas-docs/stable/dsintro.html#dataframe) (Experimental)
- [Clickhouse](https://clickhouse.yandex)
- [BigQuery](https://cloud.google.com/bigquery)
- [MapD](https://www.mapd.com/) (Experimental)
- [MapD](https://www.mapd.com) (Experimental)

Learn more about using the library at http://docs.ibis-project.org and read the
project blog at http://ibis-project.org for news and updates.
Learn more about using the library at http://docs.ibis-project.org.
61 changes: 0 additions & 61 deletions appveyor.yml

This file was deleted.

Loading