causalscale / setup.py
sgao-academics's picture
Release 4.0.0: repository is the replication package (protocol, records, audit, conventions, fixed toolkit)
b890fab verified
Raw History Blame Contribute Delete
3.13 kB
"""causalscale replication package — benchmark protocol for differentiable causal discovery.
Accompanies: "Protocol, Not Physics: Re-measuring the Scalability Limit of
Differentiable Causal Discovery" (KDD 2027 Datasets & Benchmarks).
Reading the released results needs numpy and matplotlib. Re-running the
experiments needs a solver stack, which is an extra rather than a requirement, so
that `pip install -e .` stays small and cannot fail on a GPU-less machine.
pip install -e . # read the tables, figures and audit
pip install -e ".[solvers]" # re-run the suites
python run_all.py --verify
Author: Shuaidong Gao (ORCID 0009-0004-5641-3581)
"""
import os
from setuptools import find_packages, setup
_HERE = os.path.dirname(os.path.abspath(__file__))
_readme = os.path.join(_HERE, "README.md")
long_description = open(_readme, encoding="utf-8").read() if os.path.exists(_readme) else ""
setup(
name="causalscale",
version="4.0.0",
description=("Benchmark protocol for differentiable causal discovery: fixed "
"generators, a shared tuning budget, per-seed records, and an "
"executable audit of the paper's claims"),
long_description=long_description,
long_description_content_type="text/markdown",
author="Shuaidong Gao",
author_email="sgao.academics@gmail.com",
url="https://github.com/sgao-academics/causalscale",
packages=find_packages(include=["causalscale", "causalscale.*",
"experiments", "experiments.*"]),
include_package_data=True,
package_data={"experiments": ["records/*.jsonl"]},
python_requires=">=3.10",
install_requires=[
"numpy>=1.24",
],
extras_require={
# needed to redraw Figure 1; everything else in the reading path is numpy
"figures": ["matplotlib>=3.7"],
# needed to re-run any suite
"solvers": [
"torch>=2.0",
"scipy>=1.10",
"scikit-learn>=1.2",
"dagma>=0.1",
],
# the toolkit measured in SS4.4, kept for inspection
"toolkit": [
"torch>=2.0",
"scipy>=1.10",
"scikit-learn>=1.2",
"pandas>=1.5",
"networkx>=3.0",
],
"web": ["streamlit>=1.28", "plotly>=5.15"],
},
entry_points={
"console_scripts": [
"causalscale=causalscale.cli:main",
],
},
classifiers=[
"Development Status :: 4 - Beta",
"Intended Audience :: Science/Research",
"License :: OSI Approved :: MIT License",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Scientific/Engineering :: Information Analysis",
],
keywords="causal-discovery benchmark reproducibility dag structure-learning",
)