anchor.diff:  , pandas
   , parsy
   , poetry-core
  +, poetry-dynamic-versioning
   , pyarrow
  -, pytest
  +, pydantic
  +, pytest-benchmark
   , pytest-mock
   , pytest-xdist
  +, python
   , pytz
   , regex
   , requests
   , sqlalchemy
  -, tables
  +, sqlite
  +, tabulate
   , toolz
   }:
   let
     # ignore tests for which dependencies are not available
     backends = [
  -    "csv"
       "dask"
  -    "hdf5"
  +    "datafusion"
  +    "duckdb"
       "pandas"
  -    "parquet"
       "sqlite"
     ];
  -
  -  backendsString = lib.concatStringsSep " " backends;
   
     ibisTestingData = fetchFromGitHub {
       owner = "ibis-project";
       repo = "testing-data";
  -    rev = "743201a35c6b968cf55b054f9d28949ea15d1f0a";
  -    sha256 = "sha256-xuSE6wHP3aF8lnEE2SuFbTRBu49ecRmc1F3HPcszptI=";
  +    rev = "a88a4b3c3b54a88e7f77e59de70f5bf20fb62f19";
  +    sha256 = "sha256-BnRhVwPcWFwiBJ2ySgiiuUdnF4gesnTq1/dLcuvc868=";
     };
   in
   
   buildPythonPackage rec {
     pname = "ibis-framework";
  -  version = "2.1.1";
  +  version = "3.0.2";
     format = "pyproject";
   
  -  disabled = pythonOlder "3.7";
  +  disabled = pythonOlder "3.8";
   
     src = fetchFromGitHub {
       repo = "ibis";
       owner = "ibis-project";
       rev = version;
  -    hash = "sha256-n3fR6wvcSfIo7760seB+5SxtoYSqQmqkzZ9VlNQF200=";
  +    hash = "sha256-7ywDMAHQAl39kiHfxVkq7voUEKqbb9Zq8qlaug7+ukI=";
     };
   
     nativeBuildInputs = [ poetry-core ];
  
positive.code:     find "$IBIS_TEST_DATA_DIRECTORY" -type f -exec chmod u+rw {} +
  
      # load data
      for backend in ${backendsString}; do
        python ci/datamgr.py "$backend" &
      done
  
      wait
    '' + lib.optionalString (lib.versionOlder version "3.0.0") ''
      export PYTEST_BACKENDS="${backendsString}"
    '';
  
    pythonImportsCheck = [
  
negative.code: , clickhouse-driver
  , click
  , dask
  , datafusion
  , duckdb
  , duckdb-engine
  , graphviz
  , importlib-metadata
  , multipledispatch
  