diff --git a/flaml/py.typed b/flaml/py.typed new file mode 100644 index 0000000000..e69de29bb2 diff --git a/pyproject.toml b/pyproject.toml index 36b9b056cd..b99bfc2a9d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,168 @@ [build-system] requires = ["setuptools>=64", "wheel"] -build-backend = "setuptools.build_meta:__legacy__" +build-backend = "setuptools.build_meta" + +[project] +name = "FLAML" +dynamic = ["version"] +description = "A fast library for automated machine learning and tuning" +readme = "README.md" +requires-python = ">=3.10" +license = {text = "MIT"} +authors = [ + {name = "Microsoft Corporation", email = "hpo@microsoft.com"}, +] +classifiers = [ + "License :: OSI Approved :: MIT License", + "Operating System :: OS Independent", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.10", + "Programming Language :: Python :: 3.11", + "Programming Language :: Python :: 3.12", + "Programming Language :: Python :: 3.13", +] +dependencies = [ + "NumPy>=1.17", +] + +[project.urls] +Homepage = "https://github.com/microsoft/FLAML" + +[project.optional-dependencies] +automl = [ + "lightgbm>=2.3.1", + "xgboost>=0.90,<3.0.0", + "scipy>=1.4.1", + "pandas>=1.1.4", + "scikit-learn>=1.0.0", +] +notebook = [ + "jupyter", +] +spark = [ + "pyspark>=3.2.0", + "pandas<3", + "joblibspark>=0.5.0", + "joblib<=1.3.2", +] +test = [ + "numpy>=1.17,<2.0.0; python_version<'3.13'", + "numpy>=1.17; python_version>='3.13'", + "jupyter", + "lightgbm>=2.3.1", + "xgboost>=0.90,<2.0.0; python_version<'3.11'", + "xgboost>=2.0.0; python_version>='3.11'", + "scipy>=1.4.1", + "pandas>=1.1.4", + "scikit-learn>=1.2.0", + "thop", + "pytest>=6.1.1", + "pytest-rerunfailures>=13.0", + "coverage>=5.3", + "pre-commit", + "torch", + "torchvision", + "catboost>=0.26", + "rgf-python", + "optuna>=2.8.0,<=3.6.1", + "openml", + "statsmodels>=0.12.2", + "psutil", + "transformers[torch]", + "datasets", + "evaluate", + "nltk!=3.8.2", + "rouge_score", + "hcrystalball", + "seqeval", + "pytorch-forecasting", + "mlflow-skinny<=2.22.1", + "joblibspark>=0.5.0", + "joblib<=1.3.2", + "nbconvert", + "nbformat", + "ipykernel", + "pytorch-lightning", + "tensorboardX", + "requests", + "packaging", + "dill", +] +catboost = [ + "catboost>=0.26", +] +blendsearch = [ + "optuna>=2.8.0,<=3.6.1", + "packaging", +] +ray = [ + "ray[tune]>=1.13,<2.5.0", +] +azureml = [ + "azureml-mlflow", +] +nni = [ + "nni", +] +vw = [ + "vowpalwabbit>=8.10.0, <9.0.0", + "scikit-learn", +] +hf = [ + "transformers[torch]>=4.26", + "datasets", + "nltk<=3.8.1", + "rouge_score", + "seqeval", +] +nlp = [ + "transformers[torch]>=4.26", + "datasets", + "nltk<=3.8.1", + "rouge_score", + "seqeval", +] +ts_forecast = [ + "holidays", + "prophet>=1.1.5", + "statsmodels>=0.12.2", + "hcrystalball>=0.1.10", +] +forecast = [ + "holidays", + "prophet>=1.1.5", + "statsmodels>=0.12.2", + "hcrystalball>=0.1.10", + "pytorch-forecasting>=0.10.4", + "pytorch-lightning>=1.9.0", + "tensorboardX>=2.6", +] +benchmark = [ + "catboost>=0.26", + "psutil==5.8.0", + "xgboost==1.3.3", + "pandas==1.1.4", +] +synapse = [ + "joblibspark>=0.5.0", + "optuna>=2.8.0,<=3.6.1", + "pyspark>=3.2.0", +] +autozero = [ + "scikit-learn", + "pandas", + "packaging", +] + +[tool.setuptools.dynamic] +version = {attr = "flaml.version.__version__"} + +[tool.setuptools.packages.find] +include = ["flaml*"] + +[tool.setuptools.package-data] +"flaml.default" = ["*/*.json"] +flaml = ["py.typed"] [tool.pytest.ini_options] addopts = '-m "not conda"' diff --git a/setup.py b/setup.py index d7bfe1b979..b908cbe55c 100644 --- a/setup.py +++ b/setup.py @@ -1,166 +1,3 @@ -import os - import setuptools -here = os.path.abspath(os.path.dirname(__file__)) - -with open("README.md", encoding="UTF-8") as fh: - long_description = fh.read() - - -# Get the code version -version = {} -with open(os.path.join(here, "flaml/version.py")) as fp: - exec(fp.read(), version) -__version__ = version["__version__"] - -install_requires = [ - "NumPy>=1.17", -] - - -setuptools.setup( - name="FLAML", - version=__version__, - author="Microsoft Corporation", - author_email="hpo@microsoft.com", - description="A fast library for automated machine learning and tuning", - long_description=long_description, - long_description_content_type="text/markdown", - url="https://github.com/microsoft/FLAML", - packages=setuptools.find_packages(include=["flaml*"]), - package_data={ - "flaml.default": ["*/*.json"], - }, - include_package_data=True, - install_requires=install_requires, - extras_require={ - "automl": [ - "lightgbm>=2.3.1", - "xgboost>=0.90,<3.0.0", - "scipy>=1.4.1", - "pandas>=1.1.4", - "scikit-learn>=1.0.0", - ], - "notebook": [ - "jupyter", - ], - "spark": [ - "pyspark>=3.2.0", - "pandas<3", - "joblibspark>=0.5.0", - "joblib<=1.3.2", - ], - "test": [ - "numpy>=1.17,<2.0.0; python_version<'3.13'", - "numpy>=1.17; python_version>='3.13'", - "jupyter", - "lightgbm>=2.3.1", - "xgboost>=0.90,<2.0.0; python_version<'3.11'", - "xgboost>=2.0.0; python_version>='3.11'", - "scipy>=1.4.1", - "pandas>=1.1.4,<2.0.0; python_version<'3.10'", - "pandas>=1.1.4; python_version>='3.10'", - "scikit-learn>=1.2.0", - "thop", - "pytest>=6.1.1", - "pytest-rerunfailures>=13.0", - "coverage>=5.3", - "pre-commit", - "torch", - "torchvision", - "catboost>=0.26", - "rgf-python", - "optuna>=2.8.0,<=3.6.1", - "openml", - "statsmodels>=0.12.2", - "psutil", - "dataclasses", - "transformers[torch]", - "datasets", - "evaluate", - "nltk!=3.8.2", # 3.8.2 doesn't work with mlflow - "rouge_score", - "hcrystalball", - "seqeval", - "pytorch-forecasting", - "mlflow-skinny<=2.22.1", # Refer to https://mvnrepository.com/artifact/org.mlflow/mlflow-spark - "joblibspark>=0.5.0", - "joblib<=1.3.2", - "nbconvert", - "nbformat", - "ipykernel", - "pytorch-lightning", # test_forecast_panel - "tensorboardX", # test_forecast_panel - "requests", # https://github.com/docker/docker-py/issues/3113 - "packaging", - "dill", # a drop in replacement of pickle - ], - "catboost": [ - "catboost>=0.26", - ], - "blendsearch": [ - "optuna>=2.8.0,<=3.6.1", - "packaging", - ], - "ray": [ - "ray[tune]>=1.13,<2.5.0", - ], - "azureml": [ - "azureml-mlflow", - ], - "nni": [ - "nni", - ], - "vw": [ - "vowpalwabbit>=8.10.0, <9.0.0", - "scikit-learn", - ], - "hf": [ - "transformers[torch]>=4.26", - "datasets", - "nltk<=3.8.1", - "rouge_score", - "seqeval", - ], - "nlp": [ # for backward compatibility; hf is the new option name - "transformers[torch]>=4.26", - "datasets", - "nltk<=3.8.1", - "rouge_score", - "seqeval", - ], - "ts_forecast": [ - "holidays", - "prophet>=1.1.5", - "statsmodels>=0.12.2", - "hcrystalball>=0.1.10", - ], - "forecast": [ - "holidays", - "prophet>=1.1.5", - "statsmodels>=0.12.2", - "hcrystalball>=0.1.10", - "pytorch-forecasting>=0.10.4", - "pytorch-lightning>=1.9.0", - "tensorboardX>=2.6", - ], - "benchmark": ["catboost>=0.26", "psutil==5.8.0", "xgboost==1.3.3", "pandas==1.1.4"], - "synapse": [ - "joblibspark>=0.5.0", - "optuna>=2.8.0,<=3.6.1", - "pyspark>=3.2.0", - ], - "autozero": ["scikit-learn", "pandas", "packaging"], - }, - classifiers=[ - "License :: OSI Approved :: MIT License", - "Operating System :: OS Independent", - # Specify the Python versions you support here. - "Programming Language :: Python :: 3", - "Programming Language :: Python :: 3.10", - "Programming Language :: Python :: 3.11", - "Programming Language :: Python :: 3.12", - ], - python_requires=">=3.10", -) +setuptools.setup()