Class PythonProject.Builder

  • All Implemented Interfaces:
    software.amazon.jsii.Builder<PythonProject>
    Enclosing class:
    PythonProject

    @Stability(Experimental)
    public static final class PythonProject.Builder
    extends Object
    implements software.amazon.jsii.Builder<PythonProject>
    (experimental) A fluent builder for PythonProject.
    • Method Detail

      • name

        @Stability(Experimental)
        public PythonProject.Builder name​(String name)
        (experimental) This is the name of your project.

        Default: $BASEDIR

        Parameters:
        name - This is the name of your project. This parameter is required.
        Returns:
        this
      • commitGenerated

        @Stability(Experimental)
        public PythonProject.Builder commitGenerated​(Boolean commitGenerated)
        (experimental) Whether to commit the managed files by default.

        Default: true

        Parameters:
        commitGenerated - Whether to commit the managed files by default. This parameter is required.
        Returns:
        this
      • gitIgnoreOptions

        @Stability(Experimental)
        public PythonProject.Builder gitIgnoreOptions​(IgnoreFileOptions gitIgnoreOptions)
        (experimental) Configuration options for .gitignore file.

        Parameters:
        gitIgnoreOptions - Configuration options for .gitignore file. This parameter is required.
        Returns:
        this
      • gitOptions

        @Stability(Experimental)
        public PythonProject.Builder gitOptions​(GitOptions gitOptions)
        (experimental) Configuration options for git.

        Parameters:
        gitOptions - Configuration options for git. This parameter is required.
        Returns:
        this
      • logging

        @Stability(Experimental)
        public PythonProject.Builder logging​(LoggerOptions logging)
        (experimental) Configure logging options such as verbosity.

        Default: {}

        Parameters:
        logging - Configure logging options such as verbosity. This parameter is required.
        Returns:
        this
      • outdir

        @Stability(Experimental)
        public PythonProject.Builder outdir​(String outdir)
        (experimental) 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.

        Default: "."

        Parameters:
        outdir - The root directory of the project. This parameter is required.
        Returns:
        this
      • parent

        @Stability(Experimental)
        public PythonProject.Builder parent​(Project parent)
        (experimental) The parent project, if this project is part of a bigger project.

        Parameters:
        parent - The parent project, if this project is part of a bigger project. This parameter is required.
        Returns:
        this
      • projenCommand

        @Stability(Experimental)
        public PythonProject.Builder projenCommand​(String projenCommand)
        (experimental) The shell command to use in order to run the projen CLI.

        Can be used to customize in special environments.

        Default: "npx projen"

        Parameters:
        projenCommand - The shell command to use in order to run the projen CLI. This parameter is required.
        Returns:
        this
      • projenrcJson

        @Stability(Experimental)
        public PythonProject.Builder projenrcJson​(Boolean projenrcJson)
        (experimental) Generate (once) .projenrc.json (in JSON). Set to false in order to disable .projenrc.json generation.

        Default: false

        Parameters:
        projenrcJson - Generate (once) .projenrc.json (in JSON). Set to false in order to disable .projenrc.json generation. This parameter is required.
        Returns:
        this
      • projenrcJsonOptions

        @Stability(Experimental)
        public PythonProject.Builder projenrcJsonOptions​(ProjenrcJsonOptions projenrcJsonOptions)
        (experimental) Options for .projenrc.json.

        Default: - default options

        Parameters:
        projenrcJsonOptions - Options for .projenrc.json. This parameter is required.
        Returns:
        this
      • renovatebot

        @Stability(Experimental)
        public PythonProject.Builder renovatebot​(Boolean renovatebot)
        (experimental) Use renovatebot to handle dependency upgrades.

        Default: false

        Parameters:
        renovatebot - Use renovatebot to handle dependency upgrades. This parameter is required.
        Returns:
        this
      • renovatebotOptions

        @Stability(Experimental)
        public PythonProject.Builder renovatebotOptions​(RenovatebotOptions renovatebotOptions)
        (experimental) Options for renovatebot.

        Default: - default options

        Parameters:
        renovatebotOptions - Options for renovatebot. This parameter is required.
        Returns:
        this
      • autoApproveOptions

        @Stability(Experimental)
        public PythonProject.Builder autoApproveOptions​(AutoApproveOptions autoApproveOptions)
        (experimental) Enable and configure the 'auto approve' workflow.

        Default: - auto approve is disabled

        Parameters:
        autoApproveOptions - Enable and configure the 'auto approve' workflow. This parameter is required.
        Returns:
        this
      • autoMerge

        @Stability(Experimental)
        public PythonProject.Builder autoMerge​(Boolean autoMerge)
        (experimental) Enable automatic merging on GitHub.

        Has no effect if github.mergify is set to false.

        Default: true

        Parameters:
        autoMerge - Enable automatic merging on GitHub. This parameter is required.
        Returns:
        this
      • autoMergeOptions

        @Stability(Experimental)
        public PythonProject.Builder autoMergeOptions​(AutoMergeOptions autoMergeOptions)
        (experimental) Configure options for automatic merging on GitHub.

        Has no effect if github.mergify or autoMerge is set to false.

        Default: - see defaults in `AutoMergeOptions`

        Parameters:
        autoMergeOptions - Configure options for automatic merging on GitHub. This parameter is required.
        Returns:
        this
      • clobber

        @Stability(Experimental)
        public PythonProject.Builder clobber​(Boolean clobber)
        (experimental) Add a clobber task which resets the repo to origin.

        Default: - true, but false for subprojects

        Parameters:
        clobber - Add a clobber task which resets the repo to origin. This parameter is required.
        Returns:
        this
      • devContainer

        @Stability(Experimental)
        public PythonProject.Builder devContainer​(Boolean devContainer)
        (experimental) Add a VSCode development environment (used for GitHub Codespaces).

        Default: false

        Parameters:
        devContainer - Add a VSCode development environment (used for GitHub Codespaces). This parameter is required.
        Returns:
        this
      • github

        @Stability(Experimental)
        public PythonProject.Builder github​(Boolean github)
        (experimental) Enable GitHub integration.

        Enabled by default for root projects. Disabled for non-root projects.

        Default: true

        Parameters:
        github - Enable GitHub integration. This parameter is required.
        Returns:
        this
      • githubOptions

        @Stability(Experimental)
        public PythonProject.Builder githubOptions​(GitHubOptions githubOptions)
        (experimental) Options for GitHub integration.

        Default: - see GitHubOptions

        Parameters:
        githubOptions - Options for GitHub integration. This parameter is required.
        Returns:
        this
      • gitpod

        @Stability(Experimental)
        public PythonProject.Builder gitpod​(Boolean gitpod)
        (experimental) Add a Gitpod development environment.

        Default: false

        Parameters:
        gitpod - Add a Gitpod development environment. This parameter is required.
        Returns:
        this
      • mergify

        @Stability(Deprecated)
        @Deprecated
        public PythonProject.Builder mergify​(Boolean mergify)
        Deprecated.
        use githubOptions.mergify instead
        (deprecated) Whether mergify should be enabled on this repository or not.

        Default: true

        Parameters:
        mergify - Whether mergify should be enabled on this repository or not. This parameter is required.
        Returns:
        this
      • mergifyOptions

        @Stability(Deprecated)
        @Deprecated
        public PythonProject.Builder mergifyOptions​(MergifyOptions mergifyOptions)
        Deprecated.
        use githubOptions.mergifyOptions instead
        (deprecated) Options for mergify.

        Default: - default options

        Parameters:
        mergifyOptions - Options for mergify. This parameter is required.
        Returns:
        this
      • projectType

        @Stability(Deprecated)
        @Deprecated
        public PythonProject.Builder projectType​(ProjectType projectType)
        Deprecated.
        no longer supported at the base project level
        (deprecated) Which type of project this is (library/app).

        Default: ProjectType.UNKNOWN

        Parameters:
        projectType - Which type of project this is (library/app). This parameter is required.
        Returns:
        this
      • projenCredentials

        @Stability(Experimental)
        public PythonProject.Builder projenCredentials​(GithubCredentials projenCredentials)
        (experimental) Choose a method of providing GitHub API access for projen workflows.

        Default: - use a personal access token named PROJEN_GITHUB_TOKEN

        Parameters:
        projenCredentials - Choose a method of providing GitHub API access for projen workflows. This parameter is required.
        Returns:
        this
      • projenTokenSecret

        @Stability(Deprecated)
        @Deprecated
        public PythonProject.Builder projenTokenSecret​(String projenTokenSecret)
        Deprecated.
        use projenCredentials
        (deprecated) The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows.

        This token needs to have the repo, workflows and packages scope.

        Default: "PROJEN_GITHUB_TOKEN"

        Parameters:
        projenTokenSecret - The name of a secret which includes a GitHub Personal Access Token to be used by projen workflows. This parameter is required.
        Returns:
        this
      • readme

        @Stability(Experimental)
        public PythonProject.Builder readme​(SampleReadmeProps readme)
        (experimental) The README setup.

        Default: - { filename: 'README.md', contents: '# replace this' }

        Example:

         "{ filename: 'readme.md', contents: '# title' }"
         

        Parameters:
        readme - The README setup. This parameter is required.
        Returns:
        this
      • stale

        @Stability(Experimental)
        public PythonProject.Builder stale​(Boolean stale)
        (experimental) Auto-close of stale issues and pull request.

        See staleOptions for options.

        Default: false

        Parameters:
        stale - Auto-close of stale issues and pull request. This parameter is required.
        Returns:
        this
      • staleOptions

        @Stability(Experimental)
        public PythonProject.Builder staleOptions​(StaleOptions staleOptions)
        (experimental) Auto-close stale issues and pull requests.

        To disable set stale to false.

        Default: - see defaults in `StaleOptions`

        Parameters:
        staleOptions - Auto-close stale issues and pull requests. This parameter is required.
        Returns:
        this
      • vscode

        @Stability(Experimental)
        public PythonProject.Builder vscode​(Boolean vscode)
        (experimental) Enable VSCode integration.

        Enabled by default for root projects. Disabled for non-root projects.

        Default: true

        Parameters:
        vscode - Enable VSCode integration. This parameter is required.
        Returns:
        this
      • authorEmail

        @Stability(Experimental)
        public PythonProject.Builder authorEmail​(String authorEmail)
        (experimental) Author's e-mail.

        Default: $GIT_USER_EMAIL

        Parameters:
        authorEmail - Author's e-mail. This parameter is required.
        Returns:
        this
      • authorName

        @Stability(Experimental)
        public PythonProject.Builder authorName​(String authorName)
        (experimental) Author's name.

        Default: $GIT_USER_NAME

        Parameters:
        authorName - Author's name. This parameter is required.
        Returns:
        this
      • version

        @Stability(Experimental)
        public PythonProject.Builder version​(String version)
        (experimental) Version of the package.

        Default: "0.1.0"

        Parameters:
        version - Version of the package. This parameter is required.
        Returns:
        this
      • classifiers

        @Stability(Experimental)
        public PythonProject.Builder classifiers​(List<String> classifiers)
        (experimental) A list of PyPI trove classifiers that describe the project.

        Parameters:
        classifiers - A list of PyPI trove classifiers that describe the project. This parameter is required.
        Returns:
        this
        See Also:
        https://pypi.org/classifiers/
      • description

        @Stability(Experimental)
        public PythonProject.Builder description​(String description)
        (experimental) A short description of the package.

        Parameters:
        description - A short description of the package. This parameter is required.
        Returns:
        this
      • homepage

        @Stability(Experimental)
        public PythonProject.Builder homepage​(String homepage)
        (experimental) A URL to the website of the project.

        Parameters:
        homepage - A URL to the website of the project. This parameter is required.
        Returns:
        this
      • license

        @Stability(Experimental)
        public PythonProject.Builder license​(String license)
        (experimental) License of this package as an SPDX identifier.

        Parameters:
        license - License of this package as an SPDX identifier. This parameter is required.
        Returns:
        this
      • packageName

        @Stability(Experimental)
        public PythonProject.Builder packageName​(String packageName)
        (experimental) Package name.

        Parameters:
        packageName - Package name. This parameter is required.
        Returns:
        this
      • poetryOptions

        @Stability(Experimental)
        public PythonProject.Builder poetryOptions​(PoetryPyprojectOptionsWithoutDeps poetryOptions)
        (experimental) Additional options to set for poetry if using poetry.

        Parameters:
        poetryOptions - Additional options to set for poetry if using poetry. This parameter is required.
        Returns:
        this
      • setupConfig

        @Stability(Experimental)
        public PythonProject.Builder setupConfig​(Map<String,​? extends Object> setupConfig)
        (experimental) Additional fields to pass in the setup() function if using setuptools.

        Parameters:
        setupConfig - Additional fields to pass in the setup() function if using setuptools. This parameter is required.
        Returns:
        this
      • pythonExec

        @Stability(Experimental)
        public PythonProject.Builder pythonExec​(String pythonExec)
        (experimental) Path to the python executable to use.

        Default: "python"

        Parameters:
        pythonExec - Path to the python executable to use. This parameter is required.
        Returns:
        this
      • moduleName

        @Stability(Experimental)
        public PythonProject.Builder moduleName​(String moduleName)
        (experimental) Name of the python package as used in imports and filenames.

        Must only consist of alphanumeric characters and underscores.

        Default: $PYTHON_MODULE_NAME

        Parameters:
        moduleName - Name of the python package as used in imports and filenames. This parameter is required.
        Returns:
        this
      • deps

        @Stability(Experimental)
        public PythonProject.Builder deps​(List<String> deps)
        (experimental) List of runtime dependencies for this project.

        Dependencies use the format: <module>@<semver>

        Additional dependencies can be added via project.addDependency().

        Default: []

        Parameters:
        deps - List of runtime dependencies for this project. This parameter is required.
        Returns:
        this
      • devDeps

        @Stability(Experimental)
        public PythonProject.Builder devDeps​(List<String> devDeps)
        (experimental) List of dev dependencies for this project.

        Dependencies use the format: <module>@<semver>

        Additional dependencies can be added via project.addDevDependency().

        Default: []

        Parameters:
        devDeps - List of dev dependencies for this project. This parameter is required.
        Returns:
        this
      • pip

        @Stability(Experimental)
        public PythonProject.Builder pip​(Boolean pip)
        (experimental) Use pip with a requirements.txt file to track project dependencies.

        Default: - true, unless poetry is true, then false

        Parameters:
        pip - Use pip with a requirements.txt file to track project dependencies. This parameter is required.
        Returns:
        this
      • poetry

        @Stability(Experimental)
        public PythonProject.Builder poetry​(Boolean poetry)
        (experimental) 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 to true, then pip, setuptools, and venv must be set to false.

        Default: false

        Parameters:
        poetry - Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing. This parameter is required.
        Returns:
        this
      • projenrcJs

        @Stability(Experimental)
        public PythonProject.Builder projenrcJs​(Boolean projenrcJs)
        (experimental) Use projenrc in javascript.

        This will install projen as a JavaScript dependency and add a synth task which will run .projenrc.js.

        Default: false

        Parameters:
        projenrcJs - Use projenrc in javascript. This parameter is required.
        Returns:
        this
      • projenrcJsOptions

        @Stability(Experimental)
        public PythonProject.Builder projenrcJsOptions​(ProjenrcOptions projenrcJsOptions)
        (experimental) Options related to projenrc in JavaScript.

        Default: - default options

        Parameters:
        projenrcJsOptions - Options related to projenrc in JavaScript. This parameter is required.
        Returns:
        this
      • projenrcPython

        @Stability(Experimental)
        public PythonProject.Builder projenrcPython​(Boolean projenrcPython)
        (experimental) Use projenrc in Python.

        This will install projen as a Python dependency and add a synth task which will run .projenrc.py.

        Default: true

        Parameters:
        projenrcPython - Use projenrc in Python. This parameter is required.
        Returns:
        this
      • projenrcPythonOptions

        @Stability(Experimental)
        public PythonProject.Builder projenrcPythonOptions​(ProjenrcOptions projenrcPythonOptions)
        (experimental) Options related to projenrc in python.

        Default: - default options

        Parameters:
        projenrcPythonOptions - Options related to projenrc in python. This parameter is required.
        Returns:
        this
      • projenrcTs

        @Stability(Experimental)
        public PythonProject.Builder projenrcTs​(Boolean projenrcTs)
        (experimental) Use projenrc in TypeScript.

        This will create a tsconfig file (default: tsconfig.projen.json) and use ts-node in the default task to parse the project source files.

        Default: false

        Parameters:
        projenrcTs - Use projenrc in TypeScript. This parameter is required.
        Returns:
        this
      • projenrcTsOptions

        @Stability(Experimental)
        public PythonProject.Builder projenrcTsOptions​(ProjenrcTsOptions projenrcTsOptions)
        (experimental) Options related to projenrc in TypeScript.

        Default: - default options

        Parameters:
        projenrcTsOptions - Options related to projenrc in TypeScript. This parameter is required.
        Returns:
        this
      • pytest

        @Stability(Experimental)
        public PythonProject.Builder pytest​(Boolean pytest)
        (experimental) Include pytest tests.

        Default: true

        Parameters:
        pytest - Include pytest tests. This parameter is required.
        Returns:
        this
      • pytestOptions

        @Stability(Experimental)
        public PythonProject.Builder pytestOptions​(PytestOptions pytestOptions)
        (experimental) pytest options.

        Default: - defaults

        Parameters:
        pytestOptions - pytest options. This parameter is required.
        Returns:
        this
      • sample

        @Stability(Experimental)
        public PythonProject.Builder sample​(Boolean sample)
        (experimental) Include sample code and test if the relevant directories don't exist.

        Default: true

        Parameters:
        sample - Include sample code and test if the relevant directories don't exist. This parameter is required.
        Returns:
        this
      • setuptools

        @Stability(Experimental)
        public PythonProject.Builder setuptools​(Boolean setuptools)
        (experimental) Use setuptools with a setup.py script for packaging and publishing.

        Default: - true, unless poetry is true, then false

        Parameters:
        setuptools - Use setuptools with a setup.py script for packaging and publishing. This parameter is required.
        Returns:
        this
      • venv

        @Stability(Experimental)
        public PythonProject.Builder venv​(Boolean venv)
        (experimental) Use venv to manage a virtual environment for installing dependencies inside.

        Default: - true, unless poetry is true, then false

        Parameters:
        venv - Use venv to manage a virtual environment for installing dependencies inside. This parameter is required.
        Returns:
        this
      • venvOptions

        @Stability(Experimental)
        public PythonProject.Builder venvOptions​(VenvOptions venvOptions)
        (experimental) Venv options.

        Default: - defaults

        Parameters:
        venvOptions - Venv options. This parameter is required.
        Returns:
        this