# ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ # ┃ ██████ ██████ ██████ █ █ █ █ █ █▄ ▀███ █ ┃ # ┃ ▄▄▄▄▄█ █▄▄▄▄▄ ▄▄▄▄▄█ ▀▀▀▀▀█▀▀▀▀▀ █ ▀▀▀▀▀█ ████████▌▐███ ███▄ ▀█ █ ▀▀▀▀▀ ┃ # ┃ █▀▀▀▀▀ █▀▀▀▀▀ █▀██▀▀ ▄▄▄▄▄ █ ▄▄▄▄▄█ ▄▄▄▄▄█ ████████▌▐███ █████▄ █ ▄▄▄▄▄ ┃ # ┃ █ ██████ █ ▀█▄ █ ██████ █ ███▌▐███ ███████▄ █ ┃ # ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫ # ┃ Copyright (c) 2017, the Perspective Authors. ┃ # ┃ ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ ┃ # ┃ This file is part of the Perspective library, distributed under the terms ┃ # ┃ of the [Apache License 2.0](https://www.apache.org/licenses/LICENSE-2.0). ┃ # ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ [build-system] requires = ["maturin>=1.13.3,<2.0"] build-backend = "maturin" [project] name = "perspective-python" requires-python = ">=3.9" dynamic = ["version"] dependencies = [] license = "Apache-2.0" license-files = ["LICENSE*"] classifiers = [ "Development Status :: 5 - Production/Stable", "Programming Language :: Rust", "Programming Language :: Python :: Implementation :: CPython", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", "Framework :: Jupyter :: JupyterLab", "Framework :: Jupyter :: JupyterLab :: 3", "Framework :: Jupyter :: JupyterLab :: Extensions", # "Framework :: Jupyter :: JupyterLab :: Extensions :: Mime Renderers", "Framework :: Jupyter :: JupyterLab :: Extensions :: Prebuilt", ] [project.optional-dependencies] jupyter = ["ipywidgets>=7.5.1,<9"] tornado = ["tornado>=5,<7"] aiohttp = ["aiohttp>=2,<4"] starlette = ["starlette<1"] [tool.maturin] module-name = "perspective" data = "perspective_python-4.5.2.data" features = ["pyo3/extension-module"] include = [ { path = "perspective/*libpsp.so", format = "wheel" }, { path = "perspective/*libpsp.dll", format = "wheel" }, ] [tool.pytest.ini_options] python_classes = ["Test", "Describe"] python_functions = ["test_", "it_", "and_", "but_", "they_"] python_files = ["test_*.py"] testpaths = ["tests"] asyncio_default_fixture_loop_scope = "function" log_cli = true log_cli_level = "INFO" log_cli_format = "%(asctime)s [%(levelname)8s] %(message)s (%(filename)s:%(lineno)s)" log_cli_date_format = "%Y-%m-%d %H:%M:%S"