geruh commented on code in PR #2601: URL: https://github.com/apache/iceberg-python/pull/2601#discussion_r2437786132
########## pyproject.toml: ########## @@ -14,111 +14,163 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -[tool.poetry] +[project] name = "pyiceberg" version = "0.10.0" -readme = "README.md" -homepage = "https://py.iceberg.apache.org/" -repository = "https://github.com/apache/iceberg-python" description = "Apache Iceberg is an open table format for huge analytic datasets" -authors = ["Apache Software Foundation <[email protected]>"] -license = "Apache License 2.0" +authors = [{ name = "Apache Software Foundation", email = "[email protected]" }] +requires-python = ">=3.9.2,<4.0.0,!=3.9.7" +readme = "README.md" +license = "Apache-2.0" classifiers = [ - "License :: OSI Approved :: Apache Software License", - "Operating System :: OS Independent", - "Programming Language :: Python :: 3.9", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", + "License :: OSI Approved :: Apache Software License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3.9", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", ] -packages = [ - { include = "pyiceberg" }, - { from = "vendor", include = "fb303" }, - { from = "vendor", include = "hive_metastore" }, - { include = "tests", format = "sdist" }, - { include = "Makefile", format = "sdist" }, - { include = "NOTICE", format = [ - "sdist", - "wheel", - ] }, +dependencies = [ + "mmh3>=4.0.0,<6.0.0", + "requests>=2.20.0,<3.0.0", + "click>=7.1.1,<9.0.0", + "rich>=10.11.0,<15.0.0", + "strictyaml>=1.7.0,<2.0.0", # CVE-2020-14343 was fixed in 5.4. + "pydantic>=2.0,!=2.4.0,!=2.4.1,<2.12.0", # 2.4.0, 2.4.1, 2.12.0 has a critical bug + "sortedcontainers==2.4.0", + "fsspec>=2023.1.0", + "pyparsing>=3.1.0,<4.0.0", + "tenacity>=8.2.3,<10.0.0", + "pyroaring>=1.0.0,<2.0.0", + "cachetools>=5.5,<7.0", + "zstandard>=0.13.0,<1.0.0" ] -include = [ - { path = "dev", format = "sdist" }, - { path = "pyiceberg/**/*.so", format = "wheel" }, - { path = "pyiceberg/**/*.pyd", format = "wheel" }, - { path = "poetry.lock", format = "sdist" }, + +[project.optional-dependencies] +pyarrow = [ + "pyarrow>=17.0.0", Review Comment: Sounds good! it looks like poetry had a way of doing this before with the `[tool.poetry.extras]`, kind of acting as a version catalog. UV doesn't have support for this but respects the PEP standard for project dependencies. In this case one way we can de-duplicate is by using the PEP 508 Extras grammar which allows for self referencing other dependencies in the project like: ``` [project.optional-dependencies] pyarrow = [ "pyarrow>=17.0.0", "pyiceberg-core>=0.5.1,<0.7.0", ] pandas = [ "pyiceberg[pyarrow]", "pandas>=1.0.0,<3.0.0", ] ``` What do you think @Fokko? -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
