Package io.github.cdklabs.projen.python
Class PythonProjectOptions.Builder
- java.lang.Object
-
- io.github.cdklabs.projen.python.PythonProjectOptions.Builder
-
- All Implemented Interfaces:
software.amazon.jsii.Builder<PythonProjectOptions>
- Enclosing interface:
- PythonProjectOptions
@Stability(Experimental) public static final class PythonProjectOptions.Builder extends Object implements software.amazon.jsii.Builder<PythonProjectOptions>
A builder forPythonProjectOptions
-
-
Constructor Summary
Constructors Constructor Description Builder()
-
Method Summary
-
-
-
Method Detail
-
moduleName
@Stability(Experimental) public PythonProjectOptions.Builder moduleName(String moduleName)
Sets the value ofPythonProjectOptions.getModuleName()- Parameters:
moduleName- Name of the python package as used in imports and filenames. This parameter is required. Must only consist of alphanumeric characters and underscores.- Returns:
this
-
deps
@Stability(Experimental) public PythonProjectOptions.Builder deps(List<String> deps)
Sets the value ofPythonProjectOptions.getDeps()- Parameters:
deps- List of runtime dependencies for this project. Dependencies use the format:<module>@<semver>Additional dependencies can be added via
project.addDependency().- Returns:
this
-
devDeps
@Stability(Experimental) public PythonProjectOptions.Builder devDeps(List<String> devDeps)
Sets the value ofPythonProjectOptions.getDevDeps()- Parameters:
devDeps- List of dev dependencies for this project. Dependencies use the format:<module>@<semver>Additional dependencies can be added via
project.addDevDependency().- Returns:
this
-
pip
@Stability(Experimental) public PythonProjectOptions.Builder pip(Boolean pip)
Sets the value ofPythonProjectOptions.getPip()- Parameters:
pip- Use pip with a requirements.txt file to track project dependencies.- Returns:
this
-
poetry
@Stability(Experimental) public PythonProjectOptions.Builder poetry(Boolean poetry)
Sets the value ofPythonProjectOptions.getPoetry()- Parameters:
poetry- Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing. This feature is incompatible with pip, setuptools, or venv. If you set this option totrue, then pip, setuptools, and venv must be set tofalse.- Returns:
this
-
projenrcJs
@Stability(Experimental) public PythonProjectOptions.Builder projenrcJs(Boolean projenrcJs)
Sets the value ofPythonProjectOptions.getProjenrcJs()- Parameters:
projenrcJs- Use projenrc in javascript. This will installprojenas a JavaScript dependency and add asynthtask which will run.projenrc.js.- Returns:
this
-
projenrcJsOptions
@Stability(Experimental) public PythonProjectOptions.Builder projenrcJsOptions(ProjenrcOptions projenrcJsOptions)
Sets the value ofPythonProjectOptions.getProjenrcJsOptions()- Parameters:
projenrcJsOptions- Options related to projenrc in JavaScript.- Returns:
this
-
projenrcPython
@Stability(Experimental) public PythonProjectOptions.Builder projenrcPython(Boolean projenrcPython)
Sets the value ofPythonProjectOptions.getProjenrcPython()- Parameters:
projenrcPython- Use projenrc in Python. This will installprojenas a Python dependency and add asynthtask which will run.projenrc.py.- Returns:
this
-
projenrcPythonOptions
@Stability(Experimental) public PythonProjectOptions.Builder projenrcPythonOptions(ProjenrcOptions projenrcPythonOptions)
Sets the value ofPythonProjectOptions.getProjenrcPythonOptions()- Parameters:
projenrcPythonOptions- Options related to projenrc in python.- Returns:
this
-
projenrcTs
@Stability(Experimental) public PythonProjectOptions.Builder projenrcTs(Boolean projenrcTs)
Sets the value ofPythonProjectOptions.getProjenrcTs()- Parameters:
projenrcTs- Use projenrc in TypeScript. This will create a tsconfig file (default:tsconfig.projen.json) and usets-nodein the default task to parse the project source files.- Returns:
this
-
projenrcTsOptions
@Stability(Experimental) public PythonProjectOptions.Builder projenrcTsOptions(ProjenrcTsOptions projenrcTsOptions)
Sets the value ofPythonProjectOptions.getProjenrcTsOptions()- Parameters:
projenrcTsOptions- Options related to projenrc in TypeScript.- Returns:
this
-
pytest
@Stability(Experimental) public PythonProjectOptions.Builder pytest(Boolean pytest)
Sets the value ofPythonProjectOptions.getPytest()- Parameters:
pytest- Include pytest tests.- Returns:
this
-
pytestOptions
@Stability(Experimental) public PythonProjectOptions.Builder pytestOptions(PytestOptions pytestOptions)
Sets the value ofPythonProjectOptions.getPytestOptions()- Parameters:
pytestOptions- pytest options.- Returns:
this
-
sample
@Stability(Experimental) public PythonProjectOptions.Builder sample(Boolean sample)
Sets the value ofPythonProjectOptions.getSample()- Parameters:
sample- Include sample code and test if the relevant directories don't exist.- Returns:
this
-
setuptools
@Stability(Experimental) public PythonProjectOptions.Builder setuptools(Boolean setuptools)
Sets the value ofPythonProjectOptions.getSetuptools()- Parameters:
setuptools- Use setuptools with a setup.py script for packaging and publishing.- Returns:
this
-
venv
@Stability(Experimental) public PythonProjectOptions.Builder venv(Boolean venv)
Sets the value ofPythonProjectOptions.getVenv()- Parameters:
venv- Use venv to manage a virtual environment for installing dependencies inside.- Returns:
this
-
venvOptions
@Stability(Experimental) public PythonProjectOptions.Builder venvOptions(VenvOptions venvOptions)
Sets the value ofPythonProjectOptions.getVenvOptions()- Parameters:
venvOptions- Venv options.- Returns:
this
-
autoApproveOptions
@Stability(Experimental) public PythonProjectOptions.Builder autoApproveOptions(AutoApproveOptions autoApproveOptions)
Sets the value ofGitHubProjectOptions.getAutoApproveOptions()- Parameters:
autoApproveOptions- Enable and configure the 'auto approve' workflow.- Returns:
this
-
autoMerge
@Stability(Experimental) public PythonProjectOptions.Builder autoMerge(Boolean autoMerge)
Sets the value ofGitHubProjectOptions.getAutoMerge()- Parameters:
autoMerge- Enable automatic merging on GitHub. Has no effect ifgithub.mergifyis set to false.- Returns:
this
-
autoMergeOptions
@Stability(Experimental) public PythonProjectOptions.Builder autoMergeOptions(AutoMergeOptions autoMergeOptions)
Sets the value ofGitHubProjectOptions.getAutoMergeOptions()- Parameters:
autoMergeOptions- Configure options for automatic merging on GitHub. Has no effect ifgithub.mergifyorautoMergeis set to false.- Returns:
this
-
clobber
@Stability(Experimental) public PythonProjectOptions.Builder clobber(Boolean clobber)
Sets the value ofGitHubProjectOptions.getClobber()- Parameters:
clobber- Add aclobbertask which resets the repo to origin.- Returns:
this
-
devContainer
@Stability(Experimental) public PythonProjectOptions.Builder devContainer(Boolean devContainer)
Sets the value ofGitHubProjectOptions.getDevContainer()- Parameters:
devContainer- Add a VSCode development environment (used for GitHub Codespaces).- Returns:
this
-
github
@Stability(Experimental) public PythonProjectOptions.Builder github(Boolean github)
Sets the value ofGitHubProjectOptions.getGithub()- Parameters:
github- Enable GitHub integration. Enabled by default for root projects. Disabled for non-root projects.- Returns:
this
-
githubOptions
@Stability(Experimental) public PythonProjectOptions.Builder githubOptions(GitHubOptions githubOptions)
Sets the value ofGitHubProjectOptions.getGithubOptions()- Parameters:
githubOptions- Options for GitHub integration.- Returns:
this
-
gitpod
@Stability(Experimental) public PythonProjectOptions.Builder gitpod(Boolean gitpod)
Sets the value ofGitHubProjectOptions.getGitpod()- Parameters:
gitpod- Add a Gitpod development environment.- Returns:
this
-
mergify
@Stability(Deprecated) @Deprecated public PythonProjectOptions.Builder mergify(Boolean mergify)
Deprecated.use `githubOptions.mergify` insteadSets the value ofGitHubProjectOptions.getMergify()- Parameters:
mergify- Whether mergify should be enabled on this repository or not.- Returns:
this
-
mergifyOptions
@Stability(Deprecated) @Deprecated public PythonProjectOptions.Builder mergifyOptions(MergifyOptions mergifyOptions)
Deprecated.use `githubOptions.mergifyOptions` insteadSets the value ofGitHubProjectOptions.getMergifyOptions()- Parameters:
mergifyOptions- Options for mergify.- Returns:
this
-
projectType
@Stability(Deprecated) @Deprecated public PythonProjectOptions.Builder projectType(ProjectType projectType)
Deprecated.no longer supported at the base project levelSets the value ofGitHubProjectOptions.getProjectType()- Parameters:
projectType- Which type of project this is (library/app).- Returns:
this
-
projenCredentials
@Stability(Experimental) public PythonProjectOptions.Builder projenCredentials(GithubCredentials projenCredentials)
Sets the value ofGitHubProjectOptions.getProjenCredentials()- Parameters:
projenCredentials- Choose a method of providing GitHub API access for projen workflows.- Returns:
this
-
projenTokenSecret
@Stability(Deprecated) @Deprecated public PythonProjectOptions.Builder projenTokenSecret(String projenTokenSecret)
Deprecated.use `projenCredentials`Sets the value ofGitHubProjectOptions.getProjenTokenSecret()- Parameters:
projenTokenSecret- The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. This token needs to have therepo,workflowsandpackagesscope.- Returns:
this
-
readme
@Stability(Experimental) public PythonProjectOptions.Builder readme(SampleReadmeProps readme)
Sets the value ofGitHubProjectOptions.getReadme()- Parameters:
readme- The README setup.- Returns:
this
-
stale
@Stability(Experimental) public PythonProjectOptions.Builder stale(Boolean stale)
Sets the value ofGitHubProjectOptions.getStale()- Parameters:
stale- Auto-close of stale issues and pull request. SeestaleOptionsfor options.- Returns:
this
-
staleOptions
@Stability(Experimental) public PythonProjectOptions.Builder staleOptions(StaleOptions staleOptions)
Sets the value ofGitHubProjectOptions.getStaleOptions()- Parameters:
staleOptions- Auto-close stale issues and pull requests. To disable setstaletofalse.- Returns:
this
-
vscode
@Stability(Experimental) public PythonProjectOptions.Builder vscode(Boolean vscode)
Sets the value ofGitHubProjectOptions.getVscode()- Parameters:
vscode- Enable VSCode integration. Enabled by default for root projects. Disabled for non-root projects.- Returns:
this
-
name
@Stability(Experimental) public PythonProjectOptions.Builder name(String name)
Sets the value ofProjectOptions.getName()- Parameters:
name- This is the name of your project. This parameter is required.- Returns:
this
-
commitGenerated
@Stability(Experimental) public PythonProjectOptions.Builder commitGenerated(Boolean commitGenerated)
Sets the value ofProjectOptions.getCommitGenerated()- Parameters:
commitGenerated- Whether to commit the managed files by default.- Returns:
this
-
gitIgnoreOptions
@Stability(Experimental) public PythonProjectOptions.Builder gitIgnoreOptions(IgnoreFileOptions gitIgnoreOptions)
Sets the value ofProjectOptions.getGitIgnoreOptions()- Parameters:
gitIgnoreOptions- Configuration options for .gitignore file.- Returns:
this
-
gitOptions
@Stability(Experimental) public PythonProjectOptions.Builder gitOptions(GitOptions gitOptions)
Sets the value ofProjectOptions.getGitOptions()- Parameters:
gitOptions- Configuration options for git.- Returns:
this
-
logging
@Stability(Experimental) public PythonProjectOptions.Builder logging(LoggerOptions logging)
Sets the value ofProjectOptions.getLogging()- Parameters:
logging- Configure logging options such as verbosity.- Returns:
this
-
outdir
@Stability(Experimental) public PythonProjectOptions.Builder outdir(String outdir)
Sets the value ofProjectOptions.getOutdir()- Parameters:
outdir- The root directory of the project. Relative to this directory, all files are synthesized.If this project has a parent, this directory is relative to the parent directory and it cannot be the same as the parent or any of it's other subprojects.
- Returns:
this
-
parent
@Stability(Experimental) public PythonProjectOptions.Builder parent(Project parent)
Sets the value ofProjectOptions.getParent()- Parameters:
parent- The parent project, if this project is part of a bigger project.- Returns:
this
-
projenCommand
@Stability(Experimental) public PythonProjectOptions.Builder projenCommand(String projenCommand)
Sets the value ofProjectOptions.getProjenCommand()- Parameters:
projenCommand- The shell command to use in order to run the projen CLI. Can be used to customize in special environments.- Returns:
this
-
projenrcJson
@Stability(Experimental) public PythonProjectOptions.Builder projenrcJson(Boolean projenrcJson)
Sets the value ofProjectOptions.getProjenrcJson()- Parameters:
projenrcJson- Generate (once) .projenrc.json (in JSON). Set tofalsein order to disable .projenrc.json generation.- Returns:
this
-
projenrcJsonOptions
@Stability(Experimental) public PythonProjectOptions.Builder projenrcJsonOptions(ProjenrcJsonOptions projenrcJsonOptions)
Sets the value ofProjectOptions.getProjenrcJsonOptions()- Parameters:
projenrcJsonOptions- Options for .projenrc.json.- Returns:
this
-
renovatebot
@Stability(Experimental) public PythonProjectOptions.Builder renovatebot(Boolean renovatebot)
Sets the value ofProjectOptions.getRenovatebot()- Parameters:
renovatebot- Use renovatebot to handle dependency upgrades.- Returns:
this
-
renovatebotOptions
@Stability(Experimental) public PythonProjectOptions.Builder renovatebotOptions(RenovatebotOptions renovatebotOptions)
Sets the value ofProjectOptions.getRenovatebotOptions()- Parameters:
renovatebotOptions- Options for renovatebot.- Returns:
this
-
authorEmail
@Stability(Experimental) public PythonProjectOptions.Builder authorEmail(String authorEmail)
Sets the value ofPythonPackagingOptions.getAuthorEmail()- Parameters:
authorEmail- Author's e-mail. This parameter is required.- Returns:
this
-
authorName
@Stability(Experimental) public PythonProjectOptions.Builder authorName(String authorName)
Sets the value ofPythonPackagingOptions.getAuthorName()- Parameters:
authorName- Author's name. This parameter is required.- Returns:
this
-
version
@Stability(Experimental) public PythonProjectOptions.Builder version(String version)
Sets the value ofPythonPackagingOptions.getVersion()- Parameters:
version- Version of the package. This parameter is required.- Returns:
this
-
classifiers
@Stability(Experimental) public PythonProjectOptions.Builder classifiers(List<String> classifiers)
Sets the value ofPythonPackagingOptions.getClassifiers()- Parameters:
classifiers- A list of PyPI trove classifiers that describe the project.- Returns:
this
-
description
@Stability(Experimental) public PythonProjectOptions.Builder description(String description)
Sets the value ofPythonPackagingOptions.getDescription()- Parameters:
description- A short description of the package.- Returns:
this
-
homepage
@Stability(Experimental) public PythonProjectOptions.Builder homepage(String homepage)
Sets the value ofPythonPackagingOptions.getHomepage()- Parameters:
homepage- A URL to the website of the project.- Returns:
this
-
license
@Stability(Experimental) public PythonProjectOptions.Builder license(String license)
Sets the value ofPythonPackagingOptions.getLicense()- Parameters:
license- License of this package as an SPDX identifier.- Returns:
this
-
packageName
@Stability(Experimental) public PythonProjectOptions.Builder packageName(String packageName)
Sets the value ofPythonPackagingOptions.getPackageName()- Parameters:
packageName- Package name.- Returns:
this
-
poetryOptions
@Stability(Experimental) public PythonProjectOptions.Builder poetryOptions(PoetryPyprojectOptionsWithoutDeps poetryOptions)
Sets the value ofPythonPackagingOptions.getPoetryOptions()- Parameters:
poetryOptions- Additional options to set for poetry if using poetry.- Returns:
this
-
setupConfig
@Stability(Experimental) public PythonProjectOptions.Builder setupConfig(Map<String,? extends Object> setupConfig)
Sets the value ofPythonPackagingOptions.getSetupConfig()- Parameters:
setupConfig- Additional fields to pass in the setup() function if using setuptools.- Returns:
this
-
pythonExec
@Stability(Experimental) public PythonProjectOptions.Builder pythonExec(String pythonExec)
Sets the value ofPythonExecutableOptions.getPythonExec()- Parameters:
pythonExec- Path to the python executable to use.- Returns:
this
-
build
@Stability(Experimental) public PythonProjectOptions build()
Builds the configured instance.- Specified by:
buildin interfacesoftware.amazon.jsii.Builder<PythonProjectOptions>- Returns:
- a new instance of
PythonProjectOptions - Throws:
NullPointerException- if any required attribute was not provided
-
-