from setuptools import setup
from setuptools_rust import Binding, RustExtension
import tomllib as toml
def version():
with open("Cargo.toml", "rb") as file:
cargo = toml.load(file)
return cargo["package"]["version"]
def readme():
with open("README.md") as file:
return file.read()
setup(
name="phylotree",
version=version(),
description="A Rust backed package to deal with phylogenetic trees",
long_description=readme(),
long_description_content_type="text/markdown",
author="Luc Blassel",
license="GPL3",
project_urls={
"Bug Tracker": "https://github.com/lucblassel/phylotree-rs/issues",
"Documentation": "https://github.com/lucblassel/phylotree-rs",
"Source Code": "https://github.com/lucblassel/phylotree-rs",
},
classifiers=[
"Development Status :: 3 - Alpha",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
"Natural Language :: English",
"Operating System :: OS Independent",
"Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Rust",
"Topic :: Scientific/Engineering :: Bio-Informatics",
],
python_requires=">=3.7",
keywords="phylogenetic tree distance matrix",
data_files=[("", ["LICENSE"])],
rust_extensions=[
RustExtension("phylotree.pytree", binding=Binding.PyO3, features=["python"])
],
packages=["phylotree"],
setup_requires=["setuptools-rust", "setuptools", "wheel"],
zip_safe=False,
)