1"use strict";(self.webpackChunkdocs=self.webpackChunkdocs||[]).push([["8040"],{102(e,n,r){r.r(n),r.d(n,{metadata:()=>i,default:()=>h,frontMatter:()=>o,contentTitle:()=>d,toc:()=>l,assets:()=>c});var i=JSON.parse('{"id":"api/python","title":"python Submodule <a name=\\"python Submodule\\" id=\\"projen.python\\"></a>","description":"Constructs","source":"@site/../docs/api/python.md","sourceDirName":"api","slug":"/api/python","permalink":"/docs/api/python","draft":false,"unlisted":false,"editUrl":"https://github.com/projen/projen/tree/main/docusaurus/../docs/api/python.md","tags":[],"version":"current","frontMatter":{},"sidebar":"apiSidebar","previous":{"title":"polaris","permalink":"/docs/api/polaris"},"next":{"title":"python.uvConfig","permalink":"/docs/api/python.uvConfig"}}'),s=r(4848),t=r(8453);let o={},d='python Submodule <a name="`python` Submodule" id="projen.python"></a>',c={},l=[{value:'Constructs <a name="Constructs" id="Constructs"></a>',id:"constructs-",level:2},{value:'Pip <a name="Pip" id="projen.python.Pip"></a>',id:"pip-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.Pip.Initializer"></a>',id:"initializers-",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Pip.Initializer.parameter.project"></a>',id:"projectrequired-",level:5},{value:'<code>_options</code><sup>Optional</sup> <a name="_options" id="projen.python.Pip.Initializer.parameter._options"></a>',id:"_optionsoptional-",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods-",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.Pip.toString"></a>',id:"tostring-",level:5},{value:'<code>with</code> <a name="with" id="projen.python.Pip.with"></a>',id:"with-",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.Pip.with.parameter.mixins"></a>',id:"mixinsrequired-",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.Pip.postProjectCreation"></a>',id:"postprojectcreation-",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Pip.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired-",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.Pip.postSynthesize"></a>',id:"postsynthesize-",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.Pip.preSynthesize"></a>',id:"presynthesize-",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.Pip.projectCreation"></a>',id:"projectcreation-",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Pip.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--1",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.Pip.synthesize"></a>',id:"synthesize-",level:5},{value:'<code>addDependency</code> <a name="addDependency" id="projen.python.Pip.addDependency"></a>',id:"adddependency-",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.Pip.addDependency.parameter.spec"></a>',id:"specrequired-",level:6},{value:'<code>addDevDependency</code> <a name="addDevDependency" id="projen.python.Pip.addDevDependency"></a>',id:"adddevdependency-",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.Pip.addDevDependency.parameter.spec"></a>',id:"specrequired--1",level:6},{value:'<code>installDependencies</code> <a name="installDependencies" id="projen.python.Pip.installDependencies"></a>',id:"installdependencies-",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions-",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.Pip.isConstruct"></a>',id:"isconstruct-",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Pip.isConstruct.parameter.x"></a>',id:"xrequired-",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.Pip.isComponent"></a>',id:"iscomponent-",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Pip.isComponent.parameter.x"></a>',id:"xrequired--1",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties-",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.Pip.property.node"></a>',id:"noderequired-",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Pip.property.project"></a>',id:"projectrequired--1",level:5},{value:'<code>installCiTask</code><sup>Required</sup> <a name="installCiTask" id="projen.python.Pip.property.installCiTask"></a>',id:"installcitaskrequired-",level:5},{value:'Poetry <a name="Poetry" id="projen.python.Poetry"></a>',id:"poetry-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.Poetry.Initializer"></a>',id:"initializers--1",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Poetry.Initializer.parameter.project"></a>',id:"projectrequired--2",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.Poetry.Initializer.parameter.options"></a>',id:"optionsrequired-",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--1",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.Poetry.toString"></a>',id:"tostring--1",level:5},{value:'<code>with</code> <a name="with" id="projen.python.Poetry.with"></a>',id:"with--1",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.Poetry.with.parameter.mixins"></a>',id:"mixinsrequired--1",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.Poetry.postProjectCreation"></a>',id:"postprojectcreation--1",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Poetry.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--2",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.Poetry.postSynthesize"></a>',id:"postsynthesize--1",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.Poetry.preSynthesize"></a>',id:"presynthesize--1",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.Poetry.projectCreation"></a>',id:"projectcreation--1",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Poetry.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--3",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.Poetry.synthesize"></a>',id:"synthesize--1",level:5},{value:'<code>addDependency</code> <a name="addDependency" id="projen.python.Poetry.addDependency"></a>',id:"adddependency--1",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.Poetry.addDependency.parameter.spec"></a>',id:"specrequired--2",level:6},{value:'<code>addDevDependency</code> <a name="addDevDependency" id="projen.python.Poetry.addDevDependency"></a>',id:"adddevdependency--1",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.Poetry.addDevDependency.parameter.spec"></a>',id:"specrequired--3",level:6},{value:'<code>installDependencies</code> <a name="installDependencies" id="projen.python.Poetry.installDependencies"></a>',id:"installdependencies--1",level:5},{value:'<code>setupEnvironment</code> <a name="setupEnvironment" id="projen.python.Poetry.setupEnvironment"></a>',id:"setupenvironment-",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--1",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.Poetry.isConstruct"></a>',id:"isconstruct--1",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Poetry.isConstruct.parameter.x"></a>',id:"xrequired--2",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.Poetry.isComponent"></a>',id:"iscomponent--1",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Poetry.isComponent.parameter.x"></a>',id:"xrequired--3",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--1",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.Poetry.property.node"></a>',id:"noderequired--1",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Poetry.property.project"></a>',id:"projectrequired--3",level:5},{value:'<code>installCiTask</code><sup>Required</sup> <a name="installCiTask" id="projen.python.Poetry.property.installCiTask"></a>',id:"installcitaskrequired--1",level:5},{value:'<code>installTask</code><sup>Required</sup> <a name="installTask" id="projen.python.Poetry.property.installTask"></a>',id:"installtaskrequired-",level:5},{value:'<code>publishTask</code><sup>Required</sup> <a name="publishTask" id="projen.python.Poetry.property.publishTask"></a>',id:"publishtaskrequired-",level:5},{value:'<code>publishTestTask</code><sup>Required</sup> <a name="publishTestTask" id="projen.python.Poetry.property.publishTestTask"></a>',id:"publishtesttaskrequired-",level:5},{value:'PoetryPyproject <a name="PoetryPyproject" id="projen.python.PoetryPyproject"></a>',id:"poetrypyproject-",level:3}
1,{value:'Initializers <a name="Initializers" id="projen.python.PoetryPyproject.Initializer"></a>',id:"initializers--2",level:4},{value:'<code>scope</code><sup>Required</sup> <a name="scope" id="projen.python.PoetryPyproject.Initializer.parameter.scope"></a>',id:"scoperequired-",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.PoetryPyproject.Initializer.parameter.options"></a>',id:"optionsrequired--1",level:5},{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--2",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.PoetryPyproject.toString"></a>',id:"tostring--2",level:5},{value:'<code>with</code> <a name="with" id="projen.python.PoetryPyproject.with"></a>',id:"with--2",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.PoetryPyproject.with.parameter.mixins"></a>',id:"mixinsrequired--2",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.PoetryPyproject.postProjectCreation"></a>',id:"postprojectcreation--2",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PoetryPyproject.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--4",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.PoetryPyproject.postSynthesize"></a>',id:"postsynthesize--2",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.PoetryPyproject.preSynthesize"></a>',id:"presynthesize--2",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.PoetryPyproject.projectCreation"></a>',id:"projectcreation--2",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PoetryPyproject.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--5",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.PoetryPyproject.synthesize"></a>',id:"synthesize--2",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--2",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.PoetryPyproject.isConstruct"></a>',id:"isconstruct--2",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PoetryPyproject.isConstruct.parameter.x"></a>',id:"xrequired--4",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.PoetryPyproject.isComponent"></a>',id:"iscomponent--2",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PoetryPyproject.isComponent.parameter.x"></a>',id:"xrequired--5",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--2",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.PoetryPyproject.property.node"></a>',id:"noderequired--2",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.PoetryPyproject.property.project"></a>',id:"projectrequired--4",level:5},{value:'<code>file</code><sup>Required</sup> <a name="file" id="projen.python.PoetryPyproject.property.file"></a>',id:"filerequired-",level:5},{value:'Projenrc <a name="Projenrc" id="projen.python.Projenrc"></a>',id:"projenrc-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.Projenrc.Initializer"></a>',id:"initializers--3",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Projenrc.Initializer.parameter.project"></a>',id:"projectrequired--5",level:5},{value:'<code>options</code><sup>Optional</sup> <a name="options" id="projen.python.Projenrc.Initializer.parameter.options"></a>',id:"optionsoptional-",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--3",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.Projenrc.toString"></a>',id:"tostring--3",level:5},{value:'<code>with</code> <a name="with" id="projen.python.Projenrc.with"></a>',id:"with--3",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.Projenrc.with.parameter.mixins"></a>',id:"mixinsrequired--3",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.Projenrc.postProjectCreation"></a>',id:"postprojectcreation--3",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Projenrc.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--6",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.Projenrc.postSynthesize"></a>',id:"postsynthesize--3",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.Projenrc.preSynthesize"></a>',id:"presynthesize--3",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.Projenrc.projectCreation"></a>',id:"projectcreation--3",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Projenrc.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--7",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.Projenrc.synthesize"></a>',id:"synthesize--3",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--3",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.Projenrc.isConstruct"></a>',id:"isconstruct--3",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Projenrc.isConstruct.parameter.x"></a>',id:"xrequired--6",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.Projenrc.isComponent"></a>',id:"iscomponent--3",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Projenrc.isComponent.parameter.x"></a>',id:"xrequired--7",level:6},{value:'<code>of</code> <a name="of" id="projen.python.Projenrc.of"></a>',id:"of-",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Projenrc.of.parameter.project"></a>',id:"projectrequired--6",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--3",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.Projenrc.property.node"></a>',id:"noderequired--3",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Projenrc.property.project"></a>',id:"projectrequired--7",level:5},{value:'<code>filePath</code><sup>Required</sup> <a name="filePath" id="projen.python.Projenrc.property.filePath"></a>',id:"filepathrequired-",level:5},{value:'<code>pythonExec</code><sup>Required</sup> <a name="pythonExec" id="projen.python.Projenrc.property.pythonExec"></a>',id:"pythonexecrequired-",level:5},{value:'PyprojectTomlFile <a name="PyprojectTomlFile" id="projen.python.PyprojectTomlFile"></a>',id:"pyprojecttomlfile-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.PyprojectTomlFile.Initializer"></a>',id:"initializers--4",level:4},{value:'<code>scope</code><sup>Required</sup> <a name="scope" id="projen.python.PyprojectTomlFile.Initializer.parameter.scope"></a>',id:"scoperequired--1",level:5},{value:'<code>config</code><sup>Required</sup> <a name="config" id="projen.python.PyprojectTomlFile.Initializer.parameter.config"></a>',id:"configrequired-",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--4",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.PyprojectTomlFile.toString"></a>',id:"tostring--4",level:5},{value:'<code>with</code> <a name="with" id="projen.python.PyprojectTomlFile.with"></a>',id:"with--4",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.PyprojectTomlFile.with.parameter.mixins"></a>',id:"mixinsrequired--4",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.PyprojectTomlFile.postProjectCreation"></a>',id:"postprojectcreation--4",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PyprojectTomlFile.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--8",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.PyprojectTomlFile.postSynthesize"></a>',id:"postsynthesize--4",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.PyprojectTomlFile.preSynthesize"></a>',id:"presynthesize--4",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.PyprojectTomlFile.projectCreation"></a>',id:"projectcreation--4",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PyprojectTomlFile.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--9",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.PyprojectTomlFile.synthesize"></a>',id:"synthesize--4",level:5},{value:'<code>diff</code> <a name="diff" id="projen.python.PyprojectTomlFile.diff"></a>',id:"diff-",level:5},{value:'<code>colorize</code><sup>Optional</sup> <a name="colorize" id="projen.python.PyprojectTomlFile.diff.parameter.colorize"></a>',id:"colorizeoptional-",level:6},{value:'<code>contextLines</code><sup>Optional</sup> <a name="contextLines" id="projen.python.PyprojectTomlFile.diff.parameter.contextLines"></a>',id:"contextlinesoptional-",level:6},{value:'<code>addDeletionOverride</code> <a name="addDeletionOverride" id="projen.python.PyprojectTomlFile.addDeletionOverride"></a>',id:"adddeletionoverride-",level:5},{value:'<code>path</code><sup>Required</sup> <a name="path" id="projen.python.PyprojectTomlFile.addDeletionOverride.parameter.path"></a>',id:"pathrequired-",level:6},{value:'<code>addOverride</code> <a name="addOverride" id="projen.python.PyprojectTomlFile.addOverride"></a>',id:"addoverride-",level:5},{value:'<code>path</code><sup>Required</sup> <a name="path" id="projen.python.PyprojectTomlFile.addOverride.parameter.path"></a>',id:"pathrequired--1",level:6},{value:'<code>value</code><sup>Required</sup> <a name="value" id="projen.python.PyprojectTomlFile.addOverride.parameter.value"></a>',id:"valuerequired-",level:6},{value:'<code>addToArray</code> <a name="addToArray" id="projen.python.PyprojectTomlFile.addToArray"></a>',id:"addtoarray-",level:5},{value:'<code>path</code><sup>Required</sup> <a name="path" id="projen.python.PyprojectTomlFile.addToArray.parameter.path"></a>',id:"pathrequired--2",level:6},{value:'<code>values</code><sup>Required</sup> <a name="values" id="projen.python.PyprojectTomlFile.addToArray.parameter.values"></a>',id:"valuesrequired-",level:6},{value:'<code>patch</code> <a name="patch" id="projen.python.PyprojectTomlFile.patch"></a>',id:"patch-",level:5},{value:'<code>patches</code><sup>Required</sup> <a name="patches" id="projen.python.PyprojectTomlFile.patch.parameter.patches"></a>',id:"patchesrequired-",level:6},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--4",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.PyprojectTomlFile.isConstruct"></a>',id:"isconstruct--4",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PyprojectTomlFile.isConstruct.parameter.x"></a>',id:"xrequired--8",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.PyprojectTomlFile.isComponent"></a>',id:"iscomponent--4",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PyprojectTomlFile.isComponent.parameter.x"></a>',id:"xrequired--9",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--4",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.PyprojectTomlFile.property.node"></a>',id:"noderequired--4",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.PyprojectTomlFile.property.project"></a>',id:"projectrequired--8",level:5},{value:'<code>absolutePath</code><sup>Required</sup> <a name="absolutePath" id="projen.python.PyprojectTomlFile.property.absolutePath"></a>',id:"absolutepathrequired-",level:5},{value:'<code>committed</code><sup>Required</sup> <a name="committed" id="projen.python.PyprojectTomlFile.property.committed"></a>',id:"committedrequired-",level:5},{value:'<code>path</code><sup>Required</sup> <a name="path" id="projen.python.PyprojectTomlFile.property.path"></a>',id:"pathrequired--3",level:5},{value:'<code>changed</code><sup>Optional</sup> <a name="changed" id="projen.python.PyprojectTomlFile.property.changed"></a>',id:"changedoptional-",level:5},{value:'<code>marker</code><sup>Optional</sup> <a name="marker" id="projen.python.PyprojectTomlFile.property.marker"></a>',id:"markeroptional-",level:5},{value:'<code>executable</code><sup>Required</sup> <a name="executable" id="projen.python.PyprojectTomlFile.property.executable"></a>',id:"executablerequired-",level:5},{value:'<code>readonly</code><sup>Required</sup> <a name="readonly" id="projen.python.PyprojectTomlFile.property.readonly"></a>',id:"readonlyrequired-",level:5},{value:'<code>omitEmpty</code><sup>Required</sup> <a name="omitEmpty" id="projen.python.PyprojectTomlFile.property.omitEmpty"></a>',id:"omitemptyrequired-",level:5},{value:'Pytest <a name="Pytest" id="projen.python.Pytest"></a>',id:"pytest-",level:3}
1,{value:'Initializers <a name="Initializers" id="projen.python.Pytest.Initializer"></a>',id:"initializers--5",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Pytest.Initializer.parameter.project"></a>',id:"projectrequired--9",level:5},{value:'<code>options</code><sup>Optional</sup> <a name="options" id="projen.python.Pytest.Initializer.parameter.options"></a>',id:"optionsoptional--1",level:5},{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--5",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.Pytest.toString"></a>',id:"tostring--5",level:5},{value:'<code>with</code> <a name="with" id="projen.python.Pytest.with"></a>',id:"with--5",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.Pytest.with.parameter.mixins"></a>',id:"mixinsrequired--5",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.Pytest.postProjectCreation"></a>',id:"postprojectcreation--5",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Pytest.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--10",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.Pytest.postSynthesize"></a>',id:"postsynthesize--5",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.Pytest.preSynthesize"></a>',id:"presynthesize--5",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.Pytest.projectCreation"></a>',id:"projectcreation--5",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Pytest.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--11",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.Pytest.synthesize"></a>',id:"synthesize--5",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--5",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.Pytest.isConstruct"></a>',id:"isconstruct--5",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Pytest.isConstruct.parameter.x"></a>',id:"xrequired--10",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.Pytest.isComponent"></a>',id:"iscomponent--5",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Pytest.isComponent.parameter.x"></a>',id:"xrequired--11",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--5",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.Pytest.property.node"></a>',id:"noderequired--5",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Pytest.property.project"></a>',id:"projectrequired--10",level:5},{value:'<code>testMatch</code><sup>Required</sup> <a name="testMatch" id="projen.python.Pytest.property.testMatch"></a>',id:"testmatchrequired-",level:5},{value:'PytestSample <a name="PytestSample" id="projen.python.PytestSample"></a>',id:"pytestsample-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.PytestSample.Initializer"></a>',id:"initializers--6",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.PytestSample.Initializer.parameter.project"></a>',id:"projectrequired--11",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.PytestSample.Initializer.parameter.options"></a>',id:"optionsrequired--2",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--6",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.PytestSample.toString"></a>',id:"tostring--6",level:5},{value:'<code>with</code> <a name="with" id="projen.python.PytestSample.with"></a>',id:"with--6",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.PytestSample.with.parameter.mixins"></a>',id:"mixinsrequired--6",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.PytestSample.postProjectCreation"></a>',id:"postprojectcreation--6",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PytestSample.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--12",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.PytestSample.postSynthesize"></a>',id:"postsynthesize--6",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.PytestSample.preSynthesize"></a>',id:"presynthesize--6",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.PytestSample.projectCreation"></a>',id:"projectcreation--6",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PytestSample.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--13",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.PytestSample.synthesize"></a>',id:"synthesize--6",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--6",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.PytestSample.isConstruct"></a>',id:"isconstruct--6",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PytestSample.isConstruct.parameter.x"></a>',id:"xrequired--12",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.PytestSample.isComponent"></a>',id:"iscomponent--6",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PytestSample.isComponent.parameter.x"></a>',id:"xrequired--13",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--6",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.PytestSample.property.node"></a>',id:"noderequired--6",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.PytestSample.property.project"></a>',id:"projectrequired--12",level:5},{value:'PythonProject <a name="PythonProject" id="projen.python.PythonProject"></a>',id:"pythonproject-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.PythonProject.Initializer"></a>',id:"initializers--7",level:4},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.PythonProject.Initializer.parameter.options"></a>',id:"optionsrequired--3",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--7",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.PythonProject.toString"></a>',id:"tostring--7",level:5},{value:'<code>with</code> <a name="with" id="projen.python.PythonProject.with"></a>',id:"with--7",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.PythonProject.with.parameter.mixins"></a>',id:"mixinsrequired--7",level:6},{value:'<code>addExcludeFromCleanup</code> <a name="addExcludeFromCleanup" id="projen.python.PythonProject.addExcludeFromCleanup"></a>',id:"addexcludefromcleanup-",level:5},{value:'<code>globs</code><sup>Required</sup> <a name="globs" id="projen.python.PythonProject.addExcludeFromCleanup.parameter.globs"></a>',id:"globsrequired-",level:6},{value:'<code>addGitIgnore</code> <a name="addGitIgnore" id="projen.python.PythonProject.addGitIgnore"></a>',id:"addgitignore-",level:5},{value:'<code>pattern</code><sup>Required</sup> <a name="pattern" id="projen.python.PythonProject.addGitIgnore.parameter.pattern"></a>',id:"patternrequired-",level:6},{value:'<code>addPackageIgnore</code> <a name="addPackageIgnore" id="projen.python.PythonProject.addPackageIgnore"></a>',id:"addpackageignore-",level:5},{value:'<code>_pattern</code><sup>Required</sup> <a name="_pattern" id="projen.python.PythonProject.addPackageIgnore.parameter._pattern"></a>',id:"_patternrequired-",level:6},{value:'<code>addTask</code> <a name="addTask" id="projen.python.PythonProject.addTask"></a>',id:"addtask-",level:5},{value:'<code>name</code><sup>Required</sup> <a name="name" id="projen.python.PythonProject.addTask.parameter.name"></a>',id:"namerequired-",level:6},{value:'<code>props</code><sup>Optional</sup> <a name="props" id="projen.python.PythonProject.addTask.parameter.props"></a>',id:"propsoptional-",level:6},{value:'<code>annotateGenerated</code> <a name="annotateGenerated" id="projen.python.PythonProject.annotateGenerated"></a>',id:"annotategenerated-",level:5},{value:'<code>glob</code><sup>Required</sup> <a name="glob" id="projen.python.PythonProject.annotateGenerated.parameter.glob"></a>',id:"globrequired-",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.PythonProject.postSynthesize"></a>',id:"postsynthesize--7",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.PythonProject.preSynthesize"></a>',id:"presynthesize--7",level:5},{value:'<code>removeTask</code> <a name="removeTask" id="projen.python.PythonProject.removeTask"></a>',id:"removetask-",level:5},{value:'<code>name</code><sup>Required</sup> <a name="name" id="projen.python.PythonProject.removeTask.parameter.name"></a>',id:"namerequired--1",level:6},{value:'<code>runTaskCommand</code> <a name="runTaskCommand" id="projen.python.PythonProject.runTaskCommand"></a>',id:"runtaskcommand-",level:5},{value:'<code>task</code><sup>Required</sup> <a name="task" id="projen.python.PythonProject.runTaskCommand.parameter.task"></a>',id:"taskrequired-",level:6},{value:'<code>synth</code> <a name="synth" id="projen.python.PythonProject.synth"></a>',id:"synth-",level:5},{value:'<code>tryFindFile</code> <a name="tryFindFile" id="projen.python.PythonProject.tryFindFile"></a>',id:"tryfindfile-",level:5},{value:'<code>filePath</code><sup>Required</sup> <a name="filePath" id="projen.python.PythonProject.tryFindFile.parameter.filePath"></a>',id:"filepathrequired--1",level:6},{value:'<code>tryFindObjectFile</code> <a name="tryFindObjectFile" id="projen.python.PythonProject.tryFindObjectFile"></a>',id:"tryfindobjectfile-",level:5},{value:'<code>filePath</code><sup>Required</sup> <a name="filePath" id="projen.python.PythonProject.tryFindObjectFile.parameter.filePath"></a>',id:"filepathrequired--2",level:6},{value:'<code>tryRemoveFile</code> <a name="tryRemoveFile" id="projen.python.PythonProject.tryRemoveFile"></a>',id:"tryremovefile-",level:5},{value:'<code>filePath</code><sup>Required</sup> <a name="filePath" id="projen.python.PythonProject.tryRemoveFile.parameter.filePath"></a>',id:"filepathrequired--3",level:6},{value:'<code>addDependency</code> <a name="addDependency" id="projen.python.PythonProject.addDependency"></a>',id:"adddependency--2",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.PythonProject.addDependency.parameter.spec"></a>',id:"specrequired--4",level:6},{value:'<code>addDevDependency</code> <a name="addDevDependency" id="projen.python.PythonProject.addDevDependency"></a>',id:"adddevdependency--2",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.PythonProject.addDevDependency.parameter.spec"></a>',id:"specrequired--5",level:6},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--7",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.PythonProject.isConstruct"></a>',id:"isconstruct--7",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PythonProject.isConstruct.parameter.x"></a>',id:"xrequired--14",level:6},{value:'<code>isProject</code> <a name="isProject" id="projen.python.PythonProject.isProject"></a>',id:"isproject-",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PythonProject.isProject.parameter.x"></a>',id:"xrequired--15",level:6},{value:'<code>of</code> <a name="of" id="projen.python.PythonProject.of"></a>',id:"of--1",level:5},{value:'<code>construct</code><sup>Required</sup> <a name="construct" id="projen.python.PythonProject.of.parameter.construct"></a>',id:"constructrequired-",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--7",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.PythonProject.property.node"></a>',id:"noderequired--7",level:5},{value:'<code>buildTask</code><sup>Required</sup> <a name="buildTask" id="projen.python.PythonProject.property.buildTask"></a>',id:"buildtaskrequired-",level:5},{value:'<code>commitGenerated</code><sup>Required</sup> <a name="commitGenerated" id="projen.python.PythonProject.property.commitGenerated"></a>',id:"commitgeneratedrequired-",level:5},{value:'<code>compileTask</code><sup>Required</sup> <a name="compileTask" id="projen.python.PythonProject.property.compileTask"></a>',id:"compiletaskrequired-",level:5},{value:'<code>components</code><sup>Required</sup> <a name="components" id="projen.python.PythonProject.property.components"></a>',id:"componentsrequired-",level:5},{value:'<code>deps</code><sup>Required</sup> <a name="deps" id="projen.python.PythonProject.property.deps"></a>',id:"depsrequired-",level:5},{value:'<code>ejected</code><sup>Required</sup> <a name="ejected" id="projen.python.PythonProject.property.ejected"></a>',id:"ejectedrequired-",level:5},{value:'<code>files</code><sup>Required</sup> <a name="files" id="projen.python.PythonProject.property.files"></a>',id:"filesrequired-",level:5},{value:'<code>gitattributes</code><sup>Required</sup> <a name="gitattributes" id="projen.python.PythonProject.property.gitattributes"></a>',id:"gitattributesrequired-",level:5},{value:'<code>gitignore</code><sup>Required</sup> <a name="gitignore" id="projen.python.PythonProject.property.gitignore"></a>',id:"gitignorerequired-",level:5},{value:'<code>logger</code><sup>Required</sup> <a name="logger" id="projen.python.PythonProject.property.logger"></a>',id:"loggerrequired-",level:5},{value:'<code>name</code><sup>Required</sup> <a name="name" id="projen.python.PythonProject.property.name"></a>',id:"namerequired--2",level:5},{value:'<code>outdir</code><sup>Required</sup> <a name="outdir" id="projen.python.PythonProject.property.outdir"></a>',id:"outdirrequired-",level:5},{value:'<code>packageTask</code><sup>Required</sup> <a name="packageTask" id="projen.python.PythonProject.property.packageTask"></a>',id:"packagetaskrequired-",level:5},{value:'<code>postCompileTask</code><sup>Required</sup> <a name="postCompileTask" id="projen.python.PythonProject.property.postCompileTask"></a>',id:"postcompiletaskrequired-",level:5},{value:'<code>preCompileTask</code><sup>Required</sup> <a name="preCompileTask" id="projen.python.PythonProject.property.preCompileTask"></a>',id:"precompiletaskrequired-",level:5},{value:'<code>projectBuild</code><sup>Required</sup> <a name="projectBuild" id="projen.python.PythonProject.property.projectBuild"></a>',id:"projectbuildrequired-",level:5},{value:'<code>projenCommand</code><sup>Required</sup> <a name="projenCommand" id="projen.python.PythonProject.property.projenCommand"></a>',id:"projencommandrequired-",level:5},{value:'<code>root</code><sup>Required</sup> <a name="root" id="projen.python.PythonProject.property.root"></a>',id:"rootrequired-",level:5},{value:'<code>subprojects</code><sup>Required</sup> <a name="subprojects" id="projen.python.PythonProject.property.subprojects"></a>',id:"subprojectsrequired-",level:5},{value:'<code>tasks</code><sup>Required</sup> <a name="tasks" id="projen.python.PythonProject.property.tasks"></a>',id:"tasksrequired-",level:5},{value:'<code>testTask</code><sup>Required</sup> <a name="testTask" id="projen.python.PythonProject.property.testTask"></a>',id:"testtaskrequired-",level:5},{value:'<code>defaultTask</code><sup>Optional</sup> <a name="defaultTask" id="projen.python.PythonProject.property.defaultTask"></a>',id:"defaulttaskoptional-",level:5},{value:'<del><code>initProject</code></del><sup>Optional</sup> <a name="initProject" id="projen.python.PythonProject.property.initProject"></a>',id:"initprojectoptional-",level:5},{value:'<code>parent</code><sup>Optional</sup> <a name="parent" id="projen.python.PythonProject.property.parent"></a>',id:"parentoptional-",level:5},{value:'<code>autoApprove</code><sup>Optional</sup> <a name="autoApprove" id="projen.python.PythonProject.property.autoApprove"></a>',id:"autoapproveoptional-",level:5},{value:'<code>devContainer</code><sup>Optional</sup> <a name="devContainer" id="projen.python.PythonProject.property.devContainer"></a>',id:"devcontaineroptional-",level:5},{value:'<code>github</code><sup>Optional</sup> <a name="github" id="projen.python.PythonProject.property.github"></a>',id:"githuboptional-",level:5},{value:'<code>gitpod</code><sup>Optional</sup> <a name="gitpod" id="projen.python.PythonProject.property.gitpod"></a>',id:"gitpodoptional-",level:5},{value:'<code>vscode</code><sup>Optional</sup> <a name="vscode" id="projen.python.PythonProject.property.vscode"></a>',id:"vscodeoptional-",level:5},{value:'<code>depsManager</code><sup>Required</sup> <a name="depsManager" id="projen.python.PythonProject.property.depsManager"></a>',id:"depsmanagerrequired-",level:5},{value:'<code>envManager</code><sup>Required</sup> <a name="envManager" id="projen.python.PythonProject.property.envManager"></a>',id:"envmanagerrequired-",level:5},{value:'<code>moduleName</code><sup>Required</sup> <a name="moduleName" id="projen.python.PythonProject.property.moduleName"></a>',id:"modulenamerequired-",level:5},{value:'<code>sampleTestdir</code><sup>Required</sup> <a name="sampleTestdir" id="projen.python.PythonProject.property.sampleTestdir"></a>',id:"sampletestdirrequired-",level:5},{value:'<code>version</code><sup>Required</sup> <a name="version" id="projen.python.PythonProject.property.version"></a>',id:"versionrequired-",level:5},{value:'<code>packagingManager</code><sup>Optional</sup> <a name="packagingManager" id="projen.python.PythonProject.property.packagingManager"></a>',id:"packagingmanageroptional-",level:5},{value:'<code>pytest</code><sup>Optional</sup> <a name="pytest" id="projen.python.PythonProject.property.pytest"></a>',id:"pytestoptional-",level:5}
1,{value:'Constants <a name="Constants" id="Constants"></a>',id:"constants-",level:4},{value:'<code>DEFAULT_TASK</code><sup>Required</sup> <a name="DEFAULT_TASK" id="projen.python.PythonProject.property.DEFAULT_TASK"></a>',id:"default_taskrequired-",level:5},{value:'PythonSample <a name="PythonSample" id="projen.python.PythonSample"></a>',id:"pythonsample-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.PythonSample.Initializer"></a>',id:"initializers--8",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.PythonSample.Initializer.parameter.project"></a>',id:"projectrequired--13",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.PythonSample.Initializer.parameter.options"></a>',id:"optionsrequired--4",level:5},{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--8",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.PythonSample.toString"></a>',id:"tostring--8",level:5},{value:'<code>with</code> <a name="with" id="projen.python.PythonSample.with"></a>',id:"with--8",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.PythonSample.with.parameter.mixins"></a>',id:"mixinsrequired--8",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.PythonSample.postProjectCreation"></a>',id:"postprojectcreation--7",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PythonSample.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--14",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.PythonSample.postSynthesize"></a>',id:"postsynthesize--8",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.PythonSample.preSynthesize"></a>',id:"presynthesize--8",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.PythonSample.projectCreation"></a>',id:"projectcreation--7",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.PythonSample.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--15",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.PythonSample.synthesize"></a>',id:"synthesize--7",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--8",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.PythonSample.isConstruct"></a>',id:"isconstruct--8",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PythonSample.isConstruct.parameter.x"></a>',id:"xrequired--16",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.PythonSample.isComponent"></a>',id:"iscomponent--7",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.PythonSample.isComponent.parameter.x"></a>',id:"xrequired--17",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--8",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.PythonSample.property.node"></a>',id:"noderequired--8",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.PythonSample.property.project"></a>',id:"projectrequired--14",level:5},{value:'RequirementsFile <a name="RequirementsFile" id="projen.python.RequirementsFile"></a>',id:"requirementsfile-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.RequirementsFile.Initializer"></a>',id:"initializers--9",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.RequirementsFile.Initializer.parameter.project"></a>',id:"projectrequired--15",level:5},{value:'<code>filePath</code><sup>Required</sup> <a name="filePath" id="projen.python.RequirementsFile.Initializer.parameter.filePath"></a>',id:"filepathrequired--4",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.RequirementsFile.Initializer.parameter.options"></a>',id:"optionsrequired--5",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--9",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.RequirementsFile.toString"></a>',id:"tostring--9",level:5},{value:'<code>with</code> <a name="with" id="projen.python.RequirementsFile.with"></a>',id:"with--9",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.RequirementsFile.with.parameter.mixins"></a>',id:"mixinsrequired--9",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.RequirementsFile.postProjectCreation"></a>',id:"postprojectcreation--8",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.RequirementsFile.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--16",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.RequirementsFile.postSynthesize"></a>',id:"postsynthesize--9",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.RequirementsFile.preSynthesize"></a>',id:"presynthesize--9",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.RequirementsFile.projectCreation"></a>',id:"projectcreation--8",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.RequirementsFile.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--17",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.RequirementsFile.synthesize"></a>',id:"synthesize--8",level:5},{value:'<code>diff</code> <a name="diff" id="projen.python.RequirementsFile.diff"></a>',id:"diff--1",level:5},{value:'<code>colorize</code><sup>Optional</sup> <a name="colorize" id="projen.python.RequirementsFile.diff.parameter.colorize"></a>',id:"colorizeoptional--1",level:6},{value:'<code>contextLines</code><sup>Optional</sup> <a name="contextLines" id="projen.python.RequirementsFile.diff.parameter.contextLines"></a>',id:"contextlinesoptional--1",level:6},{value:'<code>addPackages</code> <a name="addPackages" id="projen.python.RequirementsFile.addPackages"></a>',id:"addpackages-",level:5},{value:'<code>packages</code><sup>Required</sup> <a name="packages" id="projen.python.RequirementsFile.addPackages.parameter.packages"></a>',id:"packagesrequired-",level:6},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--9",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.RequirementsFile.isConstruct"></a>',id:"isconstruct--9",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.RequirementsFile.isConstruct.parameter.x"></a>',id:"xrequired--18",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.RequirementsFile.isComponent"></a>',id:"iscomponent--8",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.RequirementsFile.isComponent.parameter.x"></a>',id:"xrequired--19",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--9",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.RequirementsFile.property.node"></a>',id:"noderequired--9",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.RequirementsFile.property.project"></a>',id:"projectrequired--16",level:5},{value:'<code>absolutePath</code><sup>Required</sup> <a name="absolutePath" id="projen.python.RequirementsFile.property.absolutePath"></a>',id:"absolutepathrequired--1",level:5},{value:'<code>committed</code><sup>Required</sup> <a name="committed" id="projen.python.RequirementsFile.property.committed"></a>',id:"committedrequired--1",level:5},{value:'<code>path</code><sup>Required</sup> <a name="path" id="projen.python.RequirementsFile.property.path"></a>',id:"pathrequired--4",level:5},{value:'<code>changed</code><sup>Optional</sup> <a name="changed" id="projen.python.RequirementsFile.property.changed"></a>',id:"changedoptional--1",level:5},{value:'<code>marker</code><sup>Optional</sup> <a name="marker" id="projen.python.RequirementsFile.property.marker"></a>',id:"markeroptional--1",level:5},{value:'<code>executable</code><sup>Required</sup> <a name="executable" id="projen.python.RequirementsFile.property.executable"></a>',id:"executablerequired--1",level:5},{value:'<code>readonly</code><sup>Required</sup> <a name="readonly" id="projen.python.RequirementsFile.property.readonly"></a>',id:"readonlyrequired--1",level:5},{value:'SetupPy <a name="SetupPy" id="projen.python.SetupPy"></a>',id:"setuppy-",level:3}
1,{value:'Initializers <a name="Initializers" id="projen.python.SetupPy.Initializer"></a>',id:"initializers--10",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.SetupPy.Initializer.parameter.project"></a>',id:"projectrequired--17",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.SetupPy.Initializer.parameter.options"></a>',id:"optionsrequired--6",level:5},{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--10",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.SetupPy.toString"></a>',id:"tostring--10",level:5},{value:'<code>with</code> <a name="with" id="projen.python.SetupPy.with"></a>',id:"with--10",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.SetupPy.with.parameter.mixins"></a>',id:"mixinsrequired--10",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.SetupPy.postProjectCreation"></a>',id:"postprojectcreation--9",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.SetupPy.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--18",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.SetupPy.postSynthesize"></a>',id:"postsynthesize--10",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.SetupPy.preSynthesize"></a>',id:"presynthesize--10",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.SetupPy.projectCreation"></a>',id:"projectcreation--9",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.SetupPy.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--19",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.SetupPy.synthesize"></a>',id:"synthesize--9",level:5},{value:'<code>diff</code> <a name="diff" id="projen.python.SetupPy.diff"></a>',id:"diff--2",level:5},{value:'<code>colorize</code><sup>Optional</sup> <a name="colorize" id="projen.python.SetupPy.diff.parameter.colorize"></a>',id:"colorizeoptional--2",level:6},{value:'<code>contextLines</code><sup>Optional</sup> <a name="contextLines" id="projen.python.SetupPy.diff.parameter.contextLines"></a>',id:"contextlinesoptional--2",level:6},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--10",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.SetupPy.isConstruct"></a>',id:"isconstruct--10",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.SetupPy.isConstruct.parameter.x"></a>',id:"xrequired--20",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.SetupPy.isComponent"></a>',id:"iscomponent--9",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.SetupPy.isComponent.parameter.x"></a>',id:"xrequired--21",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--10",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.SetupPy.property.node"></a>',id:"noderequired--10",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.SetupPy.property.project"></a>',id:"projectrequired--18",level:5},{value:'<code>absolutePath</code><sup>Required</sup> <a name="absolutePath" id="projen.python.SetupPy.property.absolutePath"></a>',id:"absolutepathrequired--2",level:5},{value:'<code>committed</code><sup>Required</sup> <a name="committed" id="projen.python.SetupPy.property.committed"></a>',id:"committedrequired--2",level:5},{value:'<code>path</code><sup>Required</sup> <a name="path" id="projen.python.SetupPy.property.path"></a>',id:"pathrequired--5",level:5},{value:'<code>changed</code><sup>Optional</sup> <a name="changed" id="projen.python.SetupPy.property.changed"></a>',id:"changedoptional--2",level:5},{value:'<code>marker</code><sup>Optional</sup> <a name="marker" id="projen.python.SetupPy.property.marker"></a>',id:"markeroptional--2",level:5},{value:'<code>executable</code><sup>Required</sup> <a name="executable" id="projen.python.SetupPy.property.executable"></a>',id:"executablerequired--2",level:5},{value:'<code>readonly</code><sup>Required</sup> <a name="readonly" id="projen.python.SetupPy.property.readonly"></a>',id:"readonlyrequired--2",level:5},{value:'Setuptools <a name="Setuptools" id="projen.python.Setuptools"></a>',id:"setuptools-",level:3}
1,{value:'Initializers <a name="Initializers" id="projen.python.Setuptools.Initializer"></a>',id:"initializers--11",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Setuptools.Initializer.parameter.project"></a>',id:"projectrequired--19",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.Setuptools.Initializer.parameter.options"></a>',id:"optionsrequired--7",level:5},{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--11",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.Setuptools.toString"></a>',id:"tostring--11",level:5},{value:'<code>with</code> <a name="with" id="projen.python.Setuptools.with"></a>',id:"with--11",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.Setuptools.with.parameter.mixins"></a>',id:"mixinsrequired--11",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.Setuptools.postProjectCreation"></a>',id:"postprojectcreation--10",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Setuptools.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--20",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.Setuptools.postSynthesize"></a>',id:"postsynthesize--11",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.Setuptools.preSynthesize"></a>',id:"presynthesize--11",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.Setuptools.projectCreation"></a>',id:"projectcreation--10",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Setuptools.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--21",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.Setuptools.synthesize"></a>',id:"synthesize--10",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--11",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.Setuptools.isConstruct"></a>',id:"isconstruct--11",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Setuptools.isConstruct.parameter.x"></a>',id:"xrequired--22",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.Setuptools.isComponent"></a>',id:"iscomponent--10",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Setuptools.isComponent.parameter.x"></a>',id:"xrequired--23",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--11",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.Setuptools.property.node"></a>',id:"noderequired--11",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Setuptools.property.project"></a>',id:"projectrequired--20",level:5},{value:'<code>publishTask</code><sup>Required</sup> <a name="publishTask" id="projen.python.Setuptools.property.publishTask"></a>',id:"publishtaskrequired--1",level:5},{value:'<code>publishTestTask</code><sup>Required</sup> <a name="publishTestTask" id="projen.python.Setuptools.property.publishTestTask"></a>',id:"publishtesttaskrequired--1",level:5},{value:'Uv <a name="Uv" id="projen.python.Uv"></a>',id:"uv-",level:3},{value:'Initializers <a name="Initializers" id="projen.python.Uv.Initializer"></a>',id:"initializers--12",level:4},{value:'<code>scope</code><sup>Required</sup> <a name="scope" id="projen.python.Uv.Initializer.parameter.scope"></a>',id:"scoperequired--2",level:5},{value:'<code>options</code><sup>Required</sup> <a name="options" id="projen.python.Uv.Initializer.parameter.options"></a>',id:"optionsrequired--8",level:5}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--12",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.Uv.toString"></a>',id:"tostring--12",level:5},{value:'<code>with</code> <a name="with" id="projen.python.Uv.with"></a>',id:"with--12",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.Uv.with.parameter.mixins"></a>',id:"mixinsrequired--12",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.Uv.postProjectCreation"></a>',id:"postprojectcreation--11",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Uv.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--22",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.Uv.postSynthesize"></a>',id:"postsynthesize--12",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.Uv.preSynthesize"></a>',id:"presynthesize--12",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.Uv.projectCreation"></a>',id:"projectcreation--11",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Uv.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--23",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.Uv.synthesize"></a>',id:"synthesize--11",level:5},{value:'<code>addDependency</code> <a name="addDependency" id="projen.python.Uv.addDependency"></a>',id:"adddependency--3",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.Uv.addDependency.parameter.spec"></a>',id:"specrequired--6",level:6},{value:'<code>addDevDependency</code> <a name="addDevDependency" id="projen.python.Uv.addDevDependency"></a>',id:"adddevdependency--3",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.Uv.addDevDependency.parameter.spec"></a>',id:"specrequired--7",level:6},{value:'<code>installDependencies</code> <a name="installDependencies" id="projen.python.Uv.installDependencies"></a>',id:"installdependencies--2",level:5},{value:'<code>setupEnvironment</code> <a name="setupEnvironment" id="projen.python.Uv.setupEnvironment"></a>',id:"setupenvironment--1",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--12",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.Uv.isConstruct"></a>',id:"isconstruct--12",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Uv.isConstruct.parameter.x"></a>',id:"xrequired--24",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.Uv.isComponent"></a>',id:"iscomponent--11",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Uv.isComponent.parameter.x"></a>',id:"xrequired--25",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--12",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.Uv.property.node"></a>',id:"noderequired--12",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Uv.property.project"></a>',id:"projectrequired--21",level:5},{value:'<code>file</code><sup>Required</sup> <a name="file" id="projen.python.Uv.property.file"></a>',id:"filerequired--1",level:5},{value:'<code>installCiTask</code><sup>Required</sup> <a name="installCiTask" id="projen.python.Uv.property.installCiTask"></a>',id:"installcitaskrequired--2",level:5},{value:'<code>installTask</code><sup>Required</sup> <a name="installTask" id="projen.python.Uv.property.installTask"></a>',id:"installtaskrequired--1",level:5},{value:'<code>publishTask</code><sup>Required</sup> <a name="publishTask" id="projen.python.Uv.property.publishTask"></a>',id:"publishtaskrequired--2",level:5},{value:'<code>publishTestTask</code><sup>Required</sup> <a name="publishTestTask" id="projen.python.Uv.property.publishTestTask"></a>',id:"publishtesttaskrequired--2",level:5},{value:'Venv <a name="Venv" id="projen.python.Venv"></a>',id:"venv-",level:3}
1,{value:'Initializers <a name="Initializers" id="projen.python.Venv.Initializer"></a>',id:"initializers--13",level:4},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Venv.Initializer.parameter.project"></a>',id:"projectrequired--22",level:5},{value:'<code>options</code><sup>Optional</sup> <a name="options" id="projen.python.Venv.Initializer.parameter.options"></a>',id:"optionsoptional--2",level:5},{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--13",level:4},{value:'<code>toString</code> <a name="toString" id="projen.python.Venv.toString"></a>',id:"tostring--13",level:5},{value:'<code>with</code> <a name="with" id="projen.python.Venv.with"></a>',id:"with--13",level:5},{value:'<code>mixins</code><sup>Required</sup> <a name="mixins" id="projen.python.Venv.with.parameter.mixins"></a>',id:"mixinsrequired--13",level:6},{value:'<code>postProjectCreation</code> <a name="postProjectCreation" id="projen.python.Venv.postProjectCreation"></a>',id:"postprojectcreation--12",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Venv.postProjectCreation.parameter.initProject"></a>',id:"initprojectrequired--24",level:6},{value:'<code>postSynthesize</code> <a name="postSynthesize" id="projen.python.Venv.postSynthesize"></a>',id:"postsynthesize--13",level:5},{value:'<code>preSynthesize</code> <a name="preSynthesize" id="projen.python.Venv.preSynthesize"></a>',id:"presynthesize--13",level:5},{value:'<code>projectCreation</code> <a name="projectCreation" id="projen.python.Venv.projectCreation"></a>',id:"projectcreation--12",level:5},{value:'<code>initProject</code><sup>Required</sup> <a name="initProject" id="projen.python.Venv.projectCreation.parameter.initProject"></a>',id:"initprojectrequired--25",level:6},{value:'<code>synthesize</code> <a name="synthesize" id="projen.python.Venv.synthesize"></a>',id:"synthesize--12",level:5},{value:'<code>setupEnvironment</code> <a name="setupEnvironment" id="projen.python.Venv.setupEnvironment"></a>',id:"setupenvironment--2",level:5},{value:'Static Functions <a name="Static Functions" id="Static Functions"></a>',id:"static-functions--13",level:4},{value:'<code>isConstruct</code> <a name="isConstruct" id="projen.python.Venv.isConstruct"></a>',id:"isconstruct--13",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Venv.isConstruct.parameter.x"></a>',id:"xrequired--26",level:6},{value:'<code>isComponent</code> <a name="isComponent" id="projen.python.Venv.isComponent"></a>',id:"iscomponent--12",level:5},{value:'<code>x</code><sup>Required</sup> <a name="x" id="projen.python.Venv.isComponent.parameter.x"></a>',id:"xrequired--27",level:6},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--13",level:4},{value:'<code>node</code><sup>Required</sup> <a name="node" id="projen.python.Venv.property.node"></a>',id:"noderequired--13",level:5},{value:'<code>project</code><sup>Required</sup> <a name="project" id="projen.python.Venv.property.project"></a>',id:"projectrequired--23",level:5},{value:'Structs <a name="Structs" id="Structs"></a>',id:"structs-",level:2},{value:'BuildSystem <a name="BuildSystem" id="projen.python.BuildSystem"></a>',id:"buildsystem-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.BuildSystem.Initializer"></a>',id:"initializer-",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--14",level:4},{value:'<code>requires</code><sup>Required</sup> <a name="requires" id="projen.python.BuildSystem.property.requires"></a>',id:"requiresrequired-",level:5},{value:'<code>backendPath</code><sup>Optional</sup> <a name="backendPath" id="projen.python.BuildSystem.property.backendPath"></a>',id:"backendpathoptional-",level:5},{value:'<code>buildBackend</code><sup>Optional</sup> <a name="buildBackend" id="projen.python.BuildSystem.property.buildBackend"></a>',id:"buildbackendoptional-",level:5},{value:'PipOptions <a name="PipOptions" id="projen.python.PipOptions"></a>',id:"pipoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PipOptions.Initializer"></a>',id:"initializer--1",level:4},{value:'PoetryOptions <a name="PoetryOptions" id="projen.python.PoetryOptions"></a>',id:"poetryoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PoetryOptions.Initializer"></a>',id:"initializer--2",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--15",level:4},{value:'<code>authorEmail</code><sup>Required</sup> <a name="authorEmail" id="projen.python.PoetryOptions.property.authorEmail"></a>',id:"authoremailrequired-",level:5},{value:'<code>authorName</code><sup>Required</sup> <a name="authorName" id="projen.python.PoetryOptions.property.authorName"></a>',id:"authornamerequired-",level:5},{value:'<code>version</code><sup>Required</sup> <a name="version" id="projen.python.PoetryOptions.property.version"></a>',id:"versionrequired--1",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.PoetryOptions.property.classifiers"></a>',id:"classifiersoptional-",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.PoetryOptions.property.description"></a>',id:"descriptionoptional-",level:5},{value:'<code>homepage</code><sup>Optional</sup> <a name="homepage" id="projen.python.PoetryOptions.property.homepage"></a>',id:"homepageoptional-",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.PoetryOptions.property.license"></a>',id:"licenseoptional-",level:5},{value:'<code>packageName</code><sup>Optional</sup> <a name="packageName" id="projen.python.PoetryOptions.property.packageName"></a>',id:"packagenameoptional-",level:5},{value:'<code>poetryOptions</code><sup>Optional</sup> <a name="poetryOptions" id="projen.python.PoetryOptions.property.poetryOptions"></a>',id:"poetryoptionsoptional-",level:5},{value:'<code>setupConfig</code><sup>Optional</sup> <a name="setupConfig" id="projen.python.PoetryOptions.property.setupConfig"></a>',id:"setupconfigoptional-",level:5},{value:'<code>uvOptions</code><sup>Optional</sup> <a name="uvOptions" id="projen.python.PoetryOptions.property.uvOptions"></a>',id:"uvoptionsoptional-",level:5},{value:'<code>pythonExec</code><sup>Optional</sup> <a name="pythonExec" id="projen.python.PoetryOptions.property.pythonExec"></a>',id:"pythonexecoptional-",level:5},{value:'PoetryPyprojectOptions <a name="PoetryPyprojectOptions" id="projen.python.PoetryPyprojectOptions"></a>',id:"poetrypyprojectoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PoetryPyprojectOptions.Initializer"></a>',id:"initializer--3",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--16",level:4},{value:'<code>authors</code><sup>Optional</sup> <a name="authors" id="projen.python.PoetryPyprojectOptions.property.authors"></a>',id:"authorsoptional-",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.PoetryPyprojectOptions.property.classifiers"></a>',id:"classifiersoptional--1",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.PoetryPyprojectOptions.property.description"></a>',id:"descriptionoptional--1",level:5},{value:'<code>documentation</code><sup>Optional</sup> <a name="documentation" id="projen.python.PoetryPyprojectOptions.property.documentation"></a>',id:"documentationoptional-",level:5},{value:'<code>exclude</code><sup>Optional</sup> <a name="exclude" id="projen.python.PoetryPyprojectOptions.property.exclude"></a>',id:"excludeoptional-",level:5},{value:'<code>extras</code><sup>Optional</sup> <a name="extras" id="projen.python.PoetryPyprojectOptions.property.extras"></a>',id:"extrasoptional-",level:5},{value:'<code>homepage</code><sup>Optional</sup> <a name="homepage" id="projen.python.PoetryPyprojectOptions.property.homepage"></a>',id:"homepageoptional--1",level:5},{value:'<code>include</code><sup>Optional</sup> <a name="include" id="projen.python.PoetryPyprojectOptions.property.include"></a>',id:"includeoptional-",level:5},{value:'<code>keywords</code><sup>Optional</sup> <a name="keywords" id="projen.python.PoetryPyprojectOptions.property.keywords"></a>',id:"keywordsoptional-",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.PoetryPyprojectOptions.property.license"></a>',id:"licenseoptional--1",level:5},{value:'<code>maintainers</code><sup>Optional</sup> <a name="maintainers" id="projen.python.PoetryPyprojectOptions.property.maintainers"></a>',id:"maintainersoptional-",level:5},{value:'<code>name</code><sup>Optional</sup> <a name="name" id="projen.python.PoetryPyprojectOptions.property.name"></a>',id:"nameoptional-",level:5},{value:'<code>packageMode</code><sup>Optional</sup> <a name="packageMode" id="projen.python.PoetryPyprojectOptions.property.packageMode"></a>',id:"packagemodeoptional-",level:5},{value:'<code>packages</code><sup>Optional</sup> <a name="packages" id="projen.python.PoetryPyprojectOptions.property.packages"></a>',id:"packagesoptional-",level:5},{value:'<code>plugins</code><sup>Optional</sup> <a name="plugins" id="projen.python.PoetryPyprojectOptions.property.plugins"></a>',id:"pluginsoptional-",level:5},{value:'<code>readme</code><sup>Optional</sup> <a name="readme" id="projen.python.PoetryPyprojectOptions.property.readme"></a>',id:"readmeoptional-",level:5},{value:'<code>repository</code><sup>Optional</sup> <a name="repository" id="projen.python.PoetryPyprojectOptions.property.repository"></a>',id:"repositoryoptional-",level:5},{value:'<code>scripts</code><sup>Optional</sup> <a name="scripts" id="projen.python.PoetryPyprojectOptions.property.scripts"></a>',id:"scriptsoptional-",level:5},{value:'<code>source</code><sup>Optional</sup> <a name="source" id="projen.python.PoetryPyprojectOptions.property.source"></a>',id:"sourceoptional-",level:5},{value:'<code>urls</code><sup>Optional</sup> <a name="urls" id="projen.python.PoetryPyprojectOptions.property.urls"></a>',id:"urlsoptional-",level:5},{value:'<code>version</code><sup>Optional</sup> <a name="version" id="projen.python.PoetryPyprojectOptions.property.version"></a>',id:"versionoptional-",level:5},{value:'<code>dependencies</code><sup>Optional</sup> <a name="dependencies" id="projen.python.PoetryPyprojectOptions.property.dependencies"></a>',id:"dependenciesoptional-",level:5},{value:'<code>devDependencies</code><sup>Optional</sup> <a name="devDependencies" id="projen.python.PoetryPyprojectOptions.property.devDependencies"></a>',id:"devdependenciesoptional-",level:5},{value:'PoetryPyprojectOptionsWithoutDeps <a name="PoetryPyprojectOptionsWithoutDeps" id="projen.python.PoetryPyprojectOptionsWithoutDeps"></a>',id:"poetrypyprojectoptionswithoutdeps-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PoetryPyprojectOptionsWithoutDeps.Initializer"></a>',id:"initializer--4",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--17",level:4},{value:'<code>authors</code><sup>Optional</sup> <a name="authors" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.authors"></a>',id:"authorsoptional--1",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.classifiers"></a>',id:"classifiersoptional--2",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.description"></a>',id:"descriptionoptional--2",level:5},{value:'<code>documentation</code><sup>Optional</sup> <a name="documentation" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.documentation"></a>',id:"documentationoptional--1",level:5},{value:'<code>exclude</code><sup>Optional</sup> <a name="exclude" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.exclude"></a>',id:"excludeoptional--1",level:5},{value:'<code>extras</code><sup>Optional</sup> <a name="extras" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.extras"></a>',id:"extrasoptional--1",level:5},{value:'<code>homepage</code><sup>Optional</sup> <a name="homepage" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.homepage"></a>',id:"homepageoptional--2",level:5},{value:'<code>include</code><sup>Optional</sup> <a name="include" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.include"></a>',id:"includeoptional--1",level:5},{value:'<code>keywords</code><sup>Optional</sup> <a name="keywords" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.keywords"></a>',id:"keywordsoptional--1",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.license"></a>',id:"licenseoptional--2",level:5},{value:'<code>maintainers</code><sup>Optional</sup> <a name="maintainers" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.maintainers"></a>',id:"maintainersoptional--1",level:5},{value:'<code>name</code><sup>Optional</sup> <a name="name" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.name"></a>',id:"nameoptional--1",level:5},{value:'<code>packageMode</code><sup>Optional</sup> <a name="packageMode" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.packageMode"></a>',id:"packagemodeoptional--1",level:5},{value:'<code>packages</code><sup>Optional</sup> <a name="packages" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.packages"></a>',id:"packagesoptional--1",level:5},{value:'<code>plugins</code><sup>Optional</sup> <a name="plugins" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.plugins"></a>',id:"pluginsoptional--1",level:5},{value:'<code>readme</code><sup>Optional</sup> <a name="readme" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.readme"></a>',id:"readmeoptional--1",level:5},{value:'<code>repository</code><sup>Optional</sup> <a name="repository" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.repository"></a>',id:"repositoryoptional--1",level:5},{value:'<code>scripts</code><sup>Optional</sup> <a name="scripts" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.scripts"></a>',id:"scriptsoptional--1",level:5},{value:'<code>source</code><sup>Optional</sup> <a name="source" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.source"></a>',id:"sourceoptional--1",level:5},{value:'<code>urls</code><sup>Optional</sup> <a name="urls" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.urls"></a>',id:"urlsoptional--1",level:5},{value:'<code>version</code><sup>Optional</sup> <a name="version" id="projen.python.PoetryPyprojectOptionsWithoutDeps.property.version"></a>',id:"versionoptional--1",level:5},{value:'ProjectAuthor <a name="ProjectAuthor" id="projen.python.ProjectAuthor"></a>',id:"projectauthor-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.ProjectAuthor.Initializer"></a>',id:"initializer--5",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--18",level:4},{value:'<code>email</code><sup>Optional</sup> <a name="email" id="projen.python.ProjectAuthor.property.email"></a>',id:"emailoptional-",level:5},{value:'<code>name</code><sup>Optional</sup> <a name="name" id="projen.python.ProjectAuthor.property.name"></a>',id:"nameoptional--2",level:5},{value:'ProjenrcOptions <a name="ProjenrcOptions" id="projen.python.ProjenrcOptions"></a>',id:"projenrcoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.ProjenrcOptions.Initializer"></a>',id:"initializer--6",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--19",level:4},{value:'<code>filename</code><sup>Optional</sup> <a name="filename" id="projen.python.ProjenrcOptions.property.filename"></a>',id:"filenameoptional-",level:5},{value:'<code>projenVersion</code><sup>Optional</sup> <a name="projenVersion" id="projen.python.ProjenrcOptions.property.projenVersion"></a>',id:"projenversionoptional-",level:5},{value:'<code>pythonExec</code><sup>Optional</sup> <a name="pythonExec" id="projen.python.ProjenrcOptions.property.pythonExec"></a>',id:"pythonexecoptional--1",level:5},{
1value:'PyprojectToml <a name="PyprojectToml" id="projen.python.PyprojectToml"></a>',id:"pyprojecttoml-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PyprojectToml.Initializer"></a>',id:"initializer--7",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--20",level:4},{value:'<code>buildSystem</code><sup>Optional</sup> <a name="buildSystem" id="projen.python.PyprojectToml.property.buildSystem"></a>',id:"buildsystemoptional-",level:5},{value:'<code>dependencyGroups</code><sup>Optional</sup> <a name="dependencyGroups" id="projen.python.PyprojectToml.property.dependencyGroups"></a>',id:"dependencygroupsoptional-",level:5},{value:'<code>project</code><sup>Optional</sup> <a name="project" id="projen.python.PyprojectToml.property.project"></a>',id:"projectoptional-",level:5},{value:'<code>tool</code><sup>Optional</sup> <a name="tool" id="projen.python.PyprojectToml.property.tool"></a>',id:"tooloptional-",level:5},{value:'PyprojectTomlDependencyGroups <a name="PyprojectTomlDependencyGroups" id="projen.python.PyprojectTomlDependencyGroups"></a>',id:"pyprojecttomldependencygroups-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PyprojectTomlDependencyGroups.Initializer"></a>',id:"initializer--8",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--21",level:4},{value:'<code>dev</code><sup>Optional</sup> <a name="dev" id="projen.python.PyprojectTomlDependencyGroups.property.dev"></a>',id:"devoptional-",level:5},{value:'PyprojectTomlProject <a name="PyprojectTomlProject" id="projen.python.PyprojectTomlProject"></a>',id:"pyprojecttomlproject-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PyprojectTomlProject.Initializer"></a>',id:"initializer--9",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--22",level:4},{value:'<code>name</code><sup>Required</sup> <a name="name" id="projen.python.PyprojectTomlProject.property.name"></a>',id:"namerequired--3",level:5},{value:'<code>authors</code><sup>Optional</sup> <a name="authors" id="projen.python.PyprojectTomlProject.property.authors"></a>',id:"authorsoptional--2",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.PyprojectTomlProject.property.classifiers"></a>',id:"classifiersoptional--3",level:5},{value:'<code>dependencies</code><sup>Optional</sup> <a name="dependencies" id="projen.python.PyprojectTomlProject.property.dependencies"></a>',id:"dependenciesoptional--1",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.PyprojectTomlProject.property.description"></a>',id:"descriptionoptional--3",level:5},{value:'<code>dynamic</code><sup>Optional</sup> <a name="dynamic" id="projen.python.PyprojectTomlProject.property.dynamic"></a>',id:"dynamicoptional-",level:5},{value:'<code>entryPoints</code><sup>Optional</sup> <a name="entryPoints" id="projen.python.PyprojectTomlProject.property.entryPoints"></a>',id:"entrypointsoptional-",level:5},{value:'<code>guiScripts</code><sup>Optional</sup> <a name="guiScripts" id="projen.python.PyprojectTomlProject.property.guiScripts"></a>',id:"guiscriptsoptional-",level:5},{value:'<code>importNames</code><sup>Optional</sup> <a name="importNames" id="projen.python.PyprojectTomlProject.property.importNames"></a>',id:"importnamesoptional-",level:5},{value:'<code>importNamespaces</code><sup>Optional</sup> <a name="importNamespaces" id="projen.python.PyprojectTomlProject.property.importNamespaces"></a>',id:"importnamespacesoptional-",level:5},{value:'<code>keywords</code><sup>Optional</sup> <a name="keywords" id="projen.python.PyprojectTomlProject.property.keywords"></a>',id:"keywordsoptional--2",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.PyprojectTomlProject.property.license"></a>',id:"licenseoptional--3",level:5},{value:'<code>licenseFiles</code><sup>Optional</sup> <a name="licenseFiles" id="projen.python.PyprojectTomlProject.property.licenseFiles"></a>',id:"licensefilesoptional-",level:5},{value:'<code>maintainers</code><sup>Optional</sup> <a name="maintainers" id="projen.python.PyprojectTomlProject.property.maintainers"></a>',id:"maintainersoptional--2",level:5},{value:'<code>optionalDependencies</code><sup>Optional</sup> <a name="optionalDependencies" id="projen.python.PyprojectTomlProject.property.optionalDependencies"></a>',id:"optionaldependenciesoptional-",level:5},{value:'<code>readme</code><sup>Optional</sup> <a name="readme" id="projen.python.PyprojectTomlProject.property.readme"></a>',id:"readmeoptional--2",level:5},{value:'<code>requiresPython</code><sup>Optional</sup> <a name="requiresPython" id="projen.python.PyprojectTomlProject.property.requiresPython"></a>',id:"requirespythonoptional-",level:5},{value:'<code>scripts</code><sup>Optional</sup> <a name="scripts" id="projen.python.PyprojectTomlProject.property.scripts"></a>',id:"scriptsoptional--2",level:5},{value:'<code>urls</code><sup>Optional</sup> <a name="urls" id="projen.python.PyprojectTomlProject.property.urls"></a>',id:"urlsoptional--2",level:5},{value:'<code>version</code><sup>Optional</sup> <a name="version" id="projen.python.PyprojectTomlProject.property.version"></a>',id:"versionoptional--2",level:5},{value:'PyprojectTomlTool <a name="PyprojectTomlTool" id="projen.python.PyprojectTomlTool"></a>',id:"pyprojecttomltool-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PyprojectTomlTool.Initializer"></a>',id:"initializer--10",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--23",level:4},{value:'<code>black</code><sup>Optional</sup> <a name="black" id="projen.python.PyprojectTomlTool.property.black"></a>',id:"blackoptional-",level:5},{value:'<code>cibuildwheel</code><sup>Optional</sup> <a name="cibuildwheel" id="projen.python.PyprojectTomlTool.property.cibuildwheel"></a>',id:"cibuildwheeloptional-",level:5},{value:'<code>dfc</code><sup>Optional</sup> <a name="dfc" id="projen.python.PyprojectTomlTool.property.dfc"></a>',id:"dfcoptional-",level:5},{value:'<code>docstringFormatChecker</code><sup>Optional</sup> <a name="docstringFormatChecker" id="projen.python.PyprojectTomlTool.property.docstringFormatChecker"></a>',id:"docstringformatcheckeroptional-",level:5},{value:'<code>fastapi</code><sup>Optional</sup> <a name="fastapi" id="projen.python.PyprojectTomlTool.property.fastapi"></a>',id:"fastapioptional-",level:5},{value:'<code>hatch</code><sup>Optional</sup> <a name="hatch" id="projen.python.PyprojectTomlTool.property.hatch"></a>',id:"hatchoptional-",level:5},{value:'<code>maturin</code><sup>Optional</sup> <a name="maturin" id="projen.python.PyprojectTomlTool.property.maturin"></a>',id:"maturinoptional-",level:5},{value:'<code>mypy</code><sup>Optional</sup> <a name="mypy" id="projen.python.PyprojectTomlTool.property.mypy"></a>',id:"mypyoptional-",level:5},{value:'<code>pdm</code><sup>Optional</sup> <a name="pdm" id="projen.python.PyprojectTomlTool.property.pdm"></a>',id:"pdmoptional-",level:5},{value:'<code>pixi</code><sup>Optional</sup> <a name="pixi" id="projen.python.PyprojectTomlTool.property.pixi"></a>',id:"pixioptional-",level:5},{value:'<code>poe</code><sup>Optional</sup> <a name="poe" id="projen.python.PyprojectTomlTool.property.poe"></a>',id:"poeoptional-",level:5},{value:'<code>poetry</code><sup>Optional</sup> <a name="poetry" id="projen.python.PyprojectTomlTool.property.poetry"></a>',id:"poetryoptional-",level:5},{value:'<code>pyright</code><sup>Optional</sup> <a name="pyright" id="projen.python.PyprojectTomlTool.property.pyright"></a>',id:"pyrightoptional-",level:5},{value:'<code>pytest</code><sup>Optional</sup> <a name="pytest" id="projen.python.PyprojectTomlTool.property.pytest"></a>',id:"pytestoptional--1",level:5},{value:'<code>quikrun</code><sup>Optional</sup> <a name="quikrun" id="projen.python.PyprojectTomlTool.property.quikrun"></a>',id:"quikrunoptional-",level:5},{value:'<code>repoReview</code><sup>Optional</sup> <a name="repoReview" id="projen.python.PyprojectTomlTool.property.repoReview"></a>',id:"reporeviewoptional-",level:5},{value:'<code>ruff</code><sup>Optional</sup> <a name="ruff" id="projen.python.PyprojectTomlTool.property.ruff"></a>',id:"ruffoptional-",level:5},{value:'<code>scheduled</code><sup>Optional</sup> <a name="scheduled" id="projen.python.PyprojectTomlTool.property.scheduled"></a>',id:"scheduledoptional-",level:5},{value:'<code>scikitBuild</code><sup>Optional</sup> <a name="scikitBuild" id="projen.python.PyprojectTomlTool.property.scikitBuild"></a>',id:"scikitbuildoptional-",level:5},{value:'<code>setuptools</code><sup>Optional</sup> <a name="setuptools" id="projen.python.PyprojectTomlTool.property.setuptools"></a>',id:"setuptoolsoptional-",level:5},{value:'<code>setuptoolsScm</code><sup>Optional</sup> <a name="setuptoolsScm" id="projen.python.PyprojectTomlTool.property.setuptoolsScm"></a>',id:"setuptoolsscmoptional-",level:5},{value:'<code>taskipy</code><sup>Optional</sup> <a name="taskipy" id="projen.python.PyprojectTomlTool.property.taskipy"></a>',id:"taskipyoptional-",level:5},{value:'<code>tombi</code><sup>Optional</sup> <a name="tombi" id="projen.python.PyprojectTomlTool.property.tombi"></a>',id:"tombioptional-",level:5},{value:'<code>tox</code><sup>Optional</sup> <a name="tox" id="projen.python.PyprojectTomlTool.property.tox"></a>',id:"toxoptional-",level:5},{value:'<code>ty</code><sup>Optional</sup> <a name="ty" id="projen.python.PyprojectTomlTool.property.ty"></a>',id:"tyoptional-",level:5},{value:'<code>uv</code><sup>Optional</sup> <a name="uv" id="projen.python.PyprojectTomlTool.property.uv"></a>',id:"uvoptional-",level:5},{value:'PytestOptions <a name="PytestOptions" id="projen.python.PytestOptions"></a>',id:"pytestoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PytestOptions.Initializer"></a>',id:"initializer--11",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--24",level:4},{value:'<code>maxFailures</code><sup>Optional</sup> <a name="maxFailures" id="projen.python.PytestOptions.property.maxFailures"></a>',id:"maxfailuresoptional-",level:5},{value:'<code>testMatch</code><sup>Optional</sup> <a name="testMatch" id="projen.python.PytestOptions.property.testMatch"></a>',id:"testmatchoptional-",level:5},{value:'<code>version</code><sup>Optional</sup> <a name="version" id="projen.python.PytestOptions.property.version"></a>',id:"versionoptional--3",level:5},{value:'PytestSampleOptions <a name="PytestSampleOptions" id="projen.python.PytestSampleOptions"></a>',id:"pytestsampleoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PytestSampleOptions.Initializer"></a>',id:"initializer--12",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--25",level:4},{value:'<code>moduleName</code><sup>Required</sup> <a name="moduleName" id="projen.python.PytestSampleOptions.property.moduleName"></a>',id:"modulenamerequired--1",level:5},{value:'<code>testdir</code><sup>Required</sup> <a name="testdir" id="projen.python.PytestSampleOptions.property.testdir"></a>',id:"testdirrequired-",level:5},{value:'PythonExecutableOptions <a name="PythonExecutableOptions" id="projen.python.PythonExecutableOptions"></a>',id:"pythonexecutableoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PythonExecutableOptions.Initializer"></a>',id:"initializer--13",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--26",level:4},{value:'<code>pythonExec</code><sup>Optional</sup> <a name="pythonExec" id="projen.python.PythonExecutableOptions.property.pythonExec"></a>',id:"pythonexecoptional--2",level:5},{value:'PythonPackagingOptions <a name="PythonPackagingOptions" id="projen.python.PythonPackagingOptions"></a>',id:"pythonpackagingoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PythonPackagingOptions.Initializer"></a>',id:"initializer--14",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--27",level:4},{value:'<code>authorEmail</code><sup>Required</sup> <a name="authorEmail" id="projen.python.PythonPackagingOptions.property.authorEmail"></a>',id:"authoremailrequired--1",level:5},{value:'<code>authorName</code><sup>Required</sup> <a name="authorName" id="projen.python.PythonPackagingOptions.property.authorName"></a>',id:"authornamerequired--1",level:5},{value:'<code>version</code><sup>Required</sup> <a name="version" id="projen.python.PythonPackagingOptions.property.version"></a>',id:"versionrequired--2",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.PythonPackagingOptions.property.classifiers"></a>',id:"classifiersoptional--4",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.PythonPackagingOptions.property.description"></a>',id:"descriptionoptional--4",level:5},{value:'<code>homepage</code><sup>Optional</sup> <a name="homepage" id="projen.python.PythonPackagingOptions.property.homepage"></a>',id:"homepageoptional--3",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.PythonPackagingOptions.property.license"></a>',id:"licenseoptional--4",level:5},{value:'<code>packageName</code><sup>Optional</sup> <a name="packageName" id="projen.python.PythonPackagingOptions.property.packageName"></a>',id:"packagenameoptional--1",level:5},{value:'<code>poetryOptions</code><sup>Optional</sup> <a name="poetryOptions" id="projen.python.PythonPackagingOptions.property.poetryOptions"></a>',id:"poetryoptionsoptional--1",level:5},{value:'<code>setupConfig</code><sup>Optional</sup> <a name="setupConfig" id="projen.python.PythonPackagingOptions.property.setupConfig"></a>',id:"setupconfigoptional--1",level:5},{value:'<code>uvOptions</code><sup>Optional</sup> <a name="uvOptions" id="projen.python.PythonPackagingOptions.property.uvOptions"></a>',id:"uvoptionsoptional--1",level:5},{value:'PythonProjectOptions <a name="PythonProjectOptions" id="projen.python.PythonProjectOptions"></a>',id:"pythonprojectoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PythonProjectOptions.Initializer"></a>',id:"initializer--15",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--28",level:4},{value:'<code>name</code><sup>Required</sup> <a name="name" id="projen.python.PythonProjectOptions.property.name"></a>',id:"namerequired--4",level:5},{value:'<code>commitGenerated</code><sup>Optional</sup> <a name="commitGenerated" id="projen.python.PythonProjectOptions.property.commitGenerated"></a>',id:"commitgeneratedoptional-",level:5},{value:'<code>gitIgnoreOptions</code><sup>Optional</sup> <a name="gitIgnoreOptions" id="projen.python.PythonProjectOptions.property.gitIgnoreOptions"></a>',id:"gitignoreoptionsoptional-",level:5},{value:'<code>gitOptions</code><sup>Optional</sup> <a name="gitOptions" id="projen.python.PythonProjectOptions.property.gitOptions"></a>',id:"gitoptionsoptional-",level:5},{value:'<code>logging</code><sup>Optional</sup> <a name="logging" id="projen.python.PythonProjectOptions.property.logging"></a>',id:"loggingoptional-",level:5},{value:'<code>outdir</code><sup>Optional</sup> <a name="outdir" id="projen.python.PythonProjectOptions.property.outdir"></a>',id:"outdiroptional-",level:5},{value:'<code>parent</code><sup>Optional</sup> <a name="parent" id="projen.python.PythonProjectOptions.property.parent"></a>',id:"parentoptional--1",level:5},{value:'<code>projectTree</code><sup>Optional</sup> <a name="projectTree" id="projen.python.PythonProjectOptions.property.projectTree"></a>',id:"projecttreeoptional-",level:5},{value:'<code>projenCommand</code><sup>Optional</sup> <a name="projenCommand" id="projen.python.PythonProjectOptions.property.projenCommand"></a>',id:"projencommandoptional-",level:5},{value:'<code>projenrcJson</code><sup>Optional</sup> <a name="projenrcJson" id="projen.python.PythonProjectOptions.property.projenrcJson"></a>',id:"projenrcjsonoptional-",level:5},{value:'<code>projenrcJsonOptions</code><sup>Optional</sup> <a name="projenrcJsonOptions" id="projen.python.PythonProjectOptions.property.projenrcJsonOptions"></a>',id:"proje
1nrcjsonoptionsoptional-",level:5},{value:'<code>renovatebot</code><sup>Optional</sup> <a name="renovatebot" id="projen.python.PythonProjectOptions.property.renovatebot"></a>',id:"renovatebotoptional-",level:5},{value:'<code>renovatebotOptions</code><sup>Optional</sup> <a name="renovatebotOptions" id="projen.python.PythonProjectOptions.property.renovatebotOptions"></a>',id:"renovatebotoptionsoptional-",level:5},{value:'<code>autoApproveOptions</code><sup>Optional</sup> <a name="autoApproveOptions" id="projen.python.PythonProjectOptions.property.autoApproveOptions"></a>',id:"autoapproveoptionsoptional-",level:5},{value:'<code>autoMerge</code><sup>Optional</sup> <a name="autoMerge" id="projen.python.PythonProjectOptions.property.autoMerge"></a>',id:"automergeoptional-",level:5},{value:'<code>autoMergeOptions</code><sup>Optional</sup> <a name="autoMergeOptions" id="projen.python.PythonProjectOptions.property.autoMergeOptions"></a>',id:"automergeoptionsoptional-",level:5},{value:'<code>clobber</code><sup>Optional</sup> <a name="clobber" id="projen.python.PythonProjectOptions.property.clobber"></a>',id:"clobberoptional-",level:5},{value:'<code>devContainer</code><sup>Optional</sup> <a name="devContainer" id="projen.python.PythonProjectOptions.property.devContainer"></a>',id:"devcontaineroptional--1",level:5},{value:'<code>github</code><sup>Optional</sup> <a name="github" id="projen.python.PythonProjectOptions.property.github"></a>',id:"githuboptional--1",level:5},{value:'<code>githubOptions</code><sup>Optional</sup> <a name="githubOptions" id="projen.python.PythonProjectOptions.property.githubOptions"></a>',id:"githuboptionsoptional-",level:5},{value:'<code>gitpod</code><sup>Optional</sup> <a name="gitpod" id="projen.python.PythonProjectOptions.property.gitpod"></a>',id:"gitpodoptional--1",level:5},{value:'<code>projenCredentials</code><sup>Optional</sup> <a name="projenCredentials" id="projen.python.PythonProjectOptions.property.projenCredentials"></a>',id:"projencredentialsoptional-",level:5},{value:'<code>readme</code><sup>Optional</sup> <a name="readme" id="projen.python.PythonProjectOptions.property.readme"></a>',id:"readmeoptional--3",level:5},{value:'<code>stale</code><sup>Optional</sup> <a name="stale" id="projen.python.PythonProjectOptions.property.stale"></a>',id:"staleoptional-",level:5},{value:'<code>staleOptions</code><sup>Optional</sup> <a name="staleOptions" id="projen.python.PythonProjectOptions.property.staleOptions"></a>',id:"staleoptionsoptional-",level:5},{value:'<code>vscode</code><sup>Optional</sup> <a name="vscode" id="projen.python.PythonProjectOptions.property.vscode"></a>',id:"vscodeoptional--1",level:5},{value:'<code>authorEmail</code><sup>Required</sup> <a name="authorEmail" id="projen.python.PythonProjectOptions.property.authorEmail"></a>',id:"authoremailrequired--2",level:5},{value:'<code>authorName</code><sup>Required</sup> <a name="authorName" id="projen.python.PythonProjectOptions.property.authorName"></a>',id:"authornamerequired--2",level:5},{value:'<code>version</code><sup>Required</sup> <a name="version" id="projen.python.PythonProjectOptions.property.version"></a>',id:"versionrequired--3",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.PythonProjectOptions.property.classifiers"></a>',id:"classifiersoptional--5",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.PythonProjectOptions.property.description"></a>',id:"descriptionoptional--5",level:5},{value:'<code>homepage</code><sup>Optional</sup> <a name="homepage" id="projen.python.PythonProjectOptions.property.homepage"></a>',id:"homepageoptional--4",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.PythonProjectOptions.property.license"></a>',id:"licenseoptional--5",level:5},{value:'<code>packageName</code><sup>Optional</sup> <a name="packageName" id="projen.python.PythonProjectOptions.property.packageName"></a>',id:"packagenameoptional--2",level:5},{value:'<code>poetryOptions</code><sup>Optional</sup> <a name="poetryOptions" id="projen.python.PythonProjectOptions.property.poetryOptions"></a>',id:"poetryoptionsoptional--2",level:5},{value:'<code>setupConfig</code><sup>Optional</sup> <a name="setupConfig" id="projen.python.PythonProjectOptions.property.setupConfig"></a>',id:"setupconfigoptional--2",level:5},{value:'<code>uvOptions</code><sup>Optional</sup> <a name="uvOptions" id="projen.python.PythonProjectOptions.property.uvOptions"></a>',id:"uvoptionsoptional--2",level:5},{value:'<code>pythonExec</code><sup>Optional</sup> <a name="pythonExec" id="projen.python.PythonProjectOptions.property.pythonExec"></a>',id:"pythonexecoptional--3",level:5},{value:'<code>moduleName</code><sup>Required</sup> <a name="moduleName" id="projen.python.PythonProjectOptions.property.moduleName"></a>',id:"modulenamerequired--2",level:5},{value:'<code>deps</code><sup>Optional</sup> <a name="deps" id="projen.python.PythonProjectOptions.property.deps"></a>',id:"depsoptional-",level:5},{value:'<code>devDeps</code><sup>Optional</sup> <a name="devDeps" id="projen.python.PythonProjectOptions.property.devDeps"></a>',id:"devdepsoptional-",level:5},{value:'<code>pip</code><sup>Optional</sup> <a name="pip" id="projen.python.PythonProjectOptions.property.pip"></a>',id:"pipoptional-",level:5},{value:'<code>poetry</code><sup>Optional</sup> <a name="poetry" id="projen.python.PythonProjectOptions.property.poetry"></a>',id:"poetryoptional--1",level:5},{value:'<code>projenrcJs</code><sup>Optional</sup> <a name="projenrcJs" id="projen.python.PythonProjectOptions.property.projenrcJs"></a>',id:"projenrcjsoptional-",level:5},{value:'<code>projenrcJsOptions</code><sup>Optional</sup> <a name="projenrcJsOptions" id="projen.python.PythonProjectOptions.property.projenrcJsOptions"></a>',id:"projenrcjsoptionsoptional-",level:5},{value:'<code>projenrcPython</code><sup>Optional</sup> <a name="projenrcPython" id="projen.python.PythonProjectOptions.property.projenrcPython"></a>',id:"projenrcpythonoptional-",level:5},{value:'<code>projenrcPythonOptions</code><sup>Optional</sup> <a name="projenrcPythonOptions" id="projen.python.PythonProjectOptions.property.projenrcPythonOptions"></a>',id:"projenrcpythonoptionsoptional-",level:5},{value:'<code>projenrcTs</code><sup>Optional</sup> <a name="projenrcTs" id="projen.python.PythonProjectOptions.property.projenrcTs"></a>',id:"projenrctsoptional-",level:5},{value:'<code>projenrcTsOptions</code><sup>Optional</sup> <a name="projenrcTsOptions" id="projen.python.PythonProjectOptions.property.projenrcTsOptions"></a>',id:"projenrctsoptionsoptional-",level:5},{value:'<code>pytest</code><sup>Optional</sup> <a name="pytest" id="projen.python.PythonProjectOptions.property.pytest"></a>',id:"pytestoptional--2",level:5},{value:'<code>pytestOptions</code><sup>Optional</sup> <a name="pytestOptions" id="projen.python.PythonProjectOptions.property.pytestOptions"></a>',id:"pytestoptionsoptional-",level:5},{value:'<code>sample</code><sup>Optional</sup> <a name="sample" id="projen.python.PythonProjectOptions.property.sample"></a>',id:"sampleoptional-",level:5},{value:'<code>sampleTestdir</code><sup>Optional</sup> <a name="sampleTestdir" id="projen.python.PythonProjectOptions.property.sampleTestdir"></a>',id:"sampletestdiroptional-",level:5},{value:'<code>setuptools</code><sup>Optional</sup> <a name="setuptools" id="projen.python.PythonProjectOptions.property.setuptools"></a>',id:"setuptoolsoptional--1",level:5},{value:'<code>uv</code><sup>Optional</sup> <a name="uv" id="projen.python.PythonProjectOptions.property.uv"></a>',id:"uvoptional--1",level:5},{value:'<code>venv</code><sup>Optional</sup> <a name="venv" id="projen.python.PythonProjectOptions.property.venv"></a>',id:"venvoptional-",level:5},{value:'<code>venvOptions</code><sup>Optional</sup> <a name="venvOptions" id="projen.python.PythonProjectOptions.property.venvOptions"></a>',id:"venvoptionsoptional-",level:5},{value:'PythonSampleOptions <a name="PythonSampleOptions" id="projen.python.PythonSampleOptions"></a>',id:"pythonsampleoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.PythonSampleOptions.Initializer"></a>',id:"initializer--16",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--29",level:4},{value:'<code>dir</code><sup>Required</sup> <a name="dir" id="projen.python.PythonSampleOptions.property.dir"></a>',id:"dirrequired-",level:5},{value:'RequirementsFileOptions <a name="RequirementsFileOptions" id="projen.python.RequirementsFileOptions"></a>',id:"requirementsfileoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.RequirementsFileOptions.Initializer"></a>',id:"initializer--17",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--30",level:4},{value:'<code>packageProvider</code><sup>Optional</sup> <a name="packageProvider" id="projen.python.RequirementsFileOptions.property.packageProvider"></a>',id:"packageprovideroptional-",level:5},{value:'SetupPyOptions <a name="SetupPyOptions" id="projen.python.SetupPyOptions"></a>',id:"setuppyoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.SetupPyOptions.Initializer"></a>',id:"initializer--18",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--31",level:4},{value:'<code>additionalOptions</code><sup>Optional</sup> <a name="additionalOptions" id="projen.python.SetupPyOptions.property.additionalOptions"></a>',id:"additionaloptionsoptional-",level:5},{value:'<code>authorEmail</code><sup>Optional</sup> <a name="authorEmail" id="projen.python.SetupPyOptions.property.authorEmail"></a>',id:"authoremailoptional-",level:5},{value:'<code>authorName</code><sup>Optional</sup> <a name="authorName" id="projen.python.SetupPyOptions.property.authorName"></a>',id:"authornameoptional-",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.SetupPyOptions.property.classifiers"></a>',id:"classifiersoptional--6",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.SetupPyOptions.property.description"></a>',id:"descriptionoptional--6",level:5},{value:'<code>homepage</code><sup>Optional</sup> <a name="homepage" id="projen.python.SetupPyOptions.property.homepage"></a>',id:"homepageoptional--5",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.SetupPyOptions.property.license"></a>',id:"licenseoptional--6",level:5},{value:'<code>name</code><sup>Optional</sup> <a name="name" id="projen.python.SetupPyOptions.property.name"></a>',id:"nameoptional--3",level:5},{value:'<code>packages</code><sup>Optional</sup> <a name="packages" id="projen.python.SetupPyOptions.property.packages"></a>',id:"packagesoptional--2",level:5},{value:'<code>version</code><sup>Optional</sup> <a name="version" id="projen.python.SetupPyOptions.property.version"></a>',id:"versionoptional--4",level:5},{value:'SetuptoolsOptions <a name="SetuptoolsOptions" id="projen.python.SetuptoolsOptions"></a>',id:"setuptoolsoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.SetuptoolsOptions.Initializer"></a>',id:"initializer--19",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--32",level:4},{value:'<code>authorEmail</code><sup>Required</sup> <a name="authorEmail" id="projen.python.SetuptoolsOptions.property.authorEmail"></a>',id:"authoremailrequired--3",level:5},{value:'<code>authorName</code><sup>Required</sup> <a name="authorName" id="projen.python.SetuptoolsOptions.property.authorName"></a>',id:"authornamerequired--3",level:5},{value:'<code>version</code><sup>Required</sup> <a name="version" id="projen.python.SetuptoolsOptions.property.version"></a>',id:"versionrequired--4",level:5},{value:'<code>classifiers</code><sup>Optional</sup> <a name="classifiers" id="projen.python.SetuptoolsOptions.property.classifiers"></a>',id:"classifiersoptional--7",level:5},{value:'<code>description</code><sup>Optional</sup> <a name="description" id="projen.python.SetuptoolsOptions.property.description"></a>',id:"descriptionoptional--7",level:5},{value:'<code>homepage</code><sup>Optional</sup> <a name="homepage" id="projen.python.SetuptoolsOptions.property.homepage"></a>',id:"homepageoptional--6",level:5},{value:'<code>license</code><sup>Optional</sup> <a name="license" id="projen.python.SetuptoolsOptions.property.license"></a>',id:"licenseoptional--7",level:5},{value:'<code>packageName</code><sup>Optional</sup> <a name="packageName" id="projen.python.SetuptoolsOptions.property.packageName"></a>',id:"packagenameoptional--3",level:5},{value:'<code>poetryOptions</code><sup>Optional</sup> <a name="poetryOptions" id="projen.python.SetuptoolsOptions.property.poetryOptions"></a>',id:"poetryoptionsoptional--3",level:5},{value:'<code>setupConfig</code><sup>Optional</sup> <a name="setupConfig" id="projen.python.SetuptoolsOptions.property.setupConfig"></a>',id:"setupconfigoptional--3",level:5},{value:'<code>uvOptions</code><sup>Optional</sup> <a name="uvOptions" id="projen.python.SetuptoolsOptions.property.uvOptions"></a>',id:"uvoptionsoptional--3",level:5},{value:'<code>pythonExec</code><sup>Optional</sup> <a name="pythonExec" id="projen.python.SetuptoolsOptions.property.pythonExec"></a>',id:"pythonexecoptional--4",level:5},{value:'UvOptions <a name="UvOptions" id="projen.python.UvOptions"></a>',id:"uvoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.UvOptions.Initializer"></a>',id:"initializer--20",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--33",level:4},{value:'<code>pythonExec</code><sup>Optional</sup> <a name="pythonExec" id="projen.python.UvOptions.property.pythonExec"></a>',id:"pythonexecoptional--5",level:5},{value:'<code>buildSystem</code><sup>Optional</sup> <a name="buildSystem" id="projen.python.UvOptions.property.buildSystem"></a>',id:"buildsystemoptional--1",level:5},{value:'<code>project</code><sup>Optional</sup> <a name="project" id="projen.python.UvOptions.property.project"></a>',id:"projectoptional--1",level:5},{value:'<code>uv</code><sup>Optional</sup> <a name="uv" id="projen.python.UvOptions.property.uv"></a>',id:"uvoptional--2",level:5},{value:'VenvOptions <a name="VenvOptions" id="projen.python.VenvOptions"></a>',id:"venvoptions-",level:3},{value:'Initializer <a name="Initializer" id="projen.python.VenvOptions.Initializer"></a>',id:"initializer--21",level:4},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--34",level:4},{value:'<code>envdir</code><sup>Optional</sup> <a name="envdir" id="projen.python.VenvOptions.property.envdir"></a>',id:"envdiroptional-",level:5},{value:'<code>pythonExec</code><sup>Optional</sup> <a name="pythonExec" id="projen.python.VenvOptions.property.pythonExec"></a>',id:"pythonexecoptional--6",level:5},{value:'Protocols <a name="Protocols" id="Protocols"></a>',id:"protocols-",level:2},{value:'IPackageProvider <a name="IPackageProvider" id="projen.python.IPackageProvider"></a>',id:"ipackageprovider-",level:3},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--35",level:4},{value:'<code>packages</code><sup>Required</sup> <a name="packages" id="projen.python.IPackageProvider.property.packages"></a>',id:"packagesrequired--1",level:5},{value:'IPythonDeps <a name="IPythonDeps" id="projen.python.IPythonDeps"></a>',id:"ipythondeps-",level:3}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--14",level:4},{value:'<code>addDependency</code> <a name="addDependency" id="projen.python.IPythonDeps.addDependency"></a>',id:"adddependency--4",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.IPythonDeps.addDependency.parameter.spec"></a>',id:"specrequired--8",level:6},{value:'<code>addDevDependency</code> <a name="addDevDependency" id="projen.python.IPythonDeps.addDevDependency"></a>',id:"adddevdependency--4",level:5},{value:'<code>spec</code><sup>Required</sup> <a name="spec" id="projen.python.IPythonDeps.addDevDependency.parameter.spec"></a>',id:"specrequired--9",level:6},{value:'<code>installDependencies</code> <a name="installDependencies" id="projen.python.IPythonDeps.installDependencies"></a>',id:"installdependencies--3",level:5},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--36",level:4},{value:'<code>installCiTask</code><sup>Required</sup> <a name="installCiTask" id="projen.python.IPythonDeps.property.installCiTask"></a>',id:"installcitaskrequired--3",level:5},{value:'IPythonEnv <a name="IPythonEnv" id="projen.python.IPythonEnv"></a>',id:"ipythonenv-",level:3}
1,{value:'Methods <a name="Methods" id="Methods"></a>',id:"methods--15",level:4},{value:'<code>setupEnvironment</code> <a name="setupEnvironment" id="projen.python.IPythonEnv.setupEnvironment"></a>',id:"setupenvironment--3",level:5},{value:'IPythonPackaging <a name="IPythonPackaging" id="projen.python.IPythonPackaging"></a>',id:"ipythonpackaging-",level:3},{value:'Properties <a name="Properties" id="Properties"></a>',id:"properties--37",level:4},{value:'<code>publishTask</code><sup>Required</sup> <a name="publishTask" id="projen.python.IPythonPackaging.property.publishTask"></a>',id:"publishtaskrequired--3",level:5},{value:'Enums <a name="Enums" id="Enums"></a>',id:"enums-",level:2},{value:'PyprojectTomlProjectDynamic <a name="PyprojectTomlProjectDynamic" id="projen.python.PyprojectTomlProjectDynamic"></a>',id:"pyprojecttomlprojectdynamic-",level:3},{value:'Members <a name="Members" id="Members"></a>',id:"members-",level:4},{value:'<code>VERSION</code> <a name="VERSION" id="projen.python.PyprojectTomlProjectDynamic.VERSION"></a>',id:"version-",level:5},{value:'<code>DESCRIPTION</code> <a name="DESCRIPTION" id="projen.python.PyprojectTomlProjectDynamic.DESCRIPTION"></a>',id:"description-",level:5},{value:'<code>README</code> <a name="README" id="projen.python.PyprojectTomlProjectDynamic.README"></a>',id:"readme-",level:5},{value:'<code>REQUIRES_HYPHEN_PYTHON</code> <a name="REQUIRES_HYPHEN_PYTHON" id="projen.python.PyprojectTomlProjectDynamic.REQUIRES_HYPHEN_PYTHON"></a>',id:"requires_hyphen_python-",level:5},{value:'<code>LICENSE</code> <a name="LICENSE" id="projen.python.PyprojectTomlProjectDynamic.LICENSE"></a>',id:"license-",level:5},{value:'<code>LICENSE_HYPHEN_FILES</code> <a name="LICENSE_HYPHEN_FILES" id="projen.python.PyprojectTomlProjectDynamic.LICENSE_HYPHEN_FILES"></a>',id:"license_hyphen_files-",level:5},{value:'<code>AUTHORS</code> <a name="AUTHORS" id="projen.python.PyprojectTomlProjectDynamic.AUTHORS"></a>',id:"authors-",level:5},{value:'<code>MAINTAINERS</code> <a name="MAINTAINERS" id="projen.python.PyprojectTomlProjectDynamic.MAINTAINERS"></a>',id:"maintainers-",level:5},{value:'<code>KEYWORDS</code> <a name="KEYWORDS" id="projen.python.PyprojectTomlProjectDynamic.KEYWORDS"></a>',id:"keywords-",level:5},{value:'<code>CLASSIFIERS</code> <a name="CLASSIFIERS" id="projen.python.PyprojectTomlProjectDynamic.CLASSIFIERS"></a>',id:"classifiers-",level:5},{value:'<code>URLS</code> <a name="URLS" id="projen.python.PyprojectTomlProjectDynamic.URLS"></a>',id:"urls-",level:5},{value:'<code>SCRIPTS</code> <a name="SCRIPTS" id="projen.python.PyprojectTomlProjectDynamic.SCRIPTS"></a>',id:"scripts-",level:5},{value:'<code>GUI_HYPHEN_SCRIPTS</code> <a name="GUI_HYPHEN_SCRIPTS" id="projen.python.PyprojectTomlProjectDynamic.GUI_HYPHEN_SCRIPTS"></a>',id:"gui_hyphen_scripts-",level:5},{value:'<code>ENTRY_HYPHEN_POINTS</code> <a name="ENTRY_HYPHEN_POINTS" id="projen.python.PyprojectTomlProjectDynamic.ENTRY_HYPHEN_POINTS"></a>',id:"entry_hyphen_points-",level:5},{value:'<code>DEPENDENCIES</code> <a name="DEPENDENCIES" id="projen.python.PyprojectTomlProjectDynamic.DEPENDENCIES"></a>',id:"dependencies-",level:5},{value:'<code>OPTIONAL_HYPHEN_DEPENDENCIES</code> <a name="OPTIONAL_HYPHEN_DEPENDENCIES" id="projen.python.PyprojectTomlProjectDynamic.OPTIONAL_HYPHEN_DEPENDENCIES"></a>',id:"optional_hyphen_dependencies-",level:5},{value:'<code>IMPORT_HYPHEN_NAMES</code> <a name="IMPORT_HYPHEN_NAMES" id="projen.python.PyprojectTomlProjectDynamic.IMPORT_HYPHEN_NAMES"></a>',id:"import_hyphen_names-",level:5},{value:'<code>IMPORT_HYPHEN_NAMESPACES</code> <a name="IMPORT_HYPHEN_NAMESPACES" id="projen.python.PyprojectTomlProjectDynamic.IMPORT_HYPHEN_NAMESPACES"></a>',id:"import_hyphen_namespaces-",level:5}];function p(e){let n={a:"a",blockquote:"blockquote",code:"code",del:"del",em:"em",email:"email",h1:"h1",h2:"h2",h3:"h3",h4:"h4",h5:"h5",h6:"h6",header:"header",hr:"hr",li:"li",ol:"ol",p:"p",pre:"pre",strong:"strong",sup:"sup",table:"table",tbody:"tbody",td:"td",th:"th",thead:"thead",tr:"tr",ul:"ul",...(0,t.R)(),...e.components};return(0,s.jsxs)(s.Fragment,{children:[(0,s.jsx)(n.header,{children:(0,s.jsxs)(n.h1,{id:"python-submodule-",children:[(0,s.jsx)(n.code,{children:"python"})," Submodule ",(0,s.jsx)(n.a,{name:"`python` Submodule",id:"projen.python"})]})}),"\n",(0,s.jsxs)(n.h2,{id:"constructs-",children:["Constructs ",(0,s.jsx)(n.a,{name:"Constructs",id:"Constructs"})]}),"\n",(0,s.jsxs)(n.h3,{id:"pip-",children:["Pip ",(0,s.jsx)(n.a,{name:"Pip",id:"projen.python.Pip"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implements:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps",children:"IPythonDeps"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manages dependencies using a requirements.txt file and the pip CLI tool."}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers-",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.Pip.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.Pip(project: Project, _options?: PipOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.Initializer.parameter._options",children:"_options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PipOptions",children:"PipOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired-",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Pip.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"_optionsoptional-",children:[(0,s.jsx)(n.code,{children:"_options"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"_options",id:"projen.python.Pip.Initializer.parameter._options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PipOptions",children:"PipOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods-",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.addDependency",children:"addDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a runtime dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.addDevDependency",children:"addDevDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a dev dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.installDependencies",children:"installDependencies"})})}),(0,s.jsx)(n.td,{children:"Installs dependencies (called during post-synthesis)."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring-",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.Pip.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with-",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.Pip.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired-",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.Pip.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation-",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.Pip.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired-",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Pip.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize-",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.Pip.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize-",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.Pip.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation-",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.Pip.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--1",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Pip.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize-",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.Pip.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h5,{id:"adddependency-",children:[(0,s.jsx)(n.code,{children:"addDependency"})," ",(0,s.jsx)(n.a,{name:"addDependency",id:"projen.python.Pip.addDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a runtime dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired-",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.Pip.addDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddevdependency-",children:[(0,s.jsx)(n.code,{children:"addDevDependency"})," ",(0,s.jsx)(n.a,{name:"addDevDependency",id:"projen.python.Pip.addDevDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDevDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a dev dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--1",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.Pip.addDevDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installdependencies-",children:[(0,s.jsx)(n.code,{children:"installDependencies"})," ",(0,s.jsx)(n.a,{name:"installDependencies",id:"projen.python.Pip.installDependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public installDependencies(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Installs dependencies (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions-",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct-",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.Pip.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Pip.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired-",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Pip.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent-",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.Pip.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Pip.isComponent(x: an
1y)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--1",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Pip.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties-",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pip.property.installCiTask",children:"installCiTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"A task that installs and updates dependencies."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired-",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.Pip.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--1",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Pip.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installcitaskrequired-",children:[(0,s.jsx)(n.code,{children:"installCiTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"installCiTask",id:"projen.python.Pip.property.installCiTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly installCiTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A task that installs and updates dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"poetry-",children:["Poetry ",(0,s.jsx)(n.a,{name:"Poetry",id:"projen.python.Poetry"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implements:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps",children:"IPythonDeps"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonEnv",children:"IPythonEnv"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonPackaging",children:"IPythonPackaging"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manage project dependencies, virtual environments, and packaging through the poetry CLI tool."}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--1",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.Poetry.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.Poetry(project: Project, options: PoetryOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions",children:"PoetryOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--2",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Poetry.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired-",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.Poetry.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions",children:"PoetryOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--1",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.addDependency",children:"addDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a runtime dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.addDevDependency",children:"addDevDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a dev dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.installDependencies",children:"installDependencies"})})}),(0,s.jsx)(n.td,{children:"Installs dependencies (called during post-synthesis)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.setupEnvironment",children:"setupEnvironment"})})}),(0,s.jsx)(n.td,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--1",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.Poetry.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--1",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.Poetry.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--1",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.Poetry.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--1",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.Poetry.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--2",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Poetry.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--1",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.Poetry.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--1",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.Poetry.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--1",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.Poetry.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--3",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Poetry.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--1",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.Poetry.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h5,{id:"adddependency--1",children:[(0,s.jsx)(n.code,{children:"addDependency"})," ",(0,s.jsx)(n.a,{name:"addDependency",id:"projen.python.Poetry.addDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a runtime dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--2",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.Poetry.addDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddevdependency--1",children:[(0,s.jsx)(n.code,{children:"addDevDependency"})," ",(0,s.jsx)(n.a,{name:"addDevDependency",id:"projen.python.Poetry.addDevDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDevDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a dev dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--3",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.Poetry.addDevDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installdependencies--1",children:[(0,s.jsx)(n.code,{children:"installDependencies"})," ",(0,s.jsx)(n.a,{name:"installDependencies",id:"projen.python.Poetry.installDependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public installDependencies(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Installs dependencies (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h5,{id:"setupenvironment-",children:[(0,s.jsx)(n.code,{children:"setupEnvironment"})," ",(0,s.jsx)(n.a,{name:"setupEnvironment",id:"projen.python.Poetry.setupEnvironment"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public setupEnvironment(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--1",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--1",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.Poetry.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Poetry.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.
1code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--2",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Poetry.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--1",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.Poetry.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Poetry.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--3",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Poetry.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--1",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.property.installCiTask",children:"installCiTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"Task for installing dependencies according to the existing lockfile."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.property.installTask",children:"installTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"Task for updating the lockfile and installing project dependencies."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.property.publishTask",children:"publishTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"Task for publishing the package to a package repository."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Poetry.property.publishTestTask",children:"publishTestTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"Task for publishing the package to the Test PyPI repository for testing purposes."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--1",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.Poetry.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--3",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Poetry.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installcitaskrequired--1",children:[(0,s.jsx)(n.code,{children:"installCiTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"installCiTask",id:"projen.python.Poetry.property.installCiTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly installCiTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Task for installing dependencies according to the existing lockfile."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installtaskrequired-",children:[(0,s.jsx)(n.code,{children:"installTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"installTask",id:"projen.python.Poetry.property.installTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly installTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Task for updating the lockfile and installing project dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"publishtaskrequired-",children:[(0,s.jsx)(n.code,{children:"publishTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"publishTask",id:"projen.python.Poetry.property.publishTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly publishTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Task for publishing the package to a package repository."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"publishtesttaskrequired-",children:[(0,s.jsx)(n.code,{children:"publishTestTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"publishTestTask",id:"projen.python.Poetry.property.publishTestTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly publishTestTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Task for publishing the package to the Test PyPI repository for testing purposes."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"poetrypyproject-",children:["PoetryPyproject ",(0,s.jsx)(n.a,{name:"PoetryPyproject",id:"projen.python.PoetryPyproject"})]}),"\n",(0,s.jsx)(n.p,{children:"Represents configuration of a pyproject.toml file for a Poetry project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://python-poetry.org/docs/pyproject/",children:"https://python-poetry.org/docs/pyproject/"})}),"\n"]}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--2",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.PoetryPyproject.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.PoetryPyproject(scope: IConstruct, options: PoetryPyprojectOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.Initializer.parameter.scope",children:"scope"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.IConstruct"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions",children:"PoetryPyprojectOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scoperequired-",children:[(0,s.jsx)(n.code,{children:"scope"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"scope",id:"projen.python.PoetryPyproject.Initializer.parameter.scope"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.IConstruct"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--1",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.PoetryPyproject.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions",children:"PoetryPyprojectOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--2",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--2",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.PoetryPyproject.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--2",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.PoetryPyproject.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--2",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.PoetryPyproject.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--2",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.PoetryPyproject.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--4",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PoetryPyproject.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--2",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.PoetryPyproject.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--2",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.PoetryPyproject.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--2",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.PoetryPyproject.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--5",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PoetryPyproject.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--2",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.PoetryPyproject.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--2",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--2",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.PoetryPyproject.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PoetryPyproject.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--4",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PoetryPyproject.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--2",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.PoetryPyproject.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PoetryPyproject.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--5",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PoetryPyproject.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--2",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyproject.property.file",children:"file"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile",children:"PyprojectTomlFile"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--2",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.PoetryPyproject.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{childre
1n:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--4",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.PoetryPyproject.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"filerequired-",children:[(0,s.jsx)(n.code,{children:"file"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"file",id:"projen.python.PoetryPyproject.property.file"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly file: PyprojectTomlFile;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile",children:"PyprojectTomlFile"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"projenrc-",children:["Projenrc ",(0,s.jsx)(n.a,{name:"Projenrc",id:"projen.python.Projenrc"})]}),"\n",(0,s.jsx)(n.p,{children:"Allows writing projenrc files in python."}),"\n",(0,s.jsxs)(n.p,{children:["This will install ",(0,s.jsx)(n.code,{children:"projen"})," as a Python dependency and will add a\n",(0,s.jsx)(n.code,{children:"synth"})," task which will run ",(0,s.jsx)(n.code,{children:".projenrc.py"}),"."]}),"\n",(0,s.jsxs)(n.h4,{id:"initializers--3",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.Projenrc.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.Projenrc(project: Project, options?: ProjenrcOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.ProjenrcOptions",children:"ProjenrcOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--5",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Projenrc.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsoptional-",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.Projenrc.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.ProjenrcOptions",children:"ProjenrcOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--3",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--3",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.Projenrc.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--3",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.Projenrc.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--3",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.Projenrc.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--3",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.Projenrc.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--6",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Projenrc.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--3",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.Projenrc.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--3",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.Projenrc.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--3",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.Projenrc.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--7",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Projenrc.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--3",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.Projenrc.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--3",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.of",children:"of"})})}),(0,s.jsxs)(n.td,{children:["Returns the ",(0,s.jsx)(n.code,{children:"Projenrc"})," instance associated with a project or ",(0,s.jsx)(n.code,{children:"undefined"})," if there is no Projenrc."]})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--3",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.Projenrc.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Projenrc.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--6",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Projenrc.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--3",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.Projenrc.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Projenrc.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--7",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Projenrc.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"of-",children:[(0,s.jsx)(n.code,{children:"of"})," ",(0,s.jsx)(n.a,{name:"of",id:"projen.python.Projenrc.of"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Projenrc.of(project: Project)\n"})}),"\n",(0,s.jsxs)(n
1.p,{children:["Returns the ",(0,s.jsx)(n.code,{children:"Projenrc"})," instance associated with a project or ",(0,s.jsx)(n.code,{children:"undefined"})," if there is no Projenrc."]}),"\n",(0,s.jsxs)(n.h6,{id:"projectrequired--6",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Projenrc.of.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--3",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.property.filePath",children:"filePath"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The name of the projenrc file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Projenrc.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--3",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.Projenrc.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--7",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Projenrc.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"filepathrequired-",children:[(0,s.jsx)(n.code,{children:"filePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"filePath",id:"projen.python.Projenrc.property.filePath"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly filePath: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The name of the projenrc file."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecrequired-",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.Projenrc.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pyprojecttomlfile-",children:["PyprojectTomlFile ",(0,s.jsx)(n.a,{name:"PyprojectTomlFile",id:"projen.python.PyprojectTomlFile"})]}),"\n",(0,s.jsx)(n.p,{children:"Represents configuration of a pyproject.toml file."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/guides/writing-pyproject-toml/",children:"https://packaging.python.org/en/latest/guides/writing-pyproject-toml/"})}),"\n"]}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--4",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.PyprojectTomlFile.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.PyprojectTomlFile(scope: IConstruct, config: PyprojectToml)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.Initializer.parameter.scope",children:"scope"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.IConstruct"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.Initializer.parameter.config",children:"config"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectToml",children:"PyprojectToml"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scoperequired--1",children:[(0,s.jsx)(n.code,{children:"scope"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"scope",id:"projen.python.PyprojectTomlFile.Initializer.parameter.scope"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.IConstruct"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"configrequired-",children:[(0,s.jsx)(n.code,{children:"config"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"config",id:"projen.python.PyprojectTomlFile.Initializer.parameter.config"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectToml",children:"PyprojectToml"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--4",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Writes the file to the project's output directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.diff",children:"diff"})})}),(0,s.jsx)(n.td,{children:"Returns a unified diff of the old and new file contents with context lines and hunk headers."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.addDeletionOverride",children:"addDeletionOverride"})})}),(0,s.jsxs)(n.td,{children:["Syntactic sugar for ",(0,s.jsx)(n.code,{children:"addOverride(path, undefined)"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.addOverride",children:"addOverride"})})}),(0,s.jsx)(n.td,{children:"Adds an override to the synthesized object file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.addToArray",children:"addToArray"})})}),(0,s.jsx)(n.td,{children:"Adds to an array in the synthesized object file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.patch",children:"patch"})})}),(0,s.jsxs)(n.td,{children:["Applies an RFC 6902 JSON-patch to the synthesized object file. See ",(0,s.jsx)(n.a,{href:"https://datatracker.ietf.org/doc/html/rfc6902",children:"https://datatracker.ietf.org/doc/html/rfc6902"})," for more information."]})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--4",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.PyprojectTomlFile.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--4",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.PyprojectTomlFile.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--4",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.PyprojectTomlFile.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--4",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.PyprojectTomlFile.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--8",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PyprojectTomlFile.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--4",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.PyprojectTomlFile.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--4",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.PyprojectTomlFile.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--4",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.PyprojectTomlFile.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--9",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PyprojectTomlFile.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--4",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.PyprojectTomlFile.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Writes the file to the project's output directory."}),"\n",(0,s.jsxs)(n.h5,{id:"diff-",children:[(0,s.jsx)(n.code,{children:"diff"})," ",(0,s.jsx)(n.a,{name:"diff",id:"projen.python.PyprojectTomlFile.diff"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public diff(colorize?: boolean, contextLines?: number): string[]\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a unified diff of the old and new file contents with context lines and hunk headers."}),"\n",(0,s.jsx)(n.p,{children:"Only available after synthesis."}),"\n",(0,s.jsx)(n.p,{children:"This is an expensive operation and should only be used on non time-critical\ncode paths, like debug output."}),"\n",(0,s.jsxs)(n.h6,{id:"colorizeoptional-",children:[(0,s.jsx)(n.code,{children:"colorize"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"colorize",id:"projen.python.PyprojectTomlFile.diff.parameter.colorize"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Whether to colorize the diff output."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h6,{id:"contextlinesoptional-",children:[(0,s.jsx)(n.code,{children:"contextLines"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"contextLines",id:"projen.python.PyprojectTomlFile.diff.parameter.contextLines"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," number"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Number of context lines around changes."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddeletionoverride-",children:[(0,s.jsx)(n.code,{children:"addDeletionOverride"})," ",(0,s.jsx)(n.a,{name:"addDeletionOverride",id:"projen.python.PyprojectTomlFile.addDeletionOverride"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDeletionOverride(path: string): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Syntactic sugar for ",(0,s.jsx)(n.code,{children:"addOverride(path, undefined)"}),"."]}),"\n",(0,s.jsxs)(n.h6,{id:"pathrequired-",children:[(0,s.jsx)(n.code,{children:"path"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"path",id:"projen.python.PyprojectTomlFile.addDeletionOverride.parameter.path"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The path of the value to delete."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"addoverride-",children:[(0,s.jsx)(n.code,{children:"addOverride"})," ",(0,s.jsx)(n.a,{name:"addOverride",id:"projen.python.PyprojectTomlFile.addOverride"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addOverride(path: string, value: any): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds an override to the synthesized object file."}),"\n",(0,s.jsx)(n.p,{children:"If the override is nested, separate each nested level using a dot (.)
1in the path parameter.\nIf there is an array as part of the nesting, specify the index in the path."}),"\n",(0,s.jsxs)(n.p,{children:["To include a literal ",(0,s.jsx)(n.code,{children:"."})," in the property name, prefix with a ",(0,s.jsx)(n.code,{children:"\\"}),". In most\nprogramming languages you will need to write this as ",(0,s.jsx)(n.code,{children:'"\\\\."'})," because the\n",(0,s.jsx)(n.code,{children:"\\"})," itself will need to be escaped."]}),"\n",(0,s.jsx)(n.p,{children:"For example,"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"project.tsconfig.file.addOverride('compilerOptions.alwaysStrict', true);\nproject.tsconfig.file.addOverride('compilerOptions.lib', ['dom', 'dom.iterable', 'esnext']);\n"})}),"\n",(0,s.jsx)(n.p,{children:"would add the overrides"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"compilerOptions": {\n "alwaysStrict": true,\n "lib": [\n "dom",\n "dom.iterable",\n "esnext"\n ]\n ...\n}\n...\n'})}),"\n",(0,s.jsxs)(n.h6,{id:"pathrequired--1",children:[(0,s.jsx)(n.code,{children:"path"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"path",id:"projen.python.PyprojectTomlFile.addOverride.parameter.path"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The path of the property, you can use dot notation to override values in complex types."}),"\n",(0,s.jsx)(n.p,{children:"Any intermediate keys\nwill be created as needed."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h6,{id:"valuerequired-",children:[(0,s.jsx)(n.code,{children:"value"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"value",id:"projen.python.PyprojectTomlFile.addOverride.parameter.value"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The value."}),"\n",(0,s.jsx)(n.p,{children:"Could be primitive or complex."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"addtoarray-",children:[(0,s.jsx)(n.code,{children:"addToArray"})," ",(0,s.jsx)(n.a,{name:"addToArray",id:"projen.python.PyprojectTomlFile.addToArray"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addToArray(path: string, values: ...any[]): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds to an array in the synthesized object file."}),"\n",(0,s.jsx)(n.p,{children:"If the array is nested, separate each nested level using a dot (.) in the path parameter.\nIf there is an array as part of the nesting, specify the index in the path."}),"\n",(0,s.jsxs)(n.p,{children:["To include a literal ",(0,s.jsx)(n.code,{children:"."})," in the property name, prefix with a ",(0,s.jsx)(n.code,{children:"\\"}),". In most\nprogramming languages you will need to write this as ",(0,s.jsx)(n.code,{children:'"\\\\."'})," because the\n",(0,s.jsx)(n.code,{children:"\\"})," itself will need to be escaped."]}),"\n",(0,s.jsx)(n.p,{children:"For example, with the following object file"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"compilerOptions": {\n "exclude": ["node_modules"],\n "lib": ["es2020"]\n ...\n}\n...\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"project.tsconfig.file.addToArray('compilerOptions.exclude', 'coverage');\nproject.tsconfig.file.addToArray('compilerOptions.lib', 'dom', 'dom.iterable', 'esnext');\n"})}),"\n",(0,s.jsx)(n.p,{children:"would result in the following object file"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"compilerOptions": {\n "exclude": ["node_modules", "coverage"],\n "lib": ["es2020", "dom", "dom.iterable", "esnext"]\n ...\n}\n...\n'})}),"\n",(0,s.jsxs)(n.h6,{id:"pathrequired--2",children:[(0,s.jsx)(n.code,{children:"path"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"path",id:"projen.python.PyprojectTomlFile.addToArray.parameter.path"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The path of the property, you can use dot notation to att to arrays in complex types."}),"\n",(0,s.jsx)(n.p,{children:"Any intermediate keys\nwill be created as needed."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h6,{id:"valuesrequired-",children:[(0,s.jsx)(n.code,{children:"values"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"values",id:"projen.python.PyprojectTomlFile.addToArray.parameter.values"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...any[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The values to add."}),"\n",(0,s.jsx)(n.p,{children:"Could be primitive or complex."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"patch-",children:[(0,s.jsx)(n.code,{children:"patch"})," ",(0,s.jsx)(n.a,{name:"patch",id:"projen.python.PyprojectTomlFile.patch"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public patch(patches: ...JsonPatch[]): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Applies an RFC 6902 JSON-patch to the synthesized object file. See ",(0,s.jsx)(n.a,{href:"https://datatracker.ietf.org/doc/html/rfc6902",children:"https://datatracker.ietf.org/doc/html/rfc6902"})," for more information."]}),"\n",(0,s.jsx)(n.p,{children:"For example, with the following object file"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"compilerOptions": {\n "exclude": ["node_modules"],\n "lib": ["es2020"]\n ...\n}\n...\n'})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'project.tsconfig.file.patch(JsonPatch.add("/compilerOptions/exclude/-", "coverage"));\nproject.tsconfig.file.patch(JsonPatch.replace("/compilerOptions/lib", ["dom", "dom.iterable", "esnext"]));\n'})}),"\n",(0,s.jsx)(n.p,{children:"would result in the following object file"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-json",children:'"compilerOptions": {\n "exclude": ["node_modules", "coverage"],\n "lib": ["dom", "dom.iterable", "esnext"]\n ...\n}\n...\n'})}),"\n",(0,s.jsxs)(n.h6,{id:"patchesrequired-",children:[(0,s.jsx)(n.code,{children:"patches"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"patches",id:"projen.python.PyprojectTomlFile.patch.parameter.patches"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...projen.JsonPatch[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The patch operations to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--4",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--4",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.PyprojectTomlFile.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PyprojectTomlFile.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--8",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PyprojectTomlFile.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--4",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.PyprojectTomlFile.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PyprojectTomlFile.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--9",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PyprojectTomlFile.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--4",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.absolutePath",children:"absolutePath"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The absolute path of this file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.committed",children:"committed"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file will be committed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.path",children:"path"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The file path, relative to the project's outdir."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.changed",children:"changed"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file has been changed during synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.marker",children:"marker"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The projen marker, used to identify files as projen-generated."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.executable",children:"executable"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file should be marked as executable."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.readonly",children:"readonly"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file should be read-only or read-write."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile.property.omitEmpty",children:"omitEmpty"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if empty objects and arrays are omitted from the output object."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--4",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.PyprojectTomlFile.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--8",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.PyprojectTomlFile.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"absolutepathrequired-",children:[(0,s.jsx)(n.code,{children:"absolutePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"absolutePath",id:"projen.python.PyprojectTomlFile.property.absolutePath"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly absolutePath: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The absolute path of this file."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"committedrequired-",children:[(0,s.jsx)(n.code,{children:"committed"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"committed",id:"projen.pyt
1hon.PyprojectTomlFile.property.committed"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly committed: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file will be committed."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pathrequired--3",children:[(0,s.jsx)(n.code,{children:"path"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"path",id:"projen.python.PyprojectTomlFile.property.path"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly path: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The file path, relative to the project's outdir."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"changedoptional-",children:[(0,s.jsx)(n.code,{children:"changed"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"changed",id:"projen.python.PyprojectTomlFile.property.changed"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly changed: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file has been changed during synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["This property is\nonly available in ",(0,s.jsx)(n.code,{children:"postSynthesize()"})," hooks. If this is ",(0,s.jsx)(n.code,{children:"undefined"}),", the\nfile has not been synthesized yet."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"markeroptional-",children:[(0,s.jsx)(n.code,{children:"marker"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"marker",id:"projen.python.PyprojectTomlFile.property.marker"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly marker: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The projen marker, used to identify files as projen-generated."}),"\n",(0,s.jsx)(n.p,{children:"Value is undefined if the project is being ejected."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"executablerequired-",children:[(0,s.jsx)(n.code,{children:"executable"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"executable",id:"projen.python.PyprojectTomlFile.property.executable"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly executable: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file should be marked as executable."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readonlyrequired-",children:[(0,s.jsx)(n.code,{children:"readonly"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"readonly",id:"projen.python.PyprojectTomlFile.property.readonly"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly readonly: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file should be read-only or read-write."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"omitemptyrequired-",children:[(0,s.jsx)(n.code,{children:"omitEmpty"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"omitEmpty",id:"projen.python.PyprojectTomlFile.property.omitEmpty"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly omitEmpty: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if empty objects and arrays are omitted from the output object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pytest-",children:["Pytest ",(0,s.jsx)(n.a,{name:"Pytest",id:"projen.python.Pytest"})]}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--5",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.Pytest.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.Pytest(project: Project, options?: PytestOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestOptions",children:"PytestOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--9",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Pytest.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsoptional--1",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.Pytest.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PytestOptions",children:"PytestOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--5",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--5",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.Pytest.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--5",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.Pytest.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--5",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.Pytest.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--5",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.Pytest.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--10",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Pytest.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--5",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.Pytest.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--5",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.Pytest.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--5",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.Pytest.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--11",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Pytest.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--5",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.Pytest.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--5",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--5",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.Pytest.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Pytest.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--10",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Pytest.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--5",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.Pytest.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Pytest.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--11",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Pytest.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--5",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest.property.testMatch",children:"testMatch"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--5",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.Pytest.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--10",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Pytest.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:
1"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"testmatchrequired-",children:[(0,s.jsx)(n.code,{children:"testMatch"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"testMatch",id:"projen.python.Pytest.property.testMatch"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly testMatch: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pytestsample-",children:["PytestSample ",(0,s.jsx)(n.a,{name:"PytestSample",id:"projen.python.PytestSample"})]}),"\n",(0,s.jsx)(n.p,{children:"Python test code sample."}),"\n",(0,s.jsxs)(n.h4,{id:"initializers--6",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.PytestSample.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.PytestSample(project: Project, options: PytestSampleOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSampleOptions",children:"PytestSampleOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--11",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.PytestSample.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--2",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.PytestSample.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PytestSampleOptions",children:"PytestSampleOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--6",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.
1synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--6",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.PytestSample.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--6",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.PytestSample.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--6",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.PytestSample.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--6",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.PytestSample.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--12",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PytestSample.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--6",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.PytestSample.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--6",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.PytestSample.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--6",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.PytestSample.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--13",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PytestSample.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--6",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.PytestSample.
1synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--6",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--6",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.PytestSample.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PytestSample.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--12",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PytestSample.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--6",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.PytestSample.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PytestSample.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--13",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PytestSample.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--6",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSample.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--6",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.PytestSample.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--12",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.PytestSample.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pythonproject-",children:["PythonProject ",(0,s.jsx)(n.a,{name:"PythonProject",id:"projen.python.PythonProject"})]}),"\n",(0,s.jsx)(n.p,{children:"Python project."}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--7",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.PythonProject.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.PythonProject(options: PythonProjectOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions",children:"PythonProjectOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--3",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.PythonProject.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions",children:"PythonProjectOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--7",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.addExcludeFromCleanup",children:"addExcludeFromCleanup"})})}),(0,s.jsx)(n.td,{children:"Exclude the matching files from pre-synth cleanup."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.addGitIgnore",children:"addGitIgnore"})})}),(0,s.jsx)(n.td,{children:"Adds a .gitignore pattern."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.addPackageIgnore",children:"addPackageIgnore"})})}),(0,s.jsx)(n.td,{children:"Exclude these files from the bundled package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.addTask",children:"addTask"})})}),(0,s.jsx)(n.td,{children:"Adds a new task to this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.annotateGenerated",children:"annotateGenerated"})})}),(0,s.jsx)(n.td,{children:"Marks the provided file(s) as being generated."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after all components are synthesized."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before all components are synthesized."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.removeTask",children:"removeTask"})})}),(0,s.jsx)(n.td,{children:"Removes a task from a project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.runTaskCommand",children:"runTaskCommand"})})}),(0,s.jsx)(n.td,{children:"Returns the shell command to execute in order to run a task."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.synth",children:"synth"})})}),(0,s.jsxs)(n.td,{children:["Synthesize all project files into ",(0,s.jsx)(n.code,{children:"outdir"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.tryFindFile",children:"tryFindFile"})})}),(0,s.jsx)(n.td,{children:"Finds a file at the specified relative path within this project and all its subprojects."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.tryFindObjectFile",children:"tryFindObjectFile"})})}),(0,s.jsx)(n.td,{children:"Finds an object file (like JsonFile, YamlFile, etc.) by n
1ame."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.tryRemoveFile",children:"tryRemoveFile"})})}),(0,s.jsx)(n.td,{children:"Finds a file at the specified relative path within this project and removes it."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.addDependency",children:"addDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a runtime dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.addDevDependency",children:"addDevDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a dev dependency."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--7",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.PythonProject.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--7",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.PythonProject.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--7",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.PythonProject.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"addexcludefromcleanup-",children:[(0,s.jsx)(n.code,{children:"addExcludeFromCleanup"})," ",(0,s.jsx)(n.a,{name:"addExcludeFromCleanup",id:"projen.python.PythonProject.addExcludeFromCleanup"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addExcludeFromCleanup(globs: ...string[]): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Exclude the matching files from pre-synth cleanup."}),"\n",(0,s.jsx)(n.p,{children:"Can be used when, for example, some\nsource files include the projen marker and we don't want them to be erased during synth."}),"\n",(0,s.jsxs)(n.h6,{id:"globsrequired-",children:[(0,s.jsx)(n.code,{children:"globs"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"globs",id:"projen.python.PythonProject.addExcludeFromCleanup.parameter.globs"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The glob patterns to match."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"addgitignore-",children:[(0,s.jsx)(n.code,{children:"addGitIgnore"})," ",(0,s.jsx)(n.a,{name:"addGitIgnore",id:"projen.python.PythonProject.addGitIgnore"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addGitIgnore(pattern: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a .gitignore pattern."}),"\n",(0,s.jsxs)(n.h6,{id:"patternrequired-",children:[(0,s.jsx)(n.code,{children:"pattern"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"pattern",id:"projen.python.PythonProject.addGitIgnore.parameter.pattern"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The glob pattern to ignore."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"addpackageignore-",children:[(0,s.jsx)(n.code,{children:"addPackageIgnore"})," ",(0,s.jsx)(n.a,{name:"addPackageIgnore",id:"projen.python.PythonProject.addPackageIgnore"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addPackageIgnore(_pattern: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Exclude these files from the bundled package."}),"\n",(0,s.jsxs)(n.p,{children:["Implemented by project types based on the\npackaging mechanism. For example, ",(0,s.jsx)(n.code,{children:"NodeProject"})," delegates this to ",(0,s.jsx)(n.code,{children:".npmignore"}),"."]}),"\n",(0,s.jsxs)(n.h6,{id:"_patternrequired-",children:[(0,s.jsx)(n.code,{children:"_pattern"}),(0,s.jsx)(n.sup,{children:"Required"}
1)," ",(0,s.jsx)(n.a,{name:"_pattern",id:"projen.python.PythonProject.addPackageIgnore.parameter._pattern"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The glob pattern to exclude."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"addtask-",children:[(0,s.jsx)(n.code,{children:"addTask"})," ",(0,s.jsx)(n.a,{name:"addTask",id:"projen.python.PythonProject.addTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addTask(name: string, props?: TaskOptions): Task\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a new task to this project."}),"\n",(0,s.jsx)(n.p,{children:"This will fail if the project already has\na task with this name."}),"\n",(0,s.jsxs)(n.h6,{id:"namerequired-",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.PythonProject.addTask.parameter.name"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The task name to add."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h6,{id:"propsoptional-",children:[(0,s.jsx)(n.code,{children:"props"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"props",id:"projen.python.PythonProject.addTask.parameter.props"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.TaskOptions"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Task properties."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"annotategenerated-",children:[(0,s.jsx)(n.code,{children:"annotateGenerated"})," ",(0,s.jsx)(n.a,{name:"annotateGenerated",id:"projen.python.PythonProject.annotateGenerated"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public annotateGenerated(glob: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Marks the provided file(s) as being generated."}),"\n",(0,s.jsx)(n.p,{children:"This is achieved using the\ngithub-linguist attributes. Generated files do not count against the\nrepository statistics and language breakdown."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://github.com/github/linguist/blob/master/docs/overrides.md",children:"https://github.com/github/linguist/blob/master/docs/overrides.md"})}),"\n"]}),"\n",(0,s.jsxs)(n.h6,{id:"globrequired-",children:[(0,s.jsx)(n.code,{children:"glob"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"glob",id:"projen.python.PythonProject.annotateGenerated.parameter.glob"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"the glob pattern to match (could be a file path)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--7",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.PythonProject.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after all components are synthesized."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--7",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.PythonProject.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before all components are synthesized."}),"\n",(0,s.jsxs)(n.h5,{id:"removetask-",children:[(0,s.jsx)(n.code,{children:"removeTask"})," ",(0,s.jsx)(n.a,{name:"removeTask",id:"projen.python.PythonProject.removeTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public removeTask(name: string): Task\n"})}),"\n",(0,s.jsx)(n.p,{children:"Removes a task from a project."}),"\n",(0,s.jsxs)(n.h6,{id:"namerequired--1",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.PythonProject.removeTask.parameter.name"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The name of the task to remove."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"runtaskcommand-",children:[(0,s.jsx)(n.code,{children:"runTaskCommand"})," ",(0,s.jsx)(n.a,{name:"runTaskCommand",id:"projen.python.PythonProject.runTaskCommand"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public runTaskCommand(task: Task): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns the shell command to execute in order to run a task."}),"\n",(0,s.jsxs)(n.p,{children:["By default, this is ",(0,s.jsx)(n.code,{children:"npx projen@<version> <task>"})]}),"\n",(0,s.jsxs)(n.h6,{id:"taskrequired-",children:[(0,s.jsx)(n.code,{children:"task"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"task",id:"projen.python.PythonProject.runTaskCommand.parameter.task"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The task for which the command is required."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synth-",children:[(0,s.jsx)(n.code,{children:"synth"})," ",(0,s.jsx)(n.a,{name:"synth",id:"projen.python.PythonProject.synth"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synth(): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Synthesize all project files into ",(0,s.jsx)(n.code,{children:"outdir"}),"."]}),"\n",(0,s.jsxs)(n.ol,{children:["\n",(0,s.jsx)(n.li,{children:'Call "this.preSynthesize()"'}),"\n",(0,s.jsx)(n.li,{children:"Delete all generated files"}),"\n",(0,s.jsx)(n.li,{children:"Synthesize all subprojects"}),"\n",(0,s.jsx)(n.li,{children:"Synthesize all components of this project"}),"\n",(0,s.jsx)(n.li,{children:'Call "projectCreation()" for all c
1omponents, only if the project is being created for the first time'}),"\n",(0,s.jsx)(n.li,{children:'Call "postSynthesize()" for all components of this project'}),"\n",(0,s.jsx)(n.li,{children:'Call "this.postSynthesize()"'}),"\n",(0,s.jsx)(n.li,{children:'Call "postProjectCreation()" for all components, only if the project is being created for the first time'}),"\n"]}),"\n",(0,s.jsxs)(n.h5,{id:"tryfindfile-",children:[(0,s.jsx)(n.code,{children:"tryFindFile"})," ",(0,s.jsx)(n.a,{name:"tryFindFile",id:"projen.python.PythonProject.tryFindFile"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public tryFindFile(filePath: string): FileBase\n"})}),"\n",(0,s.jsx)(n.p,{children:"Finds a file at the specified relative path within this project and all its subprojects."}),"\n",(0,s.jsxs)(n.h6,{id:"filepathrequired--1",children:[(0,s.jsx)(n.code,{children:"filePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"filePath",id:"projen.python.PythonProject.tryFindFile.parameter.filePath"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The file path."}),"\n",(0,s.jsxs)(n.p,{children:["If this path is relative, it will be resolved\nfrom the root of ",(0,s.jsx)(n.em,{children:"this"})," project."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tryfindobjectfile-",children:[(0,s.jsx)(n.code,{children:"tryFindObjectFile"})," ",(0,s.jsx)(n.a,{name:"tryFindObjectFile",id:"projen.python.PythonProject.tryFindObjectFile"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public tryFindObjectFile(filePath: string): ObjectFile\n"})}),"\n",(0,s.jsx)(n.p,{children:"Finds an object file (like JsonFile, YamlFile, etc.) by name."}),"\n",(0,s.jsxs)(n.h6,{id:"filepathrequired--2",children:[(0,s.jsx)(n.code,{children:"filePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"filePath",id:"projen.python.PythonProject.tryFindObjectFile.parameter.filePath"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The file path."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tryremovefile-",children:[(0,s.jsx)(n.code,{children:"tryRemoveFile"})," ",(0,s.jsx)(n.a,{name:"tryRemoveFile",id:"projen.python.PythonProject.tryRemoveFile"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public tryRemoveFile(filePath: string): FileBase\n"})}),"\n",(0,s.jsx)(n.p,{children:"Finds a file at the specified relative path within this project and removes it."}),"\n",(0,s.jsxs)(n.h6,{id:"filepathrequired--3",children:[(0,s.jsx)(n.code,{children:"filePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"filePath",id:"projen.python.PythonProject.tryRemoveFile.parameter.filePath"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The file path."}),"\n",(0,s.jsxs)(n.p,{children:["If this path is relative, it will be\nresolved from the root of ",(0,s.jsx)(n.em,{children:"this"})," project."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddependency--2",children:[(0,s.jsx)(n.code,{children:"addDependency"})," ",(0,s.jsx)(n.a,{name:"addDependency",id:"projen.python.PythonProject.addDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a runtime dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--4",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.PythonProject.addDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddevdependency--2",children:[(0,s.jsx)(n.code,{children:"addDevDependency"})," ",(0,s.jsx)(n.a,{name:"addDevDependency",id:"projen.python.PythonProject.addDevDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDevDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a dev dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--5",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.PythonProject.addDevDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--7",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.isProject",children:"isProject"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.of",children:"of"})})}),(0,s.jsx)(n.td,{children:"Find the closest ancestor project for given construct."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--7",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.PythonProject.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PythonProject.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--14",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PythonProject.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isproject-",children:[(0,s.jsx)(n.code,{children:"isProject"})," ",(0,s.jsx)(n.a,{name:"isProject",id:"projen.python.PythonProject.isProject"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PythonProject.isProject(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a project."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--15",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PythonProject.isProject.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"of--1",children:[(0,s.jsx)(n.code,{children:"of"})," ",(0,s.jsx)(n.a,{name:"of",id:"projen.python.PythonProject.of"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PythonProject.of(construct: IConstruct)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Find the closest ancestor project for given construct."}),"\n",(0,s.jsx)(n.p,{children:"When given a project, this it the project itself."}),"\n",(0,s.jsxs)(n.h6,{id:"constructrequired-",children:[(0,s.jsx)(n.code,{children:"construct"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"construct",id:"projen.python.PythonProject.of.parameter.construct"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.IConstruct"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--7",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.buildTask",children:"buildTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.commitGenerated",children:"commitGenerated"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Whether to commit the managed files by default."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.compileTask",children:"compileTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.components",children:"components"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Component[]"})}),(0,s.jsx)(n.td,{children:"Returns all the components within this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.deps",children:"deps"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Dependencies"})}),(0,s.jsx)(n.td,{children:"Project dependencies."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.ejected",children:"ejected"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Whether or not the project is being ejected."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.files",children:"files"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.FileBase[]"})}),(0,s.jsx)(n.td,{children:"All files in this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.gitattributes",children:"gitattributes"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.GitAttributesFile"})}),(0,s.jsx)(n.td,{children:"The .gitattributes file for this repository."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.gitignore",children:"gitignore"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.IgnoreFile"})}),(0,s.jsx)(n.td,{children:".gitignore."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.logger",children:"logger"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Logger"})}),(0,s.jsx)(n.td,{children:"Logging utilities."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.name",children:"name"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Project name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.outdir",children:"outdir"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Absolute output directory of this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.packageTask",children:"packageTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.postCompileTask",children:"postCompileTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.preCompileTask",children:"preCompileTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.projectBuild",children:"projectBuild"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.ProjectBuild"})}),(0,s.jsx)(n.td,{children:"Manages the build process of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.projenCommand",childre
1n:"projenCommand"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The command to use in order to run the projen CLI."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.root",children:"root"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:"The root project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.subprojects",children:"subprojects"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project[]"})}),(0,s.jsx)(n.td,{children:"Returns all the subprojects within this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.tasks",children:"tasks"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Tasks"})}),(0,s.jsx)(n.td,{children:"Project tasks."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.testTask",children:"testTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.defaultTask",children:"defaultTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:'This is the "default" task, the one that executes "projen".'})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.initProject",children:"initProject"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.InitProject"})}),(0,s.jsxs)(n.td,{children:["The options used when this project is bootstrapped via ",(0,s.jsx)(n.code,{children:"projen new"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.parent",children:"parent"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:"A parent project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.autoApprove",children:"autoApprove"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.github.AutoApprove"})}),(0,s.jsx)(n.td,{children:"Auto approve set up for this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.devContainer",children:"devContainer"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.vscode.DevContainer"})}),(0,s.jsx)(n.td,{children:"Access for .devcontainer.json (used for GitHub Codespaces)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.github",children:"github"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.github.GitHub"})}),(0,s.jsx)(n.td,{children:"Access all github components."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.gitpod",children:"gitpod"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Gitpod"})}),(0,s.jsx)(n.td,{children:"Access for Gitpod."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.vscode",children:"vscode"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.vscode.VsCode"})}),(0,s.jsx)(n.td,{children:"Access all VSCode components."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.depsManager",children:"depsManager"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps",children:"IPythonDeps"})})}),(0,s.jsx)(n.td,{children:"API for managing dependencies."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.envManager",children:"envManager"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonEnv",children:"IPythonEnv"})})}),(0,s.jsx)(n.td,{children:"API for managing the Python runtime environment."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.moduleName",children:"moduleName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Python module name (the project name, with any hyphens or periods replaced with underscores)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.sampleTestdir",children:"sampleTestdir"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Directory where sample tests are located."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Version of the package for distribution (should follow semver)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.packagingManager",children:"packagingManager"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonPackaging",children:"IPythonPackaging"})})}),(0,s.jsx)(n.td,{children:"API for managing packaging the project as a library."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.pytest",children:"pytest"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Pytest",children:"Pytest"})})}),(0,s.jsx)(n.td,{children:"Pytest component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--7",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.PythonProject.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"buildtaskrequired-",children:[(0,s.jsx)(n.code,{children:"buildTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"buildTask",id:"projen.python.PythonProject.property.buildTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly buildTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"commitgeneratedrequired-",children:[(0,s.jsx)(n.code,{children:"commitGenerated"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"commitGenerated",id:"projen.python.PythonProject.property.commitGenerated"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly commitGenerated: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Whether to commit the managed files by default."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"compiletaskrequired-",children:[(0,s.jsx)(n.code,{children:"compileTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"compileTask",id:"projen.python.PythonProject.property.compileTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly compileTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"componentsrequired-",children:[(0,s.jsx)(n.code,{children:"components"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"components",id:"projen.python.PythonProject.property.components"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly components: Component[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Component[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Returns all the components within this project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"depsrequired-",children:[(0,s.jsx)(n.code,{children:"deps"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"deps",id:"projen.python.PythonProject.property.deps"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly deps: Dependencies;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Dependencies"]}
1),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Project dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"ejectedrequired-",children:[(0,s.jsx)(n.code,{children:"ejected"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"ejected",id:"projen.python.PythonProject.property.ejected"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly ejected: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Whether or not the project is being ejected."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"filesrequired-",children:[(0,s.jsx)(n.code,{children:"files"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"files",id:"projen.python.PythonProject.property.files"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly files: FileBase[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.FileBase[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"All files in this project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"gitattributesrequired-",children:[(0,s.jsx)(n.code,{children:"gitattributes"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"gitattributes",id:"projen.python.PythonProject.property.gitattributes"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly gitattributes: GitAttributesFile;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.GitAttributesFile"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The .gitattributes file for this repository."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"gitignorerequired-",children:[(0,s.jsx)(n.code,{children:"gitignore"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"gitignore",id:"projen.python.PythonProject.property.gitignore"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly gitignore: IgnoreFile;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.IgnoreFile"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:".gitignore."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"loggerrequired-",children:[(0,s.jsx)(n.code,{children:"logger"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"logger",id:"projen.python.PythonProject.property.logger"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly logger: Logger;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Logger"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Logging utilities."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"namerequired--2",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.PythonProject.property.name"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly name: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Project name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"outdirrequired-",children:[(0,s.jsx)(n.code,{children:"outdir"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"outdir",id:"projen.python.PythonProject.property.outdir"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly outdir: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Absolute output directory of this project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagetaskrequired-",children:[(0,s.jsx)(n.code,{children:"packageTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"packageTask",id:"projen.python.PythonProject.property.packageTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postcompiletaskrequired-",children:[(0,s.jsx)(n.code,{children:"postCompileTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"postCompileTask",id:"projen.python.PythonProject.property.postCompileTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly postCompileTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"precompiletaskrequired-",children:[(0,s.jsx)(n.code,{children:"preCompileTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"preCompileTask",id:"projen.python.PythonProject.property.preCompileTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly preCompileTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectbuildrequired-",children:[(0,s.jsx)(n.code,{children:"projectBuild"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"projectBuild",id:"projen.python.PythonProject.property.projectBuild"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projectBuild: ProjectBuild;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.ProjectBuild"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manages the build process of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projencommandrequired-",children:[(0,s.jsx)(n.code,{children:"projenCommand"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"projenCommand",id:"projen.python.PythonProject.property.projenCommand"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenCommand: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The command to use in order to run the projen CLI."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"rootrequired-",children:[(0,s.jsx)(n.code,{children:"root"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"root",id:"projen.python.PythonProject.property.root"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly root: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The root project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"subprojectsrequired-",children:[(0,s.jsx)(n.code,{children:"subprojects"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"subprojects",id:"projen.python.PythonProject.property.subprojects"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly subprojects: Project[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Returns all the subprojects within this project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tasksrequired-",children:[(0,s.jsx)(n.code,{children:"tasks"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"tasks",id:"projen.python.PythonProject.property.tasks"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly tasks: Tasks;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Tasks"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Project tasks."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"testtaskrequired-",children:[(0,s.jsx)(n.code,{children:"testTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"testTask",id:"projen.python.PythonProject.property.testTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly testTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"defaulttaskoptional-",children:[(0,s.jsx)(n.code,{children:"defaultTask"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"defaultTask",id:"projen.python.PythonProject.property.defaultTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly defaultTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:'This is the "default" task, the one that executes "projen".'}
1),"\n",(0,s.jsx)(n.p,{children:"Undefined if\nthe project is being ejected."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"initprojectoptional-",children:[(0,s.jsx)(n.del,{children:(0,s.jsx)(n.code,{children:"initProject"})}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PythonProject.property.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Deprecated:"})," use the ",(0,s.jsx)(n.code,{children:"initProject"})," argument passed to ",(0,s.jsx)(n.code,{children:"Component.projectCreation()"})," instead."]}),"\n"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly initProject: InitProject;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The options used when this project is bootstrapped via ",(0,s.jsx)(n.code,{children:"projen new"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"It\nincludes the original set of options passed to the CLI and also the JSII\nFQN of the project type."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"parentoptional-",children:[(0,s.jsx)(n.code,{children:"parent"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"parent",id:"projen.python.PythonProject.property.parent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly parent: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A parent project."}),"\n",(0,s.jsx)(n.p,{children:"If undefined, this is the root project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"autoapproveoptional-",children:[(0,s.jsx)(n.code,{children:"autoApprove"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"autoApprove",id:"projen.python.PythonProject.property.autoApprove"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly autoApprove: AutoApprove;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.github.AutoApprove"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Auto approve set up for this project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"devcontaineroptional-",children:[(0,s.jsx)(n.code,{children:"devContainer"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"devContainer",id:"projen.python.PythonProject.property.devContainer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly devContainer: DevContainer;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.vscode.DevContainer"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Access for .devcontainer.json (used for GitHub Codespaces)."}),"\n",(0,s.jsxs)(n.p,{children:["This will be ",(0,s.jsx)(n.code,{children:"undefined"})," if devContainer boolean is false"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"githuboptional-",children:[(0,s.jsx)(n.code,{children:"github"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"github",id:"projen.python.PythonProject.property.github"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly github: GitHub;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.github.GitHub"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Access all github components."}),"\n",(0,s.jsxs)(n.p,{children:["This will be ",(0,s.jsx)(n.code,{children:"undefined"})," for subprojects."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"gitpodoptional-",children:[(0,s.jsx)(n.code,{children:"gitpod"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"gitpod",id:"projen.python.PythonProject.property.gitpod"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly gitpod: Gitpod;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Gitpod"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Access for Gitpod."}),"\n",(0,s.jsxs)(n.p,{children:["This will be ",(0,s.jsx)(n.code,{children:"undefined"})," if gitpod boolean is false"]}
1),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"vscodeoptional-",children:[(0,s.jsx)(n.code,{children:"vscode"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"vscode",id:"projen.python.PythonProject.property.vscode"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly vscode: VsCode;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.vscode.VsCode"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Access all VSCode components."}),"\n",(0,s.jsxs)(n.p,{children:["This will be ",(0,s.jsx)(n.code,{children:"undefined"})," for subprojects."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"depsmanagerrequired-",children:[(0,s.jsx)(n.code,{children:"depsManager"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"depsManager",id:"projen.python.PythonProject.property.depsManager"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly depsManager: IPythonDeps;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps",children:"IPythonDeps"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"API for managing dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"envmanagerrequired-",children:[(0,s.jsx)(n.code,{children:"envManager"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"envManager",id:"projen.python.PythonProject.property.envManager"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly envManager: IPythonEnv;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonEnv",children:"IPythonEnv"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"API for managing the Python runtime environment."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"modulenamerequired-",children:[(0,s.jsx)(n.code,{children:"moduleName"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"moduleName",id:"projen.python.PythonProject.property.moduleName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly moduleName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Python module name (the project name, with any hyphens or periods replaced with underscores)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"sampletestdirrequired-",children:[(0,s.jsx)(n.code,{children:"sampleTestdir"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"sampleTestdir",id:"projen.python.PythonProject.property.sampleTestdir"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly sampleTestdir: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "tests"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Directory where sample tests are located."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionrequired-",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PythonProject.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Version of the package for distribution (should follow semver)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagingmanageroptional-",children:[(0,s.jsx)(n.code,{children:"packagingManager"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packagingManager",id:"projen.python.PythonProject.property.packagingManager"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packagingManager: IPythonPackaging;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonPackaging",children:"IPythonPackaging"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"API for managing packaging the project as a library."}),"\n",(0,s.jsxs)(n.p,{children:["Only applies when the ",(0,s.jsx)(n.code,{children:"projectType"})," is LIB."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pytestoptional-",children:[(0,s.jsx)(n.code,{children:"pytest"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pytest",id:"projen.python.PythonProject.property.pytest"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pytest: Pytest;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.Pytest",children:"Pytest"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Pytest component."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"constants-",children:["Constants ",(0,s.jsx)(n.a,{name:"Constants",id:"Constants"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProject.property.DEFAULT_TASK",children:"DEFAULT_TASK"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["The name of the default task (the task executed when ",(0,s.jsx)(n.code,{children:"projen"})," is run without arguments)."]})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"default_taskrequired-",children:[(0,s.jsx)(n.code,{children:"DEFAULT_TASK"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"DEFAULT_TASK",id:"projen.python.PythonProject.property.DEFAULT_TASK"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly DEFAULT_TASK: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The name of the default task (the task executed when ",(0,s.jsx)(n.code,{children:"projen"})," is run without arguments)."]}),"\n",(0,s.jsx)(n.p,{children:"Normally\nthis task should synthesize the project files."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pythonsample-",children:["PythonSample ",(0,s.jsx)(n.a,{name:"PythonSample",id:"projen.python.PythonSample"})]}),"\n",(0,s.jsx)(n.p,{children:"Python code sample."}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--8",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.PythonSample.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.PythonSample(project: Project, options: PythonSampleOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSampleOptions",children:"PythonSampleOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--13",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.PythonSample.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--4",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.PythonSample.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PythonSampleOptions",children:"PythonSampleOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--8",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--8",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.PythonSample.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--8",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.PythonSample.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--8",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.PythonSample.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--7",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.PythonSample.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--14",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PythonSample.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--8",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.PythonSample.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--8",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.PythonSample.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--7",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.PythonSample.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--15",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.PythonSample.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--7",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.PythonSample.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--8",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--8",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.PythonSample.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PythonSample.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--16",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PythonSample.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--7",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.PythonSample.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.PythonSample.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--17",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.PythonSample.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--8",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSample.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--8",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.PythonSample.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--14",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.PythonSample.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0
1,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"requirementsfile-",children:["RequirementsFile ",(0,s.jsx)(n.a,{name:"RequirementsFile",id:"projen.python.RequirementsFile"})]}),"\n",(0,s.jsx)(n.p,{children:"Specifies a list of packages to be installed using pip."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format",children:"https://pip.pypa.io/en/stable/reference/pip_install/#requirements-file-format"})}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"initializers--9",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.RequirementsFile.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.RequirementsFile(project: Project, filePath: string, options: RequirementsFileOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.Initializer.parameter.filePath",children:"filePath"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFileOptions",children:"RequirementsFileOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--15",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.RequirementsFile.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"filepathrequired--4",children:[(0,s.jsx)(n.code,{children:"filePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"filePath",id:"projen.python.RequirementsFile.Initializer.parameter.filePath"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--5",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.RequirementsFile.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFileOptions",children:"RequirementsFileOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--9",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.
1synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Writes the file to the project's output directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.diff",children:"diff"})})}),(0,s.jsx)(n.td,{children:"Returns a unified diff of the old and new file contents with context lines and hunk headers."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.addPackages",children:"addPackages"})})}),(0,s.jsx)(n.td,{children:"Adds the specified packages provided in semver format."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--9",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.RequirementsFile.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--9",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.RequirementsFile.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--9",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.RequirementsFile.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--8",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.RequirementsFile.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--16",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.RequirementsFile.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--9",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.RequirementsFile.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--9",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.RequirementsFile.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--8",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.RequirementsFile.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--17",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.RequirementsFile.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--8",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.RequirementsFile.
1synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Writes the file to the project's output directory."}),"\n",(0,s.jsxs)(n.h5,{id:"diff--1",children:[(0,s.jsx)(n.code,{children:"diff"})," ",(0,s.jsx)(n.a,{name:"diff",id:"projen.python.RequirementsFile.diff"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public diff(colorize?: boolean, contextLines?: number): string[]\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a unified diff of the old and new file contents with context lines and hunk headers."}),"\n",(0,s.jsx)(n.p,{children:"Only available after synthesis."}),"\n",(0,s.jsx)(n.p,{children:"This is an expensive operation and should only be used on non time-critical\ncode paths, like debug output."}),"\n",(0,s.jsxs)(n.h6,{id:"colorizeoptional--1",children:[(0,s.jsx)(n.code,{children:"colorize"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"colorize",id:"projen.python.RequirementsFile.diff.parameter.colorize"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Whether to colorize the diff output."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h6,{id:"contextlinesoptional--1",children:[(0,s.jsx)(n.code,{children:"contextLines"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"contextLines",id:"projen.python.RequirementsFile.diff.parameter.contextLines"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," number"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Number of context lines around changes."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"addpackages-",children:[(0,s.jsx)(n.code,{children:"addPackages"})," ",(0,s.jsx)(n.a,{name:"addPackages",id:"projen.python.RequirementsFile.addPackages"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addPackages(packages: ...string[]): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds the specified packages provided in semver format."}),"\n",(0,s.jsxs)(n.p,{children:["Comment lines (start with ",(0,s.jsx)(n.code,{children:"#"}),") are ignored."]}),"\n",(0,s.jsxs)(n.h6,{id:"packagesrequired-",children:[(0,s.jsx)(n.code,{children:"packages"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"packages",id:"projen.python.RequirementsFile.addPackages.parameter.packages"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...string[]"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Package version in format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--9",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--9",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.RequirementsFile.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.RequirementsFile.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--18",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.RequirementsFile.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--8",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.RequirementsFile.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.RequirementsFile.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--19",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.RequirementsFile.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--9",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.absolutePath",children:"absolutePath"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The absolute path of this file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.committed",children:"committed"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file will be committed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.path",children:"path"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The file path, relative to the project's outdir."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.changed",children:"changed"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file has been changed during synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.marker",children:"marker"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The projen marker, used to identify files as projen-generated."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.executable",children:"executable"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file should be marked as executable."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFile.property.readonly",children:"readonly"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file should be read-only or read-write."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--9",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.RequirementsFile.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--16",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.RequirementsFile.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"absolutepathrequired--1",children:[(0,s.jsx)(n.code,{children:"absolutePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"absolutePath",id:"projen.python.RequirementsFile.property.absolutePath"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly absolutePath: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The absolute path of this file."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"committedrequired--1",children:[(0,s.jsx)(n.code,{children:"committed"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"committed",id:"projen.python.RequirementsFile.property.committed"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly committed: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file will be committed."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pathrequired--4",children:[(0,s.jsx)(n.code,{children:"path"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"path",id:"projen.python.RequirementsFile.property.path"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly path: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The file path, relative to the project's outdir."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"changedoptional--1",children:[(0,s.jsx)(n.code,{children:"changed"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"changed",id:"projen.python.RequirementsFile.property.changed"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly changed: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file has been changed during synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["This property is\nonly available in ",(0,s.jsx)(n.code,{children:"postSynthesize()"})," hooks. If this is ",(0,s.jsx)(n.code,{children:"undefined"}),", the\nfile has not been synthesized yet."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"markeroptional--1",children:[(0,s.jsx)(n.code,{children:"marker"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"marker",id:"projen.python.RequirementsFile.property.marker"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly marker: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The projen marker, used to identify files as projen-generated."}),"\n",(0,s.jsx)(n.p,{children:"Value is undefined if the project is being ejected."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"executablerequired--1",children:[(0,s.jsx)(n.code,{children:"executable"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"executable",id:"projen.python.RequirementsFile.property.executable"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly executable: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file should be marked as executable."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readonlyrequired--1",children:[(0,s.jsx)(n.code,{children:"readonly"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"readonly",id:"projen.python.RequirementsFile.property.readonly"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly readonly: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file should be read-only or read-write."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"setuppy-",children:["SetupPy ",(0,s.jsx)(n.a,{name:"SetupPy",id:"projen.python.SetupPy"})]}),"\n",(0,s.jsx)(n.p,{children:"Python packaging script where package metadata can be placed."}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--10",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.SetupPy.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.SetupPy(project: Project, options: SetupPyOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions",children:"SetupPyOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--17",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.SetupPy.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--6",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.SetupPy.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions",children:"SetupPyOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--10",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Writes the file to the project's output directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.diff",children:"diff"})})}),(0,s.jsx)(n.td,{children:"Returns a unified diff of the old and new file contents with context lines and hunk headers."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--10",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.SetupPy.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--10",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.SetupPy.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--10",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.SetupPy.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--9",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.SetupPy.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--18",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.SetupPy.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--10",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.SetupPy.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--10",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.SetupPy.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--9",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.SetupPy.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--19",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.SetupPy.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--9",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.SetupPy.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Writes the file to the project's output directory."}),"\n",(0,s.jsxs)(n.h5,{id:"diff--2",children:[(0,s.jsx)(n.code,{children:"diff"})," ",(0,s.jsx)(n.a,{name:"diff",id:"projen.python.SetupPy.diff"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public diff(colorize?: boolean, contextLines?: number): string[]\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a unified diff of the old and new file contents with context lines and hunk headers."}),"\n",(0,s.jsx)(n.p,{children:"Only available after synthesis."}),"\n",(0,s.jsx)(n.p,{children:"This is an expensive operation and should only be used on non time-critical\ncode paths, like debug output."}),"\n",(0,s.jsxs)(n.h6,{id:"colorizeoptional--2",children:[(0,s.jsx)(n.code,{children:"colorize"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"colorize",id:"projen.python.SetupPy.diff.parameter.colorize"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Whether to colorize the diff output."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h6,{id:"contextlinesoptional--2",children:[(0,s.jsx)(n.code,{children:"contextLines"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"contextLines",id:"projen.python.SetupPy.diff.parameter.contextLines"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," number"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Number of context lines around changes."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--10",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--10",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.SetupPy.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.SetupPy.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--20",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.SetupPy.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--9",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.SetupPy.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.SetupPy.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--21",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.SetupPy.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--10",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx
1)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.absolutePath",children:"absolutePath"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The absolute path of this file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.committed",children:"committed"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file will be committed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.path",children:"path"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The file path, relative to the project's outdir."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.changed",children:"changed"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file has been changed during synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.marker",children:"marker"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The projen marker, used to identify files as projen-generated."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.executable",children:"executable"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file should be marked as executable."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPy.property.readonly",children:"readonly"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Indicates if the file should be read-only or read-write."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--10",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.SetupPy.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--18",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.SetupPy.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"absolutepathrequired--2",children:[(0,s.jsx)(n.code,{children:"absolutePath"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"absolutePath",id:"projen.python.SetupPy.property.absolutePath"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly absolutePath: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The absolute path of this file."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"committedrequired--2",children:[(0,s.jsx)(n.code,{children:"committed"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"committed",id:"projen.python.SetupPy.property.committed"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly committed: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file will be committed."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pathrequired--5",children:[(0,s.jsx)(n.code,{children:"path"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"path",id:"projen.python.SetupPy.property.path"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly path: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The file path, relative to the project's outdir."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"changedoptional--2",children:[(0,s.jsx)(n.code,{children:"changed"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"changed",id:"projen.python.SetupPy.property.changed"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly changed: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file has been changed during synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["This property is\nonly available in ",(0,s.jsx)(n.code,{children:"postSynthesize()"})," hooks. If this is ",(0,s.jsx)(n.code,{children:"undefined"}),", the\nfile has not been synthesized yet."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"markeroptional--2",children:[(0,s.jsx)(n.code,{children:"marker"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"marker",id:"projen.python.SetupPy.property.marker"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly marker: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The projen marker, used to identify files as projen-generated."}),"\n",(0,s.jsx)(n.p,{children:"Value is undefined if the project is being ejected."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"executablerequired--2",children:[(0,s.jsx)(n.code,{children:"executable"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"executable",id:"projen.python.SetupPy.property.executable"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly executable: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file should be marked as executable."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readonlyrequired--2",children:[(0,s.jsx)(n.code,{children:"readonly"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"readonly",id:"projen.python.SetupPy.property.readonly"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly readonly: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Indicates if the file should be read-only or read-write."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"setuptools-",children:["Setuptools ",(0,s.jsx)(n.a,{name:"Setuptools",id:"projen.python.Setuptools"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implements:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonPackaging",children:"IPythonPackaging"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manages packaging through setuptools with a setup.py script."}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--11",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.Setuptools.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.Setuptools(project: Project, options: SetuptoolsOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions",children:"SetuptoolsOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--19",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Setuptools.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--7",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.Setuptools.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions",children:"SetuptoolsOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--11",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--11",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.Setuptools.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--11",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.Setuptools.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--11",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.Setuptools.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--10",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.Setuptools.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--20",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Setuptools.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--11",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.Setuptools.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--11",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.Setuptools.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--10",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.Setuptools.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--21",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Setuptools.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--10",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.Setuptools.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--11",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--11",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.Setuptools.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Setuptools.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--22",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Setuptools.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--10",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.Setuptools.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Setuptools.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--23",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Setuptools.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--11",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.property.publishTask",children:"publishTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"A task that uploads the package to a package repository."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Setuptools.property.publishTestTask",children:"publishTestTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"A task that uploads the package to the Test PyPI repository."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--11",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.Setuptools.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript"
1,children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--20",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Setuptools.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"publishtaskrequired--1",children:[(0,s.jsx)(n.code,{children:"publishTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"publishTask",id:"projen.python.Setuptools.property.publishTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly publishTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A task that uploads the package to a package repository."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"publishtesttaskrequired--1",children:[(0,s.jsx)(n.code,{children:"publishTestTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"publishTestTask",id:"projen.python.Setuptools.property.publishTestTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly publishTestTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A task that uploads the package to the Test PyPI repository."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"uv-",children:["Uv ",(0,s.jsx)(n.a,{name:"Uv",id:"projen.python.Uv"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implements:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps",children:"IPythonDeps"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonEnv",children:"IPythonEnv"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonPackaging",children:"IPythonPackaging"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manage project dependencies, virtual environments, and packaging through uv."}),"\n",(0,s.jsxs)(n.h4,{id:"initializers--12",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.Uv.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.Uv(scope: IConstruct, options: UvOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.Initializer.parameter.scope",children:"scope"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.IConstruct"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scoperequired--2",children:[(0,s.jsx)(n.code,{children:"scope"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"scope",id:"projen.python.Uv.Initializer.parameter.scope"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.IConstruct"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsrequired--8",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.Uv.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--12",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.addDependency",children:"addDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a runtime dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.addDevDependency",children:"addDevDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a dev dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.installDependencies",children:"installDependencies"})})}),(0,s.jsx)(n.td,{children:"Installs dependencies (called during post-synthesis)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.setupEnvironment",children:"setupEnvironment"})})}),(0,s.jsx)(n.td,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--12",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.Uv.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--12",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.Uv.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--12",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.Uv.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--11",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.Uv.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--22",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Uv.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--12",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.Uv.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--12",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.Uv.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--11",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.Uv.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--23",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Uv.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--11",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.Uv.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h5,{id:"adddependency--3",children:[(0,s.jsx)(n.code,{children:"addDependency"})," ",(0,s.jsx)(n.a,{name:"addDependency",id:"projen.python.Uv.addDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a runtime dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--6",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.Uv.addDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddevdependency--3",children:[(0,s.jsx)(n.code,{children:"addDevDependency"})," ",(0,s.jsx)(n.a,{name:"addDevDependency",id:"projen.python.Uv.addDevDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDevDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a dev dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--7",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.Uv.addDevDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installdependencies--2",children:[(0,s.jsx)(n.code,{children:"installDependencies"})," ",(0,s.jsx)(n.a,{name:"installDependencies",id:"projen.python.Uv.installDependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public installDependencies(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Installs dependencies (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h5,{id:"setupenvironment--1",children:[(0,s.jsx)(n.code,{children:"setupEnvironment"})," ",(0,s.jsx)(n.a,{name:"setupEnvironment",id:"projen.python.Uv.setupEnvironment"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public setupEnvironment(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--12",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.t
1head,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--12",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.Uv.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Uv.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--24",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Uv.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--11",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.Uv.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Uv.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--25",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Uv.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--12",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.property.file",children:"file"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile",children:"PyprojectTomlFile"})})}),(0,s.jsxs)(n.td,{children:["The ",(0,s.jsx)(n.code,{children:"pyproject.toml"})," file."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.property.installCiTask",children:"installCiTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"A task that installs and updates dependencies."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.property.installTask",children:"installTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.property.publishTask",children:"publishTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"A task that uploads the package to a package repository."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Uv.property.publishTestTask",children:"publishTestTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--12",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.Uv.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--21",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Uv.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"filerequired--1",children:[(0,s.jsx)(n.code,{children:"file"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"file",id:"projen.python.Uv.property.file"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly file: PyprojectTomlFile;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlFile",children:"PyprojectTomlFile"})]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["The ",(0,s.jsx)(n.code,{children:"pyproject.toml"})," file."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installcitaskrequired--2",children:[(0,s.jsx)(n.code,{children:"installCiTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"installCiTask",id:"projen.python.Uv.property.installCiTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly installCiTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A task that installs and updates dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installtaskrequired--1",children:[(0,s.jsx)(n.code,{children:"installTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"installTask",id:"projen.python.Uv.property.installTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly installTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"publishtaskrequired--2",children:[(0,s.jsx)(n.code,{children:"publishTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"publishTask",id:"projen.python.Uv.property.publishTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly publishTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A task that uploads the package to a package repository."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"publishtesttaskrequired--2",children:[(0,s.jsx)(n.code,{children:"publishTestTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"publishTestTask",id:"projen.python.Uv.property.publishTestTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly publishTestTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"venv-",children:["Venv ",(0,s.jsx)(n.a,{name:"Venv",id:"projen.python.Venv"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implements:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonEnv",children:"IPythonEnv"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manages a virtual environment through the Python venv module."}
1),"\n",(0,s.jsxs)(n.h4,{id:"initializers--13",children:["Initializers ",(0,s.jsx)(n.a,{name:"Initializers",id:"projen.python.Venv.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nnew python.Venv(project: Project, options?: VenvOptions)\n"})}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.Initializer.parameter.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.Initializer.parameter.options",children:"options"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.VenvOptions",children:"VenvOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--22",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Venv.Initializer.parameter.project"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionsoptional--2",children:[(0,s.jsx)(n.code,{children:"options"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"options",id:"projen.python.Venv.Initializer.parameter.options"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.VenvOptions",children:"VenvOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"methods--13",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.toString",children:"toString"})})}),(0,s.jsx)(n.td,{children:"Returns a string representation of this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.with",children:"with"})})}),(0,s.jsx)(n.td,{children:"Applies one or more mixins to this construct."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.postProjectCreation",children:"postProjectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.postSynthesize",children:"postSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called after synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.preSynthesize",children:"preSynthesize"})})}),(0,s.jsx)(n.td,{children:"Called before synthesis."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.projectCreation",children:"projectCreation"})})}),(0,s.jsxs)(n.td,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.synthesize",children:"synthesize"})})}),(0,s.jsx)(n.td,{children:"Synthesizes files to the project output directory."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.setupEnvironment",children:"setupEnvironment"})})}),(0,s.jsx)(n.td,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tostring--13",children:[(0,s.jsx)(n.code,{children:"toString"})," ",(0,s.jsx)(n.a,{name:"toString",id:"projen.python.Venv.toString"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public toString(): string\n"})}),"\n",(0,s.jsx)(n.p,{children:"Returns a string representation of this construct."}),"\n",(0,s.jsxs)(n.h5,{id:"with--13",children:[(0,s.jsx)(n.code,{children:"with"})," ",(0,s.jsx)(n.a,{name:"with",id:"projen.python.Venv.with"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public with(mixins: ...IMixin[]): IConstruct\n"})}),"\n",(0,s.jsx)(n.p,{children:"Applies one or more mixins to this construct."}),"\n",(0,s.jsxs)(n.p,{children:["Mixins are applied in order. The list of constructs is captured at the\nstart of the call, so constructs added by a mixin will not be visited.\nUse multiple ",(0,s.jsx)(n.code,{children:"with()"})," calls if subsequent mixins should apply to added\nconstructs."]}),"\n",(0,s.jsxs)(n.h6,{id:"mixinsrequired--13",children:[(0,s.jsx)(n.code,{children:"mixins"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"mixins",id:"projen.python.Venv.with.parameter.mixins"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ...constructs.IMixin[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The mixins to apply."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postprojectcreation--12",children:[(0,s.jsx)(n.code,{children:"postProjectCreation"})," ",(0,s.jsx)(n.a,{name:"postProjectCreation",id:"projen.python.Venv.postProjectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postProjectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"postSynthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nIt is also skipped when post-synthesis steps are disabled, e.g. ",(0,s.jsx)(n.code,{children:"--no-post"})," or ",(0,s.jsx)(n.code,{children:"PROJEN_DISABLE_POST"}),".\nUse it for one-off setup that can be turned off by the user, like running a task to give the user immediate\nfeedback on their new project. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--24",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Venv.postProjectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"postsynthesize--13",children:[(0,s.jsx)(n.code,{children:"postSynthesize"})," ",(0,s.jsx)(n.a,{name:"postSynthesize",id:"projen.python.Venv.postSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public postSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called after synthesis."}),"\n",(0,s.jsxs)(n.p,{children:["Order is ",(0,s.jsx)(n.em,{children:"not"})," guaranteed."]}),"\n",(0,s.jsxs)(n.h5,{id:"presynthesize--13",children:[(0,s.jsx)(n.code,{children:"preSynthesize"})," ",(0,s.jsx)(n.a,{name:"preSynthesize",id:"projen.python.Venv.preSynthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public preSynthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Called before synthesis."}),"\n",(0,s.jsxs)(n.h5,{id:"projectcreation--12",children:[(0,s.jsx)(n.code,{children:"projectCreation"})," ",(0,s.jsx)(n.a,{name:"projectCreation",id:"projen.python.Venv.projectCreation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public projectCreation(initProject: InitProject): void\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Called once, right after ",(0,s.jsx)(n.code,{children:"synthesize()"}),", only when the project is created for the first time."]}),"\n",(0,s.jsxs)(n.p,{children:["It does not run on later ",(0,s.jsx)(n.code,{children:"projen"})," invocations. It only fires for ",(0,s.jsx)(n.code,{children:"projen new"})," (or ",(0,s.jsx)(n.code,{children:"Projects.createProject"}),").\nUse it for deterministic, one-off file generation. Order across components is not guaranteed."]}),"\n",(0,s.jsxs)(n.h6,{id:"initprojectrequired--25",children:[(0,s.jsx)(n.code,{children:"initProject"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"initProject",id:"projen.python.Venv.projectCreation.parameter.initProject"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.InitProject"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Details about how the project was created, e.g. its type and the original CLI args."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"synthesize--12",children:[(0,s.jsx)(n.code,{children:"synthesize"})," ",(0,s.jsx)(n.a,{name:"synthesize",id:"projen.python.Venv.synthesize"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public synthesize(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Synthesizes files to the project output directory."}),"\n",(0,s.jsxs)(n.h5,{id:"setupenvironment--2",children:[(0,s.jsx)(n.code,{children:"setupEnvironment"})," ",(0,s.jsx)(n.a,{name:"setupEnvironment",id:"projen.python.Venv.setupEnvironment"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public setupEnvironment(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h4,{id:"static-functions--13",children:["Static Functions ",(0,s.jsx)(n.a,{name:"Static Functions",id:"Static Functions"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.isConstruct",children:"isConstruct"})})}),(0,s.jsxs)(n.td,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.isComponent",children:"isComponent"})})}),(0,s.jsx)(n.td,{children:"Test whether the given construct is a component."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"isconstruct--13",children:[(0,s.jsx)(n.code,{children:"isConstruct"})," ",(0,s.jsx)(n.a,{name:"isConstruct",id:"projen.python.Venv.isConstruct"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Venv.isConstruct(x: any)\n"})}),"\n",(0,s.jsxs)(n.p,{children:["Checks if ",(0,s.jsx)(n.code,{children:"x"})," is a construct."]}),"\n",(0,s.jsxs)(n.p,{children:["Use this method instead of ",(0,s.jsx)(n.code,{children:"instanceof"})," to properly detect ",(0,s.jsx)(n.code,{children:"Construct"}),"\ninstances, even when the construct library is symlinked."]}),"\n",(0,s.jsxs)(n.p,{children:["Explanation: in JavaScript, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"})," library on\ndisk are seen as independent, completely different libraries. As a\nconsequence, the class ",(0,s.jsx)(n.code,{children:"Construct"})," in each copy of the ",(0,s.jsx)(n.code,{children:"constructs"})," library\nis seen as a different class, and an instance of one class will not test as\n",(0,s.jsx)(n.code,{children:"instanceof"})," the other class. ",(0,s.jsx)(n.code,{children:"npm install"})," will not create installations\nlike this, but users may manually symlink construct libraries together or\nuse a monorepo tool: in those cases, multiple copies of the ",(0,s.jsx)(n.code,{children:"constructs"}),"\nlibrary can be accidentally installed, and ",(0,s.jsx)(n.code,{children:"instanceof"})," will behave\nunpredictably. It is safest to avoid using ",(0,s.jsx)(n.code,{children:"instanceof"}),", and using\nthis type-testing method instead."]}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--26",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Venv.isConstruct.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Any object."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"iscomponent--12",children:[(0,s.jsx)(n.code,{children:"isComponent"})," ",(0,s.jsx)(n.a,{name:"isComponent",id:"projen.python.Venv.isComponent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\npython.Venv.isComponent(x: any)\n"})}),"\n",(0,s.jsx)(n.p,{children:"Test whether the given construct is a component."}),"\n",(0,s.jsxs)(n.h6,{id:"xrequired--27",children:[(0,s.jsx)(n.code,{children:"x"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"x",id:"projen.python.Venv.isComponent.parameter.x"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h4,{id:"properties--13",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.property.node",children:"node"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"constructs.Node"})}),(0,s.jsx)(n.td,{children:"The tree node."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.Venv.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"noderequired--13",children:[(0,s.jsx)(n.code,{children:"node"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"node",id:"projen.python.Venv.property.node"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly node: Node;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," constructs.Node"]}),"\n"]}),"\n",(0,s.jsx)(n.
1p,{children:"The tree node."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectrequired--23",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.Venv.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h2,{id:"structs-",children:["Structs ",(0,s.jsx)(n.a,{name:"Structs",id:"Structs"})]}),"\n",(0,s.jsxs)(n.h3,{id:"buildsystem-",children:["BuildSystem ",(0,s.jsx)(n.a,{name:"BuildSystem",id:"projen.python.BuildSystem"})]}),"\n",(0,s.jsx)(n.p,{children:"Declares any Python level dependencies that must be installed in order to run the project\u2019s build system successfully."}),"\n",(0,s.jsxs)(n.h4,{id:"initializer-",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.BuildSystem.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst buildSystem: python.BuildSystem = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--14",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.BuildSystem.property.requires",children:"requires"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"List of strings following the version specifier specification, representing dependencies required to execute the build system."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.BuildSystem.property.backendPath",children:"backendPath"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsxs)(n.td,{children:["list of directories to prepend to ",(0,s.jsx)(n.code,{children:"sys.path"})," when loading the build backend, relative to project root."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.BuildSystem.property.buildBackend",children:"buildBackend"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["String is formatted following the same ",(0,s.jsx)(n.code,{children:"module:object"})," syntax as a ",(0,s.jsx)(n.code,{children:"setuptools"})," entry point."]})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"requiresrequired-",children:[(0,s.jsx)(n.code,{children:"requires"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"requires",id:"projen.python.BuildSystem.property.requires"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly requires: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"List of strings following the version specifier specification, representing dependencies required to execute the build system."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"backendpathoptional-",children:[(0,s.jsx)(n.code,{children:"backendPath"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"backendPath",id:"projen.python.BuildSystem.property.backendPath"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly backendPath: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}
1),"\n",(0,s.jsxs)(n.p,{children:["list of directories to prepend to ",(0,s.jsx)(n.code,{children:"sys.path"})," when loading the build backend, relative to project root."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"buildbackendoptional-",children:[(0,s.jsx)(n.code,{children:"buildBackend"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"buildBackend",id:"projen.python.BuildSystem.property.buildBackend"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly buildBackend: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["String is formatted following the same ",(0,s.jsx)(n.code,{children:"module:object"})," syntax as a ",(0,s.jsx)(n.code,{children:"setuptools"})," entry point."]}),"\n",(0,s.jsxs)(n.p,{children:["It\u2019s also legal to leave out the ",(0,s.jsx)(n.code,{children:":object"})," part."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pipoptions-",children:["PipOptions ",(0,s.jsx)(n.a,{name:"PipOptions",id:"projen.python.PipOptions"})]}),"\n",(0,s.jsx)(n.p,{children:"Options for pip."}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--1",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PipOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pipOptions: python.PipOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h3,{id:"poetryoptions-",children:["PoetryOptions ",(0,s.jsx)(n.a,{name:"PoetryOptions",id:"projen.python.PoetryOptions"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--2",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PoetryOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst poetryOptions: python.PoetryOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--15",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.authorEmail",children:"authorEmail"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's e-mail."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.authorName",children:"authorName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Version of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of PyPI trove classifiers that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A short description of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.homepage",children:"homepage"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the website of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"License of this package as an SPDX identifier."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.packageName",children:"packageName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Package name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.poetryOptions",children:"poetryOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for poetry if using poetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.setupConfig",children:"setupConfig"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"Additional fields to pass in the setup() function if using setuptools."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.uvOptions",children:"uvOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for uv if using uv."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryOptions.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authoremailrequired-",children:[(0,s.jsx)(n.code,{children:"authorEmail"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorEmail",id:"projen.python.PoetryOptions.property.authorEmail"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorEmail: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_EMAIL"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Author's e-mail."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authornamerequired-",children:[(0,s.jsx)(n.code,{children:"authorName"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorName",id:"projen.python.PoetryOptions.property.authorName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_NAME"]}),"\n"]}
1),"\n",(0,s.jsx)(n.p,{children:"Author's name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionrequired--1",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PoetryOptions.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "0.1.0"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Version of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional-",children:[(0,s.jsx)(n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.PoetryOptions.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of PyPI trove classifiers that describe the project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"https://pypi.org/classifiers/"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional-",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.PoetryOptions.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A short description of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"homepageoptional-",children:[(0,s.jsx)(n.code,{children:"homepage"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"homepage",id:"projen.python.PoetryOptions.property.homepage"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly homepage: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the website of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional-",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.PoetryOptions.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"License of this package as an SPDX identifier."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagenameoptional-",children:[(0,s.jsx)(n.code,{children:"packageName"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packageName",id:"projen.python.PoetryOptions.property.packageName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"poetryoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"poetryOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"poetryOptions",id:"projen.python.PoetryOptions.property.poetryOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly poetryOptions: PoetryPyprojectOptionsWithoutDeps;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for poetry if using poetry."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setupconfigoptional-",children:[(0,s.jsx)(n.code,{children:"setupConfig"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"setupConfig",id:"projen.python.PoetryOptions.property.setupConfig"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly setupConfig: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional fields to pass in the setup() function if using setuptools."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"uvoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"uvOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"uvOptions",id:"projen.python.PoetryOptions.property.uvOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly uvOptions: UvOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for uv if using uv."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecoptional-",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.PoetryOptions.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "python"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"poetrypyprojectoptions-",children:["PoetryPyprojectOptions ",(0,s.jsx)(n.a,{name:"PoetryPyprojectOptions",id:"projen.python.PoetryPyprojectOptions"})]}),"\n",(0,s.jsx)(n.p,{children:"Poetry-specific options."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://python-poetry.org/docs/pyproject/",children:"https://python-poetry.org/docs/pyproject/"})}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--3",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PoetryPyprojectOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst poetryPyprojectOptions: python.PoetryPyprojectOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--16",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.authors",children:"authors"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"The authors of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of PyPI trove classifiers that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A short description of the package (required)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.documentation",children:"documentation"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the documentation of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.exclude",children:"exclude"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of patterns that will be excluded in the final package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.extras",children:"extras"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: string[]}"})}),(0,s.jsx)(n.td,{children:"Package extras."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.homepage",children:"homepage"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the website of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.include",children:"include"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of patterns that will be included in the final package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.keywords",children:"keywords"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of keywords (max: 5) that the package is related to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"License of this package as an SPDX identifier."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.maintainers",children:"maintainers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"the maintainers of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.name",children:"name"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Name of the package (required)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.packageMode",children:"packageMode"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Package mode (optional)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.packages",children:"packages"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:"A list of packages and modules to include in the final distribution."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.plugins",children:"plugins"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.readme",children:"readme"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The name of the readme file of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.repository",children:"repository"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the repository of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.scripts",children:"scripts"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"The scripts or executables that will be installed when installing the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.source",children:"source"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:"Source registries from which packages are retrieved."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.urls",children:"urls"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: string}"})}),(0,s.jsx)(n.td,{children:"Project custom URLs, in addition to homepage, repository and documentation."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Version of the package (required)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.dependencies",children:"dependencies"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"A list of dependencies for the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptions.property.devDependencies",children:"devDependencies"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"A list of development dependencies for the project."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authorsoptional-",children:[(0,s.jsx)(n.code,{children:"authors"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"authors",id:"projen.python.PoetryPyprojectOptions.property.authors"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authors: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The authors of the package."}),"\n",(0,s.jsxs)(n.p,{children:['Must be in the form "name ',(0,s.jsx)(n.email,{children:'"'})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional--1",children:[(0,s.jsx)(
1n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.PoetryPyprojectOptions.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of PyPI trove classifiers that describe the project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"https://pypi.org/classifiers/"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional--1",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.PoetryPyprojectOptions.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A short description of the package (required)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"documentationoptional-",children:[(0,s.jsx)(n.code,{children:"documentation"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"documentation",id:"projen.python.PoetryPyprojectOptions.property.documentation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly documentation: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the documentation of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"excludeoptional-",children:[(0,s.jsx)(n.code,{children:"exclude"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"exclude",id:"projen.python.PoetryPyprojectOptions.property.exclude"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly exclude: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of patterns that will be excluded in the final package."}),"\n",(0,s.jsx)(n.p,{children:"If a VCS is being used for a package, the exclude field will be seeded with\nthe VCS\u2019 ignore settings (.gitignore for git for example)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"extrasoptional-",children:[(0,s.jsx)(n.code,{children:"extras"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"extras",id:"projen.python.PoetryPyprojectOptions.property.extras"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly extras: {[ key: string ]: string[]};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: string[]}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package extras."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"homepageoptional--1",children:[(0,s.jsx)(n.code,{children:"homepage"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"homepage",id:"projen.python.PoetryPyprojectOptions.property.homepage"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly homepage: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the website of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"includeoptional-",children:[(0,s.jsx)(n.code,{children:"include"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"include",id:"projen.python.PoetryPyprojectOptions.property.include"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly include: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of patterns that will be included in the final package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"keywordsoptional-",children:[(0,s.jsx)(n.code,{children:"keywords"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"keywords",id:"projen.python.PoetryPyprojectOptions.property.keywords"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly keywords: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of keywords (max: 5) that the package is related to."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional--1",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.PoetryPyprojectOptions.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"License of this package as an SPDX identifier."}),"\n",(0,s.jsx)(n.p,{children:'If the project is proprietary and does not use a specific license, you\ncan set this value as "Proprietary".'}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"maintainersoptional-",children:[(0,s.jsx)(n.code,{children:"maintainers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"maintainers",id:"projen.python.PoetryPyprojectOptions.property.maintainers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly maintainers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"the maintainers of the package."}),"\n",(0,s.jsxs)(n.p,{children:['Must be in the form "name ',(0,s.jsx)(n.email,{children:'"'})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"nameoptional-",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.PoetryPyprojectOptions.property.name"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly name: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Name of the package (required)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagemodeoptional-",children:[(0,s.jsx)(n.code,{children:"packageMode"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packageMode",id:"projen.python.PoetryPyprojectOptions.property.packageMode"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageMode: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package mode (optional)."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://python-poetry.org/docs/pyproject/#package-mode",children:"https://python-poetry.org/docs/pyproject/#package-mode"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Example"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"false\n"})}),"\n",(0,s.jsxs)(n.h5,{id:"packagesoptional-",children:[(0,s.jsx)(n.code,{children:"packages"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packages",id:"projen.python.PoetryPyprojectOptions.property.packages"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packages: any[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of packages and modules to include in the final distribution."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pluginsoptional-",children:[(0,s.jsx)(n.code,{children:"plugins"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"plugins",id:"projen.python.PoetryPyprojectOptions.property.plugins"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly plugins: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Plugins."}),"\n",(0,s.jsx)(n.p,{children:"Must be specified as a table."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://toml.io/en/v1.0.0#table",children:"https://toml.io/en/v1.0.0#table"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readmeoptional-",children:[(0,s.jsx)(n.code,{children:"readme"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"readme",id:"projen.python.PoetryPyprojectOptions.property.readme"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly readme: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The name of the readme file of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"repositoryoptional-",children:[(0,s.jsx)(n.code,{children:"repository"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"repository",id:"projen.python.PoetryPyprojectOptions.property.repository"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly repository: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the repository of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scriptsoptional-",children:[(0,s.jsx)(n.code,{children:"scripts"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"scripts",id:"projen.python.PoetryPyprojectOptions.property.scripts"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly scripts: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The scripts or executables that will be installed when installing the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"sourceoptional-",children:[(0,s.jsx)(n.code,{children:"source"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"source",id:"projen.python.PoetryPyprojectOptions.property.source"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly source: any[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Source registries from which packages are retrieved."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"urlsoptional-",children:[(0,s.jsx)(n.code,{children:"urls"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"urls",id:"projen.python.PoetryPyprojectOptions.property.urls"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly urls: {[ key: string ]: string};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: string}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Project custom URLs, in addition to homepage, repository and documentation."}),"\n",(0,s.jsx)(n.p,{children:'E.g. "Bug Tracker"'}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionoptional-",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Optional"}
1)," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PoetryPyprojectOptions.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Version of the package (required)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"dependenciesoptional-",children:[(0,s.jsx)(n.code,{children:"dependencies"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"dependencies",id:"projen.python.PoetryPyprojectOptions.property.dependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly dependencies: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of dependencies for the project."}),"\n",(0,s.jsx)(n.p,{children:"The python version for which your package is compatible is also required."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Example"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'{ requests: "^2.13.0" }\n'})}),"\n",(0,s.jsxs)(n.h5,{id:"devdependenciesoptional-",children:[(0,s.jsx)(n.code,{children:"devDependencies"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"devDependencies",id:"projen.python.PoetryPyprojectOptions.property.devDependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly devDependencies: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of development dependencies for the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Example"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'{ requests: "^2.13.0" }\n'})}),"\n",(0,s.jsxs)(n.h3,{id:"poetrypyprojectoptionswithoutdeps-",children:["PoetryPyprojectOptionsWithoutDeps ",(0,s.jsx)(n.a,{name:"PoetryPyprojectOptionsWithoutDeps",id:"projen.python.PoetryPyprojectOptionsWithoutDeps"})]}),"\n",(0,s.jsx)(n.p,{children:"Poetry-specific options."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://python-poetry.org/docs/pyproject/",children:"https://python-poetry.org/docs/pyproject/"})}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--4",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst poetryPyprojectOptionsWithoutDeps: python.PoetryPyprojectOptionsWithoutDeps = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--17",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.authors",children:"authors"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"The authors of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of PyPI trove classifiers that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A short description of the package (required)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.documentation",children:"documentation"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the documentation of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.exclude",children:"exclude"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of patterns that will be excluded in the final package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.extras",children:"extras"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: string[]}"})}),(0,s.jsx)(n.td,{children:"Package extras."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.homepage",children:"homepage"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the website of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.include",children:"include"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of patterns that will be included in the final package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.keywords",children:"keywords"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of keywords (max: 5) that the package is related to."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"License of this package as an SPDX identifier."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.maintainers",children:"maintainers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"the maintainers of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.name",children:"name"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Name of the package (required)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.packageMode",children:"packageMode"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Package mode (optional)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.packages",children:"packages"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:"A list of packages and modules to include in the final distribution."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.plugins",children:"plugins"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Plugins."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.readme",children:"readme"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The name of the readme file of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.repository",children:"repository"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the repository of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.scripts",children:"scripts"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"The scripts or executables that will be installed when installing the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.source",children:"source"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:"Source registries from which packages are retrieved."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.urls",children:"urls"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: string}"})}),(0,s.jsx)(n.td,{children:"Project custom URLs, in addition to homepage, repository and documentation."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Version of the package (required)."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authorsoptional--1",children:[(0,s.jsx)(n.code,{children:"authors"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"authors",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.authors"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authors: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The authors of the package."}),"\n",(0,s.jsxs)(n.p,{children:['Must be in the form "name ',(0,s.jsx)(n.email,{children:'"'})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional--2",children:[(0,s.jsx)(n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of PyPI trove classifiers that describe the project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"https://pypi.org/classifiers/"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional--2",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A short description of the package (required)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"documentationoptional--1",children:[(0,s.jsx)(n.code,{children:"documentation"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"documentation",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.documentation"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly documentation: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the documentation of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"excludeoptional--1",children:[(0,s.jsx)(n.code,{children:"exclude"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"exclude",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.exclude"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly exclude: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of patterns that will be excluded in the final package."}),"\n",(0,s.jsx)(n.p,{children:"If a VCS is being used for a package, the exclude field will be seeded with\nthe VCS\u2019 ignore settings (.gitignore for git for example)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"extrasoptional--1",children:[(0,s.jsx)(n.code,{children:"extras"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"extras",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.extras"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly extras: {[ key: string ]: string[]};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: string[]}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package extras."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"homepageoptional--2",children:[(0,s.jsx)(n.code,{children:"homepage"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"homepage",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.homepage"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly homepage: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the website of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"includeoptional--1",children:[(0,s.jsx)(n.code,{children:"include"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"include",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.include"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly include: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of patterns that will be included in the final package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"keywordsoptional--1",children:[(0,s.jsx)(n.code,{children:"keywords"}),(0,s.jsx)(n
1.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"keywords",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.keywords"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly keywords: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of keywords (max: 5) that the package is related to."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional--2",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"License of this package as an SPDX identifier."}),"\n",(0,s.jsx)(n.p,{children:'If the project is proprietary and does not use a specific license, you\ncan set this value as "Proprietary".'}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"maintainersoptional--1",children:[(0,s.jsx)(n.code,{children:"maintainers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"maintainers",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.maintainers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly maintainers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"the maintainers of the package."}),"\n",(0,s.jsxs)(n.p,{children:['Must be in the form "name ',(0,s.jsx)(n.email,{children:'"'})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"nameoptional--1",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.name"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly name: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Name of the package (required)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagemodeoptional--1",children:[(0,s.jsx)(n.code,{children:"packageMode"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packageMode",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.packageMode"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageMode: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package mode (optional)."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://python-poetry.org/docs/pyproject/#package-mode",children:"https://python-poetry.org/docs/pyproject/#package-mode"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Example"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"false\n"})}),"\n",(0,s.jsxs)(n.h5,{id:"packagesoptional--1",children:[(0,s.jsx)(n.code,{children:"packages"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packages",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.packages"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packages: any[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of packages and modules to include in the final distribution."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pluginsoptional--1",children:[(0,s.jsx)(n.code,{children:"plugins"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"plugins",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.plugins"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly plugins: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Plugins."}),"\n",(0,s.jsx)(n.p,{children:"Must be specified as a table."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://toml.io/en/v1.0.0#table",children:"https://toml.io/en/v1.0.0#table"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readmeoptional--1",children:[(0,s.jsx)(n.code,{children:"readme"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"readme",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.readme"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly readme: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The name of the readme file of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"repositoryoptional--1",children:[(0,s.jsx)(n.code,{children:"repository"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"repository",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.repository"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly repository: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the repository of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scriptsoptional--1",children:[(0,s.jsx)(n.code,{children:"scripts"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"scripts",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.scripts"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly scripts: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The scripts or executables that will be installed when installing the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"sourceoptional--1",children:[(0,s.jsx)(n.code,{children:"source"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"source",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.source"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly source: any[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Source registries from which packages are retrieved."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"urlsoptional--1",children:[(0,s.jsx)(n.code,{children:"urls"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"urls",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.urls"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly urls: {[ key: string ]: string};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: string}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Project custom URLs, in addition to homepage, repository and documentation."}),"\n",(0,s.jsx)(n.p,{children:'E.g. "Bug Tracker"'}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionoptional--1",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Optional"}
1)," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PoetryPyprojectOptionsWithoutDeps.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Version of the package (required)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"projectauthor-",children:["ProjectAuthor ",(0,s.jsx)(n.a,{name:"ProjectAuthor",id:"projen.python.ProjectAuthor"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--5",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.ProjectAuthor.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst projectAuthor: python.ProjectAuthor = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--18",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.ProjectAuthor.property.email",children:"email"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.ProjectAuthor.property.name",children:"name"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"emailoptional-",children:[(0,s.jsx)(n.code,{children:"email"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"email",id:"projen.python.ProjectAuthor.property.email"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly email: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"nameoptional--2",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.ProjectAuthor.property.name"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly name: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"projenrcoptions-",children:["ProjenrcOptions ",(0,s.jsx)(n.a,{name:"ProjenrcOptions",id:"projen.python.ProjenrcOptions"})]}),"\n",(0,s.jsxs)(n.p,{children:["Options for ",(0,s.jsx)(n.code,{children:"Projenrc"}),"."]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--6",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.ProjenrcOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst projenrcOptions: python.ProjenrcOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--19",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.ProjenrcOptions.property.filename",children:"filename"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The name of the projenrc file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.ProjenrcOptions.property.projenVersion",children:"projenVersion"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The projen version to use."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.ProjenrcOptions.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"filenameoptional-",children:[(0,s.jsx)(n.code,{children:"filename"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"filename",id:"projen.python.ProjenrcOptions.property.filename"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly filename: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' ".projenrc.py"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The name of the projenrc file."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenversionoptional-",children:[(0,s.jsx)(n.code,{children:"projenVersion"}),(0,s.jsx)(n.sup,{children:"Optional"}
1)," ",(0,s.jsx)(n.a,{name:"projenVersion",id:"projen.python.ProjenrcOptions.property.projenVersion"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenVersion: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," current version"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The projen version to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecoptional--1",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.ProjenrcOptions.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "python"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pyprojecttoml-",children:["PyprojectToml ",(0,s.jsx)(n.a,{name:"PyprojectToml",id:"projen.python.PyprojectToml"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--7",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PyprojectToml.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pyprojectToml: python.PyprojectToml = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--20",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectToml.property.buildSystem",children:"buildSystem"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.BuildSystem",children:"BuildSystem"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectToml.property.dependencyGroups",children:"dependencyGroups"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlDependencyGroups",children:"PyprojectTomlDependencyGroups"})})}),(0,s.jsxs)(n.td,{children:["Named groups of dependencies, similar to ",(0,s.jsx)(n.code,{children:"requirements.txt"})," files, which launchers, IDEs, and other tools can find and identify by name. Each item in ",(0,s.jsx)(n.code,{children:"[dependency-groups]"})," is defined as mapping of group name to list of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/dependency-specifiers/",children:"dependency specifiers"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectToml.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject",children:"PyprojectTomlProject"})})}),(0,s.jsxs)(n.td,{children:["There are three kinds of metadata: ",(0,s.jsx)(n.em,{children:"static"}),", ",(0,s.jsx)(n.em,{children:"dynamic"}),", and ",(0,s.jsx)(n.em,{children:"partially dynamic"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectToml.property.tool",children:"tool"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool",children:"PyprojectTomlTool"})})}),(0,s.jsxs)(n.td,{children:["Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within ",(0,s.jsx)(n.code,{children:"[tool]"}),"."]})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"buildsystemoptional-",children:[(0,s.jsx)(n.code,{children:"buildSystem"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"buildSystem",id:"projen.python.PyprojectToml.property.buildSystem"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly buildSystem: BuildSystem;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.BuildSystem",children:"BuildSystem"})]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"dependencygroupsoptional-",children:[(0,s.jsx)(n.code,{children:"dependencyGroups"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"dependencyGroups",id:"projen.python.PyprojectToml.property.dependencyGroups"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly depen
1dencyGroups: PyprojectTomlDependencyGroups;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlDependencyGroups",children:"PyprojectTomlDependencyGroups"})]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Named groups of dependencies, similar to ",(0,s.jsx)(n.code,{children:"requirements.txt"})," files, which launchers, IDEs, and other tools can find and identify by name. Each item in ",(0,s.jsx)(n.code,{children:"[dependency-groups]"})," is defined as mapping of group name to list of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/dependency-specifiers/",children:"dependency specifiers"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectoptional-",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.PyprojectToml.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: PyprojectTomlProject;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject",children:"PyprojectTomlProject"})]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["There are three kinds of metadata: ",(0,s.jsx)(n.em,{children:"static"}),", ",(0,s.jsx)(n.em,{children:"dynamic"}),", and ",(0,s.jsx)(n.em,{children:"partially dynamic"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Static metadata is listed in the ",(0,s.jsx)(n.code,{children:"[project]"})," table directly and cannot be specified or changed by a tool."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Dynamic metadata key names are listed inside the ",(0,s.jsx)(n.code,{children:"dynamic"})," key and represents metadata that a tool will later provide."]}),"\n",(0,s.jsxs)(n.li,{children:["Partially dynamic metadata is specified in the ",(0,s.jsx)(n.code,{children:"[project]"})," table as a list or table, and also listed in ",(0,s.jsx)(n.code,{children:"dynamic"}),", allowing the build backend to add entries but not modify or remove existing ones."]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tooloptional-",children:[(0,s.jsx)(n.code,{children:"tool"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"tool",id:"projen.python.PyprojectToml.property.tool"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly tool: PyprojectTomlTool;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool",children:"PyprojectTomlTool"})]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within ",(0,s.jsx)(n.code,{children:"[tool]"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Generally a project can use the subtable ",(0,s.jsx)(n.code,{children:"tool.$NAME"})," if, and only if, they own the entry for ",(0,s.jsx)(n.code,{children:"$NAME"})," in the Cheeseshop/PyPI."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pyprojecttomldependencygroups-",children:["PyprojectTomlDependencyGroups ",(0,s.jsx)(n.a,{name:"PyprojectTomlDependencyGroups",id:"projen.python.PyprojectTomlDependencyGroups"})]}),"\n",(0,s.jsxs)(n.p,{children:["Named groups of dependencies, similar to ",(0,s.jsx)(n.code,{children:"requirements.txt"})," files, which launchers, IDEs, and other tools can find and identify by name. Each item in ",(0,s.jsx)(n.code,{children:"[dependency-groups]"})," is defined as mapping of group name to list of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/dependency-specifiers/",children:"dependency specifiers"}),"."]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--8",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PyprojectTomlDependencyGroups.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pyprojectTomlDependencyGroups: python.PyprojectTomlDependencyGroups = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--21",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlDependencyGroups.property.dev",children:"dev"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any[]"})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.em,{children:"No description."})})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"devoptional-",children:[(0,s.jsx)(n.code,{children:"dev"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"dev",id:"projen.python.PyprojectTomlDependencyGroups.property.dev"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly dev: any[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any[]"]}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pyprojecttomlproject-",children:["PyprojectTomlProject ",(0,s.jsx)(n.a,{name:"PyprojectTomlProject",id:"projen.python.PyprojectTomlProject"})]}),"\n",(0,s.jsxs)(n.p,{children:["There are three kinds of metadata: ",(0,s.jsx)(n.em,{children:"static"}),", ",(0,s.jsx)(n.em,{children:"dynamic"}),", and ",(0,s.jsx)(n.em,{children:"partially dynamic"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Static metadata is listed in the ",(0,s.jsx)(n.code,{children:"[project]"})," table directly and cannot be specified or changed by a tool."]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:["Dynamic metadata key names are listed inside the ",(0,s.jsx)(n.code,{children:"dynamic"})," key and represents metadata that a tool will later provide."]}),"\n",(0,s.jsxs)(n.li,{children:["Partially dynamic metadata is specified in the ",(0,s.jsx)(n.code,{children:"[project]"})," table as a list or table, and also listed in ",(0,s.jsx)(n.code,{children:"dynamic"}),", allowing the build backend to add entries but not modify or remove existing ones."]}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--9",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PyprojectTomlProject.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pyprojectTomlProject: python.PyprojectTomlProject = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--22",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.name",children:"name"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Valid name consists only of ASCII letters and numbers, period, underscore and hyphen."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.authors",children:"authors"})})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)(n.code,{children:[(0,s.jsx)(n.a,{href:"#projen.python.ProjectAuthor",children:"ProjectAuthor"}),"[]"]})}),(0,s.jsx)(n.td,{children:"People or organizations considered as 'authors' of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsxs)(n.td,{children:["List of ",(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"Trove classifiers"})," that describe the project. PyPI use the classifiers to categorize projects."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.dependencies",children:"dependencies"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsxs)(n.td,{children:["An array of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/dependency-specifiers/",children:"dependency specifier"})," strings, each representing a mandatory dependent package of the project."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Summary description of the project in one line."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.dynamic",children:"dynamic"})})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)(n.code,{children:[(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic",children:"PyprojectTomlProjectDynamic"}),"[]"]})}),(0,s.jsxs)(n.td,{children:["Specifies which keys are intentionally unspecified under ",(0,s.jsx)(n.code,{children:"[project]"})," table so build backend can/will provide such metadata dynamically."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.entryPoints",children:"entryPoints"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsxs)(n.td,{children:["Extra ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/entry-points/",children:"entry point groups"})," that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through ",(0,s.jsx)(n.code,{children:'[project.entry-points."pygments.styles"]'}),". Each key is the name of the entry-point group, and each value is a table of entry points."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.guiScripts",children:"guiScripts"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: string}"})}),(0,s.jsxs)(n.td,{children:["Table of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/entry-points/",children:"entry points"}
1)," that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either ",(0,s.jsx)(n.code,{children:"importable.module"})," or ",(0,s.jsx)(n.code,{children:"importable.module:object.attr"}),". Windows platform treats ",(0,s.jsx)(n.code,{children:"gui_scripts"})," specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.importNames",children:"importNames"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"An array of strings specifying the import names that the project exclusively provides when installed."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.importNamespaces",children:"importNamespaces"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"An array of strings specifying the import names that the project provides when installed, but not exclusively."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.keywords",children:"keywords"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"List of keywords or tags that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsxs)(n.td,{children:["A string containing a valid ",(0,s.jsx)(n.a,{href:"https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/",children:"SPDX license expression"})," (recommended), or a table with either: - ",(0,s.jsx)(n.code,{children:"file"})," key specifying a relative path to a license file (deprecated per PEP 639), or - ",(0,s.jsx)(n.code,{children:"text"})," key containing full license content (deprecated per PEP 639)."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.licenseFiles",children:"licenseFiles"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"Relative paths or globs to paths of license files."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.maintainers",children:"maintainers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsxs)(n.code,{children:[(0,s.jsx)(n.a,{href:"#projen.python.ProjectAuthor",children:"ProjectAuthor"}),"[]"]})}),(0,s.jsx)(n.td,{children:"People or organizations considered as 'maintainers' of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.optionalDependencies",children:"optionalDependencies"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsxs)(n.td,{children:["Each entry is a key/value pair, with the key specifying ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use",children:"extra feature name"})," (such as ",(0,s.jsx)(n.code,{children:"socks"})," in ",(0,s.jsx)(n.code,{children:"requests[socks]"}),"), and value is an array of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/dependency-specifiers/",children:"dependency specifier"})," strings."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.readme",children:"readme"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsxs)(n.td,{children:["Value can be a relative path to text / markdown (",(0,s.jsx)(n.code,{children:".md"}
1)," suffix) / reStructuredText (",(0,s.jsx)(n.code,{children:".rst"})," suffix) readme file, or a table with either: - ",(0,s.jsx)(n.code,{children:"file"})," key containing path of aforementioned readme file, or - ",(0,s.jsx)(n.code,{children:"text"})," key containing the full readme text embedded inside ",(0,s.jsx)(n.code,{children:"pyproject.toml"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.requiresPython",children:"requiresPython"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Specifies the Python version(s) that the distribution is compatible with."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.scripts",children:"scripts"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: string}"})}),(0,s.jsxs)(n.td,{children:["Table of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/entry-points/",children:"entry points"})," that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either ",(0,s.jsx)(n.code,{children:"importable.module"})," or ",(0,s.jsx)(n.code,{children:"importable.module:object.attr"}),". Windows platform treats ",(0,s.jsx)(n.code,{children:"console_scripts"})," specially in that they are wrapped in a console executable, so they are attached to a console and can use ",(0,s.jsx)(n.code,{children:"sys.stdin"}),", ",(0,s.jsx)(n.code,{children:"sys.stdout"})," and ",(0,s.jsx)(n.code,{children:"sys.stderr"})," for I/O."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.urls",children:"urls"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: string}"})}),(0,s.jsxs)(n.td,{children:["Table consisting one or multiple ",(0,s.jsx)(n.code,{children:"label: URL"})," pairs."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsxs)(n.td,{children:["Version of the project, as defined in the ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/version-specifiers/",children:"Version specifier specification"}),", and preferably ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization",children:"already normalized"}),"."]})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"namerequired--3",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.PyprojectTomlProject.property.name"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly name: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Valid name consists only of ASCII letters and numbers, period, underscore and hyphen."}),"\n",(0,s.jsx)(n.p,{children:"It must start and end with a letter or number."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authorsoptional--2",children:[(0,s.jsx)(n.code,{children:"authors"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"authors",id:"projen.python.PyprojectTomlProject.property.authors"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authors: ProjectAuthor[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.ProjectAuthor",children:"ProjectAuthor"}),"[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"People or organizations considered as 'authors' of the project."}),"\n",(0,s.jsxs)(n.p,{children:["Each author is a table with ",(0,s.jsx)(n.code,{children:"name"})," key, ",(0,s.jsx)(n.code,{children:"email"})," key, or both."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional--3",children:[(0,s.jsx)(n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.PyprojectTomlProject.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["List of ",(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"Trove classifiers"})," that describe the project. PyPI use the classifiers to categorize projects."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"dependenciesoptional--1",children:[(0,s.jsx)(n.code,{children:"dependencies"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"dependencies",id:"projen.python.PyprojectTomlProject.property.dependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly depen
1dencies: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["An array of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/dependency-specifiers/",children:"dependency specifier"})," strings, each representing a mandatory dependent package of the project."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional--3",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.PyprojectTomlProject.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Summary description of the project in one line."}),"\n",(0,s.jsx)(n.p,{children:"Tools may not accept multiple lines."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"dynamicoptional-",children:[(0,s.jsx)(n.code,{children:"dynamic"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"dynamic",id:"projen.python.PyprojectTomlProject.property.dynamic"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly dynamic: PyprojectTomlProjectDynamic[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic",children:"PyprojectTomlProjectDynamic"}),"[]"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Specifies which keys are intentionally unspecified under ",(0,s.jsx)(n.code,{children:"[project]"})," table so build backend can/will provide such metadata dynamically."]}),"\n",(0,s.jsxs)(n.p,{children:["Each key must be listed only once. It is an error to both list a key in ",(0,s.jsx)(n.code,{children:"dynamic"})," and use the key directly in ",(0,s.jsx)(n.code,{children:"[project]"})," unless the key is a list or table with arbitrary entries (PEP 808), in which case the build backend may extend it.\nOne of the most common usage is ",(0,s.jsx)(n.code,{children:"version"}),", which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in ",(0,s.jsx)(n.code,{children:"pyproject.toml"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"entrypointsoptional-",children:[(0,s.jsx)(n.code,{children:"entryPoints"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"entryPoints",id:"projen.python.PyprojectTomlProject.property.entryPoints"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly entryPoints: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Extra ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/entry-points/",children:"entry point groups"})," that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through ",(0,s.jsx)(n.code,{children:'[project.entry-points."pygments.styles"]'}),". Each key is the name of the entry-point group, and each value is a table of entry points."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"guiscriptsoptional-",children:[(0,s.jsx)(n.code,{children:"guiScripts"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"guiScripts",id:"projen.python.PyprojectTomlProject.property.guiScripts"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly guiScripts: {[ key: string ]: string};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: string}"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Table of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/entry-points/",children:"entry points"}
1)," that allows package installers to create a GUI wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either ",(0,s.jsx)(n.code,{children:"importable.module"})," or ",(0,s.jsx)(n.code,{children:"importable.module:object.attr"}),". Windows platform treats ",(0,s.jsx)(n.code,{children:"gui_scripts"})," specially in that they are wrapped in a GUI executable, so they can be started without a console, but cannot use standard streams unless application code redirects them."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"importnamesoptional-",children:[(0,s.jsx)(n.code,{children:"importNames"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"importNames",id:"projen.python.PyprojectTomlProject.property.importNames"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly importNames: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"An array of strings specifying the import names that the project exclusively provides when installed."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"importnamespacesoptional-",children:[(0,s.jsx)(n.code,{children:"importNamespaces"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"importNamespaces",id:"projen.python.PyprojectTomlProject.property.importNamespaces"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly importNamespaces: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"An array of strings specifying the import names that the project provides when installed, but not exclusively."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"keywordsoptional--2",children:[(0,s.jsx)(n.code,{children:"keywords"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"keywords",id:"projen.python.PyprojectTomlProject.property.keywords"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly keywords: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"List of keywords or tags that describe the project."}),"\n",(0,s.jsx)(n.p,{children:"They could be used by search engines to categorize the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional--3",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.PyprojectTomlProject.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["A string containing a valid ",(0,s.jsx)(n.a,{href:"https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/",children:"SPDX license expression"})," (recommended), or a table with either: - ",(0,s.jsx)(n.code,{children:"file"})," key specifying a relative path to a license file (deprecated per PEP 639), or - ",(0,s.jsx)(n.code,{children:"text"})," key containing full license content (deprecated per PEP 639)."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licensefilesoptional-",children:[(0,s.jsx)(n.code,{children:"licenseFiles"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"licenseFiles",id:"projen.python.PyprojectTomlProject.property.licenseFiles"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly licenseFiles: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Relative paths or globs to paths of license files."}),"\n",(0,s.jsx)(n.p,{children:"Can be an empty list."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"maintainersoptional--2",children:[(0,s.jsx)(n.code,{children:"maintainers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"maintainers",id:"projen.python.PyprojectTomlProject.property.maintainers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly maintainers: ProjectAuthor[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.ProjectAuthor",children:"ProjectAuthor"}),"[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"People or organizations considered as 'maintainers' of the project."}),"\n",(0,s.jsxs)(n.p,{children:["Each maintainer is a table with ",(0,s.jsx)(n.code,{children:"name"})," key, ",(0,s.jsx)(n.code,{children:"email"})," key, or both."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"optionaldependenciesoptional-",children:[(0,s.jsx)(n.code,{children:"optionalDependencies"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"optionalDependencies",id:"projen.python.PyprojectTomlProject.property.optionalDependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly optionalDependencies: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Each entry is a key/value pair, with the key specifying ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use",children:"extra feature name"})," (such as ",(0,s.jsx)(n.code,{children:"socks"})," in ",(0,s.jsx)(n.code,{children:"requests[socks]"}),"), and value is an array of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/dependency-specifiers/",children:"dependency specifier"})," strings."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readmeoptional--2",children:[(0,s.jsx)(n.code,{children:"readme"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"readme",id:"projen.python.PyprojectTomlProject.property.readme"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly readme: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Value can be a relative path to text / markdown (",(0,s.jsx)(n.code,{children:".md"}
1)," suffix) / reStructuredText (",(0,s.jsx)(n.code,{children:".rst"})," suffix) readme file, or a table with either: - ",(0,s.jsx)(n.code,{children:"file"})," key containing path of aforementioned readme file, or - ",(0,s.jsx)(n.code,{children:"text"})," key containing the full readme text embedded inside ",(0,s.jsx)(n.code,{children:"pyproject.toml"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"requirespythonoptional-",children:[(0,s.jsx)(n.code,{children:"requiresPython"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"requiresPython",id:"projen.python.PyprojectTomlProject.property.requiresPython"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly requiresPython: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Specifies the Python version(s) that the distribution is compatible with."}),"\n",(0,s.jsxs)(n.p,{children:["Must be in the format specified in ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/version-specifiers/",children:"Version specifiers"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scriptsoptional--2",children:[(0,s.jsx)(n.code,{children:"scripts"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"scripts",id:"projen.python.PyprojectTomlProject.property.scripts"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly scripts: {[ key: string ]: string};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: string}"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Table of ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/entry-points/",children:"entry points"})," that allows package installers to create a command-line wrapper for. Each key is the name of the script to be created, and each value is the function or object to all, in form of either ",(0,s.jsx)(n.code,{children:"importable.module"})," or ",(0,s.jsx)(n.code,{children:"importable.module:object.attr"}),". Windows platform treats ",(0,s.jsx)(n.code,{children:"console_scripts"})," specially in that they are wrapped in a console executable, so they are attached to a console and can use ",(0,s.jsx)(n.code,{children:"sys.stdin"}),", ",(0,s.jsx)(n.code,{children:"sys.stdout"})," and ",(0,s.jsx)(n.code,{children:"sys.stderr"})," for I/O."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"urlsoptional--2",children:[(0,s.jsx)(n.code,{children:"urls"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"urls",id:"projen.python.PyprojectTomlProject.property.urls"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly urls: {[ key: string ]: string};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: string}"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Table consisting one or multiple ",(0,s.jsx)(n.code,{children:"label: URL"})," pairs."]}),"\n",(0,s.jsxs)(n.p,{children:["Common indexes like PyPI uses ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels",children:"well-known Project URLs"})," when presenting project pages."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionoptional--2",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PyprojectTomlProject.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Version of the project, as defined in the ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/version-specifiers/",children:"Version specifier specification"}),", and preferably ",(0,s.jsx)(n.a,{href:"https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization",children:"already normalized"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pyprojecttomltool-",children:["PyprojectTomlTool ",(0,s.jsx)(n.a,{name:"PyprojectTomlTool",id:"projen.python.PyprojectTomlTool"})]}),"\n",(0,s.jsxs)(n.p,{children:["Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within ",(0,s.jsx)(n.code,{children:"[tool]"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["Generally a project can use the subtable ",(0,s.jsx)(n.code,{children:"tool.$NAME"})," if, and only if, they own the entry for ",(0,s.jsx)(n.code,{children:"$NAME"})," in the Cheeseshop/PyPI."]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--10",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PyprojectTomlTool.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pyprojectTomlTool: python.PyprojectTomlTool = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--23",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.black",children:"black"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"The uncompromising Python code formatter."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.cibuildwheel",children:"cibuildwheel"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Build Python wheels for all platforms."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.dfc",children:"dfc"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"A CLI tool to check and validate Python docstring formatting and completeness."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.docstringFormatChecker",children:"docstringFormatChecker"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"A CLI tool to check and validate Python docstring formatting and completeness."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.fastapi",children:"fastapi"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"FastAPI web framework configuration."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.hatch",children:"hatch"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Modern, extensible Python project management."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.maturin",children:"maturin"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.mypy",children:"mypy"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Optional static typing for Python."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.pdm",children:"pdm"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"A modern Python package manager with PEP 621 support."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.pixi",children:"pixi"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"A package manager and task runner."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.poe",children:"poe"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsxs)(n.td,{children:["A task runner that works well with ",(0,s.jsx)(n.code,{children:"pyproject.toml"})," files."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.poetry",children:"poetry"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Python dependency management and packaging made easy."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.pyright",children:"pyright"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Static type checker for Python."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.pytest",children:"pytest"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Standardized automated testing of Python packages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.quikrun",children:"quikrun"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"A CLI tool to run code files instantly without typing complex commands in terminal."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.repoReview",children:"repoReview"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Review a repository for best practices."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.ruff",children:"ruff"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"An extremely fast Python linter and formatter, written in Rust."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.scheduled",children:"scheduled"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsxs)(n.td,{children:["Scheduled jobs in Python's ",(0,s.jsx)(n.code,{children:"pyproject.toml"}),"."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.scikitBuild",children:"scikitBuild"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Improved build system generator for Python C/C++/Fortran extensions."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.setuptools",children:"setuptools"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Easily download, build, install, upgrade, and uninstall Python packages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.setuptoolsScm",children:"setuptoolsScm"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Manage Python package versions using SCM (e.g. Git)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.taskipy",children:"taskipy"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"The complementary task runner for python."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.tombi",children:"tombi"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Tombi is a toolkit for TOML;"})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.tox",children:"tox"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"Standardized automated testing of Python packages."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.ty",children:"ty"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"An extremely fast Python type checker, written in Rust."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlTool.property.uv",children:"uv"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"any"})}),(0,s.jsx)(n.td,{children:"An extremely fast Python package installer and resolver, written in Rust."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"blackoptional-",children:[(0,s.jsx)(n.code,{children:"black"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"black",id:"projen.python.PyprojectTomlTool.property.black"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly black: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The uncompromising Python code formatter."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"cibuildwheeloptional-",children:[(0,s.jsx)(n.code,{children:"cibuildwheel"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"cibuildwheel",id:"projen.python.PyprojectTomlTool.property.cibuildwheel"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly cibuildwheel: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Build Python wheels for all platforms."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"dfcoptional-",children:[(0,s.jsx)(n.code,{children:"dfc"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"dfc",id:"projen.python.PyprojectTomlTool.property.dfc"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly dfc: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A CLI tool to check and validate Python docstring formatting and completeness."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"docstringformatcheckeroptional-",childr
1en:[(0,s.jsx)(n.code,{children:"docstringFormatChecker"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"docstringFormatChecker",id:"projen.python.PyprojectTomlTool.property.docstringFormatChecker"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly docstringFormatChecker: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A CLI tool to check and validate Python docstring formatting and completeness."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"fastapioptional-",children:[(0,s.jsx)(n.code,{children:"fastapi"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"fastapi",id:"projen.python.PyprojectTomlTool.property.fastapi"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly fastapi: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"FastAPI web framework configuration."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"hatchoptional-",children:[(0,s.jsx)(n.code,{children:"hatch"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"hatch",id:"projen.python.PyprojectTomlTool.property.hatch"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly hatch: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Modern, extensible Python project management."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"maturinoptional-",children:[(0,s.jsx)(n.code,{children:"maturin"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"maturin",id:"projen.python.PyprojectTomlTool.property.maturin"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly maturin: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"mypyoptional-",children:[(0,s.jsx)(n.code,{children:"mypy"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"mypy",id:"projen.python.PyprojectTomlTool.property.mypy"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly mypy: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Optional static typing for Python."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pdmoptional-",children:[(0,s.jsx)(n.code,{children:"pdm"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pdm",id:"projen.python.PyprojectTomlTool.property.pdm"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pdm: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A modern Python package manager with PEP 621 support."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pixioptional-",children:[(0,s.jsx)(n.code,{children:"pixi"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pixi",id:"projen.python.PyprojectTomlTool.property.pixi"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pixi: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A package manager and task runner."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"poeoptional-",children:[(0,s.jsx)(n.code,{children:"poe"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"poe",id:"projen.python.PyprojectTomlTool.property.poe"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly poe: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["A task runner that works well with ",(0,s.jsx)(n.code,{children:"pyproject.toml"})," files."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"poetryoptional-",children:[(0,s.jsx)(n.code,{children:"poetry"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"poetry",id:"projen.python.PyprojectTomlTool.property.poetry"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly poetry: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Python dependency management and packaging made easy."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pyrightoptional-",children:[(0,s.jsx)(n.code,{children:"pyright"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pyright",id:"projen.python.PyprojectTomlTool.property.pyright"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pyright: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Static type checker for Python."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pytestoptional--1",children:[(0,s.jsx)(n.code,{children:"pytest"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pytest",id:"projen.python.PyprojectTomlTool.property.pytest"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pytest: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Standardized automated testing of Python packages."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"quikrunoptional-",children:[(0,s.jsx)(n.code,{children:"quikrun"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"quikrun",id:"projen.python.PyprojectTomlTool.property.quikrun"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly quikrun: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A CLI tool to run code files instantly without typing complex commands in terminal."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"reporeviewoptional-",children:[(0,s.jsx)(n.code,{children:"repoReview"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"repoReview",id:"projen.python.PyprojectTomlTool.property.repoReview"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly repoReview: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Review a repository for best practices."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"ruffoptional-",children:[(0,s.jsx)(n.code,{children:"ruff"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"ruff",id:"projen.python.PyprojectTomlTool.property.ruff"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly ruff: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"An extremely fast Python linter and formatter, written in Rust."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scheduledoptional-",children:[(0,s.jsx)(n.code,{children:"scheduled"}),(0,s.jsx)(n.sup,{children:"Optional"}
1)," ",(0,s.jsx)(n.a,{name:"scheduled",id:"projen.python.PyprojectTomlTool.property.scheduled"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly scheduled: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Scheduled jobs in Python's ",(0,s.jsx)(n.code,{children:"pyproject.toml"}),"."]}),"\n",(0,s.jsxs)(n.p,{children:["This is a specification for declaring recurring scheduled jobs in Python projects, in ",(0,s.jsx)(n.code,{children:"pyproject.toml"}),"."]}),"\n",(0,s.jsx)(n.p,{children:"It defines how jobs are declared and how providers would run them."}),"\n",(0,s.jsx)(n.p,{children:"It does not provide a specific implementation for running scheduled jobs, because that is provider specific."}),"\n",(0,s.jsxs)(n.p,{children:["For example, a file at ",(0,s.jsx)(n.code,{children:"app/jobs.py"})," could define:"]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-python",children:'def clean_files():\nprint("Running cleanup...")\n'})}),"\n",(0,s.jsx)(n.p,{children:"You could define a scheduled job to run that function once per day with:"}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-toml",children:'[tool.scheduled.clean-files]\nevery = "day"\nentrypoint = "app.jobs:clean_files"\n'})}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scikitbuildoptional-",children:[(0,s.jsx)(n.code,{children:"scikitBuild"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"scikitBuild",id:"projen.python.PyprojectTomlTool.property.scikitBuild"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly scikitBuild: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Improved build system generator for Python C/C++/Fortran extensions."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setuptoolsoptional-",children:[(0,s.jsx)(n.code,{children:"setuptools"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"setuptools",id:"projen.python.PyprojectTomlTool.property.setuptools"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly setuptools: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Easily download, build, install, upgrade, and uninstall Python packages."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setuptoolsscmoptional-",children:[(0,s.jsx)(n.code,{children:"setuptoolsScm"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"setuptoolsScm",id:"projen.python.PyprojectTomlTool.property.setuptoolsScm"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly setuptoolsScm: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manage Python package versions using SCM (e.g. Git)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"taskipyoptional-",children:[(0,s.jsx)(n.code,{children:"taskipy"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"taskipy",id:"projen.python.PyprojectTomlTool.property.taskipy"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly taskipy: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The complementary task runner for python."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tombioptional-",children:[(0,s.jsx)(n.code,{children:"tombi"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"tombi",id:"projen.python.PyprojectTomlTool.property.tombi"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly tombi: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Tombi is a toolkit for TOML;"}),"\n",(0,s.jsx)(n.p,{children:"providing a formatter/linter and language server"}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"toxoptional-",children:[(0,s.jsx)(n.code,{children:"tox"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"tox",id:"projen.python.PyprojectTomlTool.property.tox"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly tox: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Standardized automated testing of Python packages."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"tyoptional-",children:[(0,s.jsx)(n.code,{children:"ty"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"ty",id:"projen.python.PyprojectTomlTool.property.ty"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly ty: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"An extremely fast Python type checker, written in Rust."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"uvoptional-",children:[(0,s.jsx)(n.code,{children:"uv"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"uv",id:"projen.python.PyprojectTomlTool.property.uv"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly uv: any;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," any"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"An extremely fast Python package installer and resolver, written in Rust."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pytestoptions-",children:["PytestOptions ",(0,s.jsx)(n.a,{name:"PytestOptions",id:"projen.python.PytestOptions"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--11",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PytestOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pytestOptions: python.PytestOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--24",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestOptions.property.maxFailures",children:"maxFailures"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"number"})}),(0,s.jsx)(n.td,{children:"Stop the testing process after the first N failures."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestOptions.property.testMatch",children:"testMatch"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"List of paths to test files or directories."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestOptions.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Pytest version."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"maxfailuresoptional-",children:[(0,s.jsx)(n.code,{children:"maxFailures"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"maxFailures",id:"projen.python.PytestOptions.property.maxFailures"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly maxFailures: number;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," number"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Stop the testing process after the first N failures."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"testmatchoptional-",children:[(0,s.jsx)(n.code,{children:"testMatch"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"testMatch",id:"projen.python.PytestOptions.property.testMatch"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly testMatch: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," []"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"List of paths to test files or directories."}),"\n",(0,s.jsx)(n.p,{children:"Useful when all project tests are in a known location to speed up\ntest collection and to avoid picking up undesired tests by accident."}),"\n",(0,s.jsxs)(n.p,{children:["Leave empty to discover all test_*.py or *_test.py files, per Pytest default.\nGlob patterns are supported, including ",(0,s.jsx)(n.code,{children:"**"})," for recursive matching."]}),"\n",(0,s.jsxs)(n.p,{children:["The entries form pytest's ",(0,s.jsx)(n.code,{children:"testpaths"})," setting, which is parsed like a shell\nword list, so a path containing space
1s has to be quoted: ",(0,s.jsx)(n.code,{children:"[\"'my tests'\"]"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Example"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:'["tests/unit", "tests/qa"]\n'})}),"\n",(0,s.jsxs)(n.h5,{id:"versionoptional--3",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PytestOptions.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "8.3.5"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Pytest version."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pytestsampleoptions-",children:["PytestSampleOptions ",(0,s.jsx)(n.a,{name:"PytestSampleOptions",id:"projen.python.PytestSampleOptions"})]}),"\n",(0,s.jsx)(n.p,{children:"Options for python test code sample."}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--12",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PytestSampleOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pytestSampleOptions: python.PytestSampleOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--25",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSampleOptions.property.moduleName",children:"moduleName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Name of the python package as used in imports and filenames."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestSampleOptions.property.testdir",children:"testdir"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Test directory."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"modulenamerequired--1",children:[(0,s.jsx)(n.code,{children:"moduleName"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"moduleName",id:"projen.python.PytestSampleOptions.property.moduleName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly moduleName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Name of the python package as used in imports and filenames."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"testdirrequired-",children:[(0,s.jsx)(n.code,{children:"testdir"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"testdir",id:"projen.python.PytestSampleOptions.property.testdir"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly testdir: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Test directory."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pythonexecutableoptions-",children:["PythonExecutableOptions ",(0,s.jsx)(n.a,{name:"PythonExecutableOptions",id:"projen.python.PythonExecutableOptions"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--13",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PythonExecutableOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pythonExecutableOptions: python.PythonExecutableOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--26",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonExecutableOptions.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecoptional--2",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.PythonExecutableOptions.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "python"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pythonpackagingoptions-",children:["PythonPackagingOptions ",(0,s.jsx)(n.a,{name:"PythonPackagingOptions",id:"projen.python.PythonPackagingOptions"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--14",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PythonPackagingOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pythonPackagingOptions: python.PythonPackagingOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--27",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.authorEmail",children:"authorEmail"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's e-mail."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.authorName",children:"authorName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}
1),(0,s.jsx)(n.td,{children:"Author's name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Version of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of PyPI trove classifiers that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A short description of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.homepage",children:"homepage"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the website of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"License of this package as an SPDX identifier."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.packageName",children:"packageName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Package name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.poetryOptions",children:"poetryOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for poetry if using poetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.setupConfig",children:"setupConfig"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"Additional fields to pass in the setup() function if using setuptools."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonPackagingOptions.property.uvOptions",children:"uvOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for uv if using uv."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authoremailrequired--1",children:[(0,s.jsx)(n.code,{children:"authorEmail"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorEmail",id:"projen.python.PythonPackagingOptions.property.authorEmail"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorEmail: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_EMAIL"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Author's e-mail."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authornamerequired--1",children:[(0,s.jsx)(n.code,{children:"authorName"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorName",id:"projen.python.PythonPackagingOptions.property.authorName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_NAME"]}),"\n"]}
1),"\n",(0,s.jsx)(n.p,{children:"Author's name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionrequired--2",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PythonPackagingOptions.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "0.1.0"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Version of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional--4",children:[(0,s.jsx)(n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.PythonPackagingOptions.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of PyPI trove classifiers that describe the project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"https://pypi.org/classifiers/"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional--4",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.PythonPackagingOptions.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A short description of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"homepageoptional--3",children:[(0,s.jsx)(n.code,{children:"homepage"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"homepage",id:"projen.python.PythonPackagingOptions.property.homepage"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly homepage: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the website of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional--4",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.PythonPackagingOptions.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"License of this package as an SPDX identifier."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagenameoptional--1",children:[(0,s.jsx)(n.code,{children:"packageName"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packageName",id:"projen.python.PythonPackagingOptions.property.packageName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"poetryoptionsoptional--1",children:[(0,s.jsx)(n.code,{children:"poetryOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"poetryOptions",id:"projen.python.PythonPackagingOptions.property.poetryOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly poetryOptions: PoetryPyprojectOptionsWithoutDeps;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for poetry if using poetry."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setupconfigoptional--1",children:[(0,s.jsx)(n.code,{children:"setupConfig"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"setupConfig",id:"projen.python.PythonPackagingOptions.property.setupConfig"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly setupConfig: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional fields to pass in the setup() function if using setuptools."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"uvoptionsoptional--1",children:[(0,s.jsx)(n.code,{children:"uvOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"uvOptions",id:"projen.python.PythonPackagingOptions.property.uvOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly uvOptions: UvOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for uv if using uv."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pythonprojectoptions-",children:["PythonProjectOptions ",(0,s.jsx)(n.a,{name:"PythonProjectOptions",id:"projen.python.PythonProjectOptions"})]}),"\n",(0,s.jsxs)(n.p,{children:["Options for ",(0,s.jsx)(n.code,{children:"PythonProject"}),"."]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--15",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PythonProjectOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pythonProjectOptions: python.PythonProjectOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--28",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.name",children:"name"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"This is the name of your project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.commitGenerated",children:"commitGenerated"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Whether to commit the managed files by default."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.gitIgnoreOptions",children:"gitIgnoreOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.IgnoreFileOptions"})}),(0,s.jsx)(n.td,{children:"Configuration options for .gitignore file."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.gitOptions",children:"gitOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.GitOptions"})}),(0,s.jsx)(n.td,{children:"Configuration options for git."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.logging",children:"logging"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.LoggerOptions"})}),(0,s.jsx)(n.td,{children:"Configure logging options such as verbosity."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.outdir",children:"outdir"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The root directory of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.parent",children:"parent"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Project"})}),(0,s.jsx)(n.td,{children:"The parent project, if this project is part of a bigger project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projectTree",children:"projectTree"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsxs)(n.td,{children:["Generate a project tree file (",(0,s.jsx)(n.code,{children:".projen/tree.json"}),") that shows all components and their relationships. Useful for understanding your project structure and debugging."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenCommand",children:"projenCommand"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The shell command to use in order to run the projen CLI."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcJson",children:"projenrcJson"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsxs)(n.td,{children:["Generate (once) .projenrc.json (in JSON). Set to ",(0,s.jsx)(n.code,{children:"false"})," in order to disable .projenrc.json generation."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcJsonOptions",children:"projenrcJsonOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.ProjenrcJsonOptions"})}),(0,s.jsx)(n.td,{children:"Options for .projenrc.json."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.renovatebot",children:"renovatebot"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use renovatebot to handle dependency upgrades."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.renovatebotOptions",children:"renovatebotOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.RenovatebotOptions"})}),(0,s.jsx)(n.td,{children:"Options for renovatebot."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.autoApproveOptions",children:"autoApproveOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.github.AutoApproveOptions"})}),(0,s.jsx)(n.td,{children:"Enable and configure the 'auto approve' workflow."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.autoMerge",children:"autoMerge"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Enable automatic merging on GitHub."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.autoMergeOptions",children:"autoMergeOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.github.AutoMergeOptions"})}),(0,s.jsx)(n.td,{children:"Configure options for automatic merging on GitHub."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.clobber",children:"clobber"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsxs)(n.td,{children:["Add a ",(0,s.jsx)(n.code,{children:"clobber"})," task which resets the repo to origin."]})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.devContainer",children:"devContainer"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Add a VSCode development environment (used for GitHub Codespaces)."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.github",children:"github"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Enable GitHub integration."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.githubOptions",children:"githubOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.github.GitHubOptions"})}),(0,s.jsx)(n.td,{children:"Options for GitHub integration."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.gitpod",children:"gitpod"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Add a Gitpod development environment."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenCredentials",children:"projenCredentials"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.github.GithubCredentials"})}),(0,s.jsx)(n.td,{children:"Choose a method of providing GitHub API access for projen workflows."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.readme",children:"readme"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.SampleReadmeProps"})}),(0,s.jsx)(n.td,{children:"The README setup."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.stale",children:"stale"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Auto-close of stale issues and pull request."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.staleOptions",children:"staleOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.github.StaleOptions"})}),(0,s.jsx)(n.td,{children:"Auto-close stale issues and pull requests."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{chi
1ldren:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.vscode",children:"vscode"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Enable VSCode integration."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.authorEmail",children:"authorEmail"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's e-mail."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.authorName",children:"authorName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Version of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of PyPI trove classifiers that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A short description of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.homepage",children:"homepage"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the website of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"License of this package as an SPDX identifier."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.packageName",children:"packageName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Package name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.poetryOptions",children:"poetryOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for poetry if using poetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.setupConfig",children:"setupConfig"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"Additional fields to pass in the setup() function if using setuptools."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.uvOptions",children:"uvOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for uv if using uv."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.moduleName",children:"moduleName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Name of the python package as used in imports and filenames."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.deps",children:"deps"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"List of runtime dependencies for this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.devDeps",children:"devDeps"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"List of dev dependencies for this project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.pip",children:"pip"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use pip with a requirements.txt file to track project dependencies."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.poetry",children:"poetry"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcJs",children:"projenrcJs"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use projenrc in javascript."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcJsOptions",children:"projenrcJsOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.javascript.ProjenrcOptions"})}),(0,s.jsx)(n.td,{children:"Options related to projenrc in JavaScript."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcPython",children:"projenrcPython"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use projenrc in Python."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcPythonOptions",children:"projenrcPythonOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.ProjenrcOptions",children:"ProjenrcOptions"})})}),(0,s.jsx)(n.td,{children:"Options related to projenrc in python."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcTs",children:"projenrcTs"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use projenrc in TypeScript."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.projenrcTsOptions",children:"projenrcTsOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.typescript.ProjenrcTsOptions"})}),(0,s.jsx)(n.td,{children:"Options related to projenrc in TypeScript."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.pytest",children:"pytest"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Include pytest tests."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.pytestOptions",children:"pytestOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PytestOptions",children:"PytestOptions"})})}),(0,s.jsx)(n.td,{children:"pytest options."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.sample",children:"sample"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Include sample code and test if the relevant directories don't exist."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.sampleTestdir",children:"sampleTestdir"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Location of sample tests."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.setuptools",children:"setuptools"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use setuptools with a setup.py script for packaging and publishing."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.uv",children:"uv"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use uv to manage your project dependencies, virtual environment, and (optional) packaging/publishing."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.venv",children:"venv"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"boolean"})}),(0,s.jsx)(n.td,{children:"Use venv to manage a virtual environment for installing dependencies inside."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonProjectOptions.property.venvOptions",children:"venvOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.VenvOptions",children:"VenvOptions"})})}),(0,s.jsx)(n.td,{children:"Venv options."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"namerequired--4",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.PythonProjectOptions.property.name"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly name: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $BASEDIR"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"This is the name of your project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"commitgeneratedoptional-",children:[(0,s.jsx)(n.code,{children:"commitGenerated"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"commitGenerated",id:"projen.python.PythonProjectOptions.property.commitGenerated"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly commitGenerated: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Whether to commit the managed files by default."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"gitignoreoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"gitIgnoreOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"gitIgnoreOptions",id:"projen.python.PythonProjectOptions.property.gitIgnoreOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly gitIgnoreOptions: IgnoreFileOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.IgnoreFileOptions"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Configuration options for .gitignore file."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"gitoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"gitOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"gitOptions",id:"projen.python.PythonProjectOptions.property.gitOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly gitOptions: GitOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.GitOptions"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Configuration options for git."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"loggingoptional-",children:[(0,s.jsx)(n.code,{children:"logging"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"logging",id:"projen.python.PythonProjectOptions.property.logging"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly logging: LoggerOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.LoggerOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," {}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Configure logging options such as verbosity."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"outdiroptional-",children:[(0,s.jsx)(n.code,{children:"outdir"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"outdir",id:"projen.python.PythonProjectOptions.property.outdir"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly outdir: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "."']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The root directory of the project."}),"\n",(0,s.jsx)(n.p,{children:"Relative to this directory, all files are synthesized."}),"\n",(0,s.jsx)(n.p,{children:"If this project has a parent, this directory is relative to the parent\ndirectory and it cannot be the same as the parent or any of it's other\nsubprojects."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"parentoptional--1",children:[(0,s.jsx)(n.code,{children:"parent"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"parent",id:"projen.python.PythonProjectOptions.property.parent"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly parent: Project;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Project"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The parent project, if this project is part of a bigger project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projecttreeoptional-",children:[(0,s.jsx)(n.code,{children:"projectTree"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projectTree",id:"projen.python.PythonProjectOptions.property.projectTree"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projectTree: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Generate a project tree file (",(0,s.jsx)(n.code,{children:".projen/tree.json"}),") that shows all components and their re
1lationships. Useful for understanding your project structure and debugging."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projencommandoptional-",children:[(0,s.jsx)(n.code,{children:"projenCommand"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenCommand",id:"projen.python.PythonProjectOptions.property.projenCommand"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenCommand: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "npx projen"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The shell command to use in order to run the projen CLI."}),"\n",(0,s.jsx)(n.p,{children:"Inserted verbatim into task steps, workflows and IDE configuration, and run\nby each of their shells - locally, in CI and in dev containers. Keep it a\nplain unquoted command, since shell syntax in it executes in all of them."}),"\n",(0,s.jsx)(n.p,{children:"Can be used to customize in special environments."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrcjsonoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcJson"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcJson",id:"projen.python.PythonProjectOptions.property.projenrcJson"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcJson: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Generate (once) .projenrc.json (in JSON). Set to ",(0,s.jsx)(n.code,{children:"false"})," in order to disable .projenrc.json generation."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrcjsonoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcJsonOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcJsonOptions",id:"projen.python.PythonProjectOptions.property.projenrcJsonOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcJsonOptions: ProjenrcJsonOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.ProjenrcJsonOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," default options"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Options for .projenrc.json."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"renovatebotoptional-",children:[(0,s.jsx)(n.code,{children:"renovatebot"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"renovatebot",id:"projen.python.PythonProjectOptions.property.renovatebot"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly renovatebot: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use renovatebot to handle dependency upgrades."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"renovatebotoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"renovatebotOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"renovatebotOptions",id:"projen.python.PythonProjectOptions.property.renovatebotOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly renovatebotOptions: RenovatebotOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.RenovatebotOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," default options"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Options for renovatebot."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"autoapproveoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"autoApproveOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"autoApproveOptions",id:"projen.python.PythonProjectOptions.property.autoApproveOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly autoApproveOptions: AutoApproveOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.github.AutoApproveOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," auto approve is disabled"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Enable and configure the 'auto approve' workflow."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"automergeoptional-",children:[(0,s.jsx)(n.code,{children:"autoMerge"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"autoMerge",id:"projen.python.PythonProjectOptions.property.autoMerge"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly autoMerge: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Enable automatic merging on GitHub."}),"\n",(0,s.jsxs)(n.p,{children:["Has no effect if ",(0,s.jsx)(n.code,{children:"github.mergify"}),"\nis set to false."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"automergeoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"autoMergeOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"autoMergeOptions",id:"projen.python.PythonProjectOptions.property.autoMergeOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly autoMergeOptions: AutoMergeOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.github.AutoMergeOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," see defaults in ",(0,s.jsx)(n.code,{children:"AutoMergeOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Configure options for automatic merging on GitHub."}),"\n",(0,s.jsxs)(n.p,{children:["Has no effect if\n",(0,s.jsx)(n.code,{children:"github.mergify"})," or ",(0,s.jsx)(n.code,{children:"autoMerge"})," is set to false."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"clobberoptional-",children:[(0,s.jsx)(n.code,{children:"clobber"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"clobber",id:"projen.python.PythonProjectOptions.property.clobber"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly clobber: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true, but false for subprojects"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Add a ",(0,s.jsx)(n.code,{children:"clobber"})," task which resets the repo to origin."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"devcontaineroptional--1",children:[(0,s.jsx)(n.code,{children:"devContainer"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"devContainer",id:"projen.python.PythonProjectOptions.property.devContainer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly devContainer: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Add a VSCode development environment (used for GitHub Codespaces)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"githuboptional--1",children:[(0,s.jsx)(n.code,{children:"github"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"github",id:"projen.python.PythonProjectOptions.property.github"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly github: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Enable GitHub integration."}),"\n",(0,s.jsx)(n.p,{children:"Enabled by default for root projects. Disabled for non-root projects."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"githuboptionsoptional-",children:[(0,s.jsx)(n.code,{children:"githubOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"githubOptions",id:"projen.python.PythonProjectOptions.property.githubOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly githubOptions: GitHubOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.github.GitHubOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," see GitHubOptions"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Options for GitHub integration."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"gitpodoptional--1",children:[(0,s.jsx)(n.code,{children:"gitpod"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"gitpod",id:"projen.python.PythonProjectOptions.property.gitpod"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly gitpod: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Add a Gitpod development environment."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projencredentialsoptional-",children:[(0,s.jsx)(n.code,{children:"projenCredentials"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenCredentials",id:"projen.python.PythonProjectOptions.property.projenCredentials"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenCredentials: GithubCredentials;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.github.GithubCredentials"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," use a personal access token named PROJEN_GITHUB_TOKEN"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Choose a method of providing GitHub API access for projen workflows."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readmeoptional--3",children:[(0,s.jsx)(n.code,{children:"readme"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"readme",id:"projen.python.PythonProjectOptions.property.readme"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly readme: SampleReadmeProps;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.SampleReadmeProps"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," { filename: 'README.md', contents: '# replace this' }"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The README setup."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.em,{children:"Example"})}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"\"{ filename: 'readme.md', contents: '# title' }\"\n"})}),"\n",(0,s.jsxs)(n.h5,{id:"staleoptional-",children:[(0,s.jsx)(n.code,{children:"stale"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"stale",id:"projen.python.PythonProjectOptions.property.stale"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly stale: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Auto-close of stale issues and pull request."}),"\n",(0,s.jsxs)(n.p,{children:["See ",(0,s.jsx)(n.code,{children:"staleOptions"})," for options."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"staleoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"staleOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"staleOptions",id:"projen.python.PythonProjectOptions.property.staleOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly staleOptions: StaleOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.github.StaleOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," see defaults in ",(0,s.jsx)(n.code,{children:"StaleOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Auto-close stale issues and pull requests."}),"\n",(0,s.jsxs)(n.p,{children:["To disable set ",(0,s.jsx)(n.code,{children:"stale"})," to ",(0,s.jsx)(n.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"vscodeoptional--1",children:[(0,s.jsx)(n.code,{children:"vscode"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"vscode",id:"projen.python.PythonProjectOptions.property.vscode"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly vscode: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Enable VSCode integration."}),"\n",(0,s.jsx)(n.p,{children:"Enabled by default for root projects. Disabled for non-root projects."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authoremailrequired--2",children:[(0,s.jsx)(n.code,{children:"authorEmail"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorEmail",id:"projen.python.PythonProjectOptions.property.authorEmail"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorEmail: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_EMAIL"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Author's e-mail."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authornamerequired--2",children:[(0,s.jsx)(n.code,{children:"authorName"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorName",id:"projen.python.PythonProjectOptions.property.authorName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_NAME"]}),"\n"]}
1),"\n",(0,s.jsx)(n.p,{children:"Author's name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionrequired--3",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.PythonProjectOptions.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "0.1.0"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Version of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional--5",children:[(0,s.jsx)(n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.PythonProjectOptions.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of PyPI trove classifiers that describe the project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"https://pypi.org/classifiers/"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional--5",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.PythonProjectOptions.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A short description of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"homepageoptional--4",children:[(0,s.jsx)(n.code,{children:"homepage"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"homepage",id:"projen.python.PythonProjectOptions.property.homepage"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly homepage: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the website of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional--5",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.PythonProjectOptions.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"License of this package as an SPDX identifier."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagenameoptional--2",children:[(0,s.jsx)(n.code,{children:"packageName"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packageName",id:"projen.python.PythonProjectOptions.property.packageName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"poetryoptionsoptional--2",children:[(0,s.jsx)(n.code,{children:"poetryOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"poetryOptions",id:"projen.python.PythonProjectOptions.property.poetryOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly poetryOptions: PoetryPyprojectOptionsWithoutDeps;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for poetry if using poetry."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setupconfigoptional--2",children:[(0,s.jsx)(n.code,{children:"setupConfig"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"setupConfig",id:"projen.python.PythonProjectOptions.property.setupConfig"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly setupConfig: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional fields to pass in the setup() function if using setuptools."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"uvoptionsoptional--2",children:[(0,s.jsx)(n.code,{children:"uvOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"uvOptions",id:"projen.python.PythonProjectOptions.property.uvOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly uvOptions: UvOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for uv if using uv."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecoptional--3",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.PythonProjectOptions.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "python"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"modulenamerequired--2",children:[(0,s.jsx)(n.code,{children:"moduleName"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"moduleName",id:"projen.python.PythonProjectOptions.property.moduleName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly moduleName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $PYTHON_MODULE_NAME"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Name of the python package as used in imports and filenames."}
1),"\n",(0,s.jsx)(n.p,{children:"Must only consist of alphanumeric characters and underscores."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"depsoptional-",children:[(0,s.jsx)(n.code,{children:"deps"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"deps",id:"projen.python.PythonProjectOptions.property.deps"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly deps: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," []"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"List of runtime dependencies for this project."}),"\n",(0,s.jsxs)(n.p,{children:["Dependencies use the format: ",(0,s.jsx)(n.code,{children:"<module>@<semver>"})]}),"\n",(0,s.jsxs)(n.p,{children:["Additional dependencies can be added via ",(0,s.jsx)(n.code,{children:"project.addDependency()"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"devdepsoptional-",children:[(0,s.jsx)(n.code,{children:"devDeps"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"devDeps",id:"projen.python.PythonProjectOptions.property.devDeps"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly devDeps: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," []"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"List of dev dependencies for this project."}),"\n",(0,s.jsxs)(n.p,{children:["Dependencies use the format: ",(0,s.jsx)(n.code,{children:"<module>@<semver>"})]}),"\n",(0,s.jsxs)(n.p,{children:["Additional dependencies can be added via ",(0,s.jsx)(n.code,{children:"project.addDevDependency()"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pipoptional-",children:[(0,s.jsx)(n.code,{children:"pip"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pip",id:"projen.python.PythonProjectOptions.property.pip"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pip: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true, unless poetry is true, then false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use pip with a requirements.txt file to track project dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"poetryoptional--1",children:[(0,s.jsx)(n.code,{children:"poetry"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"poetry",id:"projen.python.PythonProjectOptions.property.poetry"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly poetry: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use poetry to manage your project dependencies, virtual environment, and (optional) packaging/publishing."}),"\n",(0,s.jsxs)(n.p,{children:["This feature is incompatible with pip, setuptools, or venv.\nIf you set this option to ",(0,s.jsx)(n.code,{children:"true"}),", then pip, setuptools, and venv must be set to ",(0,s.jsx)(n.code,{children:"false"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrcjsoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcJs"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcJs",id:"projen.python.PythonProjectOptions.property.projenrcJs"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcJs: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use projenrc in javascript."}),"\n",(0,s.jsxs)(n.p,{children:["This will install ",(0,s.jsx)(n.code,{children:"projen"})," as a JavaScript dependency and add a ",(0,s.jsx)(n.code,{children:"synth"}),"\ntask which will run ",(0,s.jsx)(n.code,{children:".projenrc.js"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrcjsoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcJsOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcJsOptions",id:"projen.python.PythonProjectOptions.property.projenrcJsOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcJsOptions: ProjenrcOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.javascript.ProjenrcOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," default options"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Options related to projenrc in JavaScript."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrcpythonoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcPython"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcPython",id:"projen.python.PythonProjectOptions.property.projenrcPython"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcPython: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use projenrc in Python."}),"\n",(0,s.jsxs)(n.p,{children:["This will install ",(0,s.jsx)(n.code,{children:"projen"})," as a Python dependency and add a ",(0,s.jsx)(n.code,{children:"synth"}),"\ntask which will run ",(0,s.jsx)(n.code,{children:".projenrc.py"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrcpythonoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcPythonOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcPythonOptions",id:"projen.python.PythonProjectOptions.property.projenrcPythonOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcPythonOptions: ProjenrcOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.ProjenrcOptions",children:"ProjenrcOptions"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," default options"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Options related to projenrc in python."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrctsoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcTs"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcTs",id:"projen.python.PythonProjectOptions.property.projenrcTs"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcTs: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use projenrc in TypeScript."}),"\n",(0,s.jsxs)(n.p,{children:["This will create a tsconfig file (default: ",(0,s.jsx)(n.code,{children:"tsconfig.projen.json"}),")\nand use a typescript runner in the default task to parse the project source files."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projenrctsoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"projenrcTsOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"projenrcTsOptions",id:"projen.python.PythonProjectOptions.property.projenrcTsOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly projenrcTsOptions: ProjenrcTsOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.typescript.ProjenrcTsOptions"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," default options"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Options related to projenrc in TypeScript."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pytestoptional--2",children:[(0,s.jsx)(n.code,{children:"pytest"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pytest",id:"projen.python.PythonProjectOptions.property.pytest"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pytest: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Include pytest tests."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pytestoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"pytestOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pytestOptions",id:"projen.python.PythonProjectOptions.property.pytestOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pytestOptions: PytestOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PytestOptions",children:"PytestOptions"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," defaults"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"pytest options."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"sampleoptional-",children:[(0,s.jsx)(n.code,{children:"sample"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"sample",id:"projen.python.PythonProjectOptions.property.sample"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly sample: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Include sample code and test if the relevant directories don't exist."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"sampletestdiroptional-",children:[(0,s.jsx)(n.code,{children:"sampleTestdir"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"sampleTestdir",id:"projen.python.PythonProjectOptions.property.sampleTestdir"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly sampleTestdir: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "tests"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Location of sample tests."}),"\n",(0,s.jsx)(n.p,{children:"Typically the same directory where project tests will be located."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setuptoolsoptional--1",children:[(0,s.jsx)(n.code,{children:"setuptools"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"setuptools",id:"projen.python.PythonProjectOptions.property.setuptools"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly setuptools: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true, unless poetry is true, then false"]}
1),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use setuptools with a setup.py script for packaging and publishing."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"uvoptional--1",children:[(0,s.jsx)(n.code,{children:"uv"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"uv",id:"projen.python.PythonProjectOptions.property.uv"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly uv: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use uv to manage your project dependencies, virtual environment, and (optional) packaging/publishing."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"venvoptional-",children:[(0,s.jsx)(n.code,{children:"venv"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"venv",id:"projen.python.PythonProjectOptions.property.venv"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly venv: boolean;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," boolean"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," true, unless poetry is true, then false"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Use venv to manage a virtual environment for installing dependencies inside."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"venvoptionsoptional-",children:[(0,s.jsx)(n.code,{children:"venvOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"venvOptions",id:"projen.python.PythonProjectOptions.property.venvOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly venvOptions: VenvOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.VenvOptions",children:"VenvOptions"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," defaults"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Venv options."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"pythonsampleoptions-",children:["PythonSampleOptions ",(0,s.jsx)(n.a,{name:"PythonSampleOptions",id:"projen.python.PythonSampleOptions"})]}),"\n",(0,s.jsx)(n.p,{children:"Options for python sample code."}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--16",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.PythonSampleOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst pythonSampleOptions: python.PythonSampleOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--29",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PythonSampleOptions.property.dir",children:"dir"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Sample code directory."})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"dirrequired-",children:[(0,s.jsx)(n.code,{children:"dir"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"dir",id:"projen.python.PythonSampleOptions.property.dir"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly dir: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Sample code directory."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"requirementsfileoptions-",children:["RequirementsFileOptions ",(0,s.jsx)(n.a,{name:"RequirementsFileOptions",id:"projen.python.RequirementsFileOptions"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--17",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.RequirementsFileOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst requirementsFileOptions: python.RequirementsFileOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--30",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.RequirementsFileOptions.property.packageProvider",children:"packageProvider"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPackageProvider",children:"IPackageProvider"})})}),(0,s.jsx)(n.td,{children:"Provide a list of packages that can be dynamically updated."})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packageprovideroptional-",children:[(0,s.jsx)(n.code,{children:"packageProvider"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packageProvider",id:"projen.python.RequirementsFileOptions.property.packageProvider"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageProvider: IPackageProvider;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPackageProvider",children:"IPackageProvider"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Provide a list of packages that can be dynamically updated."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"setuppyoptions-",children:["SetupPyOptions ",(0,s.jsx)(n.a,{name:"SetupPyOptions",id:"projen.python.SetupPyOptions"})]}),"\n",(0,s.jsx)(n.p,{children:"Fields to pass in the setup() function of setup.py."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://docs.python.org/3/distutils/setupscript.html",children:"https://docs.python.org/3/distutils/setupscript.html"})}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--18",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.SetupPyOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst setupPyOptions: python.SetupPyOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--31",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.additionalOptions",children:"additionalOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"Escape hatch to allow any value."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.authorEmail",children:"authorEmail"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's e-mail."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.authorName",children:"authorName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}
1),(0,s.jsx)(n.td,{children:"Author's name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of PyPI trove classifiers that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A short project description."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.homepage",children:"homepage"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Package's Homepage / Website."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"The project license."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.name",children:"name"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Name of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.packages",children:"packages"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"List of submodules to be packaged."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetupPyOptions.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Manually specify package version."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"additionaloptionsoptional-",children:[(0,s.jsx)(n.code,{children:"additionalOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"additionalOptions",id:"projen.python.SetupPyOptions.property.additionalOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly additionalOptions: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Escape hatch to allow any value."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authoremailoptional-",children:[(0,s.jsx)(n.code,{children:"authorEmail"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"authorEmail",id:"projen.python.SetupPyOptions.property.authorEmail"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorEmail: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Author's e-mail."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authornameoptional-",children:[(0,s.jsx)(n.code,{children:"authorName"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"authorName",id:"projen.python.SetupPyOptions.property.authorName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Author's name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional--6",children:[(0,s.jsx)(n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.SetupPyOptions.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of PyPI trove classifiers that describe the project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"https://pypi.org/classifiers/"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional--6",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.SetupPyOptions.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A short project description."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"homepageoptional--5",children:[(0,s.jsx)(n.code,{children:"homepage"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"homepage",id:"projen.python.SetupPyOptions.property.homepage"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly homepage: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package's Homepage / Website."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional--6",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.SetupPyOptions.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The project license."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"nameoptional--3",children:[(0,s.jsx)(n.code,{children:"name"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"name",id:"projen.python.SetupPyOptions.property.name"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly name: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Name of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagesoptional--2",children:[(0,s.jsx)(n.code,{children:"packages"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packages",id:"projen.python.SetupPyOptions.property.packages"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packages: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"List of submodules to be packaged."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionoptional--4",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Optional"}
1)," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.SetupPyOptions.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Manually specify package version."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"setuptoolsoptions-",children:["SetuptoolsOptions ",(0,s.jsx)(n.a,{name:"SetuptoolsOptions",id:"projen.python.SetuptoolsOptions"})]}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--19",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.SetuptoolsOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst setuptoolsOptions: python.SetuptoolsOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--32",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.authorEmail",children:"authorEmail"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's e-mail."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.authorName",children:"authorName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Author's name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.version",children:"version"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Version of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.classifiers",children:"classifiers"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string[]"})}),(0,s.jsx)(n.td,{children:"A list of PyPI trove classifiers that describe the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.description",children:"description"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A short description of the package."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.homepage",children:"homepage"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"A URL to the website of the project."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.license",children:"license"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"License of this package as an SPDX identifier."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.packageName",children:"packageName"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Package name."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.poetryOptions",children:"poetryOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for poetry if using poetry."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.setupConfig",children:"setupConfig"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"{[ key: string ]: any}"})}),(0,s.jsx)(n.td,{children:"Additional fields to pass in the setup() function if using setuptools."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.uvOptions",children:"uvOptions"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})})}),(0,s.jsx)(n.td,{children:"Additional options to set for uv if using uv."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.SetuptoolsOptions.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authoremailrequired--3",children:[(0,s.jsx)(n.code,{children:"authorEmail"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorEmail",id:"projen.python.SetuptoolsOptions.property.authorEmail"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorEmail: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_EMAIL"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Author's e-mail."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authornamerequired--3",children:[(0,s.jsx)(n.code,{children:"authorName"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"authorName",id:"projen.python.SetuptoolsOptions.property.authorName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly authorName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," $GIT_USER_NAME"]}),"\n"]}
1),"\n",(0,s.jsx)(n.p,{children:"Author's name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"versionrequired--4",children:[(0,s.jsx)(n.code,{children:"version"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"version",id:"projen.python.SetuptoolsOptions.property.version"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly version: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "0.1.0"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Version of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiersoptional--7",children:[(0,s.jsx)(n.code,{children:"classifiers"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"classifiers",id:"projen.python.SetuptoolsOptions.property.classifiers"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly classifiers: string[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A list of PyPI trove classifiers that describe the project."}),"\n",(0,s.jsxs)(n.blockquote,{children:["\n",(0,s.jsx)(n.p,{children:(0,s.jsx)(n.a,{href:"https://pypi.org/classifiers/",children:"https://pypi.org/classifiers/"})}),"\n"]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"descriptionoptional--7",children:[(0,s.jsx)(n.code,{children:"description"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"description",id:"projen.python.SetuptoolsOptions.property.description"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly description: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A short description of the package."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"homepageoptional--6",children:[(0,s.jsx)(n.code,{children:"homepage"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"homepage",id:"projen.python.SetuptoolsOptions.property.homepage"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly homepage: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A URL to the website of the project."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"licenseoptional--7",children:[(0,s.jsx)(n.code,{children:"license"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"license",id:"projen.python.SetuptoolsOptions.property.license"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly license: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"License of this package as an SPDX identifier."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagenameoptional--3",children:[(0,s.jsx)(n.code,{children:"packageName"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"packageName",id:"projen.python.SetuptoolsOptions.property.packageName"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packageName: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Package name."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"poetryoptionsoptional--3",children:[(0,s.jsx)(n.code,{children:"poetryOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"poetryOptions",id:"projen.python.SetuptoolsOptions.property.poetryOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly poetryOptions: PoetryPyprojectOptionsWithoutDeps;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PoetryPyprojectOptionsWithoutDeps",children:"PoetryPyprojectOptionsWithoutDeps"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for poetry if using poetry."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setupconfigoptional--3",children:[(0,s.jsx)(n.code,{children:"setupConfig"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"setupConfig",id:"projen.python.SetuptoolsOptions.property.setupConfig"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly setupConfig: {[ key: string ]: any};\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," {[ key: string ]: any}"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional fields to pass in the setup() function if using setuptools."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"uvoptionsoptional--3",children:[(0,s.jsx)(n.code,{children:"uvOptions"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"uvOptions",id:"projen.python.SetuptoolsOptions.property.uvOptions"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly uvOptions: UvOptions;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.UvOptions",children:"UvOptions"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Additional options to set for uv if using uv."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecoptional--4",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.SetuptoolsOptions.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "python"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"uvoptions-",children:["UvOptions ",(0,s.jsx)(n.a,{name:"UvOptions",id:"projen.python.UvOptions"})]}),"\n",(0,s.jsx)(n.p,{children:"Options for UV project."}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--20",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.UvOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst uvOptions: python.UvOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--33",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions.property.buildSystem",children:"buildSystem"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.BuildSystem",children:"BuildSystem"})})}),(0,s.jsx)(n.td,{children:"Declares any Python level dependencies that must be installed in order to run the project\u2019s build system successfully."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions.property.project",children:"project"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject",children:"PyprojectTomlProject"})})}),(0,s.jsx)(n.td,{children:"The project's basic metadata configuration."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.UvOptions.property.uv",children:"uv"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.uvConfig.UvConfiguration",children:"UvConfiguration"})})}),(0,s.jsx)(n.td,{children:"The configuration and metadata for uv."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecoptional--5",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.UvOptions.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "python"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"buildsystemoptional--1",children:[(0,s.jsx)(n.code,{children:"buildSystem"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"buildSystem",id:"projen.python.UvOptions.property.buildSystem"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly buildSystem: BuildSystem;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.BuildSystem",children:"BuildSystem"})]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"})," no build system"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Declares any Python level dependencies that must be installed in order to run the project\u2019s build system successfully."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"projectoptional--1",children:[(0,s.jsx)(n.code,{children:"project"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"project",id:"projen.python.UvOptions.property.project"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly project: PyprojectTomlProject;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProject",children:"PyprojectTomlProject"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The project's basic metadata configuration."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"uvoptional--2",children:[(0,s.jsx)(n.code,{children:"uv"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"uv",id:"projen.python.UvOptions.property.uv"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly uv: UvConfiguration;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.uvConfig.UvConfiguration",children:"UvConfiguration"})]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"The configuration and metadata for uv."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"venvoptions-",children:["VenvOptions ",(0,s.jsx)(n.a,{name:"VenvOptions",id:"projen.python.VenvOptions"})]}),"\n",(0,s.jsx)(n.p,{children:"Options for venv."}),"\n",(0,s.jsxs)(n.h4,{id:"initializer--21",children:["Initializer ",(0,s.jsx)(n.a,{name:"Initializer",id:"projen.python.VenvOptions.Initializer"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"import { python } from 'projen'\n\nconst venvOptions: python.VenvOptions = { ... }\n"})}),"\n",(0,s.jsxs)(n.h4,{id:"properties--34",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.VenvOptions.property.envdir",children:"envdir"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Name of directory to store the environment in."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.VenvOptions.property.pythonExec",children:"pythonExec"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"string"})}),(0,s.jsx)(n.td,{children:"Path to the python executable to use."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"envdiroptional-",children:[(0,s.jsx)(n.code,{children:"envdir"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"envdir",id:"projen.python.VenvOptions.property.envdir"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly envdir: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' ".env"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Name of directory to store the environment in."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"pythonexecoptional--6",children:[(0,s.jsx)(n.code,{children:"pythonExec"}),(0,s.jsx)(n.sup,{children:"Optional"})," ",(0,s.jsx)(n.a,{name:"pythonExec",id:"projen.python.VenvOptions.property.pythonExec"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly pythonExec: string;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Default:"}),' "python"']}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"Path to the python executable to use."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h2,{id:"protocols-",children:["Protocols ",(0,s.jsx)(n.a,{name:"Protocols",id:"Protocols"})]}),"\n",(0,s.jsxs)(n.h3,{id:"ipackageprovider-",children:["IPackageProvider ",(0,s.jsx)(n.a,{name:"IPackageProvider",id:"projen.python.IPackageProvider"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implemented By:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.IPackageProvider",children:"IPackageProvider"})]}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"properties--35",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPackageProvider.property.packages",children:"packages"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Dependency[]"})}),(0,s.jsx)(n.td,{children:"An array of packages (may be dynamically generated)."})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"packagesrequired--1",children:[(0,s.jsx)(n.code,{children:"packages"}),(0,s.jsx)(n.sup,{childr
1en:"Required"})," ",(0,s.jsx)(n.a,{name:"packages",id:"projen.python.IPackageProvider.property.packages"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly packages: Dependency[];\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Dependency[]"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"An array of packages (may be dynamically generated)."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"ipythondeps-",children:["IPythonDeps ",(0,s.jsx)(n.a,{name:"IPythonDeps",id:"projen.python.IPythonDeps"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implemented By:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.Pip",children:"Pip"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.Poetry",children:"Poetry"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.Uv",children:"Uv"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps",children:"IPythonDeps"})]}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"methods--14",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps.addDependency",children:"addDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a runtime dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps.addDevDependency",children:"addDevDependency"})})}),(0,s.jsx)(n.td,{children:"Adds a dev dependency."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps.installDependencies",children:"installDependencies"})})}),(0,s.jsx)(n.td,{children:"Installs dependencies (called during post-synthesis)."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddependency--4",children:[(0,s.jsx)(n.code,{children:"addDependency"})," ",(0,s.jsx)(n.a,{name:"addDependency",id:"projen.python.IPythonDeps.addDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a runtime dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--8",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.IPythonDeps.addDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"adddevdependency--4",children:[(0,s.jsx)(n.code,{children:"addDevDependency"})," ",(0,s.jsx)(n.a,{name:"addDevDependency",id:"projen.python.IPythonDeps.addDevDependency"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public addDevDependency(spec: string): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Adds a dev dependency."}),"\n",(0,s.jsxs)(n.h6,{id:"specrequired--9",children:[(0,s.jsx)(n.code,{children:"spec"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"spec",id:"projen.python.IPythonDeps.addDevDependency.parameter.spec"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," string"]}),"\n"]}),"\n",(0,s.jsxs)(n.p,{children:["Format ",(0,s.jsx)(n.code,{children:"<module>@<semver>"}),"."]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installdependencies--3",children:[(0,s.jsx)(n.code,{children:"installDependencies"})," ",(0,s.jsx)(n.a,{name:"installDependencies",id:"projen.python.IPythonDeps.installDependencies"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public installDependencies(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Installs dependencies (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h4,{id:"properties--36",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonDeps.property.installCiTask",children:"installCiTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"A task that installs and updates dependencies."})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"installcitaskrequired--3",children:[(0,s.jsx)(n.code,{children:"installCiTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"installCiTask",id:"projen.python.IPythonDeps.property.installCiTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly installCiTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A task that installs and updates dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h3,{id:"ipythonenv-",children:["IPythonEnv ",(0,s.jsx)(n.a,{name:"IPythonEnv",id:"projen.python.IPythonEnv"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implemented By:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.Poetry",children:"Poetry"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.Uv",children:"Uv"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.Venv",children:"Venv"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonEnv",children:"IPythonEnv"})]}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"methods--15",children:["Methods ",(0,s.jsx)(n.a,{name:"Methods",id:"Methods"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonEnv.setupEnvironment",children:"setupEnvironment"})})}),(0,s.jsx)(n.td,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"setupenvironment--3",children:[(0,s.jsx)(n.code,{children:"setupEnvironment"})," ",(0,s.jsx)(n.a,{name:"setupEnvironment",id:"projen.python.IPythonEnv.setupEnvironment"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public setupEnvironment(): void\n"})}),"\n",(0,s.jsx)(n.p,{children:"Initializes the virtual environment if it doesn't exist (called during post-synthesis)."}),"\n",(0,s.jsxs)(n.h3,{id:"ipythonpackaging-",children:["IPythonPackaging ",(0,s.jsx)(n.a,{name:"IPythonPackaging",id:"projen.python.IPythonPackaging"})]}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Implemented By:"})," ",(0,s.jsx)(n.a,{href:"#projen.python.Poetry",children:"Poetry"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.Setuptools",children:"Setuptools"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.Uv",children:"Uv"}),", ",(0,s.jsx)(n.a,{href:"#projen.python.IPythonPackaging",children:"IPythonPackaging"})]}),"\n"]}),"\n",(0,s.jsxs)(n.h4,{id:"properties--37",children:["Properties ",(0,s.jsx)(n.a,{name:"Properties",id:"Properties"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Type"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsx)(n.tbody,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.IPythonPackaging.property.publishTask",children:"publishTask"})})}),(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:"projen.Task"})}),(0,s.jsx)(n.td,{children:"A task that uploads the package to a package repository."})]})})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"publishtaskrequired--3",children:[(0,s.jsx)(n.code,{children:"publishTask"}),(0,s.jsx)(n.sup,{children:"Required"})," ",(0,s.jsx)(n.a,{name:"publishTask",id:"projen.python.IPythonPackaging.property.publishTask"})]}),"\n",(0,s.jsx)(n.pre,{children:(0,s.jsx)(n.code,{className:"language-typescript",children:"public readonly publishTask: Task;\n"})}),"\n",(0,s.jsxs)(n.ul,{children:["\n",(0,s.jsxs)(n.li,{children:[(0,s.jsx)(n.em,{children:"Type:"})," projen.Task"]}),"\n"]}),"\n",(0,s.jsx)(n.p,{children:"A task that uploads the package to a package repository."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h2,{id:"enums-",children:["Enums ",(0,s.jsx)(n.a,{name:"Enums",id:"Enums"})]}),"\n",(0,s.jsxs)(n.h3,{id:"pyprojecttomlprojectdynamic-",children:["PyprojectTomlProjectDynamic ",(0,s.jsx)(n.a,{name:"PyprojectTomlProjectDynamic",id:"projen.python.PyprojectTomlProjectDynamic"})]}),"\n",(0,s.jsxs)(n.h4,{id:"members-",children:["Members ",(0,s.jsx)(n.a,{name:"Members",
1id:"Members"})]}),"\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n",(0,s.jsxs)(n.table,{children:[(0,s.jsx)(n.thead,{children:(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Name"})}),(0,s.jsx)(n.th,{children:(0,s.jsx)(n.strong,{children:"Description"})})]})}),(0,s.jsxs)(n.tbody,{children:[(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.VERSION",children:"VERSION"})})}),(0,s.jsx)(n.td,{children:"version."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.DESCRIPTION",children:"DESCRIPTION"})})}),(0,s.jsx)(n.td,{children:"description."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.README",children:"README"})})}),(0,s.jsx)(n.td,{children:"readme."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.REQUIRES_HYPHEN_PYTHON",children:"REQUIRES_HYPHEN_PYTHON"})})}),(0,s.jsx)(n.td,{children:"requires-python."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.LICENSE",children:"LICENSE"})})}),(0,s.jsx)(n.td,{children:"license."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.LICENSE_HYPHEN_FILES",children:"LICENSE_HYPHEN_FILES"})})}),(0,s.jsx)(n.td,{children:"license-files."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.AUTHORS",children:"AUTHORS"})})}),(0,s.jsx)(n.td,{children:"authors."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.MAINTAINERS",children:"MAINTAINERS"})})}),(0,s.jsx)(n.td,{children:"maintainers."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.KEYWORDS",children:"KEYWORDS"})})}),(0,s.jsx)(n.td,{children:"keywords."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.CLASSIFIERS",children:"CLASSIFIERS"})})}),(0,s.jsx)(n.td,{children:"classifiers."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.URLS",children:"URLS"})})}),(0,s.jsx)(n.td,{children:"urls."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.SCRIPTS",children:"SCRIPTS"})})}),(0,s.jsx)(n.td,{children:"scripts."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.GUI_HYPHEN_SCRIPTS",children:"GUI_HYPHEN_SCRIPTS"})})}),(0,s.jsx)(n.td,{children:"gui-scripts."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.ENTRY_HYPHEN_POINTS",children:"ENTRY_HYPHEN_POINTS"})})}),(0,s.jsx)(n.td,{children:"entry-points."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.DEPENDENCIES",children:"DEPENDENCIES"})})}),(0,s.jsx)(n.td,{children:"dependencies."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.OPTIONAL_HYPHEN_DEPENDENCIES",children:"OPTIONAL_HYPHEN_DEPENDENCIES"})})}),(0,s.jsx)(n.td,{children:"optional-dependencies."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.IMPORT_HYPHEN_NAMES",children:"IMPORT_HYPHEN_NAMES"})})}),(0,s.jsx)(n.td,{children:"import-names."})]}),(0,s.jsxs)(n.tr,{children:[(0,s.jsx)(n.td,{children:(0,s.jsx)(n.code,{children:(0,s.jsx)(n.a,{href:"#projen.python.PyprojectTomlProjectDynamic.IMPORT_HYPHEN_NAMESPACES",children:"IMPORT_HYPHEN_NAMESPACES"})})}),(0,s.jsx)(n.td,{children:"import-namespaces."})]})]})]}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"version-",children:[(0,s.jsx)(n.code,{children:"VERSION"})," ",(0,s.jsx)(n.a,{name:"VERSION",id:"projen.python.PyprojectTomlProjectDynamic.VERSION"})]}),"\n",(0,s.jsx)(n.p,{children:"version."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"description-",children:[(0,s.jsx)(n.code,{children:"DESCRIPTION"})," ",(0,s.jsx)(n.a,{name:"DESCRIPTION",id:"projen.python.PyprojectTomlProjectDynamic.DESCRIPTION"})]}),"\n",(0,s.jsx)(n.p,{children:"description."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"readme-",children:[(0,s.jsx)(n.code,{children:"README"})," ",(0,s.jsx)(n.a,{name:"README",id:"projen.python.PyprojectTomlProjectDynamic.README"})]}),"\n",(0,s.jsx)(n.p,{children:"readme."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"requires_hyphen_python-",children:[(0,s.jsx)(n.code,{children:"REQUIRES_HYPHEN_PYTHON"})," ",(0,s.jsx)(n.a,{name:"REQUIRES_HYPHEN_PYTHON",id:"projen.python.PyprojectTomlProjectDynamic.REQUIRES_HYPHEN_PYTHON"})]}),"\n",(0,s.jsx)(n.p,{children:"requires-python."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"license-",children:[(0,s.jsx)(n.code,{children:"LICENSE"})," ",(0,s.jsx)(n.a,{name:"LICENSE",id:"projen.python.PyprojectTomlProjectDynamic.LICENSE"})]}),"\n",(0,s.jsx)(n.p,{children:"license."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"license_hyphen_files-",children:[(0,s.jsx)(n.code,{children:"LICENSE_HYPHEN_FILES"})," ",(0,s.jsx)(n.a,{name:"LICENSE_HYPHEN_FILES",id:"projen.python.PyprojectTomlProjectDynamic.LICENSE_HYPHEN_FILES"})]}),"\n",(0,s.jsx)(n.p,{children:"license-files."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"authors-",children:[(0,s.jsx)(n.code,{children:"AUTHORS"})," ",(0,s.jsx)(n.a,{name:"AUTHORS",id:"projen.python.PyprojectTomlProjectDynamic.AUTHORS"})]}),"\n",(0,s.jsx)(n.p,{children:"authors."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"maintainers-",children:[(0,s.jsx)(n.code,{children:"MAINTAINERS"})," ",(0,s.jsx)(n.a,{name:"MAINTAINERS",id:"projen.python.PyprojectTomlProjectDynamic.MAINTAINERS"})]}),"\n",(0,s.jsx)(n.p,{children:"maintainers."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"keywords-",children:[(0,s.jsx)(n.code,{children:"KEYWORDS"})," ",(0,s.jsx)(n.a,{name:"KEYWORDS",id:"projen.python.PyprojectTomlProjectDynamic.KEYWORDS"})]}),"\n",(0,s.jsx)(n.p,{children:"keywords."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"classifiers-",children:[(0,s.jsx)(n.code,{children:"CLASSIFIERS"})," ",(0,s.jsx)(n.a,{name:"CLASSIFIERS",id:"projen.python.PyprojectTomlProjectDynamic.CLASSIFIERS"})]}),"\n",(0,s.jsx)(n.p,{children:"classifiers."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"urls-",children:[(0,s.jsx)(n.code,{children:"URLS"})," ",(0,s.jsx)(n.a,{name:"URLS",id:"projen.python.PyprojectTomlProjectDynamic.URLS"})]}),"\n",(0,s.jsx)(n.p,{children:"urls."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"scripts-",children:[(0,s.jsx)(n.code,{children:"SCRIPTS"})," ",(0,s.jsx)(n.a,{name:"SCRIPTS",id:"projen.python.PyprojectTomlProjectDynamic.SCRIPTS"})]}),"\n",(0,s.jsx)(n.p,{children:"scripts."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"gui_hyphen_scripts-",children:[(0,s.jsx)(n.code,{children:"GUI_HYPHEN_SCRIPTS"})," ",(0,s.jsx)(n.a,{name:"GUI_HYPHEN_SCRIPTS",id:"projen.python.PyprojectTomlProjectDynamic.GUI_HYPHEN_SCRIPTS"})]}),"\n",(0,s.jsx)(n.p,{children:"gui-scripts."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"entry_hyphen_points-",children:[(0,s.jsx)(n.code,{children:"ENTRY_HYPHEN_POINTS"})," ",(0,s.jsx)(n.a,{name:"ENTRY_HYPHEN_POINTS",id:"projen.python.PyprojectTomlProjectDynamic.ENTRY_HYPHEN_POINTS"})]}),"\n",(0,s.jsx)(n.p,{children:"entry-points."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"dependencies-",children:[(0,s.jsx)(n.code,{children:"DEPENDENCIES"})," ",(0,s.jsx)(n.a,{name:"DEPENDENCIES",id:"projen.python.PyprojectTomlProjectDynamic.DEPENDENCIES"})]}),"\n",(0,s.jsx)(n.p,{children:"dependencies."}),"\n",(0,s.jsx)(n.hr,{}
1),"\n",(0,s.jsxs)(n.h5,{id:"optional_hyphen_dependencies-",children:[(0,s.jsx)(n.code,{children:"OPTIONAL_HYPHEN_DEPENDENCIES"})," ",(0,s.jsx)(n.a,{name:"OPTIONAL_HYPHEN_DEPENDENCIES",id:"projen.python.PyprojectTomlProjectDynamic.OPTIONAL_HYPHEN_DEPENDENCIES"})]}),"\n",(0,s.jsx)(n.p,{children:"optional-dependencies."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"import_hyphen_names-",children:[(0,s.jsx)(n.code,{children:"IMPORT_HYPHEN_NAMES"})," ",(0,s.jsx)(n.a,{name:"IMPORT_HYPHEN_NAMES",id:"projen.python.PyprojectTomlProjectDynamic.IMPORT_HYPHEN_NAMES"})]}),"\n",(0,s.jsx)(n.p,{children:"import-names."}),"\n",(0,s.jsx)(n.hr,{}),"\n",(0,s.jsxs)(n.h5,{id:"import_hyphen_namespaces-",children:[(0,s.jsx)(n.code,{children:"IMPORT_HYPHEN_NAMESPACES"})," ",(0,s.jsx)(n.a,{name:"IMPORT_HYPHEN_NAMESPACES",id:"projen.python.PyprojectTomlProjectDynamic.IMPORT_HYPHEN_NAMESPACES"})]}),"\n",(0,s.jsx)(n.p,{children:"import-namespaces."}),"\n",(0,s.jsx)(n.hr,{})]})}function h(e={}){let{wrapper:n}={...(0,t.R)(),...e.components};return n?(0,s.jsx)(n,{...e,children:(0,s.jsx)(p,{...e})}):p(e)}},8453(e,n,r){r.d(n,{R:()=>o,x:()=>d});var i=r(6540);let s={},t=i.createContext(s);function o(e){let n=i.useContext(t);return i.useMemo(function(){return"function"==typeof e?e(n):{...n,...e}},[n,e])}function d(e){let n;return n=e.disableParentContext?"function"==typeof e.components?e.components(s):e.components||s:o(e.components),i.createElement(t.Provider,{value:n},e.children)}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.