Class VenvTask

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
io.github.howtis.pythonembed.gradle.VenvTask
All Implemented Interfaces:
Comparable<org.gradle.api.Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal, org.gradle.api.Named, org.gradle.api.plugins.ExtensionAware, org.gradle.api.Task, org.gradle.util.Configurable<org.gradle.api.Task>

public abstract class VenvTask extends org.gradle.api.DefaultTask
Gradle task that creates a Python environment and installs packages into it.

If system Python is available, creates a standard venv. If not, downloads a portable CPython from python-build-standalone and installs packages directly into it, eliminating the system Python installation requirement.

  • Nested Class Summary

    Nested classes/interfaces inherited from interface org.gradle.api.Task

    org.gradle.api.Task.Namer
  • Field Summary

    Fields inherited from interface org.gradle.api.Task

    TASK_ACTION, TASK_CONSTRUCTOR_ARGS, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    abstract org.gradle.api.provider.ListProperty<String>
    List of pip packages to install.
    abstract org.gradle.api.provider.ListProperty<String>
    Optional extra pip install arguments (e.g., --extra-index-url, -f).
    abstract org.gradle.api.provider.Property<String>
    Optional pip index URL (e.g., PyTorch CUDA index).
    abstract org.gradle.api.provider.Property<String>
    Optional path to pyproject.toml (relative to project root).
    abstract org.gradle.api.provider.Property<String>
    Python version to use for auto-download (default: "3.12").
    abstract org.gradle.api.provider.Property<String>
    Optional path to requirements.txt (relative to project root).
    abstract org.gradle.api.file.DirectoryProperty
    Path to the output directory that will be packaged as a resource.

    Methods inherited from class org.gradle.api.DefaultTask

    compareTo, configure, dependsOn, doFirst, doFirst, doFirst, doLast, doLast, doLast, finalizedBy, getActions, getAnt, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExtensions, getFinalizedBy, getGroup, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOutputs, getPath, getProject, getShouldRunAfter, getState, getTaskDependencies, getTemporaryDir, getTimeout, hasProperty, mustRunAfter, onlyIf, onlyIf, onlyIf, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setFinalizedBy, setGroup, setMustRunAfter, setOnlyIf, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, usesService

    Methods inherited from class org.gradle.api.internal.AbstractTask

    acceptServiceReferences, appendParallelSafeAction, doNotTrackState, getAsDynamicObject, getConvention, getIdentityPath, getImpliesSubProjects, getLifecycleDependencies, getOnlyIf, getReasonNotToTrackState, getReasonTaskIsIncompatibleWithConfigurationCache, getRequiredServices, getServices, getSharedResources, getStandardOutputCapture, getTaskActions, getTaskIdentity, getTemporaryDirFactory, hasTaskActions, injectIntoNewInstance, isCompatibleWithConfigurationCache, isEnabled, isHasCustomActions, notCompatibleWithConfigurationCache, prependParallelSafeAction, setImpliesSubProjects

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

    Methods inherited from interface org.gradle.api.Task

    doNotTrackState, getConvention, notCompatibleWithConfigurationCache
  • Constructor Details

    • VenvTask

      public VenvTask()
  • Method Details

    • getVenvDir

      @OutputDirectory public abstract org.gradle.api.file.DirectoryProperty getVenvDir()
      Path to the output directory that will be packaged as a resource.
    • getPackages

      @Input public abstract org.gradle.api.provider.ListProperty<String> getPackages()
      List of pip packages to install.
    • getRequirementsFile

      @Optional @Input public abstract org.gradle.api.provider.Property<String> getRequirementsFile()
      Optional path to requirements.txt (relative to project root).
    • getPyprojectTomlFile

      @Optional @Input public abstract org.gradle.api.provider.Property<String> getPyprojectTomlFile()
      Optional path to pyproject.toml (relative to project root).
    • getPythonVersion

      @Input public abstract org.gradle.api.provider.Property<String> getPythonVersion()
      Python version to use for auto-download (default: "3.12").
    • getPipIndexUrl

      @Optional @Input public abstract org.gradle.api.provider.Property<String> getPipIndexUrl()
      Optional pip index URL (e.g., PyTorch CUDA index).
    • getPipExtraArgs

      @Input public abstract org.gradle.api.provider.ListProperty<String> getPipExtraArgs()
      Optional extra pip install arguments (e.g., --extra-index-url, -f).
    • createVenv

      public void createVenv()