depot/third_party/nixpkgs/pkgs/development/python-modules/optuna/default.nix
Default email 159e378cbb Project import generated by Copybara.
GitOrigin-RevId: c04d5652cfa9742b1d519688f65d1bbccea9eb7e
2024-09-19 17:19:46 +03:00

139 lines
2.3 KiB
Nix

{
lib,
buildPythonPackage,
fetchFromGitHub,
pytestCheckHook,
pythonOlder,
alembic,
boto3,
botorch,
catboost,
cma,
cmaes,
colorlog,
distributed,
fakeredis,
google-cloud-storage,
lightgbm,
matplotlib,
mlflow,
moto,
numpy,
packaging,
pandas,
plotly,
pytest-xdist,
pytorch-lightning,
pyyaml,
redis,
scikit-learn,
scikit-optimize,
scipy,
setuptools,
shap,
sqlalchemy,
tensorflow,
torch,
torchaudio,
torchvision,
tqdm,
wandb,
wheel,
xgboost,
}:
buildPythonPackage rec {
pname = "optuna";
version = "4.0.0";
pyproject = true;
disabled = pythonOlder "3.7";
src = fetchFromGitHub {
owner = "optuna";
repo = "optuna";
rev = "refs/tags/v${version}";
hash = "sha256-ZCK6otX90s8SB91TLkKwJ4net2dGmAKdIESeHXy87K0=";
};
nativeBuildInputs = [
setuptools
wheel
];
propagatedBuildInputs = [
alembic
colorlog
numpy
packaging
sqlalchemy
tqdm
pyyaml
];
passthru.optional-dependencies = {
integration = [
botorch
catboost
cma
distributed
lightgbm
mlflow
pandas
# pytorch-ignite
pytorch-lightning
scikit-learn
scikit-optimize
shap
tensorflow
torch
torchaudio
torchvision
wandb
xgboost
];
optional = [
boto3
botorch
cmaes
google-cloud-storage
matplotlib
pandas
plotly
redis
scikit-learn
];
};
preCheck = ''
export PATH=$out/bin:$PATH
'';
nativeCheckInputs = [
fakeredis
moto
pytest-xdist
pytestCheckHook
scipy
] ++ fakeredis.optional-dependencies.lua ++ passthru.optional-dependencies.optional;
pytestFlagsArray = [ "-m 'not integration'" ];
disabledTestPaths = [
# require unpackaged kaleido and building it is a bit difficult
"tests/visualization_tests"
# ImportError: cannot import name 'mock_s3' from 'moto'
"tests/artifacts_tests/test_boto3.py"
];
pythonImportsCheck = [ "optuna" ];
meta = with lib; {
description = "Hyperparameter optimization framework";
homepage = "https://optuna.org/";
changelog = "https://github.com/optuna/optuna/releases/tag/${version}";
license = licenses.mit;
maintainers = with maintainers; [ natsukium ];
mainProgram = "optuna";
};
}