blob: eb81644983faf51fcf92eb4b08d58213cd64e3b5 [file] [log] [blame]
# 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.
[tool.poetry]
name = "pyiceberg"
version = "0.1.0.dev0"
readme = "README.md"
homepage = "https://iceberg.apache.org/"
repository = "https://github.com/apache/iceberg/"
description = "Apache Iceberg is an open table format for huge analytic datasets"
authors = ["Apache Software Foundation <dev@iceberg.apache.org>"]
license = "Apache License 2.0"
classifiers = [
"License :: OSI Approved :: Apache Software License",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10"
]
packages = [
{ include = "pyiceberg" },
{ from = "vendor", include = "fb303" },
{ from = "vendor", include = "hive_metastore" },
]
[tool.poetry.dependencies]
python = "^3.8"
mmh3 = "^3.0.0"
requests = "^2.28.1"
pydantic = "^1.9.1"
pyarrow = { version = "^9.0.0", optional = true }
zstandard = { version = "^0.18.0", optional = true }
python-snappy = { version = "^0.6.1", optional = true }
thrift = { version = "^0.16.0", optional = true }
[tool.poetry.dev-dependencies]
pytest = "^7.0.0"
pytest-checkdocs = "^2.0.0"
pre-commit = "^2.0.0"
fastavro = "^1.5.4"
coverage = { version = "^6.4.3", extras = ["toml"] }
requests-mock = "^1.9.3"
[build-system]
requires = ["poetry-core>=1.0.0"]
build-backend = "poetry.core.masonry.api"
[tool.poetry.extras]
pyarrow = ["pyarrow"]
snappy = ["python-snappy"]
python-snappy = ["zstandard"]
hive = ["thrift"]
[tool.black]
line-length = 130
target-version = ['py38']
[tool.isort]
src_paths = ["pyiceberg/", "tests/"]
multi_line_output = 3
profile = 'black'
line_length = 130
force_grid_wrap = 4
[tool.pycln]
all = true
[tool.mypy]
no_implicit_optional = true
warn_redundant_casts = true
warn_unreachable = true
[[tool.mypy.overrides]]
module = "pyarrow.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "snappy.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "zstandard.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "pydantic.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "pytest.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "fastavro.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "mmh3.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "hive_metastore.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "thrift.*"
ignore_missing_imports = true
[[tool.mypy.overrides]]
module = "requests_mock.*"
ignore_missing_imports = true
[tool.coverage.run]
source = ['pyiceberg/']