https://github.com/unit8co/darts
Tip revision: b41be28272c180c8812ff3355aef5c995950c82d authored by Dennis Bader on 20 September 2024, 16:29:44 UTC
Feat/metrics quantiles (#2530)
Feat/metrics quantiles (#2530)
Tip revision: b41be28
build.gradle
buildscript {
repositories {
maven { url "https://plugins.gradle.org/m2/" }
gradlePluginPortal()
}
}
plugins {
id "com.palantir.docker" version "0.27.0"
id "com.palantir.docker-run" version "0.27.0"
}
// needed for palantir plugin
task build {
}
// docker & docker run
docker {
name "unit8/darts"
// ./gradlew dockerPushVersion will push image with tag ${version}
// ${version} is property passed from command line during workflow
tag "version", "unit8/darts:${version}"
// ./gradlew dockerPushLatest will push image with tag 'latest'
tag "latest", "unit8/darts:latest"
dockerfile file("${project.rootDir}/Dockerfile")
// needed files for docker and to build library
files "README.md", "setup.py", "setup.cfg"
copySpec.with {
from(".") {
include "examples/**"
into "."
}
from(".") {
include "darts/**"
into "."
}
from(".") {
include "requirements/**"
into "."
}
}
}
dockerRun {
name "unit8_darts"
image "unit8/darts:latest"
ports "8888:8888"
daemonize false
clean true
}
// setup requirements
task setupPip(type: Exec) {
commandLine "python", "-m", "pip", "install", "--upgrade", "pip"
}
task installPipLatest {
dependsOn setupPip
doLast {
exec {
commandLine "pip", "install", "pip-tools"
}
exec {
commandLine "pip-compile", "requirements/core.txt", "requirements/notorch.txt", "requirements/torch.txt", "-o", "requirements-latest.txt"
}
exec {
commandLine "pip", "install", "-r", "requirements-latest.txt"
}
}
}
void createPipInstallTask(String flavour) {
String taskName = "pip_" + flavour;
String taskArgument = "requirements/" + flavour + ".txt";
task (taskName, type: Exec) {
commandLine "pip", "install", "-q", "-r", taskArgument
}
}
String[] flavours = ["core", "dev", "notorch", "torch", "release"];
for(String flavour : flavours) {
createPipInstallTask(flavour);
}
task installLocally(type:Exec) {
commandLine "pip", "install", "."
}
task pipInstall() {
doFirst {
setupPip
}
dependsOn pip_core, pip_dev, pip_notorch, pip_torch, pip_release
}
task lint(type: Exec) {
dependsOn pip_dev
commandLine "pre-commit", "run", "--all-files"
}
void createPipRelatedTask(String flavour) {
String taskName = "unitTest_" + flavour;
String taskArgument = "pip_" + flavour;
task (taskName, type: Exec) {
dependsOn(taskArgument)
dependsOn pip_core
dependsOn pip_dev
commandLine "pytest", "--durations=50", "--cov=darts", "--cov-config=.coveragerc", "--cov-report=xml", "darts/tests"
}
taskName = "test_" + flavour;
String taskArgument1 = "unitTest_" + flavour;
task (taskName) {
dependsOn(taskArgument1)
dependsOn lint
}
}
flavours = ["core", "torch"];
for(String flavour : flavours) {
createPipRelatedTask(flavour);
}
task unitTest_all(type: Exec) {
dependsOn installPipLatest, pip_dev
doFirst {
installPipLatest
}
commandLine "pytest", "--durations=50", "--cov=darts", "--cov-config=.coveragerc", "--cov-report=xml", "darts/tests"
}
task test_all() {
dependsOn unitTest_all
dependsOn lint
}
def exampleName=project.properties["exampleName"] ?: ""
task checkExample(type: Exec) {
dependsOn pipInstall, installLocally
workingDir "./examples"
doFirst {
exec {
commandLine "echo", "Installed packages"
}
exec {
commandLine "pip", "list"
}
}
// exampleName must be passed with -PexampleName=FFT-examples.ipynb
commandLine "papermill", exampleName, exampleName
}
// Documentation build
void docSteps() {
exec {
commandLine "make", "--directory", "./docs", "build-all-docs"
}
}
task buildDocs() {
dependsOn pip_notorch, pip_release, installLocally
// dependsOn cleanDocs
doLast {
docSteps()
}
}