projen 0.81.17__py3-none-any.whl → 0.98.25__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- projen/__init__.py +1020 -55
- projen/_jsii/__init__.py +17 -2
- projen/_jsii/projen@0.98.25.jsii.tgz +0 -0
- projen/awscdk/__init__.py +1503 -163
- projen/build/__init__.py +79 -44
- projen/cdk/__init__.py +877 -129
- projen/cdk8s/__init__.py +681 -67
- projen/cdktf/__init__.py +318 -36
- projen/circleci/__init__.py +32 -1
- projen/github/__init__.py +1250 -76
- projen/github/workflows/__init__.py +400 -17
- projen/gitlab/__init__.py +234 -4
- projen/java/__init__.py +296 -4
- projen/javascript/__init__.py +1294 -81
- projen/javascript/biome_config/__init__.py +5461 -0
- projen/python/__init__.py +2010 -189
- projen/python/uv_config/__init__.py +3933 -0
- projen/release/__init__.py +921 -141
- projen/typescript/__init__.py +851 -93
- projen/vscode/__init__.py +19 -1
- projen/web/__init__.py +1196 -119
- {projen-0.81.17.data → projen-0.98.25.data}/scripts/projen +1 -1
- {projen-0.81.17.dist-info → projen-0.98.25.dist-info}/METADATA +6 -15
- projen-0.98.25.dist-info/RECORD +28 -0
- {projen-0.81.17.dist-info → projen-0.98.25.dist-info}/WHEEL +1 -1
- projen/_jsii/projen@0.81.17.jsii.tgz +0 -0
- projen-0.81.17.dist-info/RECORD +0 -26
- {projen-0.81.17.dist-info → projen-0.98.25.dist-info}/LICENSE +0 -0
- {projen-0.81.17.dist-info → projen-0.98.25.dist-info}/top_level.txt +0 -0
projen/python/__init__.py
CHANGED
|
@@ -11,10 +11,26 @@ import jsii
|
|
|
11
11
|
import publication
|
|
12
12
|
import typing_extensions
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
import typeguard
|
|
15
|
+
from importlib.metadata import version as _metadata_package_version
|
|
16
|
+
TYPEGUARD_MAJOR_VERSION = int(_metadata_package_version('typeguard').split('.')[0])
|
|
17
|
+
|
|
18
|
+
def check_type(argname: str, value: object, expected_type: typing.Any) -> typing.Any:
|
|
19
|
+
if TYPEGUARD_MAJOR_VERSION <= 2:
|
|
20
|
+
return typeguard.check_type(argname=argname, value=value, expected_type=expected_type) # type:ignore
|
|
21
|
+
else:
|
|
22
|
+
if isinstance(value, jsii._reference_map.InterfaceDynamicProxy): # pyright: ignore [reportAttributeAccessIssue]
|
|
23
|
+
pass
|
|
24
|
+
else:
|
|
25
|
+
if TYPEGUARD_MAJOR_VERSION == 3:
|
|
26
|
+
typeguard.config.collection_check_strategy = typeguard.CollectionCheckStrategy.ALL_ITEMS # type:ignore
|
|
27
|
+
typeguard.check_type(value=value, expected_type=expected_type) # type:ignore
|
|
28
|
+
else:
|
|
29
|
+
typeguard.check_type(value=value, expected_type=expected_type, collection_check_strategy=typeguard.CollectionCheckStrategy.ALL_ITEMS) # type:ignore
|
|
15
30
|
|
|
16
31
|
from .._jsii import *
|
|
17
32
|
|
|
33
|
+
import constructs as _constructs_77d1e7e8
|
|
18
34
|
from .. import (
|
|
19
35
|
Component as _Component_2b0ad27f,
|
|
20
36
|
Dependency as _Dependency_f510e013,
|
|
@@ -44,6 +60,91 @@ from ..github import (
|
|
|
44
60
|
)
|
|
45
61
|
from ..javascript import ProjenrcOptions as _ProjenrcOptions_179dd39f
|
|
46
62
|
from ..typescript import ProjenrcTsOptions as _ProjenrcTsOptions_e3a2602d
|
|
63
|
+
from .uv_config import UvConfiguration as _UvConfiguration_126496a9
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
@jsii.data_type(
|
|
67
|
+
jsii_type="projen.python.BuildSystem",
|
|
68
|
+
jsii_struct_bases=[],
|
|
69
|
+
name_mapping={
|
|
70
|
+
"requires": "requires",
|
|
71
|
+
"backend_path": "backendPath",
|
|
72
|
+
"build_backend": "buildBackend",
|
|
73
|
+
},
|
|
74
|
+
)
|
|
75
|
+
class BuildSystem:
|
|
76
|
+
def __init__(
|
|
77
|
+
self,
|
|
78
|
+
*,
|
|
79
|
+
requires: typing.Sequence[builtins.str],
|
|
80
|
+
backend_path: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
81
|
+
build_backend: typing.Optional[builtins.str] = None,
|
|
82
|
+
) -> None:
|
|
83
|
+
'''(experimental) Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.
|
|
84
|
+
|
|
85
|
+
:param requires: (experimental) List of strings following the version specifier specification, representing dependencies required to execute the build system.
|
|
86
|
+
:param backend_path: (experimental) list of directories to prepend to ``sys.path`` when loading the build backend, relative to project root.
|
|
87
|
+
:param build_backend: (experimental) String is formatted following the same ``module:object`` syntax as a ``setuptools`` entry point. It’s also legal to leave out the ``:object`` part.
|
|
88
|
+
|
|
89
|
+
:stability: experimental
|
|
90
|
+
:schema: BuildSystem
|
|
91
|
+
'''
|
|
92
|
+
if __debug__:
|
|
93
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e9da99c32d038945aadcf71f5eefe5c42c4d7218b8a2d3e62f288c5a8081f35f)
|
|
94
|
+
check_type(argname="argument requires", value=requires, expected_type=type_hints["requires"])
|
|
95
|
+
check_type(argname="argument backend_path", value=backend_path, expected_type=type_hints["backend_path"])
|
|
96
|
+
check_type(argname="argument build_backend", value=build_backend, expected_type=type_hints["build_backend"])
|
|
97
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
98
|
+
"requires": requires,
|
|
99
|
+
}
|
|
100
|
+
if backend_path is not None:
|
|
101
|
+
self._values["backend_path"] = backend_path
|
|
102
|
+
if build_backend is not None:
|
|
103
|
+
self._values["build_backend"] = build_backend
|
|
104
|
+
|
|
105
|
+
@builtins.property
|
|
106
|
+
def requires(self) -> typing.List[builtins.str]:
|
|
107
|
+
'''(experimental) List of strings following the version specifier specification, representing dependencies required to execute the build system.
|
|
108
|
+
|
|
109
|
+
:stability: experimental
|
|
110
|
+
:schema: BuildSystem#requires
|
|
111
|
+
'''
|
|
112
|
+
result = self._values.get("requires")
|
|
113
|
+
assert result is not None, "Required property 'requires' is missing"
|
|
114
|
+
return typing.cast(typing.List[builtins.str], result)
|
|
115
|
+
|
|
116
|
+
@builtins.property
|
|
117
|
+
def backend_path(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
118
|
+
'''(experimental) list of directories to prepend to ``sys.path`` when loading the build backend, relative to project root.
|
|
119
|
+
|
|
120
|
+
:stability: experimental
|
|
121
|
+
:schema: BuildSystem#backend-path
|
|
122
|
+
'''
|
|
123
|
+
result = self._values.get("backend_path")
|
|
124
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
125
|
+
|
|
126
|
+
@builtins.property
|
|
127
|
+
def build_backend(self) -> typing.Optional[builtins.str]:
|
|
128
|
+
'''(experimental) String is formatted following the same ``module:object`` syntax as a ``setuptools`` entry point.
|
|
129
|
+
|
|
130
|
+
It’s also legal to leave out the ``:object`` part.
|
|
131
|
+
|
|
132
|
+
:stability: experimental
|
|
133
|
+
:schema: BuildSystem#build-backend
|
|
134
|
+
'''
|
|
135
|
+
result = self._values.get("build_backend")
|
|
136
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
137
|
+
|
|
138
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
139
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
140
|
+
|
|
141
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
142
|
+
return not (rhs == self)
|
|
143
|
+
|
|
144
|
+
def __repr__(self) -> str:
|
|
145
|
+
return "BuildSystem(%s)" % ", ".join(
|
|
146
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
147
|
+
)
|
|
47
148
|
|
|
48
149
|
|
|
49
150
|
@jsii.interface(jsii_type="projen.python.IPackageProvider")
|
|
@@ -364,6 +465,7 @@ class Poetry(
|
|
|
364
465
|
package_name: typing.Optional[builtins.str] = None,
|
|
365
466
|
poetry_options: typing.Optional[typing.Union["PoetryPyprojectOptionsWithoutDeps", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
366
467
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
468
|
+
uv_options: typing.Optional[typing.Union["UvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
367
469
|
python_exec: typing.Optional[builtins.str] = None,
|
|
368
470
|
) -> None:
|
|
369
471
|
'''
|
|
@@ -378,6 +480,7 @@ class Poetry(
|
|
|
378
480
|
:param package_name: (experimental) Package name.
|
|
379
481
|
:param poetry_options: (experimental) Additional options to set for poetry if using poetry.
|
|
380
482
|
:param setup_config: (experimental) Additional fields to pass in the setup() function if using setuptools.
|
|
483
|
+
:param uv_options: (experimental) Additional options to set for uv if using uv.
|
|
381
484
|
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
382
485
|
|
|
383
486
|
:stability: experimental
|
|
@@ -396,6 +499,7 @@ class Poetry(
|
|
|
396
499
|
package_name=package_name,
|
|
397
500
|
poetry_options=poetry_options,
|
|
398
501
|
setup_config=setup_config,
|
|
502
|
+
uv_options=uv_options,
|
|
399
503
|
python_exec=python_exec,
|
|
400
504
|
)
|
|
401
505
|
|
|
@@ -493,7 +597,7 @@ class PoetryPyproject(
|
|
|
493
597
|
|
|
494
598
|
def __init__(
|
|
495
599
|
self,
|
|
496
|
-
|
|
600
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
497
601
|
*,
|
|
498
602
|
dependencies: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
499
603
|
dev_dependencies: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
@@ -509,6 +613,7 @@ class PoetryPyproject(
|
|
|
509
613
|
license: typing.Optional[builtins.str] = None,
|
|
510
614
|
maintainers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
511
615
|
name: typing.Optional[builtins.str] = None,
|
|
616
|
+
package_mode: typing.Optional[builtins.bool] = None,
|
|
512
617
|
packages: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
513
618
|
plugins: typing.Any = None,
|
|
514
619
|
readme: typing.Optional[builtins.str] = None,
|
|
@@ -519,7 +624,7 @@ class PoetryPyproject(
|
|
|
519
624
|
version: typing.Optional[builtins.str] = None,
|
|
520
625
|
) -> None:
|
|
521
626
|
'''
|
|
522
|
-
:param
|
|
627
|
+
:param scope: -
|
|
523
628
|
:param dependencies: (experimental) A list of dependencies for the project. The python version for which your package is compatible is also required.
|
|
524
629
|
:param dev_dependencies: (experimental) A list of development dependencies for the project.
|
|
525
630
|
:param authors: (experimental) The authors of the package. Must be in the form "name "
|
|
@@ -534,6 +639,7 @@ class PoetryPyproject(
|
|
|
534
639
|
:param license: (experimental) License of this package as an SPDX identifier. If the project is proprietary and does not use a specific license, you can set this value as "Proprietary".
|
|
535
640
|
:param maintainers: (experimental) the maintainers of the package. Must be in the form "name "
|
|
536
641
|
:param name: (experimental) Name of the package (required).
|
|
642
|
+
:param package_mode: (experimental) Package mode (optional). Default: true
|
|
537
643
|
:param packages: (experimental) A list of packages and modules to include in the final distribution.
|
|
538
644
|
:param plugins: (experimental) Plugins. Must be specified as a table.
|
|
539
645
|
:param readme: (experimental) The name of the readme file of the package.
|
|
@@ -547,7 +653,7 @@ class PoetryPyproject(
|
|
|
547
653
|
'''
|
|
548
654
|
if __debug__:
|
|
549
655
|
type_hints = typing.get_type_hints(_typecheckingstub__3a59b8e6934c492000192079edad9aaf1327a40b3bdba4192b78814ddbbfa98a)
|
|
550
|
-
check_type(argname="argument
|
|
656
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
551
657
|
options = PoetryPyprojectOptions(
|
|
552
658
|
dependencies=dependencies,
|
|
553
659
|
dev_dependencies=dev_dependencies,
|
|
@@ -563,6 +669,7 @@ class PoetryPyproject(
|
|
|
563
669
|
license=license,
|
|
564
670
|
maintainers=maintainers,
|
|
565
671
|
name=name,
|
|
672
|
+
package_mode=package_mode,
|
|
566
673
|
packages=packages,
|
|
567
674
|
plugins=plugins,
|
|
568
675
|
readme=readme,
|
|
@@ -573,15 +680,15 @@ class PoetryPyproject(
|
|
|
573
680
|
version=version,
|
|
574
681
|
)
|
|
575
682
|
|
|
576
|
-
jsii.create(self.__class__, self, [
|
|
683
|
+
jsii.create(self.__class__, self, [scope, options])
|
|
577
684
|
|
|
578
685
|
@builtins.property
|
|
579
686
|
@jsii.member(jsii_name="file")
|
|
580
|
-
def file(self) ->
|
|
687
|
+
def file(self) -> "PyprojectTomlFile":
|
|
581
688
|
'''
|
|
582
689
|
:stability: experimental
|
|
583
690
|
'''
|
|
584
|
-
return typing.cast(
|
|
691
|
+
return typing.cast("PyprojectTomlFile", jsii.get(self, "file"))
|
|
585
692
|
|
|
586
693
|
|
|
587
694
|
@jsii.data_type(
|
|
@@ -600,6 +707,7 @@ class PoetryPyproject(
|
|
|
600
707
|
"license": "license",
|
|
601
708
|
"maintainers": "maintainers",
|
|
602
709
|
"name": "name",
|
|
710
|
+
"package_mode": "packageMode",
|
|
603
711
|
"packages": "packages",
|
|
604
712
|
"plugins": "plugins",
|
|
605
713
|
"readme": "readme",
|
|
@@ -626,6 +734,7 @@ class PoetryPyprojectOptionsWithoutDeps:
|
|
|
626
734
|
license: typing.Optional[builtins.str] = None,
|
|
627
735
|
maintainers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
628
736
|
name: typing.Optional[builtins.str] = None,
|
|
737
|
+
package_mode: typing.Optional[builtins.bool] = None,
|
|
629
738
|
packages: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
630
739
|
plugins: typing.Any = None,
|
|
631
740
|
readme: typing.Optional[builtins.str] = None,
|
|
@@ -649,6 +758,7 @@ class PoetryPyprojectOptionsWithoutDeps:
|
|
|
649
758
|
:param license: (experimental) License of this package as an SPDX identifier. If the project is proprietary and does not use a specific license, you can set this value as "Proprietary".
|
|
650
759
|
:param maintainers: (experimental) the maintainers of the package. Must be in the form "name "
|
|
651
760
|
:param name: (experimental) Name of the package (required).
|
|
761
|
+
:param package_mode: (experimental) Package mode (optional). Default: true
|
|
652
762
|
:param packages: (experimental) A list of packages and modules to include in the final distribution.
|
|
653
763
|
:param plugins: (experimental) Plugins. Must be specified as a table.
|
|
654
764
|
:param readme: (experimental) The name of the readme file of the package.
|
|
@@ -675,6 +785,7 @@ class PoetryPyprojectOptionsWithoutDeps:
|
|
|
675
785
|
check_type(argname="argument license", value=license, expected_type=type_hints["license"])
|
|
676
786
|
check_type(argname="argument maintainers", value=maintainers, expected_type=type_hints["maintainers"])
|
|
677
787
|
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
788
|
+
check_type(argname="argument package_mode", value=package_mode, expected_type=type_hints["package_mode"])
|
|
678
789
|
check_type(argname="argument packages", value=packages, expected_type=type_hints["packages"])
|
|
679
790
|
check_type(argname="argument plugins", value=plugins, expected_type=type_hints["plugins"])
|
|
680
791
|
check_type(argname="argument readme", value=readme, expected_type=type_hints["readme"])
|
|
@@ -708,6 +819,8 @@ class PoetryPyprojectOptionsWithoutDeps:
|
|
|
708
819
|
self._values["maintainers"] = maintainers
|
|
709
820
|
if name is not None:
|
|
710
821
|
self._values["name"] = name
|
|
822
|
+
if package_mode is not None:
|
|
823
|
+
self._values["package_mode"] = package_mode
|
|
711
824
|
if packages is not None:
|
|
712
825
|
self._values["packages"] = packages
|
|
713
826
|
if plugins is not None:
|
|
@@ -797,271 +910,1394 @@ class PoetryPyprojectOptionsWithoutDeps:
|
|
|
797
910
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
798
911
|
|
|
799
912
|
@builtins.property
|
|
800
|
-
def include(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
801
|
-
'''(experimental) A list of patterns that will be included in the final package.
|
|
913
|
+
def include(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
914
|
+
'''(experimental) A list of patterns that will be included in the final package.
|
|
915
|
+
|
|
916
|
+
:stability: experimental
|
|
917
|
+
'''
|
|
918
|
+
result = self._values.get("include")
|
|
919
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
920
|
+
|
|
921
|
+
@builtins.property
|
|
922
|
+
def keywords(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
923
|
+
'''(experimental) A list of keywords (max: 5) that the package is related to.
|
|
924
|
+
|
|
925
|
+
:stability: experimental
|
|
926
|
+
'''
|
|
927
|
+
result = self._values.get("keywords")
|
|
928
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
929
|
+
|
|
930
|
+
@builtins.property
|
|
931
|
+
def license(self) -> typing.Optional[builtins.str]:
|
|
932
|
+
'''(experimental) License of this package as an SPDX identifier.
|
|
933
|
+
|
|
934
|
+
If the project is proprietary and does not use a specific license, you
|
|
935
|
+
can set this value as "Proprietary".
|
|
936
|
+
|
|
937
|
+
:stability: experimental
|
|
938
|
+
'''
|
|
939
|
+
result = self._values.get("license")
|
|
940
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
941
|
+
|
|
942
|
+
@builtins.property
|
|
943
|
+
def maintainers(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
944
|
+
'''(experimental) the maintainers of the package.
|
|
945
|
+
|
|
946
|
+
Must be in the form "name "
|
|
947
|
+
|
|
948
|
+
:stability: experimental
|
|
949
|
+
'''
|
|
950
|
+
result = self._values.get("maintainers")
|
|
951
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
952
|
+
|
|
953
|
+
@builtins.property
|
|
954
|
+
def name(self) -> typing.Optional[builtins.str]:
|
|
955
|
+
'''(experimental) Name of the package (required).
|
|
956
|
+
|
|
957
|
+
:stability: experimental
|
|
958
|
+
'''
|
|
959
|
+
result = self._values.get("name")
|
|
960
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
961
|
+
|
|
962
|
+
@builtins.property
|
|
963
|
+
def package_mode(self) -> typing.Optional[builtins.bool]:
|
|
964
|
+
'''(experimental) Package mode (optional).
|
|
965
|
+
|
|
966
|
+
:default: true
|
|
967
|
+
|
|
968
|
+
:see: https://python-poetry.org/docs/pyproject/#package-mode
|
|
969
|
+
:stability: experimental
|
|
970
|
+
|
|
971
|
+
Example::
|
|
972
|
+
|
|
973
|
+
false
|
|
974
|
+
'''
|
|
975
|
+
result = self._values.get("package_mode")
|
|
976
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
977
|
+
|
|
978
|
+
@builtins.property
|
|
979
|
+
def packages(self) -> typing.Optional[typing.List[typing.Any]]:
|
|
980
|
+
'''(experimental) A list of packages and modules to include in the final distribution.
|
|
981
|
+
|
|
982
|
+
:stability: experimental
|
|
983
|
+
'''
|
|
984
|
+
result = self._values.get("packages")
|
|
985
|
+
return typing.cast(typing.Optional[typing.List[typing.Any]], result)
|
|
986
|
+
|
|
987
|
+
@builtins.property
|
|
988
|
+
def plugins(self) -> typing.Any:
|
|
989
|
+
'''(experimental) Plugins.
|
|
990
|
+
|
|
991
|
+
Must be specified as a table.
|
|
992
|
+
|
|
993
|
+
:see: https://toml.io/en/v1.0.0#table
|
|
994
|
+
:stability: experimental
|
|
995
|
+
'''
|
|
996
|
+
result = self._values.get("plugins")
|
|
997
|
+
return typing.cast(typing.Any, result)
|
|
998
|
+
|
|
999
|
+
@builtins.property
|
|
1000
|
+
def readme(self) -> typing.Optional[builtins.str]:
|
|
1001
|
+
'''(experimental) The name of the readme file of the package.
|
|
1002
|
+
|
|
1003
|
+
:stability: experimental
|
|
1004
|
+
'''
|
|
1005
|
+
result = self._values.get("readme")
|
|
1006
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1007
|
+
|
|
1008
|
+
@builtins.property
|
|
1009
|
+
def repository(self) -> typing.Optional[builtins.str]:
|
|
1010
|
+
'''(experimental) A URL to the repository of the project.
|
|
1011
|
+
|
|
1012
|
+
:stability: experimental
|
|
1013
|
+
'''
|
|
1014
|
+
result = self._values.get("repository")
|
|
1015
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1016
|
+
|
|
1017
|
+
@builtins.property
|
|
1018
|
+
def scripts(self) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
|
|
1019
|
+
'''(experimental) The scripts or executables that will be installed when installing the package.
|
|
1020
|
+
|
|
1021
|
+
:stability: experimental
|
|
1022
|
+
'''
|
|
1023
|
+
result = self._values.get("scripts")
|
|
1024
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
|
|
1025
|
+
|
|
1026
|
+
@builtins.property
|
|
1027
|
+
def source(self) -> typing.Optional[typing.List[typing.Any]]:
|
|
1028
|
+
'''(experimental) Source registries from which packages are retrieved.
|
|
1029
|
+
|
|
1030
|
+
:stability: experimental
|
|
1031
|
+
'''
|
|
1032
|
+
result = self._values.get("source")
|
|
1033
|
+
return typing.cast(typing.Optional[typing.List[typing.Any]], result)
|
|
1034
|
+
|
|
1035
|
+
@builtins.property
|
|
1036
|
+
def urls(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
1037
|
+
'''(experimental) Project custom URLs, in addition to homepage, repository and documentation.
|
|
1038
|
+
|
|
1039
|
+
E.g. "Bug Tracker"
|
|
1040
|
+
|
|
1041
|
+
:stability: experimental
|
|
1042
|
+
'''
|
|
1043
|
+
result = self._values.get("urls")
|
|
1044
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
1045
|
+
|
|
1046
|
+
@builtins.property
|
|
1047
|
+
def version(self) -> typing.Optional[builtins.str]:
|
|
1048
|
+
'''(experimental) Version of the package (required).
|
|
1049
|
+
|
|
1050
|
+
:stability: experimental
|
|
1051
|
+
'''
|
|
1052
|
+
result = self._values.get("version")
|
|
1053
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1054
|
+
|
|
1055
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1056
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1057
|
+
|
|
1058
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1059
|
+
return not (rhs == self)
|
|
1060
|
+
|
|
1061
|
+
def __repr__(self) -> str:
|
|
1062
|
+
return "PoetryPyprojectOptionsWithoutDeps(%s)" % ", ".join(
|
|
1063
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1064
|
+
)
|
|
1065
|
+
|
|
1066
|
+
|
|
1067
|
+
@jsii.data_type(
|
|
1068
|
+
jsii_type="projen.python.ProjectAuthor",
|
|
1069
|
+
jsii_struct_bases=[],
|
|
1070
|
+
name_mapping={"email": "email", "name": "name"},
|
|
1071
|
+
)
|
|
1072
|
+
class ProjectAuthor:
|
|
1073
|
+
def __init__(
|
|
1074
|
+
self,
|
|
1075
|
+
*,
|
|
1076
|
+
email: typing.Optional[builtins.str] = None,
|
|
1077
|
+
name: typing.Optional[builtins.str] = None,
|
|
1078
|
+
) -> None:
|
|
1079
|
+
'''
|
|
1080
|
+
:param email:
|
|
1081
|
+
:param name:
|
|
1082
|
+
|
|
1083
|
+
:stability: experimental
|
|
1084
|
+
:schema: projectAuthor
|
|
1085
|
+
'''
|
|
1086
|
+
if __debug__:
|
|
1087
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c75ee0fa1f03d64ef2f4f70177834504f849664100250bdf991680eba3b01d4e)
|
|
1088
|
+
check_type(argname="argument email", value=email, expected_type=type_hints["email"])
|
|
1089
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
1090
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
1091
|
+
if email is not None:
|
|
1092
|
+
self._values["email"] = email
|
|
1093
|
+
if name is not None:
|
|
1094
|
+
self._values["name"] = name
|
|
1095
|
+
|
|
1096
|
+
@builtins.property
|
|
1097
|
+
def email(self) -> typing.Optional[builtins.str]:
|
|
1098
|
+
'''
|
|
1099
|
+
:stability: experimental
|
|
1100
|
+
:schema: projectAuthor#email
|
|
1101
|
+
'''
|
|
1102
|
+
result = self._values.get("email")
|
|
1103
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1104
|
+
|
|
1105
|
+
@builtins.property
|
|
1106
|
+
def name(self) -> typing.Optional[builtins.str]:
|
|
1107
|
+
'''
|
|
1108
|
+
:stability: experimental
|
|
1109
|
+
:schema: projectAuthor#name
|
|
1110
|
+
'''
|
|
1111
|
+
result = self._values.get("name")
|
|
1112
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1113
|
+
|
|
1114
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1115
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1116
|
+
|
|
1117
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1118
|
+
return not (rhs == self)
|
|
1119
|
+
|
|
1120
|
+
def __repr__(self) -> str:
|
|
1121
|
+
return "ProjectAuthor(%s)" % ", ".join(
|
|
1122
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1123
|
+
)
|
|
1124
|
+
|
|
1125
|
+
|
|
1126
|
+
class Projenrc(
|
|
1127
|
+
_ProjenrcFile_50432c7e,
|
|
1128
|
+
metaclass=jsii.JSIIMeta,
|
|
1129
|
+
jsii_type="projen.python.Projenrc",
|
|
1130
|
+
):
|
|
1131
|
+
'''(experimental) Allows writing projenrc files in python.
|
|
1132
|
+
|
|
1133
|
+
This will install ``projen`` as a Python dependency and will add a
|
|
1134
|
+
``synth`` task which will run ``.projenrc.py``.
|
|
1135
|
+
|
|
1136
|
+
:stability: experimental
|
|
1137
|
+
'''
|
|
1138
|
+
|
|
1139
|
+
def __init__(
|
|
1140
|
+
self,
|
|
1141
|
+
project: _Project_57d89203,
|
|
1142
|
+
*,
|
|
1143
|
+
filename: typing.Optional[builtins.str] = None,
|
|
1144
|
+
projen_version: typing.Optional[builtins.str] = None,
|
|
1145
|
+
python_exec: typing.Optional[builtins.str] = None,
|
|
1146
|
+
) -> None:
|
|
1147
|
+
'''
|
|
1148
|
+
:param project: -
|
|
1149
|
+
:param filename: (experimental) The name of the projenrc file. Default: ".projenrc.py"
|
|
1150
|
+
:param projen_version: (experimental) The projen version to use. Default: - current version
|
|
1151
|
+
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
1152
|
+
|
|
1153
|
+
:stability: experimental
|
|
1154
|
+
'''
|
|
1155
|
+
if __debug__:
|
|
1156
|
+
type_hints = typing.get_type_hints(_typecheckingstub__dd796c2ffac4ce790fd379f22162cb352a7e6e5fcca10c21249e16c756967555)
|
|
1157
|
+
check_type(argname="argument project", value=project, expected_type=type_hints["project"])
|
|
1158
|
+
options = ProjenrcOptions(
|
|
1159
|
+
filename=filename, projen_version=projen_version, python_exec=python_exec
|
|
1160
|
+
)
|
|
1161
|
+
|
|
1162
|
+
jsii.create(self.__class__, self, [project, options])
|
|
1163
|
+
|
|
1164
|
+
@builtins.property
|
|
1165
|
+
@jsii.member(jsii_name="filePath")
|
|
1166
|
+
def file_path(self) -> builtins.str:
|
|
1167
|
+
'''(experimental) The name of the projenrc file.
|
|
1168
|
+
|
|
1169
|
+
:stability: experimental
|
|
1170
|
+
'''
|
|
1171
|
+
return typing.cast(builtins.str, jsii.get(self, "filePath"))
|
|
1172
|
+
|
|
1173
|
+
@builtins.property
|
|
1174
|
+
@jsii.member(jsii_name="pythonExec")
|
|
1175
|
+
def python_exec(self) -> builtins.str:
|
|
1176
|
+
'''(experimental) Path to the python executable to use.
|
|
1177
|
+
|
|
1178
|
+
:stability: experimental
|
|
1179
|
+
'''
|
|
1180
|
+
return typing.cast(builtins.str, jsii.get(self, "pythonExec"))
|
|
1181
|
+
|
|
1182
|
+
|
|
1183
|
+
@jsii.data_type(
|
|
1184
|
+
jsii_type="projen.python.ProjenrcOptions",
|
|
1185
|
+
jsii_struct_bases=[],
|
|
1186
|
+
name_mapping={
|
|
1187
|
+
"filename": "filename",
|
|
1188
|
+
"projen_version": "projenVersion",
|
|
1189
|
+
"python_exec": "pythonExec",
|
|
1190
|
+
},
|
|
1191
|
+
)
|
|
1192
|
+
class ProjenrcOptions:
|
|
1193
|
+
def __init__(
|
|
1194
|
+
self,
|
|
1195
|
+
*,
|
|
1196
|
+
filename: typing.Optional[builtins.str] = None,
|
|
1197
|
+
projen_version: typing.Optional[builtins.str] = None,
|
|
1198
|
+
python_exec: typing.Optional[builtins.str] = None,
|
|
1199
|
+
) -> None:
|
|
1200
|
+
'''(experimental) Options for ``Projenrc``.
|
|
1201
|
+
|
|
1202
|
+
:param filename: (experimental) The name of the projenrc file. Default: ".projenrc.py"
|
|
1203
|
+
:param projen_version: (experimental) The projen version to use. Default: - current version
|
|
1204
|
+
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
1205
|
+
|
|
1206
|
+
:stability: experimental
|
|
1207
|
+
'''
|
|
1208
|
+
if __debug__:
|
|
1209
|
+
type_hints = typing.get_type_hints(_typecheckingstub__7b016d0638a2d569458bc60c6c0631e67606ffba250b97da0a8bb994346743eb)
|
|
1210
|
+
check_type(argname="argument filename", value=filename, expected_type=type_hints["filename"])
|
|
1211
|
+
check_type(argname="argument projen_version", value=projen_version, expected_type=type_hints["projen_version"])
|
|
1212
|
+
check_type(argname="argument python_exec", value=python_exec, expected_type=type_hints["python_exec"])
|
|
1213
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
1214
|
+
if filename is not None:
|
|
1215
|
+
self._values["filename"] = filename
|
|
1216
|
+
if projen_version is not None:
|
|
1217
|
+
self._values["projen_version"] = projen_version
|
|
1218
|
+
if python_exec is not None:
|
|
1219
|
+
self._values["python_exec"] = python_exec
|
|
1220
|
+
|
|
1221
|
+
@builtins.property
|
|
1222
|
+
def filename(self) -> typing.Optional[builtins.str]:
|
|
1223
|
+
'''(experimental) The name of the projenrc file.
|
|
1224
|
+
|
|
1225
|
+
:default: ".projenrc.py"
|
|
1226
|
+
|
|
1227
|
+
:stability: experimental
|
|
1228
|
+
'''
|
|
1229
|
+
result = self._values.get("filename")
|
|
1230
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1231
|
+
|
|
1232
|
+
@builtins.property
|
|
1233
|
+
def projen_version(self) -> typing.Optional[builtins.str]:
|
|
1234
|
+
'''(experimental) The projen version to use.
|
|
1235
|
+
|
|
1236
|
+
:default: - current version
|
|
1237
|
+
|
|
1238
|
+
:stability: experimental
|
|
1239
|
+
'''
|
|
1240
|
+
result = self._values.get("projen_version")
|
|
1241
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1242
|
+
|
|
1243
|
+
@builtins.property
|
|
1244
|
+
def python_exec(self) -> typing.Optional[builtins.str]:
|
|
1245
|
+
'''(experimental) Path to the python executable to use.
|
|
1246
|
+
|
|
1247
|
+
:default: "python"
|
|
1248
|
+
|
|
1249
|
+
:stability: experimental
|
|
1250
|
+
'''
|
|
1251
|
+
result = self._values.get("python_exec")
|
|
1252
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1253
|
+
|
|
1254
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1255
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1256
|
+
|
|
1257
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1258
|
+
return not (rhs == self)
|
|
1259
|
+
|
|
1260
|
+
def __repr__(self) -> str:
|
|
1261
|
+
return "ProjenrcOptions(%s)" % ", ".join(
|
|
1262
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1263
|
+
)
|
|
1264
|
+
|
|
1265
|
+
|
|
1266
|
+
@jsii.data_type(
|
|
1267
|
+
jsii_type="projen.python.PyprojectToml",
|
|
1268
|
+
jsii_struct_bases=[],
|
|
1269
|
+
name_mapping={
|
|
1270
|
+
"build_system": "buildSystem",
|
|
1271
|
+
"dependency_groups": "dependencyGroups",
|
|
1272
|
+
"project": "project",
|
|
1273
|
+
"tool": "tool",
|
|
1274
|
+
},
|
|
1275
|
+
)
|
|
1276
|
+
class PyprojectToml:
|
|
1277
|
+
def __init__(
|
|
1278
|
+
self,
|
|
1279
|
+
*,
|
|
1280
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1281
|
+
dependency_groups: typing.Optional[typing.Union["PyprojectTomlDependencyGroups", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1282
|
+
project: typing.Optional[typing.Union["PyprojectTomlProject", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1283
|
+
tool: typing.Optional[typing.Union["PyprojectTomlTool", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1284
|
+
) -> None:
|
|
1285
|
+
'''
|
|
1286
|
+
:param build_system:
|
|
1287
|
+
:param dependency_groups: (experimental) Named groups of dependencies, similar to ``requirements.txt`` files, which launchers, IDEs, and other tools can find and identify by name. Each item in ``[dependency-groups]`` is defined as mapping of group name to list of `dependency specifiers <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_.
|
|
1288
|
+
:param project: (experimental) There are two kinds of metadata: *static* and *dynamic*. - Static metadata is listed in the ``[project]`` table directly and cannot be specified or changed by a tool. - Dynamic metadata key names are listed inside the ``dynamic`` key and represents metadata that a tool will later provide.
|
|
1289
|
+
:param tool: (experimental) Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within ``[tool]``. Generally a project can use the subtable ``tool.$NAME`` if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI.
|
|
1290
|
+
|
|
1291
|
+
:stability: experimental
|
|
1292
|
+
:schema: PyprojectToml
|
|
1293
|
+
'''
|
|
1294
|
+
if isinstance(build_system, dict):
|
|
1295
|
+
build_system = BuildSystem(**build_system)
|
|
1296
|
+
if isinstance(dependency_groups, dict):
|
|
1297
|
+
dependency_groups = PyprojectTomlDependencyGroups(**dependency_groups)
|
|
1298
|
+
if isinstance(project, dict):
|
|
1299
|
+
project = PyprojectTomlProject(**project)
|
|
1300
|
+
if isinstance(tool, dict):
|
|
1301
|
+
tool = PyprojectTomlTool(**tool)
|
|
1302
|
+
if __debug__:
|
|
1303
|
+
type_hints = typing.get_type_hints(_typecheckingstub__e1fc10fe84bb8f10fcd95137adbc465ef44fa0a114d64da3b25bdc76d9324fe3)
|
|
1304
|
+
check_type(argname="argument build_system", value=build_system, expected_type=type_hints["build_system"])
|
|
1305
|
+
check_type(argname="argument dependency_groups", value=dependency_groups, expected_type=type_hints["dependency_groups"])
|
|
1306
|
+
check_type(argname="argument project", value=project, expected_type=type_hints["project"])
|
|
1307
|
+
check_type(argname="argument tool", value=tool, expected_type=type_hints["tool"])
|
|
1308
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
1309
|
+
if build_system is not None:
|
|
1310
|
+
self._values["build_system"] = build_system
|
|
1311
|
+
if dependency_groups is not None:
|
|
1312
|
+
self._values["dependency_groups"] = dependency_groups
|
|
1313
|
+
if project is not None:
|
|
1314
|
+
self._values["project"] = project
|
|
1315
|
+
if tool is not None:
|
|
1316
|
+
self._values["tool"] = tool
|
|
1317
|
+
|
|
1318
|
+
@builtins.property
|
|
1319
|
+
def build_system(self) -> typing.Optional[BuildSystem]:
|
|
1320
|
+
'''
|
|
1321
|
+
:stability: experimental
|
|
1322
|
+
:schema: PyprojectToml#build-system
|
|
1323
|
+
'''
|
|
1324
|
+
result = self._values.get("build_system")
|
|
1325
|
+
return typing.cast(typing.Optional[BuildSystem], result)
|
|
1326
|
+
|
|
1327
|
+
@builtins.property
|
|
1328
|
+
def dependency_groups(self) -> typing.Optional["PyprojectTomlDependencyGroups"]:
|
|
1329
|
+
'''(experimental) Named groups of dependencies, similar to ``requirements.txt`` files, which launchers, IDEs, and other tools can find and identify by name. Each item in ``[dependency-groups]`` is defined as mapping of group name to list of `dependency specifiers <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_.
|
|
1330
|
+
|
|
1331
|
+
:stability: experimental
|
|
1332
|
+
:schema: PyprojectToml#dependency-groups
|
|
1333
|
+
'''
|
|
1334
|
+
result = self._values.get("dependency_groups")
|
|
1335
|
+
return typing.cast(typing.Optional["PyprojectTomlDependencyGroups"], result)
|
|
1336
|
+
|
|
1337
|
+
@builtins.property
|
|
1338
|
+
def project(self) -> typing.Optional["PyprojectTomlProject"]:
|
|
1339
|
+
'''(experimental) There are two kinds of metadata: *static* and *dynamic*.
|
|
1340
|
+
|
|
1341
|
+
- Static metadata is listed in the ``[project]`` table directly and cannot be specified or changed by a tool.
|
|
1342
|
+
- Dynamic metadata key names are listed inside the ``dynamic`` key and represents metadata that a tool will later provide.
|
|
1343
|
+
|
|
1344
|
+
:stability: experimental
|
|
1345
|
+
:schema: PyprojectToml#project
|
|
1346
|
+
'''
|
|
1347
|
+
result = self._values.get("project")
|
|
1348
|
+
return typing.cast(typing.Optional["PyprojectTomlProject"], result)
|
|
1349
|
+
|
|
1350
|
+
@builtins.property
|
|
1351
|
+
def tool(self) -> typing.Optional["PyprojectTomlTool"]:
|
|
1352
|
+
'''(experimental) Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within ``[tool]``.
|
|
1353
|
+
|
|
1354
|
+
Generally a project can use the subtable ``tool.$NAME`` if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI.
|
|
1355
|
+
|
|
1356
|
+
:stability: experimental
|
|
1357
|
+
:schema: PyprojectToml#tool
|
|
1358
|
+
'''
|
|
1359
|
+
result = self._values.get("tool")
|
|
1360
|
+
return typing.cast(typing.Optional["PyprojectTomlTool"], result)
|
|
1361
|
+
|
|
1362
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1363
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1364
|
+
|
|
1365
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1366
|
+
return not (rhs == self)
|
|
1367
|
+
|
|
1368
|
+
def __repr__(self) -> str:
|
|
1369
|
+
return "PyprojectToml(%s)" % ", ".join(
|
|
1370
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1371
|
+
)
|
|
1372
|
+
|
|
1373
|
+
|
|
1374
|
+
@jsii.data_type(
|
|
1375
|
+
jsii_type="projen.python.PyprojectTomlDependencyGroups",
|
|
1376
|
+
jsii_struct_bases=[],
|
|
1377
|
+
name_mapping={"dev": "dev"},
|
|
1378
|
+
)
|
|
1379
|
+
class PyprojectTomlDependencyGroups:
|
|
1380
|
+
def __init__(
|
|
1381
|
+
self,
|
|
1382
|
+
*,
|
|
1383
|
+
dev: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
1384
|
+
) -> None:
|
|
1385
|
+
'''(experimental) Named groups of dependencies, similar to ``requirements.txt`` files, which launchers, IDEs, and other tools can find and identify by name. Each item in ``[dependency-groups]`` is defined as mapping of group name to list of `dependency specifiers <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_.
|
|
1386
|
+
|
|
1387
|
+
:param dev:
|
|
1388
|
+
|
|
1389
|
+
:stability: experimental
|
|
1390
|
+
:schema: PyprojectTomlDependencyGroups
|
|
1391
|
+
'''
|
|
1392
|
+
if __debug__:
|
|
1393
|
+
type_hints = typing.get_type_hints(_typecheckingstub__3172b8764f200359be57f771adc03f41306604c3a8551c94b129802a9f212c87)
|
|
1394
|
+
check_type(argname="argument dev", value=dev, expected_type=type_hints["dev"])
|
|
1395
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
1396
|
+
if dev is not None:
|
|
1397
|
+
self._values["dev"] = dev
|
|
1398
|
+
|
|
1399
|
+
@builtins.property
|
|
1400
|
+
def dev(self) -> typing.Optional[typing.List[typing.Any]]:
|
|
1401
|
+
'''
|
|
1402
|
+
:stability: experimental
|
|
1403
|
+
:schema: PyprojectTomlDependencyGroups#dev
|
|
1404
|
+
'''
|
|
1405
|
+
result = self._values.get("dev")
|
|
1406
|
+
return typing.cast(typing.Optional[typing.List[typing.Any]], result)
|
|
1407
|
+
|
|
1408
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1409
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1410
|
+
|
|
1411
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1412
|
+
return not (rhs == self)
|
|
1413
|
+
|
|
1414
|
+
def __repr__(self) -> str:
|
|
1415
|
+
return "PyprojectTomlDependencyGroups(%s)" % ", ".join(
|
|
1416
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1417
|
+
)
|
|
1418
|
+
|
|
1419
|
+
|
|
1420
|
+
class PyprojectTomlFile(
|
|
1421
|
+
_TomlFile_dab3b22f,
|
|
1422
|
+
metaclass=jsii.JSIIMeta,
|
|
1423
|
+
jsii_type="projen.python.PyprojectTomlFile",
|
|
1424
|
+
):
|
|
1425
|
+
'''(experimental) Represents configuration of a pyproject.toml file.
|
|
1426
|
+
|
|
1427
|
+
:see: https://packaging.python.org/en/latest/guides/writing-pyproject-toml/
|
|
1428
|
+
:stability: experimental
|
|
1429
|
+
'''
|
|
1430
|
+
|
|
1431
|
+
def __init__(
|
|
1432
|
+
self,
|
|
1433
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
1434
|
+
*,
|
|
1435
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1436
|
+
dependency_groups: typing.Optional[typing.Union[PyprojectTomlDependencyGroups, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1437
|
+
project: typing.Optional[typing.Union["PyprojectTomlProject", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1438
|
+
tool: typing.Optional[typing.Union["PyprojectTomlTool", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1439
|
+
) -> None:
|
|
1440
|
+
'''
|
|
1441
|
+
:param scope: -
|
|
1442
|
+
:param build_system:
|
|
1443
|
+
:param dependency_groups: (experimental) Named groups of dependencies, similar to ``requirements.txt`` files, which launchers, IDEs, and other tools can find and identify by name. Each item in ``[dependency-groups]`` is defined as mapping of group name to list of `dependency specifiers <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_.
|
|
1444
|
+
:param project: (experimental) There are two kinds of metadata: *static* and *dynamic*. - Static metadata is listed in the ``[project]`` table directly and cannot be specified or changed by a tool. - Dynamic metadata key names are listed inside the ``dynamic`` key and represents metadata that a tool will later provide.
|
|
1445
|
+
:param tool: (experimental) Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within ``[tool]``. Generally a project can use the subtable ``tool.$NAME`` if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI.
|
|
1446
|
+
|
|
1447
|
+
:stability: experimental
|
|
1448
|
+
'''
|
|
1449
|
+
if __debug__:
|
|
1450
|
+
type_hints = typing.get_type_hints(_typecheckingstub__d9e7cb471169a85cb7809c67deb7b7e20dde1ce20a6a49f8357e0726c13b0040)
|
|
1451
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
1452
|
+
config = PyprojectToml(
|
|
1453
|
+
build_system=build_system,
|
|
1454
|
+
dependency_groups=dependency_groups,
|
|
1455
|
+
project=project,
|
|
1456
|
+
tool=tool,
|
|
1457
|
+
)
|
|
1458
|
+
|
|
1459
|
+
jsii.create(self.__class__, self, [scope, config])
|
|
1460
|
+
|
|
1461
|
+
@jsii.member(jsii_name="synthesizeContent")
|
|
1462
|
+
def _synthesize_content(
|
|
1463
|
+
self,
|
|
1464
|
+
resolver: _IResolver_0b7d1958,
|
|
1465
|
+
) -> typing.Optional[builtins.str]:
|
|
1466
|
+
'''(experimental) Implemented by derived classes and returns the contents of the file to emit.
|
|
1467
|
+
|
|
1468
|
+
:param resolver: -
|
|
1469
|
+
|
|
1470
|
+
:stability: experimental
|
|
1471
|
+
'''
|
|
1472
|
+
if __debug__:
|
|
1473
|
+
type_hints = typing.get_type_hints(_typecheckingstub__8c653bb340110f30f664421242162e21f98489f495f8991c5180052f98429065)
|
|
1474
|
+
check_type(argname="argument resolver", value=resolver, expected_type=type_hints["resolver"])
|
|
1475
|
+
return typing.cast(typing.Optional[builtins.str], jsii.invoke(self, "synthesizeContent", [resolver]))
|
|
1476
|
+
|
|
1477
|
+
|
|
1478
|
+
@jsii.data_type(
|
|
1479
|
+
jsii_type="projen.python.PyprojectTomlProject",
|
|
1480
|
+
jsii_struct_bases=[],
|
|
1481
|
+
name_mapping={
|
|
1482
|
+
"name": "name",
|
|
1483
|
+
"authors": "authors",
|
|
1484
|
+
"classifiers": "classifiers",
|
|
1485
|
+
"dependencies": "dependencies",
|
|
1486
|
+
"description": "description",
|
|
1487
|
+
"dynamic": "dynamic",
|
|
1488
|
+
"entry_points": "entryPoints",
|
|
1489
|
+
"gui_scripts": "guiScripts",
|
|
1490
|
+
"import_names": "importNames",
|
|
1491
|
+
"import_namespaces": "importNamespaces",
|
|
1492
|
+
"keywords": "keywords",
|
|
1493
|
+
"license": "license",
|
|
1494
|
+
"license_files": "licenseFiles",
|
|
1495
|
+
"maintainers": "maintainers",
|
|
1496
|
+
"optional_dependencies": "optionalDependencies",
|
|
1497
|
+
"readme": "readme",
|
|
1498
|
+
"requires_python": "requiresPython",
|
|
1499
|
+
"scripts": "scripts",
|
|
1500
|
+
"urls": "urls",
|
|
1501
|
+
"version": "version",
|
|
1502
|
+
},
|
|
1503
|
+
)
|
|
1504
|
+
class PyprojectTomlProject:
|
|
1505
|
+
def __init__(
|
|
1506
|
+
self,
|
|
1507
|
+
*,
|
|
1508
|
+
name: builtins.str,
|
|
1509
|
+
authors: typing.Optional[typing.Sequence[typing.Union[ProjectAuthor, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
1510
|
+
classifiers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1511
|
+
dependencies: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1512
|
+
description: typing.Optional[builtins.str] = None,
|
|
1513
|
+
dynamic: typing.Optional[typing.Sequence["PyprojectTomlProjectDynamic"]] = None,
|
|
1514
|
+
entry_points: typing.Any = None,
|
|
1515
|
+
gui_scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
1516
|
+
import_names: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1517
|
+
import_namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1518
|
+
keywords: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1519
|
+
license: typing.Any = None,
|
|
1520
|
+
license_files: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1521
|
+
maintainers: typing.Optional[typing.Sequence[typing.Union[ProjectAuthor, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
1522
|
+
optional_dependencies: typing.Any = None,
|
|
1523
|
+
readme: typing.Any = None,
|
|
1524
|
+
requires_python: typing.Optional[builtins.str] = None,
|
|
1525
|
+
scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
1526
|
+
urls: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
1527
|
+
version: typing.Optional[builtins.str] = None,
|
|
1528
|
+
) -> None:
|
|
1529
|
+
'''(experimental) There are two kinds of metadata: *static* and *dynamic*.
|
|
1530
|
+
|
|
1531
|
+
- Static metadata is listed in the ``[project]`` table directly and cannot be specified or changed by a tool.
|
|
1532
|
+
- Dynamic metadata key names are listed inside the ``dynamic`` key and represents metadata that a tool will later provide.
|
|
1533
|
+
|
|
1534
|
+
:param name: (experimental) Valid name consists only of ASCII letters and numbers, period, underscore and hyphen. It must start and end with a letter or number.
|
|
1535
|
+
:param authors: (experimental) People or organizations considered as 'authors' of the project. Each author is a table with ``name`` key, ``email`` key, or both.
|
|
1536
|
+
:param classifiers: (experimental) List of `Trove classifiers <https://pypi.org/classifiers/>`_ that describe the project. PyPI use the classifiers to categorize projects.
|
|
1537
|
+
:param dependencies: (experimental) An array of `dependency specifier <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_ strings, each representing a mandatory dependent package of the project.
|
|
1538
|
+
:param description: (experimental) Summary description of the project in one line. Tools may not accept multiple lines.
|
|
1539
|
+
:param dynamic: (experimental) Specifies which keys are intentionally unspecified under ``[project]`` table so build backend can/will provide such metadata dynamically. Each key must be listed only once. It is an error to both list a key in ``dynamic`` and use the key directly in ``[project]``. One of the most common usage is ``version``, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in ``pyproject.toml``.
|
|
1540
|
+
:param entry_points: (experimental) Extra `entry point groups <https://packaging.python.org/en/latest/specifications/entry-points/>`_ that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through ``[project.entry-points."pygments.styles"]``. Each key is the name of the entry-point group, and each value is a table of entry points.
|
|
1541
|
+
:param gui_scripts: (experimental) Table of `entry points <https://packaging.python.org/en/latest/specifications/entry-points/>`_ 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 ``importable.module`` or ``importable.module:object.attr``. Windows platform treats ``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.
|
|
1542
|
+
:param import_names: (experimental) An array of strings specifying the import names that the project exclusively provides when installed.
|
|
1543
|
+
:param import_namespaces: (experimental) An array of strings specifying the import names that the project provides when installed, but not exclusively.
|
|
1544
|
+
:param keywords: (experimental) List of keywords or tags that describe the project. They could be used by search engines to categorize the project.
|
|
1545
|
+
:param license: (experimental) For now it is a table with either: - ``file`` key specifying a relative path to a license file, or - ``text`` key containing full license content. Newer tool may accept a single `SPDX license expression <https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/>`_ string instead of a table.
|
|
1546
|
+
:param license_files: (experimental) Relative paths or globs to paths of license files. Can be an empty list.
|
|
1547
|
+
:param maintainers: (experimental) People or organizations considered as 'maintainers' of the project. Each maintainer is a table with ``name`` key, ``email`` key, or both.
|
|
1548
|
+
:param optional_dependencies: (experimental) Each entry is a key/value pair, with the key specifying `extra feature name <https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use>`_ (such as ``socks`` in ``requests[socks]``), and value is an array of `dependency specifier <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_ strings.
|
|
1549
|
+
:param readme: (experimental) Value can be a relative path to text / markdown (``.md`` suffix) / reStructuredText (``.rst`` suffix) readme file, or a table with either: - ``file`` key containing path of aforementioned readme file, or - ``text`` key containing the full readme text embedded inside ``pyproject.toml``.
|
|
1550
|
+
:param requires_python: (experimental) Specifies the Python version(s) that the distribution is compatible with. Must be in the format specified in `Version specifiers <https://packaging.python.org/en/latest/specifications/version-specifiers/>`_.
|
|
1551
|
+
:param scripts: (experimental) Table of `entry points <https://packaging.python.org/en/latest/specifications/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 ``importable.module`` or ``importable.module:object.attr``. Windows platform treats ``console_scripts`` specially in that they are wrapped in a console executable, so they are attached to a console and can use ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` for I/O.
|
|
1552
|
+
:param urls: (experimental) Table consisting one or multiple ``label: URL`` pairs. Common indexes like PyPI uses `well-known Project URLs <https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels>`_ when presenting project pages.
|
|
1553
|
+
:param version: (experimental) Version of the project, as defined in the `Version specifier specification <https://packaging.python.org/en/latest/specifications/version-specifiers/>`_, and preferably `already normalized <https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization>`_.
|
|
1554
|
+
|
|
1555
|
+
:stability: experimental
|
|
1556
|
+
:schema: PyprojectTomlProject
|
|
1557
|
+
'''
|
|
1558
|
+
if __debug__:
|
|
1559
|
+
type_hints = typing.get_type_hints(_typecheckingstub__b8e342a1a2af5016dbe0f8461f2a5c512da049f10c5dfb936ea942878407c985)
|
|
1560
|
+
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
1561
|
+
check_type(argname="argument authors", value=authors, expected_type=type_hints["authors"])
|
|
1562
|
+
check_type(argname="argument classifiers", value=classifiers, expected_type=type_hints["classifiers"])
|
|
1563
|
+
check_type(argname="argument dependencies", value=dependencies, expected_type=type_hints["dependencies"])
|
|
1564
|
+
check_type(argname="argument description", value=description, expected_type=type_hints["description"])
|
|
1565
|
+
check_type(argname="argument dynamic", value=dynamic, expected_type=type_hints["dynamic"])
|
|
1566
|
+
check_type(argname="argument entry_points", value=entry_points, expected_type=type_hints["entry_points"])
|
|
1567
|
+
check_type(argname="argument gui_scripts", value=gui_scripts, expected_type=type_hints["gui_scripts"])
|
|
1568
|
+
check_type(argname="argument import_names", value=import_names, expected_type=type_hints["import_names"])
|
|
1569
|
+
check_type(argname="argument import_namespaces", value=import_namespaces, expected_type=type_hints["import_namespaces"])
|
|
1570
|
+
check_type(argname="argument keywords", value=keywords, expected_type=type_hints["keywords"])
|
|
1571
|
+
check_type(argname="argument license", value=license, expected_type=type_hints["license"])
|
|
1572
|
+
check_type(argname="argument license_files", value=license_files, expected_type=type_hints["license_files"])
|
|
1573
|
+
check_type(argname="argument maintainers", value=maintainers, expected_type=type_hints["maintainers"])
|
|
1574
|
+
check_type(argname="argument optional_dependencies", value=optional_dependencies, expected_type=type_hints["optional_dependencies"])
|
|
1575
|
+
check_type(argname="argument readme", value=readme, expected_type=type_hints["readme"])
|
|
1576
|
+
check_type(argname="argument requires_python", value=requires_python, expected_type=type_hints["requires_python"])
|
|
1577
|
+
check_type(argname="argument scripts", value=scripts, expected_type=type_hints["scripts"])
|
|
1578
|
+
check_type(argname="argument urls", value=urls, expected_type=type_hints["urls"])
|
|
1579
|
+
check_type(argname="argument version", value=version, expected_type=type_hints["version"])
|
|
1580
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
1581
|
+
"name": name,
|
|
1582
|
+
}
|
|
1583
|
+
if authors is not None:
|
|
1584
|
+
self._values["authors"] = authors
|
|
1585
|
+
if classifiers is not None:
|
|
1586
|
+
self._values["classifiers"] = classifiers
|
|
1587
|
+
if dependencies is not None:
|
|
1588
|
+
self._values["dependencies"] = dependencies
|
|
1589
|
+
if description is not None:
|
|
1590
|
+
self._values["description"] = description
|
|
1591
|
+
if dynamic is not None:
|
|
1592
|
+
self._values["dynamic"] = dynamic
|
|
1593
|
+
if entry_points is not None:
|
|
1594
|
+
self._values["entry_points"] = entry_points
|
|
1595
|
+
if gui_scripts is not None:
|
|
1596
|
+
self._values["gui_scripts"] = gui_scripts
|
|
1597
|
+
if import_names is not None:
|
|
1598
|
+
self._values["import_names"] = import_names
|
|
1599
|
+
if import_namespaces is not None:
|
|
1600
|
+
self._values["import_namespaces"] = import_namespaces
|
|
1601
|
+
if keywords is not None:
|
|
1602
|
+
self._values["keywords"] = keywords
|
|
1603
|
+
if license is not None:
|
|
1604
|
+
self._values["license"] = license
|
|
1605
|
+
if license_files is not None:
|
|
1606
|
+
self._values["license_files"] = license_files
|
|
1607
|
+
if maintainers is not None:
|
|
1608
|
+
self._values["maintainers"] = maintainers
|
|
1609
|
+
if optional_dependencies is not None:
|
|
1610
|
+
self._values["optional_dependencies"] = optional_dependencies
|
|
1611
|
+
if readme is not None:
|
|
1612
|
+
self._values["readme"] = readme
|
|
1613
|
+
if requires_python is not None:
|
|
1614
|
+
self._values["requires_python"] = requires_python
|
|
1615
|
+
if scripts is not None:
|
|
1616
|
+
self._values["scripts"] = scripts
|
|
1617
|
+
if urls is not None:
|
|
1618
|
+
self._values["urls"] = urls
|
|
1619
|
+
if version is not None:
|
|
1620
|
+
self._values["version"] = version
|
|
1621
|
+
|
|
1622
|
+
@builtins.property
|
|
1623
|
+
def name(self) -> builtins.str:
|
|
1624
|
+
'''(experimental) Valid name consists only of ASCII letters and numbers, period, underscore and hyphen.
|
|
1625
|
+
|
|
1626
|
+
It must start and end with a letter or number.
|
|
1627
|
+
|
|
1628
|
+
:stability: experimental
|
|
1629
|
+
:schema: PyprojectTomlProject#name
|
|
1630
|
+
'''
|
|
1631
|
+
result = self._values.get("name")
|
|
1632
|
+
assert result is not None, "Required property 'name' is missing"
|
|
1633
|
+
return typing.cast(builtins.str, result)
|
|
1634
|
+
|
|
1635
|
+
@builtins.property
|
|
1636
|
+
def authors(self) -> typing.Optional[typing.List[ProjectAuthor]]:
|
|
1637
|
+
'''(experimental) People or organizations considered as 'authors' of the project.
|
|
1638
|
+
|
|
1639
|
+
Each author is a table with ``name`` key, ``email`` key, or both.
|
|
1640
|
+
|
|
1641
|
+
:stability: experimental
|
|
1642
|
+
:schema: PyprojectTomlProject#authors
|
|
1643
|
+
'''
|
|
1644
|
+
result = self._values.get("authors")
|
|
1645
|
+
return typing.cast(typing.Optional[typing.List[ProjectAuthor]], result)
|
|
1646
|
+
|
|
1647
|
+
@builtins.property
|
|
1648
|
+
def classifiers(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
1649
|
+
'''(experimental) List of `Trove classifiers <https://pypi.org/classifiers/>`_ that describe the project. PyPI use the classifiers to categorize projects.
|
|
1650
|
+
|
|
1651
|
+
:stability: experimental
|
|
1652
|
+
:schema: PyprojectTomlProject#classifiers
|
|
1653
|
+
'''
|
|
1654
|
+
result = self._values.get("classifiers")
|
|
1655
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
1656
|
+
|
|
1657
|
+
@builtins.property
|
|
1658
|
+
def dependencies(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
1659
|
+
'''(experimental) An array of `dependency specifier <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_ strings, each representing a mandatory dependent package of the project.
|
|
1660
|
+
|
|
1661
|
+
:stability: experimental
|
|
1662
|
+
:schema: PyprojectTomlProject#dependencies
|
|
1663
|
+
'''
|
|
1664
|
+
result = self._values.get("dependencies")
|
|
1665
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
1666
|
+
|
|
1667
|
+
@builtins.property
|
|
1668
|
+
def description(self) -> typing.Optional[builtins.str]:
|
|
1669
|
+
'''(experimental) Summary description of the project in one line.
|
|
1670
|
+
|
|
1671
|
+
Tools may not accept multiple lines.
|
|
1672
|
+
|
|
1673
|
+
:stability: experimental
|
|
1674
|
+
:schema: PyprojectTomlProject#description
|
|
1675
|
+
'''
|
|
1676
|
+
result = self._values.get("description")
|
|
1677
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1678
|
+
|
|
1679
|
+
@builtins.property
|
|
1680
|
+
def dynamic(self) -> typing.Optional[typing.List["PyprojectTomlProjectDynamic"]]:
|
|
1681
|
+
'''(experimental) Specifies which keys are intentionally unspecified under ``[project]`` table so build backend can/will provide such metadata dynamically.
|
|
1682
|
+
|
|
1683
|
+
Each key must be listed only once. It is an error to both list a key in ``dynamic`` and use the key directly in ``[project]``.
|
|
1684
|
+
One of the most common usage is ``version``, which allows build backend to retrieve project version from source code or version control system instead of hardcoding it in ``pyproject.toml``.
|
|
1685
|
+
|
|
1686
|
+
:stability: experimental
|
|
1687
|
+
:schema: PyprojectTomlProject#dynamic
|
|
1688
|
+
'''
|
|
1689
|
+
result = self._values.get("dynamic")
|
|
1690
|
+
return typing.cast(typing.Optional[typing.List["PyprojectTomlProjectDynamic"]], result)
|
|
1691
|
+
|
|
1692
|
+
@builtins.property
|
|
1693
|
+
def entry_points(self) -> typing.Any:
|
|
1694
|
+
'''(experimental) Extra `entry point groups <https://packaging.python.org/en/latest/specifications/entry-points/>`_ that allow applications to load plugins. For example, Pygments (a syntax highlighting tool) can use additional styles from separately installed packages through ``[project.entry-points."pygments.styles"]``. Each key is the name of the entry-point group, and each value is a table of entry points.
|
|
1695
|
+
|
|
1696
|
+
:stability: experimental
|
|
1697
|
+
:schema: PyprojectTomlProject#entry-points
|
|
1698
|
+
'''
|
|
1699
|
+
result = self._values.get("entry_points")
|
|
1700
|
+
return typing.cast(typing.Any, result)
|
|
1701
|
+
|
|
1702
|
+
@builtins.property
|
|
1703
|
+
def gui_scripts(
|
|
1704
|
+
self,
|
|
1705
|
+
) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
1706
|
+
'''(experimental) Table of `entry points <https://packaging.python.org/en/latest/specifications/entry-points/>`_ 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 ``importable.module`` or ``importable.module:object.attr``. Windows platform treats ``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.
|
|
1707
|
+
|
|
1708
|
+
:stability: experimental
|
|
1709
|
+
:schema: PyprojectTomlProject#gui-scripts
|
|
1710
|
+
'''
|
|
1711
|
+
result = self._values.get("gui_scripts")
|
|
1712
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
1713
|
+
|
|
1714
|
+
@builtins.property
|
|
1715
|
+
def import_names(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
1716
|
+
'''(experimental) An array of strings specifying the import names that the project exclusively provides when installed.
|
|
1717
|
+
|
|
1718
|
+
:stability: experimental
|
|
1719
|
+
:schema: PyprojectTomlProject#import-names
|
|
1720
|
+
'''
|
|
1721
|
+
result = self._values.get("import_names")
|
|
1722
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
1723
|
+
|
|
1724
|
+
@builtins.property
|
|
1725
|
+
def import_namespaces(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
1726
|
+
'''(experimental) An array of strings specifying the import names that the project provides when installed, but not exclusively.
|
|
1727
|
+
|
|
1728
|
+
:stability: experimental
|
|
1729
|
+
:schema: PyprojectTomlProject#import-namespaces
|
|
1730
|
+
'''
|
|
1731
|
+
result = self._values.get("import_namespaces")
|
|
1732
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
1733
|
+
|
|
1734
|
+
@builtins.property
|
|
1735
|
+
def keywords(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
1736
|
+
'''(experimental) List of keywords or tags that describe the project.
|
|
1737
|
+
|
|
1738
|
+
They could be used by search engines to categorize the project.
|
|
1739
|
+
|
|
1740
|
+
:stability: experimental
|
|
1741
|
+
:schema: PyprojectTomlProject#keywords
|
|
1742
|
+
'''
|
|
1743
|
+
result = self._values.get("keywords")
|
|
1744
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
1745
|
+
|
|
1746
|
+
@builtins.property
|
|
1747
|
+
def license(self) -> typing.Any:
|
|
1748
|
+
'''(experimental) For now it is a table with either: - ``file`` key specifying a relative path to a license file, or - ``text`` key containing full license content.
|
|
1749
|
+
|
|
1750
|
+
Newer tool may accept a single `SPDX license expression <https://spdx.github.io/spdx-spec/v2.2.2/SPDX-license-expressions/>`_ string instead of a table.
|
|
1751
|
+
|
|
1752
|
+
:stability: experimental
|
|
1753
|
+
:schema: PyprojectTomlProject#license
|
|
1754
|
+
'''
|
|
1755
|
+
result = self._values.get("license")
|
|
1756
|
+
return typing.cast(typing.Any, result)
|
|
1757
|
+
|
|
1758
|
+
@builtins.property
|
|
1759
|
+
def license_files(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
1760
|
+
'''(experimental) Relative paths or globs to paths of license files.
|
|
1761
|
+
|
|
1762
|
+
Can be an empty list.
|
|
1763
|
+
|
|
1764
|
+
:stability: experimental
|
|
1765
|
+
:schema: PyprojectTomlProject#license-files
|
|
1766
|
+
'''
|
|
1767
|
+
result = self._values.get("license_files")
|
|
1768
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
1769
|
+
|
|
1770
|
+
@builtins.property
|
|
1771
|
+
def maintainers(self) -> typing.Optional[typing.List[ProjectAuthor]]:
|
|
1772
|
+
'''(experimental) People or organizations considered as 'maintainers' of the project.
|
|
1773
|
+
|
|
1774
|
+
Each maintainer is a table with ``name`` key, ``email`` key, or both.
|
|
1775
|
+
|
|
1776
|
+
:stability: experimental
|
|
1777
|
+
:schema: PyprojectTomlProject#maintainers
|
|
1778
|
+
'''
|
|
1779
|
+
result = self._values.get("maintainers")
|
|
1780
|
+
return typing.cast(typing.Optional[typing.List[ProjectAuthor]], result)
|
|
1781
|
+
|
|
1782
|
+
@builtins.property
|
|
1783
|
+
def optional_dependencies(self) -> typing.Any:
|
|
1784
|
+
'''(experimental) Each entry is a key/value pair, with the key specifying `extra feature name <https://packaging.python.org/en/latest/specifications/core-metadata/#provides-extra-multiple-use>`_ (such as ``socks`` in ``requests[socks]``), and value is an array of `dependency specifier <https://packaging.python.org/en/latest/specifications/dependency-specifiers/>`_ strings.
|
|
1785
|
+
|
|
1786
|
+
:stability: experimental
|
|
1787
|
+
:schema: PyprojectTomlProject#optional-dependencies
|
|
1788
|
+
'''
|
|
1789
|
+
result = self._values.get("optional_dependencies")
|
|
1790
|
+
return typing.cast(typing.Any, result)
|
|
1791
|
+
|
|
1792
|
+
@builtins.property
|
|
1793
|
+
def readme(self) -> typing.Any:
|
|
1794
|
+
'''(experimental) Value can be a relative path to text / markdown (``.md`` suffix) / reStructuredText (``.rst`` suffix) readme file, or a table with either: - ``file`` key containing path of aforementioned readme file, or - ``text`` key containing the full readme text embedded inside ``pyproject.toml``.
|
|
1795
|
+
|
|
1796
|
+
:stability: experimental
|
|
1797
|
+
:schema: PyprojectTomlProject#readme
|
|
1798
|
+
'''
|
|
1799
|
+
result = self._values.get("readme")
|
|
1800
|
+
return typing.cast(typing.Any, result)
|
|
1801
|
+
|
|
1802
|
+
@builtins.property
|
|
1803
|
+
def requires_python(self) -> typing.Optional[builtins.str]:
|
|
1804
|
+
'''(experimental) Specifies the Python version(s) that the distribution is compatible with.
|
|
1805
|
+
|
|
1806
|
+
Must be in the format specified in `Version specifiers <https://packaging.python.org/en/latest/specifications/version-specifiers/>`_.
|
|
1807
|
+
|
|
1808
|
+
:stability: experimental
|
|
1809
|
+
:schema: PyprojectTomlProject#requires-python
|
|
1810
|
+
'''
|
|
1811
|
+
result = self._values.get("requires_python")
|
|
1812
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1813
|
+
|
|
1814
|
+
@builtins.property
|
|
1815
|
+
def scripts(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
1816
|
+
'''(experimental) Table of `entry points <https://packaging.python.org/en/latest/specifications/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 ``importable.module`` or ``importable.module:object.attr``. Windows platform treats ``console_scripts`` specially in that they are wrapped in a console executable, so they are attached to a console and can use ``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` for I/O.
|
|
1817
|
+
|
|
1818
|
+
:stability: experimental
|
|
1819
|
+
:schema: PyprojectTomlProject#scripts
|
|
1820
|
+
'''
|
|
1821
|
+
result = self._values.get("scripts")
|
|
1822
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
1823
|
+
|
|
1824
|
+
@builtins.property
|
|
1825
|
+
def urls(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
|
|
1826
|
+
'''(experimental) Table consisting one or multiple ``label: URL`` pairs.
|
|
1827
|
+
|
|
1828
|
+
Common indexes like PyPI uses `well-known Project URLs <https://packaging.python.org/en/latest/specifications/well-known-project-urls/#well-known-labels>`_ when presenting project pages.
|
|
1829
|
+
|
|
1830
|
+
:stability: experimental
|
|
1831
|
+
:schema: PyprojectTomlProject#urls
|
|
1832
|
+
'''
|
|
1833
|
+
result = self._values.get("urls")
|
|
1834
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
|
|
1835
|
+
|
|
1836
|
+
@builtins.property
|
|
1837
|
+
def version(self) -> typing.Optional[builtins.str]:
|
|
1838
|
+
'''(experimental) Version of the project, as defined in the `Version specifier specification <https://packaging.python.org/en/latest/specifications/version-specifiers/>`_, and preferably `already normalized <https://packaging.python.org/en/latest/specifications/version-specifiers/#normalization>`_.
|
|
1839
|
+
|
|
1840
|
+
:stability: experimental
|
|
1841
|
+
:schema: PyprojectTomlProject#version
|
|
1842
|
+
'''
|
|
1843
|
+
result = self._values.get("version")
|
|
1844
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
1845
|
+
|
|
1846
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1847
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1848
|
+
|
|
1849
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
1850
|
+
return not (rhs == self)
|
|
1851
|
+
|
|
1852
|
+
def __repr__(self) -> str:
|
|
1853
|
+
return "PyprojectTomlProject(%s)" % ", ".join(
|
|
1854
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
1855
|
+
)
|
|
1856
|
+
|
|
1857
|
+
|
|
1858
|
+
@jsii.enum(jsii_type="projen.python.PyprojectTomlProjectDynamic")
|
|
1859
|
+
class PyprojectTomlProjectDynamic(enum.Enum):
|
|
1860
|
+
'''
|
|
1861
|
+
:stability: experimental
|
|
1862
|
+
:schema: PyprojectTomlProjectDynamic
|
|
1863
|
+
'''
|
|
1864
|
+
|
|
1865
|
+
VERSION = "VERSION"
|
|
1866
|
+
'''(experimental) version.
|
|
1867
|
+
|
|
1868
|
+
:stability: experimental
|
|
1869
|
+
'''
|
|
1870
|
+
DESCRIPTION = "DESCRIPTION"
|
|
1871
|
+
'''(experimental) description.
|
|
1872
|
+
|
|
1873
|
+
:stability: experimental
|
|
1874
|
+
'''
|
|
1875
|
+
README = "README"
|
|
1876
|
+
'''(experimental) readme.
|
|
1877
|
+
|
|
1878
|
+
:stability: experimental
|
|
1879
|
+
'''
|
|
1880
|
+
REQUIRES_HYPHEN_PYTHON = "REQUIRES_HYPHEN_PYTHON"
|
|
1881
|
+
'''(experimental) requires-python.
|
|
1882
|
+
|
|
1883
|
+
:stability: experimental
|
|
1884
|
+
'''
|
|
1885
|
+
LICENSE = "LICENSE"
|
|
1886
|
+
'''(experimental) license.
|
|
1887
|
+
|
|
1888
|
+
:stability: experimental
|
|
1889
|
+
'''
|
|
1890
|
+
LICENSE_HYPHEN_FILES = "LICENSE_HYPHEN_FILES"
|
|
1891
|
+
'''(experimental) license-files.
|
|
1892
|
+
|
|
1893
|
+
:stability: experimental
|
|
1894
|
+
'''
|
|
1895
|
+
AUTHORS = "AUTHORS"
|
|
1896
|
+
'''(experimental) authors.
|
|
1897
|
+
|
|
1898
|
+
:stability: experimental
|
|
1899
|
+
'''
|
|
1900
|
+
MAINTAINERS = "MAINTAINERS"
|
|
1901
|
+
'''(experimental) maintainers.
|
|
1902
|
+
|
|
1903
|
+
:stability: experimental
|
|
1904
|
+
'''
|
|
1905
|
+
KEYWORDS = "KEYWORDS"
|
|
1906
|
+
'''(experimental) keywords.
|
|
1907
|
+
|
|
1908
|
+
:stability: experimental
|
|
1909
|
+
'''
|
|
1910
|
+
CLASSIFIERS = "CLASSIFIERS"
|
|
1911
|
+
'''(experimental) classifiers.
|
|
1912
|
+
|
|
1913
|
+
:stability: experimental
|
|
1914
|
+
'''
|
|
1915
|
+
URLS = "URLS"
|
|
1916
|
+
'''(experimental) urls.
|
|
1917
|
+
|
|
1918
|
+
:stability: experimental
|
|
1919
|
+
'''
|
|
1920
|
+
SCRIPTS = "SCRIPTS"
|
|
1921
|
+
'''(experimental) scripts.
|
|
1922
|
+
|
|
1923
|
+
:stability: experimental
|
|
1924
|
+
'''
|
|
1925
|
+
GUI_HYPHEN_SCRIPTS = "GUI_HYPHEN_SCRIPTS"
|
|
1926
|
+
'''(experimental) gui-scripts.
|
|
1927
|
+
|
|
1928
|
+
:stability: experimental
|
|
1929
|
+
'''
|
|
1930
|
+
ENTRY_HYPHEN_POINTS = "ENTRY_HYPHEN_POINTS"
|
|
1931
|
+
'''(experimental) entry-points.
|
|
1932
|
+
|
|
1933
|
+
:stability: experimental
|
|
1934
|
+
'''
|
|
1935
|
+
DEPENDENCIES = "DEPENDENCIES"
|
|
1936
|
+
'''(experimental) dependencies.
|
|
1937
|
+
|
|
1938
|
+
:stability: experimental
|
|
1939
|
+
'''
|
|
1940
|
+
OPTIONAL_HYPHEN_DEPENDENCIES = "OPTIONAL_HYPHEN_DEPENDENCIES"
|
|
1941
|
+
'''(experimental) optional-dependencies.
|
|
1942
|
+
|
|
1943
|
+
:stability: experimental
|
|
1944
|
+
'''
|
|
1945
|
+
IMPORT_HYPHEN_NAMES = "IMPORT_HYPHEN_NAMES"
|
|
1946
|
+
'''(experimental) import-names.
|
|
1947
|
+
|
|
1948
|
+
:stability: experimental
|
|
1949
|
+
'''
|
|
1950
|
+
IMPORT_HYPHEN_NAMESPACES = "IMPORT_HYPHEN_NAMESPACES"
|
|
1951
|
+
'''(experimental) import-namespaces.
|
|
1952
|
+
|
|
1953
|
+
:stability: experimental
|
|
1954
|
+
'''
|
|
1955
|
+
|
|
1956
|
+
|
|
1957
|
+
@jsii.data_type(
|
|
1958
|
+
jsii_type="projen.python.PyprojectTomlTool",
|
|
1959
|
+
jsii_struct_bases=[],
|
|
1960
|
+
name_mapping={
|
|
1961
|
+
"black": "black",
|
|
1962
|
+
"cibuildwheel": "cibuildwheel",
|
|
1963
|
+
"hatch": "hatch",
|
|
1964
|
+
"maturin": "maturin",
|
|
1965
|
+
"mypy": "mypy",
|
|
1966
|
+
"pdm": "pdm",
|
|
1967
|
+
"poe": "poe",
|
|
1968
|
+
"poetry": "poetry",
|
|
1969
|
+
"pyright": "pyright",
|
|
1970
|
+
"pytest": "pytest",
|
|
1971
|
+
"repo_review": "repoReview",
|
|
1972
|
+
"ruff": "ruff",
|
|
1973
|
+
"scikit_build": "scikitBuild",
|
|
1974
|
+
"setuptools": "setuptools",
|
|
1975
|
+
"setuptools_scm": "setuptoolsScm",
|
|
1976
|
+
"taskipy": "taskipy",
|
|
1977
|
+
"tombi": "tombi",
|
|
1978
|
+
"tox": "tox",
|
|
1979
|
+
"ty": "ty",
|
|
1980
|
+
"uv": "uv",
|
|
1981
|
+
},
|
|
1982
|
+
)
|
|
1983
|
+
class PyprojectTomlTool:
|
|
1984
|
+
def __init__(
|
|
1985
|
+
self,
|
|
1986
|
+
*,
|
|
1987
|
+
black: typing.Any = None,
|
|
1988
|
+
cibuildwheel: typing.Any = None,
|
|
1989
|
+
hatch: typing.Any = None,
|
|
1990
|
+
maturin: typing.Any = None,
|
|
1991
|
+
mypy: typing.Any = None,
|
|
1992
|
+
pdm: typing.Any = None,
|
|
1993
|
+
poe: typing.Any = None,
|
|
1994
|
+
poetry: typing.Any = None,
|
|
1995
|
+
pyright: typing.Any = None,
|
|
1996
|
+
pytest: typing.Any = None,
|
|
1997
|
+
repo_review: typing.Any = None,
|
|
1998
|
+
ruff: typing.Any = None,
|
|
1999
|
+
scikit_build: typing.Any = None,
|
|
2000
|
+
setuptools: typing.Any = None,
|
|
2001
|
+
setuptools_scm: typing.Any = None,
|
|
2002
|
+
taskipy: typing.Any = None,
|
|
2003
|
+
tombi: typing.Any = None,
|
|
2004
|
+
tox: typing.Any = None,
|
|
2005
|
+
ty: typing.Any = None,
|
|
2006
|
+
uv: typing.Any = None,
|
|
2007
|
+
) -> None:
|
|
2008
|
+
'''(experimental) Every tool that is used by the project can have users specify configuration data as long as they use a sub-table within ``[tool]``.
|
|
2009
|
+
|
|
2010
|
+
Generally a project can use the subtable ``tool.$NAME`` if, and only if, they own the entry for ``$NAME`` in the Cheeseshop/PyPI.
|
|
2011
|
+
|
|
2012
|
+
:param black: (experimental) The uncompromising Python code formatter.
|
|
2013
|
+
:param cibuildwheel: (experimental) Build Python wheels for all platforms.
|
|
2014
|
+
:param hatch: (experimental) Modern, extensible Python project management.
|
|
2015
|
+
:param maturin: (experimental) Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages.
|
|
2016
|
+
:param mypy: (experimental) Optional static typing for Python.
|
|
2017
|
+
:param pdm: (experimental) A modern Python package manager with PEP 621 support.
|
|
2018
|
+
:param poe: (experimental) A task runner that works well with pyproject.toml files.
|
|
2019
|
+
:param poetry: (experimental) Python dependency management and packaging made easy.
|
|
2020
|
+
:param pyright: (experimental) Static type checker for Python.
|
|
2021
|
+
:param pytest: (experimental) Standardized automated testing of Python packages.
|
|
2022
|
+
:param repo_review: (experimental) Review a repository for best practices.
|
|
2023
|
+
:param ruff: (experimental) An extremely fast Python linter and formatter, written in Rust.
|
|
2024
|
+
:param scikit_build: (experimental) Improved build system generator for Python C/C++/Fortran extensions.
|
|
2025
|
+
:param setuptools: (experimental) Easily download, build, install, upgrade, and uninstall Python packages.
|
|
2026
|
+
:param setuptools_scm: (experimental) Manage Python package versions using SCM (e.g. Git).
|
|
2027
|
+
:param taskipy: (experimental) The complementary task runner for python.
|
|
2028
|
+
:param tombi: (experimental) Tombi is a toolkit for TOML; providing a formatter/linter and language server
|
|
2029
|
+
:param tox: (experimental) Standardized automated testing of Python packages.
|
|
2030
|
+
:param ty: (experimental) An extremely fast Python type checker, written in Rust.
|
|
2031
|
+
:param uv: (experimental) An extremely fast Python package installer and resolver, written in Rust.
|
|
2032
|
+
|
|
2033
|
+
:stability: experimental
|
|
2034
|
+
:schema: PyprojectTomlTool
|
|
2035
|
+
'''
|
|
2036
|
+
if __debug__:
|
|
2037
|
+
type_hints = typing.get_type_hints(_typecheckingstub__bc2ba765e25294b713eef60bd54f79fe7e8b12bdfb44298beec4d108cc84cf15)
|
|
2038
|
+
check_type(argname="argument black", value=black, expected_type=type_hints["black"])
|
|
2039
|
+
check_type(argname="argument cibuildwheel", value=cibuildwheel, expected_type=type_hints["cibuildwheel"])
|
|
2040
|
+
check_type(argname="argument hatch", value=hatch, expected_type=type_hints["hatch"])
|
|
2041
|
+
check_type(argname="argument maturin", value=maturin, expected_type=type_hints["maturin"])
|
|
2042
|
+
check_type(argname="argument mypy", value=mypy, expected_type=type_hints["mypy"])
|
|
2043
|
+
check_type(argname="argument pdm", value=pdm, expected_type=type_hints["pdm"])
|
|
2044
|
+
check_type(argname="argument poe", value=poe, expected_type=type_hints["poe"])
|
|
2045
|
+
check_type(argname="argument poetry", value=poetry, expected_type=type_hints["poetry"])
|
|
2046
|
+
check_type(argname="argument pyright", value=pyright, expected_type=type_hints["pyright"])
|
|
2047
|
+
check_type(argname="argument pytest", value=pytest, expected_type=type_hints["pytest"])
|
|
2048
|
+
check_type(argname="argument repo_review", value=repo_review, expected_type=type_hints["repo_review"])
|
|
2049
|
+
check_type(argname="argument ruff", value=ruff, expected_type=type_hints["ruff"])
|
|
2050
|
+
check_type(argname="argument scikit_build", value=scikit_build, expected_type=type_hints["scikit_build"])
|
|
2051
|
+
check_type(argname="argument setuptools", value=setuptools, expected_type=type_hints["setuptools"])
|
|
2052
|
+
check_type(argname="argument setuptools_scm", value=setuptools_scm, expected_type=type_hints["setuptools_scm"])
|
|
2053
|
+
check_type(argname="argument taskipy", value=taskipy, expected_type=type_hints["taskipy"])
|
|
2054
|
+
check_type(argname="argument tombi", value=tombi, expected_type=type_hints["tombi"])
|
|
2055
|
+
check_type(argname="argument tox", value=tox, expected_type=type_hints["tox"])
|
|
2056
|
+
check_type(argname="argument ty", value=ty, expected_type=type_hints["ty"])
|
|
2057
|
+
check_type(argname="argument uv", value=uv, expected_type=type_hints["uv"])
|
|
2058
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
2059
|
+
if black is not None:
|
|
2060
|
+
self._values["black"] = black
|
|
2061
|
+
if cibuildwheel is not None:
|
|
2062
|
+
self._values["cibuildwheel"] = cibuildwheel
|
|
2063
|
+
if hatch is not None:
|
|
2064
|
+
self._values["hatch"] = hatch
|
|
2065
|
+
if maturin is not None:
|
|
2066
|
+
self._values["maturin"] = maturin
|
|
2067
|
+
if mypy is not None:
|
|
2068
|
+
self._values["mypy"] = mypy
|
|
2069
|
+
if pdm is not None:
|
|
2070
|
+
self._values["pdm"] = pdm
|
|
2071
|
+
if poe is not None:
|
|
2072
|
+
self._values["poe"] = poe
|
|
2073
|
+
if poetry is not None:
|
|
2074
|
+
self._values["poetry"] = poetry
|
|
2075
|
+
if pyright is not None:
|
|
2076
|
+
self._values["pyright"] = pyright
|
|
2077
|
+
if pytest is not None:
|
|
2078
|
+
self._values["pytest"] = pytest
|
|
2079
|
+
if repo_review is not None:
|
|
2080
|
+
self._values["repo_review"] = repo_review
|
|
2081
|
+
if ruff is not None:
|
|
2082
|
+
self._values["ruff"] = ruff
|
|
2083
|
+
if scikit_build is not None:
|
|
2084
|
+
self._values["scikit_build"] = scikit_build
|
|
2085
|
+
if setuptools is not None:
|
|
2086
|
+
self._values["setuptools"] = setuptools
|
|
2087
|
+
if setuptools_scm is not None:
|
|
2088
|
+
self._values["setuptools_scm"] = setuptools_scm
|
|
2089
|
+
if taskipy is not None:
|
|
2090
|
+
self._values["taskipy"] = taskipy
|
|
2091
|
+
if tombi is not None:
|
|
2092
|
+
self._values["tombi"] = tombi
|
|
2093
|
+
if tox is not None:
|
|
2094
|
+
self._values["tox"] = tox
|
|
2095
|
+
if ty is not None:
|
|
2096
|
+
self._values["ty"] = ty
|
|
2097
|
+
if uv is not None:
|
|
2098
|
+
self._values["uv"] = uv
|
|
2099
|
+
|
|
2100
|
+
@builtins.property
|
|
2101
|
+
def black(self) -> typing.Any:
|
|
2102
|
+
'''(experimental) The uncompromising Python code formatter.
|
|
802
2103
|
|
|
803
2104
|
:stability: experimental
|
|
2105
|
+
:schema: PyprojectTomlTool#black
|
|
804
2106
|
'''
|
|
805
|
-
result = self._values.get("
|
|
806
|
-
return typing.cast(typing.
|
|
2107
|
+
result = self._values.get("black")
|
|
2108
|
+
return typing.cast(typing.Any, result)
|
|
807
2109
|
|
|
808
2110
|
@builtins.property
|
|
809
|
-
def
|
|
810
|
-
'''(experimental)
|
|
2111
|
+
def cibuildwheel(self) -> typing.Any:
|
|
2112
|
+
'''(experimental) Build Python wheels for all platforms.
|
|
811
2113
|
|
|
812
2114
|
:stability: experimental
|
|
2115
|
+
:schema: PyprojectTomlTool#cibuildwheel
|
|
813
2116
|
'''
|
|
814
|
-
result = self._values.get("
|
|
815
|
-
return typing.cast(typing.
|
|
2117
|
+
result = self._values.get("cibuildwheel")
|
|
2118
|
+
return typing.cast(typing.Any, result)
|
|
816
2119
|
|
|
817
2120
|
@builtins.property
|
|
818
|
-
def
|
|
819
|
-
'''(experimental)
|
|
820
|
-
|
|
821
|
-
If the project is proprietary and does not use a specific license, you
|
|
822
|
-
can set this value as "Proprietary".
|
|
2121
|
+
def hatch(self) -> typing.Any:
|
|
2122
|
+
'''(experimental) Modern, extensible Python project management.
|
|
823
2123
|
|
|
824
2124
|
:stability: experimental
|
|
2125
|
+
:schema: PyprojectTomlTool#hatch
|
|
825
2126
|
'''
|
|
826
|
-
result = self._values.get("
|
|
827
|
-
return typing.cast(typing.
|
|
2127
|
+
result = self._values.get("hatch")
|
|
2128
|
+
return typing.cast(typing.Any, result)
|
|
828
2129
|
|
|
829
2130
|
@builtins.property
|
|
830
|
-
def
|
|
831
|
-
'''(experimental)
|
|
832
|
-
|
|
833
|
-
Must be in the form "name "
|
|
2131
|
+
def maturin(self) -> typing.Any:
|
|
2132
|
+
'''(experimental) Build and publish crates with pyo3, cffi and uniffi bindings as well as rust binaries as python packages.
|
|
834
2133
|
|
|
835
2134
|
:stability: experimental
|
|
2135
|
+
:schema: PyprojectTomlTool#maturin
|
|
836
2136
|
'''
|
|
837
|
-
result = self._values.get("
|
|
838
|
-
return typing.cast(typing.
|
|
2137
|
+
result = self._values.get("maturin")
|
|
2138
|
+
return typing.cast(typing.Any, result)
|
|
839
2139
|
|
|
840
2140
|
@builtins.property
|
|
841
|
-
def
|
|
842
|
-
'''(experimental)
|
|
2141
|
+
def mypy(self) -> typing.Any:
|
|
2142
|
+
'''(experimental) Optional static typing for Python.
|
|
843
2143
|
|
|
844
2144
|
:stability: experimental
|
|
2145
|
+
:schema: PyprojectTomlTool#mypy
|
|
845
2146
|
'''
|
|
846
|
-
result = self._values.get("
|
|
847
|
-
return typing.cast(typing.
|
|
2147
|
+
result = self._values.get("mypy")
|
|
2148
|
+
return typing.cast(typing.Any, result)
|
|
848
2149
|
|
|
849
2150
|
@builtins.property
|
|
850
|
-
def
|
|
851
|
-
'''(experimental) A
|
|
2151
|
+
def pdm(self) -> typing.Any:
|
|
2152
|
+
'''(experimental) A modern Python package manager with PEP 621 support.
|
|
852
2153
|
|
|
853
2154
|
:stability: experimental
|
|
2155
|
+
:schema: PyprojectTomlTool#pdm
|
|
854
2156
|
'''
|
|
855
|
-
result = self._values.get("
|
|
856
|
-
return typing.cast(typing.
|
|
2157
|
+
result = self._values.get("pdm")
|
|
2158
|
+
return typing.cast(typing.Any, result)
|
|
857
2159
|
|
|
858
2160
|
@builtins.property
|
|
859
|
-
def
|
|
860
|
-
'''(experimental)
|
|
861
|
-
|
|
862
|
-
Must be specified as a table.
|
|
2161
|
+
def poe(self) -> typing.Any:
|
|
2162
|
+
'''(experimental) A task runner that works well with pyproject.toml files.
|
|
863
2163
|
|
|
864
|
-
:see: https://toml.io/en/v1.0.0#table
|
|
865
2164
|
:stability: experimental
|
|
2165
|
+
:schema: PyprojectTomlTool#poe
|
|
866
2166
|
'''
|
|
867
|
-
result = self._values.get("
|
|
2167
|
+
result = self._values.get("poe")
|
|
868
2168
|
return typing.cast(typing.Any, result)
|
|
869
2169
|
|
|
870
2170
|
@builtins.property
|
|
871
|
-
def
|
|
872
|
-
'''(experimental)
|
|
2171
|
+
def poetry(self) -> typing.Any:
|
|
2172
|
+
'''(experimental) Python dependency management and packaging made easy.
|
|
873
2173
|
|
|
874
2174
|
:stability: experimental
|
|
2175
|
+
:schema: PyprojectTomlTool#poetry
|
|
875
2176
|
'''
|
|
876
|
-
result = self._values.get("
|
|
877
|
-
return typing.cast(typing.
|
|
2177
|
+
result = self._values.get("poetry")
|
|
2178
|
+
return typing.cast(typing.Any, result)
|
|
878
2179
|
|
|
879
2180
|
@builtins.property
|
|
880
|
-
def
|
|
881
|
-
'''(experimental)
|
|
2181
|
+
def pyright(self) -> typing.Any:
|
|
2182
|
+
'''(experimental) Static type checker for Python.
|
|
882
2183
|
|
|
883
2184
|
:stability: experimental
|
|
2185
|
+
:schema: PyprojectTomlTool#pyright
|
|
884
2186
|
'''
|
|
885
|
-
result = self._values.get("
|
|
886
|
-
return typing.cast(typing.
|
|
2187
|
+
result = self._values.get("pyright")
|
|
2188
|
+
return typing.cast(typing.Any, result)
|
|
887
2189
|
|
|
888
2190
|
@builtins.property
|
|
889
|
-
def
|
|
890
|
-
'''(experimental)
|
|
2191
|
+
def pytest(self) -> typing.Any:
|
|
2192
|
+
'''(experimental) Standardized automated testing of Python packages.
|
|
891
2193
|
|
|
892
2194
|
:stability: experimental
|
|
2195
|
+
:schema: PyprojectTomlTool#pytest
|
|
893
2196
|
'''
|
|
894
|
-
result = self._values.get("
|
|
895
|
-
return typing.cast(typing.
|
|
2197
|
+
result = self._values.get("pytest")
|
|
2198
|
+
return typing.cast(typing.Any, result)
|
|
896
2199
|
|
|
897
2200
|
@builtins.property
|
|
898
|
-
def
|
|
899
|
-
'''(experimental)
|
|
2201
|
+
def repo_review(self) -> typing.Any:
|
|
2202
|
+
'''(experimental) Review a repository for best practices.
|
|
900
2203
|
|
|
901
2204
|
:stability: experimental
|
|
2205
|
+
:schema: PyprojectTomlTool#repo-review
|
|
902
2206
|
'''
|
|
903
|
-
result = self._values.get("
|
|
904
|
-
return typing.cast(typing.
|
|
2207
|
+
result = self._values.get("repo_review")
|
|
2208
|
+
return typing.cast(typing.Any, result)
|
|
905
2209
|
|
|
906
2210
|
@builtins.property
|
|
907
|
-
def
|
|
908
|
-
'''(experimental)
|
|
909
|
-
|
|
910
|
-
E.g. "Bug Tracker"
|
|
2211
|
+
def ruff(self) -> typing.Any:
|
|
2212
|
+
'''(experimental) An extremely fast Python linter and formatter, written in Rust.
|
|
911
2213
|
|
|
912
2214
|
:stability: experimental
|
|
2215
|
+
:schema: PyprojectTomlTool#ruff
|
|
913
2216
|
'''
|
|
914
|
-
result = self._values.get("
|
|
915
|
-
return typing.cast(typing.
|
|
2217
|
+
result = self._values.get("ruff")
|
|
2218
|
+
return typing.cast(typing.Any, result)
|
|
916
2219
|
|
|
917
2220
|
@builtins.property
|
|
918
|
-
def
|
|
919
|
-
'''(experimental)
|
|
2221
|
+
def scikit_build(self) -> typing.Any:
|
|
2222
|
+
'''(experimental) Improved build system generator for Python C/C++/Fortran extensions.
|
|
920
2223
|
|
|
921
2224
|
:stability: experimental
|
|
2225
|
+
:schema: PyprojectTomlTool#scikit-build
|
|
922
2226
|
'''
|
|
923
|
-
result = self._values.get("
|
|
924
|
-
return typing.cast(typing.
|
|
925
|
-
|
|
926
|
-
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
927
|
-
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
928
|
-
|
|
929
|
-
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
930
|
-
return not (rhs == self)
|
|
931
|
-
|
|
932
|
-
def __repr__(self) -> str:
|
|
933
|
-
return "PoetryPyprojectOptionsWithoutDeps(%s)" % ", ".join(
|
|
934
|
-
k + "=" + repr(v) for k, v in self._values.items()
|
|
935
|
-
)
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
class Projenrc(
|
|
939
|
-
_ProjenrcFile_50432c7e,
|
|
940
|
-
metaclass=jsii.JSIIMeta,
|
|
941
|
-
jsii_type="projen.python.Projenrc",
|
|
942
|
-
):
|
|
943
|
-
'''(experimental) Allows writing projenrc files in python.
|
|
944
|
-
|
|
945
|
-
This will install ``projen`` as a Python dependency and will add a
|
|
946
|
-
``synth`` task which will run ``.projenrc.py``.
|
|
947
|
-
|
|
948
|
-
:stability: experimental
|
|
949
|
-
'''
|
|
2227
|
+
result = self._values.get("scikit_build")
|
|
2228
|
+
return typing.cast(typing.Any, result)
|
|
950
2229
|
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
*,
|
|
955
|
-
filename: typing.Optional[builtins.str] = None,
|
|
956
|
-
projen_version: typing.Optional[builtins.str] = None,
|
|
957
|
-
python_exec: typing.Optional[builtins.str] = None,
|
|
958
|
-
) -> None:
|
|
959
|
-
'''
|
|
960
|
-
:param project: -
|
|
961
|
-
:param filename: (experimental) The name of the projenrc file. Default: ".projenrc.py"
|
|
962
|
-
:param projen_version: (experimental) The projen version to use. Default: - current version
|
|
963
|
-
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
2230
|
+
@builtins.property
|
|
2231
|
+
def setuptools(self) -> typing.Any:
|
|
2232
|
+
'''(experimental) Easily download, build, install, upgrade, and uninstall Python packages.
|
|
964
2233
|
|
|
965
2234
|
:stability: experimental
|
|
2235
|
+
:schema: PyprojectTomlTool#setuptools
|
|
966
2236
|
'''
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
check_type(argname="argument project", value=project, expected_type=type_hints["project"])
|
|
970
|
-
options = ProjenrcOptions(
|
|
971
|
-
filename=filename, projen_version=projen_version, python_exec=python_exec
|
|
972
|
-
)
|
|
973
|
-
|
|
974
|
-
jsii.create(self.__class__, self, [project, options])
|
|
2237
|
+
result = self._values.get("setuptools")
|
|
2238
|
+
return typing.cast(typing.Any, result)
|
|
975
2239
|
|
|
976
2240
|
@builtins.property
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
'''(experimental) The name of the projenrc file.
|
|
2241
|
+
def setuptools_scm(self) -> typing.Any:
|
|
2242
|
+
'''(experimental) Manage Python package versions using SCM (e.g. Git).
|
|
980
2243
|
|
|
981
2244
|
:stability: experimental
|
|
2245
|
+
:schema: PyprojectTomlTool#setuptools_scm
|
|
982
2246
|
'''
|
|
983
|
-
|
|
2247
|
+
result = self._values.get("setuptools_scm")
|
|
2248
|
+
return typing.cast(typing.Any, result)
|
|
984
2249
|
|
|
985
2250
|
@builtins.property
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
'''(experimental) Path to the python executable to use.
|
|
2251
|
+
def taskipy(self) -> typing.Any:
|
|
2252
|
+
'''(experimental) The complementary task runner for python.
|
|
989
2253
|
|
|
990
2254
|
:stability: experimental
|
|
2255
|
+
:schema: PyprojectTomlTool#taskipy
|
|
991
2256
|
'''
|
|
992
|
-
|
|
993
|
-
|
|
2257
|
+
result = self._values.get("taskipy")
|
|
2258
|
+
return typing.cast(typing.Any, result)
|
|
994
2259
|
|
|
995
|
-
@
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
name_mapping={
|
|
999
|
-
"filename": "filename",
|
|
1000
|
-
"projen_version": "projenVersion",
|
|
1001
|
-
"python_exec": "pythonExec",
|
|
1002
|
-
},
|
|
1003
|
-
)
|
|
1004
|
-
class ProjenrcOptions:
|
|
1005
|
-
def __init__(
|
|
1006
|
-
self,
|
|
1007
|
-
*,
|
|
1008
|
-
filename: typing.Optional[builtins.str] = None,
|
|
1009
|
-
projen_version: typing.Optional[builtins.str] = None,
|
|
1010
|
-
python_exec: typing.Optional[builtins.str] = None,
|
|
1011
|
-
) -> None:
|
|
1012
|
-
'''(experimental) Options for ``Projenrc``.
|
|
2260
|
+
@builtins.property
|
|
2261
|
+
def tombi(self) -> typing.Any:
|
|
2262
|
+
'''(experimental) Tombi is a toolkit for TOML;
|
|
1013
2263
|
|
|
1014
|
-
|
|
1015
|
-
:param projen_version: (experimental) The projen version to use. Default: - current version
|
|
1016
|
-
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
2264
|
+
providing a formatter/linter and language server
|
|
1017
2265
|
|
|
1018
2266
|
:stability: experimental
|
|
2267
|
+
:schema: PyprojectTomlTool#tombi
|
|
1019
2268
|
'''
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
check_type(argname="argument filename", value=filename, expected_type=type_hints["filename"])
|
|
1023
|
-
check_type(argname="argument projen_version", value=projen_version, expected_type=type_hints["projen_version"])
|
|
1024
|
-
check_type(argname="argument python_exec", value=python_exec, expected_type=type_hints["python_exec"])
|
|
1025
|
-
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
1026
|
-
if filename is not None:
|
|
1027
|
-
self._values["filename"] = filename
|
|
1028
|
-
if projen_version is not None:
|
|
1029
|
-
self._values["projen_version"] = projen_version
|
|
1030
|
-
if python_exec is not None:
|
|
1031
|
-
self._values["python_exec"] = python_exec
|
|
2269
|
+
result = self._values.get("tombi")
|
|
2270
|
+
return typing.cast(typing.Any, result)
|
|
1032
2271
|
|
|
1033
2272
|
@builtins.property
|
|
1034
|
-
def
|
|
1035
|
-
'''(experimental)
|
|
1036
|
-
|
|
1037
|
-
:default: ".projenrc.py"
|
|
2273
|
+
def tox(self) -> typing.Any:
|
|
2274
|
+
'''(experimental) Standardized automated testing of Python packages.
|
|
1038
2275
|
|
|
1039
2276
|
:stability: experimental
|
|
2277
|
+
:schema: PyprojectTomlTool#tox
|
|
1040
2278
|
'''
|
|
1041
|
-
result = self._values.get("
|
|
1042
|
-
return typing.cast(typing.
|
|
2279
|
+
result = self._values.get("tox")
|
|
2280
|
+
return typing.cast(typing.Any, result)
|
|
1043
2281
|
|
|
1044
2282
|
@builtins.property
|
|
1045
|
-
def
|
|
1046
|
-
'''(experimental)
|
|
1047
|
-
|
|
1048
|
-
:default: - current version
|
|
2283
|
+
def ty(self) -> typing.Any:
|
|
2284
|
+
'''(experimental) An extremely fast Python type checker, written in Rust.
|
|
1049
2285
|
|
|
1050
2286
|
:stability: experimental
|
|
2287
|
+
:schema: PyprojectTomlTool#ty
|
|
1051
2288
|
'''
|
|
1052
|
-
result = self._values.get("
|
|
1053
|
-
return typing.cast(typing.
|
|
2289
|
+
result = self._values.get("ty")
|
|
2290
|
+
return typing.cast(typing.Any, result)
|
|
1054
2291
|
|
|
1055
2292
|
@builtins.property
|
|
1056
|
-
def
|
|
1057
|
-
'''(experimental)
|
|
1058
|
-
|
|
1059
|
-
:default: "python"
|
|
2293
|
+
def uv(self) -> typing.Any:
|
|
2294
|
+
'''(experimental) An extremely fast Python package installer and resolver, written in Rust.
|
|
1060
2295
|
|
|
1061
2296
|
:stability: experimental
|
|
2297
|
+
:schema: PyprojectTomlTool#uv
|
|
1062
2298
|
'''
|
|
1063
|
-
result = self._values.get("
|
|
1064
|
-
return typing.cast(typing.
|
|
2299
|
+
result = self._values.get("uv")
|
|
2300
|
+
return typing.cast(typing.Any, result)
|
|
1065
2301
|
|
|
1066
2302
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1067
2303
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
@@ -1070,7 +2306,7 @@ class ProjenrcOptions:
|
|
|
1070
2306
|
return not (rhs == self)
|
|
1071
2307
|
|
|
1072
2308
|
def __repr__(self) -> str:
|
|
1073
|
-
return "
|
|
2309
|
+
return "PyprojectTomlTool(%s)" % ", ".join(
|
|
1074
2310
|
k + "=" + repr(v) for k, v in self._values.items()
|
|
1075
2311
|
)
|
|
1076
2312
|
|
|
@@ -1090,12 +2326,14 @@ class Pytest(
|
|
|
1090
2326
|
*,
|
|
1091
2327
|
max_failures: typing.Optional[jsii.Number] = None,
|
|
1092
2328
|
testdir: typing.Optional[builtins.str] = None,
|
|
2329
|
+
test_match: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1093
2330
|
version: typing.Optional[builtins.str] = None,
|
|
1094
2331
|
) -> None:
|
|
1095
2332
|
'''
|
|
1096
2333
|
:param project: -
|
|
1097
2334
|
:param max_failures: (experimental) Stop the testing process after the first N failures.
|
|
1098
|
-
:param testdir: (
|
|
2335
|
+
:param testdir: (deprecated) Location of sample tests. Typically the same directory where project tests will be located. Default: "tests"
|
|
2336
|
+
:param test_match: (experimental) List of paths to test files or directories. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident. Leave empty to discover all test_*.py or *_test.py files, per Pytest default. The array will be concatenated and passed as a single argument to pytest. Default: []
|
|
1099
2337
|
:param version: (experimental) Pytest version. Default: "7.4.3"
|
|
1100
2338
|
|
|
1101
2339
|
:stability: experimental
|
|
@@ -1104,7 +2342,10 @@ class Pytest(
|
|
|
1104
2342
|
type_hints = typing.get_type_hints(_typecheckingstub__ce0d8c554f8b4609921caa32636cdf3f53ff29d779d94c8c46d6322903608390)
|
|
1105
2343
|
check_type(argname="argument project", value=project, expected_type=type_hints["project"])
|
|
1106
2344
|
options = PytestOptions(
|
|
1107
|
-
max_failures=max_failures,
|
|
2345
|
+
max_failures=max_failures,
|
|
2346
|
+
testdir=testdir,
|
|
2347
|
+
test_match=test_match,
|
|
2348
|
+
version=version,
|
|
1108
2349
|
)
|
|
1109
2350
|
|
|
1110
2351
|
jsii.create(self.__class__, self, [project, options])
|
|
@@ -1113,10 +2354,20 @@ class Pytest(
|
|
|
1113
2354
|
@jsii.member(jsii_name="testdir")
|
|
1114
2355
|
def testdir(self) -> builtins.str:
|
|
1115
2356
|
'''
|
|
1116
|
-
:
|
|
2357
|
+
:deprecated: Use ``sampleTestdir`` on the project instead.
|
|
2358
|
+
|
|
2359
|
+
:stability: deprecated
|
|
1117
2360
|
'''
|
|
1118
2361
|
return typing.cast(builtins.str, jsii.get(self, "testdir"))
|
|
1119
2362
|
|
|
2363
|
+
@builtins.property
|
|
2364
|
+
@jsii.member(jsii_name="testMatch")
|
|
2365
|
+
def test_match(self) -> typing.List[builtins.str]:
|
|
2366
|
+
'''
|
|
2367
|
+
:stability: experimental
|
|
2368
|
+
'''
|
|
2369
|
+
return typing.cast(typing.List[builtins.str], jsii.get(self, "testMatch"))
|
|
2370
|
+
|
|
1120
2371
|
|
|
1121
2372
|
@jsii.data_type(
|
|
1122
2373
|
jsii_type="projen.python.PytestOptions",
|
|
@@ -1124,6 +2375,7 @@ class Pytest(
|
|
|
1124
2375
|
name_mapping={
|
|
1125
2376
|
"max_failures": "maxFailures",
|
|
1126
2377
|
"testdir": "testdir",
|
|
2378
|
+
"test_match": "testMatch",
|
|
1127
2379
|
"version": "version",
|
|
1128
2380
|
},
|
|
1129
2381
|
)
|
|
@@ -1133,11 +2385,13 @@ class PytestOptions:
|
|
|
1133
2385
|
*,
|
|
1134
2386
|
max_failures: typing.Optional[jsii.Number] = None,
|
|
1135
2387
|
testdir: typing.Optional[builtins.str] = None,
|
|
2388
|
+
test_match: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
1136
2389
|
version: typing.Optional[builtins.str] = None,
|
|
1137
2390
|
) -> None:
|
|
1138
2391
|
'''
|
|
1139
2392
|
:param max_failures: (experimental) Stop the testing process after the first N failures.
|
|
1140
|
-
:param testdir: (
|
|
2393
|
+
:param testdir: (deprecated) Location of sample tests. Typically the same directory where project tests will be located. Default: "tests"
|
|
2394
|
+
:param test_match: (experimental) List of paths to test files or directories. Useful when all project tests are in a known location to speed up test collection and to avoid picking up undesired tests by accident. Leave empty to discover all test_*.py or *_test.py files, per Pytest default. The array will be concatenated and passed as a single argument to pytest. Default: []
|
|
1141
2395
|
:param version: (experimental) Pytest version. Default: "7.4.3"
|
|
1142
2396
|
|
|
1143
2397
|
:stability: experimental
|
|
@@ -1146,12 +2400,15 @@ class PytestOptions:
|
|
|
1146
2400
|
type_hints = typing.get_type_hints(_typecheckingstub__4be1ab17806d0a3326c1d1b9ba1180daed1458dcbff7d77f34e7381dd37165f7)
|
|
1147
2401
|
check_type(argname="argument max_failures", value=max_failures, expected_type=type_hints["max_failures"])
|
|
1148
2402
|
check_type(argname="argument testdir", value=testdir, expected_type=type_hints["testdir"])
|
|
2403
|
+
check_type(argname="argument test_match", value=test_match, expected_type=type_hints["test_match"])
|
|
1149
2404
|
check_type(argname="argument version", value=version, expected_type=type_hints["version"])
|
|
1150
2405
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
1151
2406
|
if max_failures is not None:
|
|
1152
2407
|
self._values["max_failures"] = max_failures
|
|
1153
2408
|
if testdir is not None:
|
|
1154
2409
|
self._values["testdir"] = testdir
|
|
2410
|
+
if test_match is not None:
|
|
2411
|
+
self._values["test_match"] = test_match
|
|
1155
2412
|
if version is not None:
|
|
1156
2413
|
self._values["version"] = version
|
|
1157
2414
|
|
|
@@ -1166,15 +2423,41 @@ class PytestOptions:
|
|
|
1166
2423
|
|
|
1167
2424
|
@builtins.property
|
|
1168
2425
|
def testdir(self) -> typing.Optional[builtins.str]:
|
|
1169
|
-
'''(
|
|
2426
|
+
'''(deprecated) Location of sample tests.
|
|
1170
2427
|
|
|
1171
|
-
|
|
2428
|
+
Typically the same directory where project tests will be located.
|
|
1172
2429
|
|
|
1173
|
-
:
|
|
2430
|
+
:default: "tests"
|
|
2431
|
+
|
|
2432
|
+
:deprecated: Reference ``sampleTestdir`` on the project instead; to change the directory where tests are discovered from, use ``testMatch``.
|
|
2433
|
+
|
|
2434
|
+
:stability: deprecated
|
|
1174
2435
|
'''
|
|
1175
2436
|
result = self._values.get("testdir")
|
|
1176
2437
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
1177
2438
|
|
|
2439
|
+
@builtins.property
|
|
2440
|
+
def test_match(self) -> typing.Optional[typing.List[builtins.str]]:
|
|
2441
|
+
'''(experimental) List of paths to test files or directories.
|
|
2442
|
+
|
|
2443
|
+
Useful when all project tests are in a known location to speed up
|
|
2444
|
+
test collection and to avoid picking up undesired tests by accident.
|
|
2445
|
+
|
|
2446
|
+
Leave empty to discover all test_*.py or *_test.py files, per Pytest default.
|
|
2447
|
+
|
|
2448
|
+
The array will be concatenated and passed as a single argument to pytest.
|
|
2449
|
+
|
|
2450
|
+
:default: []
|
|
2451
|
+
|
|
2452
|
+
:stability: experimental
|
|
2453
|
+
|
|
2454
|
+
Example::
|
|
2455
|
+
|
|
2456
|
+
["tests/unit", "tests/qa"]
|
|
2457
|
+
'''
|
|
2458
|
+
result = self._values.get("test_match")
|
|
2459
|
+
return typing.cast(typing.Optional[typing.List[builtins.str]], result)
|
|
2460
|
+
|
|
1178
2461
|
@builtins.property
|
|
1179
2462
|
def version(self) -> typing.Optional[builtins.str]:
|
|
1180
2463
|
'''(experimental) Pytest version.
|
|
@@ -1341,6 +2624,7 @@ class PythonExecutableOptions:
|
|
|
1341
2624
|
"package_name": "packageName",
|
|
1342
2625
|
"poetry_options": "poetryOptions",
|
|
1343
2626
|
"setup_config": "setupConfig",
|
|
2627
|
+
"uv_options": "uvOptions",
|
|
1344
2628
|
},
|
|
1345
2629
|
)
|
|
1346
2630
|
class PythonPackagingOptions:
|
|
@@ -1357,6 +2641,7 @@ class PythonPackagingOptions:
|
|
|
1357
2641
|
package_name: typing.Optional[builtins.str] = None,
|
|
1358
2642
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1359
2643
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
2644
|
+
uv_options: typing.Optional[typing.Union["UvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1360
2645
|
) -> None:
|
|
1361
2646
|
'''
|
|
1362
2647
|
:param author_email: (experimental) Author's e-mail. Default: $GIT_USER_EMAIL
|
|
@@ -1369,11 +2654,14 @@ class PythonPackagingOptions:
|
|
|
1369
2654
|
:param package_name: (experimental) Package name.
|
|
1370
2655
|
:param poetry_options: (experimental) Additional options to set for poetry if using poetry.
|
|
1371
2656
|
:param setup_config: (experimental) Additional fields to pass in the setup() function if using setuptools.
|
|
2657
|
+
:param uv_options: (experimental) Additional options to set for uv if using uv.
|
|
1372
2658
|
|
|
1373
2659
|
:stability: experimental
|
|
1374
2660
|
'''
|
|
1375
2661
|
if isinstance(poetry_options, dict):
|
|
1376
2662
|
poetry_options = PoetryPyprojectOptionsWithoutDeps(**poetry_options)
|
|
2663
|
+
if isinstance(uv_options, dict):
|
|
2664
|
+
uv_options = UvOptions(**uv_options)
|
|
1377
2665
|
if __debug__:
|
|
1378
2666
|
type_hints = typing.get_type_hints(_typecheckingstub__8103f3b830f25b7a5e774ec261700198b120623a2bd5b4934a1fd82d8b48fb8a)
|
|
1379
2667
|
check_type(argname="argument author_email", value=author_email, expected_type=type_hints["author_email"])
|
|
@@ -1386,6 +2674,7 @@ class PythonPackagingOptions:
|
|
|
1386
2674
|
check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
|
|
1387
2675
|
check_type(argname="argument poetry_options", value=poetry_options, expected_type=type_hints["poetry_options"])
|
|
1388
2676
|
check_type(argname="argument setup_config", value=setup_config, expected_type=type_hints["setup_config"])
|
|
2677
|
+
check_type(argname="argument uv_options", value=uv_options, expected_type=type_hints["uv_options"])
|
|
1389
2678
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
1390
2679
|
"author_email": author_email,
|
|
1391
2680
|
"author_name": author_name,
|
|
@@ -1405,6 +2694,8 @@ class PythonPackagingOptions:
|
|
|
1405
2694
|
self._values["poetry_options"] = poetry_options
|
|
1406
2695
|
if setup_config is not None:
|
|
1407
2696
|
self._values["setup_config"] = setup_config
|
|
2697
|
+
if uv_options is not None:
|
|
2698
|
+
self._values["uv_options"] = uv_options
|
|
1408
2699
|
|
|
1409
2700
|
@builtins.property
|
|
1410
2701
|
def author_email(self) -> builtins.str:
|
|
@@ -1508,6 +2799,15 @@ class PythonPackagingOptions:
|
|
|
1508
2799
|
result = self._values.get("setup_config")
|
|
1509
2800
|
return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
|
|
1510
2801
|
|
|
2802
|
+
@builtins.property
|
|
2803
|
+
def uv_options(self) -> typing.Optional["UvOptions"]:
|
|
2804
|
+
'''(experimental) Additional options to set for uv if using uv.
|
|
2805
|
+
|
|
2806
|
+
:stability: experimental
|
|
2807
|
+
'''
|
|
2808
|
+
result = self._values.get("uv_options")
|
|
2809
|
+
return typing.cast(typing.Optional["UvOptions"], result)
|
|
2810
|
+
|
|
1511
2811
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
1512
2812
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
1513
2813
|
|
|
@@ -1548,7 +2848,9 @@ class PythonProject(
|
|
|
1548
2848
|
pytest: typing.Optional[builtins.bool] = None,
|
|
1549
2849
|
pytest_options: typing.Optional[typing.Union[PytestOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1550
2850
|
sample: typing.Optional[builtins.bool] = None,
|
|
2851
|
+
sample_testdir: typing.Optional[builtins.str] = None,
|
|
1551
2852
|
setuptools: typing.Optional[builtins.bool] = None,
|
|
2853
|
+
uv: typing.Optional[builtins.bool] = None,
|
|
1552
2854
|
venv: typing.Optional[builtins.bool] = None,
|
|
1553
2855
|
venv_options: typing.Optional[typing.Union["VenvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1554
2856
|
auto_approve_options: typing.Optional[typing.Union[_AutoApproveOptions_dac86cbe, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
@@ -1578,6 +2880,7 @@ class PythonProject(
|
|
|
1578
2880
|
package_name: typing.Optional[builtins.str] = None,
|
|
1579
2881
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1580
2882
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
2883
|
+
uv_options: typing.Optional[typing.Union["UvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1581
2884
|
python_exec: typing.Optional[builtins.str] = None,
|
|
1582
2885
|
name: builtins.str,
|
|
1583
2886
|
commit_generated: typing.Optional[builtins.bool] = None,
|
|
@@ -1607,7 +2910,9 @@ class PythonProject(
|
|
|
1607
2910
|
:param pytest: (experimental) Include pytest tests. Default: true
|
|
1608
2911
|
:param pytest_options: (experimental) pytest options. Default: - defaults
|
|
1609
2912
|
:param sample: (experimental) Include sample code and test if the relevant directories don't exist. Default: true
|
|
2913
|
+
:param sample_testdir: (experimental) Location of sample tests. Typically the same directory where project tests will be located. Default: "tests"
|
|
1610
2914
|
:param setuptools: (experimental) Use setuptools with a setup.py script for packaging and publishing. Default: - true, unless poetry is true, then false
|
|
2915
|
+
:param uv: (experimental) Use uv to manage your project dependencies, virtual environment, and (optional) packaging/publishing. Default: false
|
|
1611
2916
|
:param venv: (experimental) Use venv to manage a virtual environment for installing dependencies inside. Default: - true, unless poetry is true, then false
|
|
1612
2917
|
:param venv_options: (experimental) Venv options. Default: - defaults
|
|
1613
2918
|
:param auto_approve_options: (experimental) Enable and configure the 'auto approve' workflow. Default: - auto approve is disabled
|
|
@@ -1637,6 +2942,7 @@ class PythonProject(
|
|
|
1637
2942
|
:param package_name: (experimental) Package name.
|
|
1638
2943
|
:param poetry_options: (experimental) Additional options to set for poetry if using poetry.
|
|
1639
2944
|
:param setup_config: (experimental) Additional fields to pass in the setup() function if using setuptools.
|
|
2945
|
+
:param uv_options: (experimental) Additional options to set for uv if using uv.
|
|
1640
2946
|
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
1641
2947
|
:param name: (experimental) This is the name of your project. Default: $BASEDIR
|
|
1642
2948
|
:param commit_generated: (experimental) Whether to commit the managed files by default. Default: true
|
|
@@ -1668,7 +2974,9 @@ class PythonProject(
|
|
|
1668
2974
|
pytest=pytest,
|
|
1669
2975
|
pytest_options=pytest_options,
|
|
1670
2976
|
sample=sample,
|
|
2977
|
+
sample_testdir=sample_testdir,
|
|
1671
2978
|
setuptools=setuptools,
|
|
2979
|
+
uv=uv,
|
|
1672
2980
|
venv=venv,
|
|
1673
2981
|
venv_options=venv_options,
|
|
1674
2982
|
auto_approve_options=auto_approve_options,
|
|
@@ -1698,6 +3006,7 @@ class PythonProject(
|
|
|
1698
3006
|
package_name=package_name,
|
|
1699
3007
|
poetry_options=poetry_options,
|
|
1700
3008
|
setup_config=setup_config,
|
|
3009
|
+
uv_options=uv_options,
|
|
1701
3010
|
python_exec=python_exec,
|
|
1702
3011
|
name=name,
|
|
1703
3012
|
commit_generated=commit_generated,
|
|
@@ -1763,7 +3072,7 @@ class PythonProject(
|
|
|
1763
3072
|
@builtins.property
|
|
1764
3073
|
@jsii.member(jsii_name="envManager")
|
|
1765
3074
|
def env_manager(self) -> IPythonEnv:
|
|
1766
|
-
'''(experimental) API for
|
|
3075
|
+
'''(experimental) API for managing the Python runtime environment.
|
|
1767
3076
|
|
|
1768
3077
|
:stability: experimental
|
|
1769
3078
|
'''
|
|
@@ -1778,6 +3087,17 @@ class PythonProject(
|
|
|
1778
3087
|
'''
|
|
1779
3088
|
return typing.cast(builtins.str, jsii.get(self, "moduleName"))
|
|
1780
3089
|
|
|
3090
|
+
@builtins.property
|
|
3091
|
+
@jsii.member(jsii_name="sampleTestdir")
|
|
3092
|
+
def sample_testdir(self) -> builtins.str:
|
|
3093
|
+
'''(experimental) Directory where sample tests are located.
|
|
3094
|
+
|
|
3095
|
+
:default: "tests"
|
|
3096
|
+
|
|
3097
|
+
:stability: experimental
|
|
3098
|
+
'''
|
|
3099
|
+
return typing.cast(builtins.str, jsii.get(self, "sampleTestdir"))
|
|
3100
|
+
|
|
1781
3101
|
@builtins.property
|
|
1782
3102
|
@jsii.member(jsii_name="version")
|
|
1783
3103
|
def version(self) -> builtins.str:
|
|
@@ -1812,7 +3132,7 @@ class PythonProject(
|
|
|
1812
3132
|
if __debug__:
|
|
1813
3133
|
type_hints = typing.get_type_hints(_typecheckingstub__cabdb593e4357c0da03ac92882cb152b8d7fd4429738682c7081bc2132bad82b)
|
|
1814
3134
|
check_type(argname="argument value", value=value, expected_type=type_hints["value"])
|
|
1815
|
-
jsii.set(self, "pytest", value)
|
|
3135
|
+
jsii.set(self, "pytest", value) # pyright: ignore[reportArgumentType]
|
|
1816
3136
|
|
|
1817
3137
|
|
|
1818
3138
|
@jsii.data_type(
|
|
@@ -1860,6 +3180,7 @@ class PythonProject(
|
|
|
1860
3180
|
"package_name": "packageName",
|
|
1861
3181
|
"poetry_options": "poetryOptions",
|
|
1862
3182
|
"setup_config": "setupConfig",
|
|
3183
|
+
"uv_options": "uvOptions",
|
|
1863
3184
|
"python_exec": "pythonExec",
|
|
1864
3185
|
"module_name": "moduleName",
|
|
1865
3186
|
"deps": "deps",
|
|
@@ -1875,7 +3196,9 @@ class PythonProject(
|
|
|
1875
3196
|
"pytest": "pytest",
|
|
1876
3197
|
"pytest_options": "pytestOptions",
|
|
1877
3198
|
"sample": "sample",
|
|
3199
|
+
"sample_testdir": "sampleTestdir",
|
|
1878
3200
|
"setuptools": "setuptools",
|
|
3201
|
+
"uv": "uv",
|
|
1879
3202
|
"venv": "venv",
|
|
1880
3203
|
"venv_options": "venvOptions",
|
|
1881
3204
|
},
|
|
@@ -1927,6 +3250,7 @@ class PythonProjectOptions(
|
|
|
1927
3250
|
package_name: typing.Optional[builtins.str] = None,
|
|
1928
3251
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1929
3252
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
3253
|
+
uv_options: typing.Optional[typing.Union["UvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1930
3254
|
python_exec: typing.Optional[builtins.str] = None,
|
|
1931
3255
|
module_name: builtins.str,
|
|
1932
3256
|
deps: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
@@ -1942,7 +3266,9 @@ class PythonProjectOptions(
|
|
|
1942
3266
|
pytest: typing.Optional[builtins.bool] = None,
|
|
1943
3267
|
pytest_options: typing.Optional[typing.Union[PytestOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1944
3268
|
sample: typing.Optional[builtins.bool] = None,
|
|
3269
|
+
sample_testdir: typing.Optional[builtins.str] = None,
|
|
1945
3270
|
setuptools: typing.Optional[builtins.bool] = None,
|
|
3271
|
+
uv: typing.Optional[builtins.bool] = None,
|
|
1946
3272
|
venv: typing.Optional[builtins.bool] = None,
|
|
1947
3273
|
venv_options: typing.Optional[typing.Union["VenvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
1948
3274
|
) -> None:
|
|
@@ -1987,6 +3313,7 @@ class PythonProjectOptions(
|
|
|
1987
3313
|
:param package_name: (experimental) Package name.
|
|
1988
3314
|
:param poetry_options: (experimental) Additional options to set for poetry if using poetry.
|
|
1989
3315
|
:param setup_config: (experimental) Additional fields to pass in the setup() function if using setuptools.
|
|
3316
|
+
:param uv_options: (experimental) Additional options to set for uv if using uv.
|
|
1990
3317
|
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
1991
3318
|
:param module_name: (experimental) Name of the python package as used in imports and filenames. Must only consist of alphanumeric characters and underscores. Default: $PYTHON_MODULE_NAME
|
|
1992
3319
|
:param deps: (experimental) List of runtime dependencies for this project. Dependencies use the format: ``<module>@<semver>`` Additional dependencies can be added via ``project.addDependency()``. Default: []
|
|
@@ -2002,7 +3329,9 @@ class PythonProjectOptions(
|
|
|
2002
3329
|
:param pytest: (experimental) Include pytest tests. Default: true
|
|
2003
3330
|
:param pytest_options: (experimental) pytest options. Default: - defaults
|
|
2004
3331
|
:param sample: (experimental) Include sample code and test if the relevant directories don't exist. Default: true
|
|
3332
|
+
:param sample_testdir: (experimental) Location of sample tests. Typically the same directory where project tests will be located. Default: "tests"
|
|
2005
3333
|
:param setuptools: (experimental) Use setuptools with a setup.py script for packaging and publishing. Default: - true, unless poetry is true, then false
|
|
3334
|
+
:param uv: (experimental) Use uv to manage your project dependencies, virtual environment, and (optional) packaging/publishing. Default: false
|
|
2006
3335
|
:param venv: (experimental) Use venv to manage a virtual environment for installing dependencies inside. Default: - true, unless poetry is true, then false
|
|
2007
3336
|
:param venv_options: (experimental) Venv options. Default: - defaults
|
|
2008
3337
|
|
|
@@ -2032,6 +3361,8 @@ class PythonProjectOptions(
|
|
|
2032
3361
|
stale_options = _StaleOptions_929db764(**stale_options)
|
|
2033
3362
|
if isinstance(poetry_options, dict):
|
|
2034
3363
|
poetry_options = PoetryPyprojectOptionsWithoutDeps(**poetry_options)
|
|
3364
|
+
if isinstance(uv_options, dict):
|
|
3365
|
+
uv_options = UvOptions(**uv_options)
|
|
2035
3366
|
if isinstance(projenrc_js_options, dict):
|
|
2036
3367
|
projenrc_js_options = _ProjenrcOptions_179dd39f(**projenrc_js_options)
|
|
2037
3368
|
if isinstance(projenrc_python_options, dict):
|
|
@@ -2083,6 +3414,7 @@ class PythonProjectOptions(
|
|
|
2083
3414
|
check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
|
|
2084
3415
|
check_type(argname="argument poetry_options", value=poetry_options, expected_type=type_hints["poetry_options"])
|
|
2085
3416
|
check_type(argname="argument setup_config", value=setup_config, expected_type=type_hints["setup_config"])
|
|
3417
|
+
check_type(argname="argument uv_options", value=uv_options, expected_type=type_hints["uv_options"])
|
|
2086
3418
|
check_type(argname="argument python_exec", value=python_exec, expected_type=type_hints["python_exec"])
|
|
2087
3419
|
check_type(argname="argument module_name", value=module_name, expected_type=type_hints["module_name"])
|
|
2088
3420
|
check_type(argname="argument deps", value=deps, expected_type=type_hints["deps"])
|
|
@@ -2098,7 +3430,9 @@ class PythonProjectOptions(
|
|
|
2098
3430
|
check_type(argname="argument pytest", value=pytest, expected_type=type_hints["pytest"])
|
|
2099
3431
|
check_type(argname="argument pytest_options", value=pytest_options, expected_type=type_hints["pytest_options"])
|
|
2100
3432
|
check_type(argname="argument sample", value=sample, expected_type=type_hints["sample"])
|
|
3433
|
+
check_type(argname="argument sample_testdir", value=sample_testdir, expected_type=type_hints["sample_testdir"])
|
|
2101
3434
|
check_type(argname="argument setuptools", value=setuptools, expected_type=type_hints["setuptools"])
|
|
3435
|
+
check_type(argname="argument uv", value=uv, expected_type=type_hints["uv"])
|
|
2102
3436
|
check_type(argname="argument venv", value=venv, expected_type=type_hints["venv"])
|
|
2103
3437
|
check_type(argname="argument venv_options", value=venv_options, expected_type=type_hints["venv_options"])
|
|
2104
3438
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
@@ -2178,6 +3512,8 @@ class PythonProjectOptions(
|
|
|
2178
3512
|
self._values["poetry_options"] = poetry_options
|
|
2179
3513
|
if setup_config is not None:
|
|
2180
3514
|
self._values["setup_config"] = setup_config
|
|
3515
|
+
if uv_options is not None:
|
|
3516
|
+
self._values["uv_options"] = uv_options
|
|
2181
3517
|
if python_exec is not None:
|
|
2182
3518
|
self._values["python_exec"] = python_exec
|
|
2183
3519
|
if deps is not None:
|
|
@@ -2206,8 +3542,12 @@ class PythonProjectOptions(
|
|
|
2206
3542
|
self._values["pytest_options"] = pytest_options
|
|
2207
3543
|
if sample is not None:
|
|
2208
3544
|
self._values["sample"] = sample
|
|
3545
|
+
if sample_testdir is not None:
|
|
3546
|
+
self._values["sample_testdir"] = sample_testdir
|
|
2209
3547
|
if setuptools is not None:
|
|
2210
3548
|
self._values["setuptools"] = setuptools
|
|
3549
|
+
if uv is not None:
|
|
3550
|
+
self._values["uv"] = uv
|
|
2211
3551
|
if venv is not None:
|
|
2212
3552
|
self._values["venv"] = venv
|
|
2213
3553
|
if venv_options is not None:
|
|
@@ -2667,6 +4007,15 @@ class PythonProjectOptions(
|
|
|
2667
4007
|
result = self._values.get("setup_config")
|
|
2668
4008
|
return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
|
|
2669
4009
|
|
|
4010
|
+
@builtins.property
|
|
4011
|
+
def uv_options(self) -> typing.Optional["UvOptions"]:
|
|
4012
|
+
'''(experimental) Additional options to set for uv if using uv.
|
|
4013
|
+
|
|
4014
|
+
:stability: experimental
|
|
4015
|
+
'''
|
|
4016
|
+
result = self._values.get("uv_options")
|
|
4017
|
+
return typing.cast(typing.Optional["UvOptions"], result)
|
|
4018
|
+
|
|
2670
4019
|
@builtins.property
|
|
2671
4020
|
def python_exec(self) -> typing.Optional[builtins.str]:
|
|
2672
4021
|
'''(experimental) Path to the python executable to use.
|
|
@@ -2861,15 +4210,40 @@ class PythonProjectOptions(
|
|
|
2861
4210
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
2862
4211
|
|
|
2863
4212
|
@builtins.property
|
|
2864
|
-
def
|
|
2865
|
-
'''(experimental)
|
|
4213
|
+
def sample_testdir(self) -> typing.Optional[builtins.str]:
|
|
4214
|
+
'''(experimental) Location of sample tests.
|
|
4215
|
+
|
|
4216
|
+
Typically the same directory where project tests will be located.
|
|
4217
|
+
|
|
4218
|
+
:default: "tests"
|
|
4219
|
+
|
|
4220
|
+
:stability: experimental
|
|
4221
|
+
'''
|
|
4222
|
+
result = self._values.get("sample_testdir")
|
|
4223
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
4224
|
+
|
|
4225
|
+
@builtins.property
|
|
4226
|
+
def setuptools(self) -> typing.Optional[builtins.bool]:
|
|
4227
|
+
'''(experimental) Use setuptools with a setup.py script for packaging and publishing.
|
|
4228
|
+
|
|
4229
|
+
:default: - true, unless poetry is true, then false
|
|
4230
|
+
|
|
4231
|
+
:stability: experimental
|
|
4232
|
+
:featured: true
|
|
4233
|
+
'''
|
|
4234
|
+
result = self._values.get("setuptools")
|
|
4235
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
4236
|
+
|
|
4237
|
+
@builtins.property
|
|
4238
|
+
def uv(self) -> typing.Optional[builtins.bool]:
|
|
4239
|
+
'''(experimental) Use uv to manage your project dependencies, virtual environment, and (optional) packaging/publishing.
|
|
2866
4240
|
|
|
2867
|
-
:default:
|
|
4241
|
+
:default: false
|
|
2868
4242
|
|
|
2869
4243
|
:stability: experimental
|
|
2870
4244
|
:featured: true
|
|
2871
4245
|
'''
|
|
2872
|
-
result = self._values.get("
|
|
4246
|
+
result = self._values.get("uv")
|
|
2873
4247
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
2874
4248
|
|
|
2875
4249
|
@builtins.property
|
|
@@ -3369,6 +4743,7 @@ class Setuptools(
|
|
|
3369
4743
|
package_name: typing.Optional[builtins.str] = None,
|
|
3370
4744
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3371
4745
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
4746
|
+
uv_options: typing.Optional[typing.Union["UvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3372
4747
|
python_exec: typing.Optional[builtins.str] = None,
|
|
3373
4748
|
) -> None:
|
|
3374
4749
|
'''
|
|
@@ -3383,6 +4758,7 @@ class Setuptools(
|
|
|
3383
4758
|
:param package_name: (experimental) Package name.
|
|
3384
4759
|
:param poetry_options: (experimental) Additional options to set for poetry if using poetry.
|
|
3385
4760
|
:param setup_config: (experimental) Additional fields to pass in the setup() function if using setuptools.
|
|
4761
|
+
:param uv_options: (experimental) Additional options to set for uv if using uv.
|
|
3386
4762
|
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
3387
4763
|
|
|
3388
4764
|
:stability: experimental
|
|
@@ -3401,6 +4777,7 @@ class Setuptools(
|
|
|
3401
4777
|
package_name=package_name,
|
|
3402
4778
|
poetry_options=poetry_options,
|
|
3403
4779
|
setup_config=setup_config,
|
|
4780
|
+
uv_options=uv_options,
|
|
3404
4781
|
python_exec=python_exec,
|
|
3405
4782
|
)
|
|
3406
4783
|
|
|
@@ -3439,6 +4816,7 @@ class Setuptools(
|
|
|
3439
4816
|
"package_name": "packageName",
|
|
3440
4817
|
"poetry_options": "poetryOptions",
|
|
3441
4818
|
"setup_config": "setupConfig",
|
|
4819
|
+
"uv_options": "uvOptions",
|
|
3442
4820
|
"python_exec": "pythonExec",
|
|
3443
4821
|
},
|
|
3444
4822
|
)
|
|
@@ -3456,6 +4834,7 @@ class SetuptoolsOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3456
4834
|
package_name: typing.Optional[builtins.str] = None,
|
|
3457
4835
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3458
4836
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
4837
|
+
uv_options: typing.Optional[typing.Union["UvOptions", typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3459
4838
|
python_exec: typing.Optional[builtins.str] = None,
|
|
3460
4839
|
) -> None:
|
|
3461
4840
|
'''
|
|
@@ -3469,12 +4848,15 @@ class SetuptoolsOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3469
4848
|
:param package_name: (experimental) Package name.
|
|
3470
4849
|
:param poetry_options: (experimental) Additional options to set for poetry if using poetry.
|
|
3471
4850
|
:param setup_config: (experimental) Additional fields to pass in the setup() function if using setuptools.
|
|
4851
|
+
:param uv_options: (experimental) Additional options to set for uv if using uv.
|
|
3472
4852
|
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
3473
4853
|
|
|
3474
4854
|
:stability: experimental
|
|
3475
4855
|
'''
|
|
3476
4856
|
if isinstance(poetry_options, dict):
|
|
3477
4857
|
poetry_options = PoetryPyprojectOptionsWithoutDeps(**poetry_options)
|
|
4858
|
+
if isinstance(uv_options, dict):
|
|
4859
|
+
uv_options = UvOptions(**uv_options)
|
|
3478
4860
|
if __debug__:
|
|
3479
4861
|
type_hints = typing.get_type_hints(_typecheckingstub__efb76fcc4729646986081d64b0050704d856d4acab1092db7f22a97d767ca944)
|
|
3480
4862
|
check_type(argname="argument author_email", value=author_email, expected_type=type_hints["author_email"])
|
|
@@ -3487,6 +4869,7 @@ class SetuptoolsOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3487
4869
|
check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
|
|
3488
4870
|
check_type(argname="argument poetry_options", value=poetry_options, expected_type=type_hints["poetry_options"])
|
|
3489
4871
|
check_type(argname="argument setup_config", value=setup_config, expected_type=type_hints["setup_config"])
|
|
4872
|
+
check_type(argname="argument uv_options", value=uv_options, expected_type=type_hints["uv_options"])
|
|
3490
4873
|
check_type(argname="argument python_exec", value=python_exec, expected_type=type_hints["python_exec"])
|
|
3491
4874
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
3492
4875
|
"author_email": author_email,
|
|
@@ -3507,6 +4890,8 @@ class SetuptoolsOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3507
4890
|
self._values["poetry_options"] = poetry_options
|
|
3508
4891
|
if setup_config is not None:
|
|
3509
4892
|
self._values["setup_config"] = setup_config
|
|
4893
|
+
if uv_options is not None:
|
|
4894
|
+
self._values["uv_options"] = uv_options
|
|
3510
4895
|
if python_exec is not None:
|
|
3511
4896
|
self._values["python_exec"] = python_exec
|
|
3512
4897
|
|
|
@@ -3612,6 +4997,15 @@ class SetuptoolsOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3612
4997
|
result = self._values.get("setup_config")
|
|
3613
4998
|
return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
|
|
3614
4999
|
|
|
5000
|
+
@builtins.property
|
|
5001
|
+
def uv_options(self) -> typing.Optional["UvOptions"]:
|
|
5002
|
+
'''(experimental) Additional options to set for uv if using uv.
|
|
5003
|
+
|
|
5004
|
+
:stability: experimental
|
|
5005
|
+
'''
|
|
5006
|
+
result = self._values.get("uv_options")
|
|
5007
|
+
return typing.cast(typing.Optional["UvOptions"], result)
|
|
5008
|
+
|
|
3615
5009
|
@builtins.property
|
|
3616
5010
|
def python_exec(self) -> typing.Optional[builtins.str]:
|
|
3617
5011
|
'''(experimental) Path to the python executable to use.
|
|
@@ -3635,6 +5029,228 @@ class SetuptoolsOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3635
5029
|
)
|
|
3636
5030
|
|
|
3637
5031
|
|
|
5032
|
+
@jsii.implements(IPythonDeps, IPythonEnv, IPythonPackaging)
|
|
5033
|
+
class Uv(_Component_2b0ad27f, metaclass=jsii.JSIIMeta, jsii_type="projen.python.Uv"):
|
|
5034
|
+
'''(experimental) Manage project dependencies, virtual environments, and packaging through uv.
|
|
5035
|
+
|
|
5036
|
+
:stability: experimental
|
|
5037
|
+
'''
|
|
5038
|
+
|
|
5039
|
+
def __init__(
|
|
5040
|
+
self,
|
|
5041
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
5042
|
+
*,
|
|
5043
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5044
|
+
project: typing.Optional[typing.Union[PyprojectTomlProject, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5045
|
+
uv: typing.Optional[typing.Union[_UvConfiguration_126496a9, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5046
|
+
python_exec: typing.Optional[builtins.str] = None,
|
|
5047
|
+
) -> None:
|
|
5048
|
+
'''
|
|
5049
|
+
:param scope: -
|
|
5050
|
+
:param build_system: (experimental) Declares any Python level dependencies that must be installed in order to run the project’s build system successfully. Default: - no build system
|
|
5051
|
+
:param project: (experimental) The project's basic metadata configuration.
|
|
5052
|
+
:param uv: (experimental) The configuration and metadata for uv.
|
|
5053
|
+
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
5054
|
+
|
|
5055
|
+
:stability: experimental
|
|
5056
|
+
'''
|
|
5057
|
+
if __debug__:
|
|
5058
|
+
type_hints = typing.get_type_hints(_typecheckingstub__c6af3eeebf702d4696ff95e3dd9f7765abd1bead0231202b6c3d96e210ebae53)
|
|
5059
|
+
check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
|
|
5060
|
+
options = UvOptions(
|
|
5061
|
+
build_system=build_system, project=project, uv=uv, python_exec=python_exec
|
|
5062
|
+
)
|
|
5063
|
+
|
|
5064
|
+
jsii.create(self.__class__, self, [scope, options])
|
|
5065
|
+
|
|
5066
|
+
@jsii.member(jsii_name="addDependency")
|
|
5067
|
+
def add_dependency(self, spec: builtins.str) -> None:
|
|
5068
|
+
'''(experimental) Adds a runtime dependency.
|
|
5069
|
+
|
|
5070
|
+
:param spec: -
|
|
5071
|
+
|
|
5072
|
+
:stability: experimental
|
|
5073
|
+
'''
|
|
5074
|
+
if __debug__:
|
|
5075
|
+
type_hints = typing.get_type_hints(_typecheckingstub__cfefccda3fbe1ff1c577b203b8a3bbfc01f7f1d4af0e6ac2d49593339709bd0c)
|
|
5076
|
+
check_type(argname="argument spec", value=spec, expected_type=type_hints["spec"])
|
|
5077
|
+
return typing.cast(None, jsii.invoke(self, "addDependency", [spec]))
|
|
5078
|
+
|
|
5079
|
+
@jsii.member(jsii_name="addDevDependency")
|
|
5080
|
+
def add_dev_dependency(self, spec: builtins.str) -> None:
|
|
5081
|
+
'''(experimental) Adds a dev dependency.
|
|
5082
|
+
|
|
5083
|
+
:param spec: -
|
|
5084
|
+
|
|
5085
|
+
:stability: experimental
|
|
5086
|
+
'''
|
|
5087
|
+
if __debug__:
|
|
5088
|
+
type_hints = typing.get_type_hints(_typecheckingstub__476e06a93af3d873cd3d5aa2eb681ec297066fbb9e27bac268fb38df7b1fe327)
|
|
5089
|
+
check_type(argname="argument spec", value=spec, expected_type=type_hints["spec"])
|
|
5090
|
+
return typing.cast(None, jsii.invoke(self, "addDevDependency", [spec]))
|
|
5091
|
+
|
|
5092
|
+
@jsii.member(jsii_name="installDependencies")
|
|
5093
|
+
def install_dependencies(self) -> None:
|
|
5094
|
+
'''(experimental) Installs dependencies (called during post-synthesis).
|
|
5095
|
+
|
|
5096
|
+
:stability: experimental
|
|
5097
|
+
'''
|
|
5098
|
+
return typing.cast(None, jsii.invoke(self, "installDependencies", []))
|
|
5099
|
+
|
|
5100
|
+
@jsii.member(jsii_name="setupEnvironment")
|
|
5101
|
+
def setup_environment(self) -> None:
|
|
5102
|
+
'''(experimental) Initializes the virtual environment if it doesn't exist (called during post-synthesis).
|
|
5103
|
+
|
|
5104
|
+
:stability: experimental
|
|
5105
|
+
'''
|
|
5106
|
+
return typing.cast(None, jsii.invoke(self, "setupEnvironment", []))
|
|
5107
|
+
|
|
5108
|
+
@builtins.property
|
|
5109
|
+
@jsii.member(jsii_name="file")
|
|
5110
|
+
def file(self) -> PyprojectTomlFile:
|
|
5111
|
+
'''(experimental) The ``pyproject.toml`` file.
|
|
5112
|
+
|
|
5113
|
+
:stability: experimental
|
|
5114
|
+
'''
|
|
5115
|
+
return typing.cast(PyprojectTomlFile, jsii.get(self, "file"))
|
|
5116
|
+
|
|
5117
|
+
@builtins.property
|
|
5118
|
+
@jsii.member(jsii_name="installCiTask")
|
|
5119
|
+
def install_ci_task(self) -> _Task_9fa875b6:
|
|
5120
|
+
'''(experimental) A task that installs and updates dependencies.
|
|
5121
|
+
|
|
5122
|
+
:stability: experimental
|
|
5123
|
+
'''
|
|
5124
|
+
return typing.cast(_Task_9fa875b6, jsii.get(self, "installCiTask"))
|
|
5125
|
+
|
|
5126
|
+
@builtins.property
|
|
5127
|
+
@jsii.member(jsii_name="installTask")
|
|
5128
|
+
def install_task(self) -> _Task_9fa875b6:
|
|
5129
|
+
'''
|
|
5130
|
+
:stability: experimental
|
|
5131
|
+
'''
|
|
5132
|
+
return typing.cast(_Task_9fa875b6, jsii.get(self, "installTask"))
|
|
5133
|
+
|
|
5134
|
+
@builtins.property
|
|
5135
|
+
@jsii.member(jsii_name="publishTask")
|
|
5136
|
+
def publish_task(self) -> _Task_9fa875b6:
|
|
5137
|
+
'''(experimental) A task that uploads the package to a package repository.
|
|
5138
|
+
|
|
5139
|
+
:stability: experimental
|
|
5140
|
+
'''
|
|
5141
|
+
return typing.cast(_Task_9fa875b6, jsii.get(self, "publishTask"))
|
|
5142
|
+
|
|
5143
|
+
@builtins.property
|
|
5144
|
+
@jsii.member(jsii_name="publishTestTask")
|
|
5145
|
+
def publish_test_task(self) -> _Task_9fa875b6:
|
|
5146
|
+
'''
|
|
5147
|
+
:stability: experimental
|
|
5148
|
+
'''
|
|
5149
|
+
return typing.cast(_Task_9fa875b6, jsii.get(self, "publishTestTask"))
|
|
5150
|
+
|
|
5151
|
+
|
|
5152
|
+
@jsii.data_type(
|
|
5153
|
+
jsii_type="projen.python.UvOptions",
|
|
5154
|
+
jsii_struct_bases=[PythonExecutableOptions],
|
|
5155
|
+
name_mapping={
|
|
5156
|
+
"python_exec": "pythonExec",
|
|
5157
|
+
"build_system": "buildSystem",
|
|
5158
|
+
"project": "project",
|
|
5159
|
+
"uv": "uv",
|
|
5160
|
+
},
|
|
5161
|
+
)
|
|
5162
|
+
class UvOptions(PythonExecutableOptions):
|
|
5163
|
+
def __init__(
|
|
5164
|
+
self,
|
|
5165
|
+
*,
|
|
5166
|
+
python_exec: typing.Optional[builtins.str] = None,
|
|
5167
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5168
|
+
project: typing.Optional[typing.Union[PyprojectTomlProject, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5169
|
+
uv: typing.Optional[typing.Union[_UvConfiguration_126496a9, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
5170
|
+
) -> None:
|
|
5171
|
+
'''(experimental) Options for UV project.
|
|
5172
|
+
|
|
5173
|
+
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
5174
|
+
:param build_system: (experimental) Declares any Python level dependencies that must be installed in order to run the project’s build system successfully. Default: - no build system
|
|
5175
|
+
:param project: (experimental) The project's basic metadata configuration.
|
|
5176
|
+
:param uv: (experimental) The configuration and metadata for uv.
|
|
5177
|
+
|
|
5178
|
+
:stability: experimental
|
|
5179
|
+
'''
|
|
5180
|
+
if isinstance(build_system, dict):
|
|
5181
|
+
build_system = BuildSystem(**build_system)
|
|
5182
|
+
if isinstance(project, dict):
|
|
5183
|
+
project = PyprojectTomlProject(**project)
|
|
5184
|
+
if isinstance(uv, dict):
|
|
5185
|
+
uv = _UvConfiguration_126496a9(**uv)
|
|
5186
|
+
if __debug__:
|
|
5187
|
+
type_hints = typing.get_type_hints(_typecheckingstub__7160d30dca474dc5d88b1ee88cb680c95003b72e43b0c36e6476ea71df3e39bc)
|
|
5188
|
+
check_type(argname="argument python_exec", value=python_exec, expected_type=type_hints["python_exec"])
|
|
5189
|
+
check_type(argname="argument build_system", value=build_system, expected_type=type_hints["build_system"])
|
|
5190
|
+
check_type(argname="argument project", value=project, expected_type=type_hints["project"])
|
|
5191
|
+
check_type(argname="argument uv", value=uv, expected_type=type_hints["uv"])
|
|
5192
|
+
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
5193
|
+
if python_exec is not None:
|
|
5194
|
+
self._values["python_exec"] = python_exec
|
|
5195
|
+
if build_system is not None:
|
|
5196
|
+
self._values["build_system"] = build_system
|
|
5197
|
+
if project is not None:
|
|
5198
|
+
self._values["project"] = project
|
|
5199
|
+
if uv is not None:
|
|
5200
|
+
self._values["uv"] = uv
|
|
5201
|
+
|
|
5202
|
+
@builtins.property
|
|
5203
|
+
def python_exec(self) -> typing.Optional[builtins.str]:
|
|
5204
|
+
'''(experimental) Path to the python executable to use.
|
|
5205
|
+
|
|
5206
|
+
:default: "python"
|
|
5207
|
+
|
|
5208
|
+
:stability: experimental
|
|
5209
|
+
'''
|
|
5210
|
+
result = self._values.get("python_exec")
|
|
5211
|
+
return typing.cast(typing.Optional[builtins.str], result)
|
|
5212
|
+
|
|
5213
|
+
@builtins.property
|
|
5214
|
+
def build_system(self) -> typing.Optional[BuildSystem]:
|
|
5215
|
+
'''(experimental) Declares any Python level dependencies that must be installed in order to run the project’s build system successfully.
|
|
5216
|
+
|
|
5217
|
+
:default: - no build system
|
|
5218
|
+
|
|
5219
|
+
:stability: experimental
|
|
5220
|
+
'''
|
|
5221
|
+
result = self._values.get("build_system")
|
|
5222
|
+
return typing.cast(typing.Optional[BuildSystem], result)
|
|
5223
|
+
|
|
5224
|
+
@builtins.property
|
|
5225
|
+
def project(self) -> typing.Optional[PyprojectTomlProject]:
|
|
5226
|
+
'''(experimental) The project's basic metadata configuration.
|
|
5227
|
+
|
|
5228
|
+
:stability: experimental
|
|
5229
|
+
'''
|
|
5230
|
+
result = self._values.get("project")
|
|
5231
|
+
return typing.cast(typing.Optional[PyprojectTomlProject], result)
|
|
5232
|
+
|
|
5233
|
+
@builtins.property
|
|
5234
|
+
def uv(self) -> typing.Optional[_UvConfiguration_126496a9]:
|
|
5235
|
+
'''(experimental) The configuration and metadata for uv.
|
|
5236
|
+
|
|
5237
|
+
:stability: experimental
|
|
5238
|
+
'''
|
|
5239
|
+
result = self._values.get("uv")
|
|
5240
|
+
return typing.cast(typing.Optional[_UvConfiguration_126496a9], result)
|
|
5241
|
+
|
|
5242
|
+
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
5243
|
+
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
5244
|
+
|
|
5245
|
+
def __ne__(self, rhs: typing.Any) -> builtins.bool:
|
|
5246
|
+
return not (rhs == self)
|
|
5247
|
+
|
|
5248
|
+
def __repr__(self) -> str:
|
|
5249
|
+
return "UvOptions(%s)" % ", ".join(
|
|
5250
|
+
k + "=" + repr(v) for k, v in self._values.items()
|
|
5251
|
+
)
|
|
5252
|
+
|
|
5253
|
+
|
|
3638
5254
|
@jsii.implements(IPythonEnv)
|
|
3639
5255
|
class Venv(
|
|
3640
5256
|
_Component_2b0ad27f,
|
|
@@ -3753,6 +5369,7 @@ class VenvOptions:
|
|
|
3753
5369
|
"package_name": "packageName",
|
|
3754
5370
|
"poetry_options": "poetryOptions",
|
|
3755
5371
|
"setup_config": "setupConfig",
|
|
5372
|
+
"uv_options": "uvOptions",
|
|
3756
5373
|
"python_exec": "pythonExec",
|
|
3757
5374
|
},
|
|
3758
5375
|
)
|
|
@@ -3770,6 +5387,7 @@ class PoetryOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3770
5387
|
package_name: typing.Optional[builtins.str] = None,
|
|
3771
5388
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3772
5389
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
5390
|
+
uv_options: typing.Optional[typing.Union[UvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
3773
5391
|
python_exec: typing.Optional[builtins.str] = None,
|
|
3774
5392
|
) -> None:
|
|
3775
5393
|
'''
|
|
@@ -3783,12 +5401,15 @@ class PoetryOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3783
5401
|
:param package_name: (experimental) Package name.
|
|
3784
5402
|
:param poetry_options: (experimental) Additional options to set for poetry if using poetry.
|
|
3785
5403
|
:param setup_config: (experimental) Additional fields to pass in the setup() function if using setuptools.
|
|
5404
|
+
:param uv_options: (experimental) Additional options to set for uv if using uv.
|
|
3786
5405
|
:param python_exec: (experimental) Path to the python executable to use. Default: "python"
|
|
3787
5406
|
|
|
3788
5407
|
:stability: experimental
|
|
3789
5408
|
'''
|
|
3790
5409
|
if isinstance(poetry_options, dict):
|
|
3791
5410
|
poetry_options = PoetryPyprojectOptionsWithoutDeps(**poetry_options)
|
|
5411
|
+
if isinstance(uv_options, dict):
|
|
5412
|
+
uv_options = UvOptions(**uv_options)
|
|
3792
5413
|
if __debug__:
|
|
3793
5414
|
type_hints = typing.get_type_hints(_typecheckingstub__ffb2a68f24fc1fda645188af9796f00c5dd2cfddf0c67e4d824be027c0c1f1a8)
|
|
3794
5415
|
check_type(argname="argument author_email", value=author_email, expected_type=type_hints["author_email"])
|
|
@@ -3801,6 +5422,7 @@ class PoetryOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3801
5422
|
check_type(argname="argument package_name", value=package_name, expected_type=type_hints["package_name"])
|
|
3802
5423
|
check_type(argname="argument poetry_options", value=poetry_options, expected_type=type_hints["poetry_options"])
|
|
3803
5424
|
check_type(argname="argument setup_config", value=setup_config, expected_type=type_hints["setup_config"])
|
|
5425
|
+
check_type(argname="argument uv_options", value=uv_options, expected_type=type_hints["uv_options"])
|
|
3804
5426
|
check_type(argname="argument python_exec", value=python_exec, expected_type=type_hints["python_exec"])
|
|
3805
5427
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
3806
5428
|
"author_email": author_email,
|
|
@@ -3821,6 +5443,8 @@ class PoetryOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3821
5443
|
self._values["poetry_options"] = poetry_options
|
|
3822
5444
|
if setup_config is not None:
|
|
3823
5445
|
self._values["setup_config"] = setup_config
|
|
5446
|
+
if uv_options is not None:
|
|
5447
|
+
self._values["uv_options"] = uv_options
|
|
3824
5448
|
if python_exec is not None:
|
|
3825
5449
|
self._values["python_exec"] = python_exec
|
|
3826
5450
|
|
|
@@ -3926,6 +5550,15 @@ class PoetryOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3926
5550
|
result = self._values.get("setup_config")
|
|
3927
5551
|
return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
|
|
3928
5552
|
|
|
5553
|
+
@builtins.property
|
|
5554
|
+
def uv_options(self) -> typing.Optional[UvOptions]:
|
|
5555
|
+
'''(experimental) Additional options to set for uv if using uv.
|
|
5556
|
+
|
|
5557
|
+
:stability: experimental
|
|
5558
|
+
'''
|
|
5559
|
+
result = self._values.get("uv_options")
|
|
5560
|
+
return typing.cast(typing.Optional[UvOptions], result)
|
|
5561
|
+
|
|
3929
5562
|
@builtins.property
|
|
3930
5563
|
def python_exec(self) -> typing.Optional[builtins.str]:
|
|
3931
5564
|
'''(experimental) Path to the python executable to use.
|
|
@@ -3965,6 +5598,7 @@ class PoetryOptions(PythonPackagingOptions, PythonExecutableOptions):
|
|
|
3965
5598
|
"license": "license",
|
|
3966
5599
|
"maintainers": "maintainers",
|
|
3967
5600
|
"name": "name",
|
|
5601
|
+
"package_mode": "packageMode",
|
|
3968
5602
|
"packages": "packages",
|
|
3969
5603
|
"plugins": "plugins",
|
|
3970
5604
|
"readme": "readme",
|
|
@@ -3993,6 +5627,7 @@ class PoetryPyprojectOptions(PoetryPyprojectOptionsWithoutDeps):
|
|
|
3993
5627
|
license: typing.Optional[builtins.str] = None,
|
|
3994
5628
|
maintainers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
3995
5629
|
name: typing.Optional[builtins.str] = None,
|
|
5630
|
+
package_mode: typing.Optional[builtins.bool] = None,
|
|
3996
5631
|
packages: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
3997
5632
|
plugins: typing.Any = None,
|
|
3998
5633
|
readme: typing.Optional[builtins.str] = None,
|
|
@@ -4018,6 +5653,7 @@ class PoetryPyprojectOptions(PoetryPyprojectOptionsWithoutDeps):
|
|
|
4018
5653
|
:param license: (experimental) License of this package as an SPDX identifier. If the project is proprietary and does not use a specific license, you can set this value as "Proprietary".
|
|
4019
5654
|
:param maintainers: (experimental) the maintainers of the package. Must be in the form "name "
|
|
4020
5655
|
:param name: (experimental) Name of the package (required).
|
|
5656
|
+
:param package_mode: (experimental) Package mode (optional). Default: true
|
|
4021
5657
|
:param packages: (experimental) A list of packages and modules to include in the final distribution.
|
|
4022
5658
|
:param plugins: (experimental) Plugins. Must be specified as a table.
|
|
4023
5659
|
:param readme: (experimental) The name of the readme file of the package.
|
|
@@ -4046,6 +5682,7 @@ class PoetryPyprojectOptions(PoetryPyprojectOptionsWithoutDeps):
|
|
|
4046
5682
|
check_type(argname="argument license", value=license, expected_type=type_hints["license"])
|
|
4047
5683
|
check_type(argname="argument maintainers", value=maintainers, expected_type=type_hints["maintainers"])
|
|
4048
5684
|
check_type(argname="argument name", value=name, expected_type=type_hints["name"])
|
|
5685
|
+
check_type(argname="argument package_mode", value=package_mode, expected_type=type_hints["package_mode"])
|
|
4049
5686
|
check_type(argname="argument packages", value=packages, expected_type=type_hints["packages"])
|
|
4050
5687
|
check_type(argname="argument plugins", value=plugins, expected_type=type_hints["plugins"])
|
|
4051
5688
|
check_type(argname="argument readme", value=readme, expected_type=type_hints["readme"])
|
|
@@ -4081,6 +5718,8 @@ class PoetryPyprojectOptions(PoetryPyprojectOptionsWithoutDeps):
|
|
|
4081
5718
|
self._values["maintainers"] = maintainers
|
|
4082
5719
|
if name is not None:
|
|
4083
5720
|
self._values["name"] = name
|
|
5721
|
+
if package_mode is not None:
|
|
5722
|
+
self._values["package_mode"] = package_mode
|
|
4084
5723
|
if packages is not None:
|
|
4085
5724
|
self._values["packages"] = packages
|
|
4086
5725
|
if plugins is not None:
|
|
@@ -4223,6 +5862,22 @@ class PoetryPyprojectOptions(PoetryPyprojectOptionsWithoutDeps):
|
|
|
4223
5862
|
result = self._values.get("name")
|
|
4224
5863
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
4225
5864
|
|
|
5865
|
+
@builtins.property
|
|
5866
|
+
def package_mode(self) -> typing.Optional[builtins.bool]:
|
|
5867
|
+
'''(experimental) Package mode (optional).
|
|
5868
|
+
|
|
5869
|
+
:default: true
|
|
5870
|
+
|
|
5871
|
+
:see: https://python-poetry.org/docs/pyproject/#package-mode
|
|
5872
|
+
:stability: experimental
|
|
5873
|
+
|
|
5874
|
+
Example::
|
|
5875
|
+
|
|
5876
|
+
false
|
|
5877
|
+
'''
|
|
5878
|
+
result = self._values.get("package_mode")
|
|
5879
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
5880
|
+
|
|
4226
5881
|
@builtins.property
|
|
4227
5882
|
def packages(self) -> typing.Optional[typing.List[typing.Any]]:
|
|
4228
5883
|
'''(experimental) A list of packages and modules to include in the final distribution.
|
|
@@ -4343,6 +5998,7 @@ class PoetryPyprojectOptions(PoetryPyprojectOptionsWithoutDeps):
|
|
|
4343
5998
|
|
|
4344
5999
|
|
|
4345
6000
|
__all__ = [
|
|
6001
|
+
"BuildSystem",
|
|
4346
6002
|
"IPackageProvider",
|
|
4347
6003
|
"IPythonDeps",
|
|
4348
6004
|
"IPythonEnv",
|
|
@@ -4354,8 +6010,15 @@ __all__ = [
|
|
|
4354
6010
|
"PoetryPyproject",
|
|
4355
6011
|
"PoetryPyprojectOptions",
|
|
4356
6012
|
"PoetryPyprojectOptionsWithoutDeps",
|
|
6013
|
+
"ProjectAuthor",
|
|
4357
6014
|
"Projenrc",
|
|
4358
6015
|
"ProjenrcOptions",
|
|
6016
|
+
"PyprojectToml",
|
|
6017
|
+
"PyprojectTomlDependencyGroups",
|
|
6018
|
+
"PyprojectTomlFile",
|
|
6019
|
+
"PyprojectTomlProject",
|
|
6020
|
+
"PyprojectTomlProjectDynamic",
|
|
6021
|
+
"PyprojectTomlTool",
|
|
4359
6022
|
"Pytest",
|
|
4360
6023
|
"PytestOptions",
|
|
4361
6024
|
"PytestSample",
|
|
@@ -4372,12 +6035,27 @@ __all__ = [
|
|
|
4372
6035
|
"SetupPyOptions",
|
|
4373
6036
|
"Setuptools",
|
|
4374
6037
|
"SetuptoolsOptions",
|
|
6038
|
+
"Uv",
|
|
6039
|
+
"UvOptions",
|
|
4375
6040
|
"Venv",
|
|
4376
6041
|
"VenvOptions",
|
|
6042
|
+
"uv_config",
|
|
4377
6043
|
]
|
|
4378
6044
|
|
|
4379
6045
|
publication.publish()
|
|
4380
6046
|
|
|
6047
|
+
# Loading modules to ensure their types are registered with the jsii runtime library
|
|
6048
|
+
from . import uv_config
|
|
6049
|
+
|
|
6050
|
+
def _typecheckingstub__e9da99c32d038945aadcf71f5eefe5c42c4d7218b8a2d3e62f288c5a8081f35f(
|
|
6051
|
+
*,
|
|
6052
|
+
requires: typing.Sequence[builtins.str],
|
|
6053
|
+
backend_path: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6054
|
+
build_backend: typing.Optional[builtins.str] = None,
|
|
6055
|
+
) -> None:
|
|
6056
|
+
"""Type checking stubs"""
|
|
6057
|
+
pass
|
|
6058
|
+
|
|
4381
6059
|
def _typecheckingstub__19b787f4d5b675eaec41431c3ba2e6ceb259e8bb95072e76cd0d5e8c357712bf(
|
|
4382
6060
|
spec: builtins.str,
|
|
4383
6061
|
) -> None:
|
|
@@ -4421,6 +6099,7 @@ def _typecheckingstub__5f89c074241aa542e5f366ea84bd8e5e2e9da8150d15e44f4ae6c7152
|
|
|
4421
6099
|
package_name: typing.Optional[builtins.str] = None,
|
|
4422
6100
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4423
6101
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
6102
|
+
uv_options: typing.Optional[typing.Union[UvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4424
6103
|
python_exec: typing.Optional[builtins.str] = None,
|
|
4425
6104
|
) -> None:
|
|
4426
6105
|
"""Type checking stubs"""
|
|
@@ -4439,7 +6118,7 @@ def _typecheckingstub__5eed5b0b32c136cc537ac5c8208e73e035698914697eda882cc3e7220
|
|
|
4439
6118
|
pass
|
|
4440
6119
|
|
|
4441
6120
|
def _typecheckingstub__3a59b8e6934c492000192079edad9aaf1327a40b3bdba4192b78814ddbbfa98a(
|
|
4442
|
-
|
|
6121
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
4443
6122
|
*,
|
|
4444
6123
|
dependencies: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
4445
6124
|
dev_dependencies: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
@@ -4455,6 +6134,7 @@ def _typecheckingstub__3a59b8e6934c492000192079edad9aaf1327a40b3bdba4192b78814dd
|
|
|
4455
6134
|
license: typing.Optional[builtins.str] = None,
|
|
4456
6135
|
maintainers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
4457
6136
|
name: typing.Optional[builtins.str] = None,
|
|
6137
|
+
package_mode: typing.Optional[builtins.bool] = None,
|
|
4458
6138
|
packages: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
4459
6139
|
plugins: typing.Any = None,
|
|
4460
6140
|
readme: typing.Optional[builtins.str] = None,
|
|
@@ -4481,6 +6161,7 @@ def _typecheckingstub__eb1217212a32e72c78081b42cb386e25f582240ca4f8a652cbb237b3c
|
|
|
4481
6161
|
license: typing.Optional[builtins.str] = None,
|
|
4482
6162
|
maintainers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
4483
6163
|
name: typing.Optional[builtins.str] = None,
|
|
6164
|
+
package_mode: typing.Optional[builtins.bool] = None,
|
|
4484
6165
|
packages: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
4485
6166
|
plugins: typing.Any = None,
|
|
4486
6167
|
readme: typing.Optional[builtins.str] = None,
|
|
@@ -4493,6 +6174,14 @@ def _typecheckingstub__eb1217212a32e72c78081b42cb386e25f582240ca4f8a652cbb237b3c
|
|
|
4493
6174
|
"""Type checking stubs"""
|
|
4494
6175
|
pass
|
|
4495
6176
|
|
|
6177
|
+
def _typecheckingstub__c75ee0fa1f03d64ef2f4f70177834504f849664100250bdf991680eba3b01d4e(
|
|
6178
|
+
*,
|
|
6179
|
+
email: typing.Optional[builtins.str] = None,
|
|
6180
|
+
name: typing.Optional[builtins.str] = None,
|
|
6181
|
+
) -> None:
|
|
6182
|
+
"""Type checking stubs"""
|
|
6183
|
+
pass
|
|
6184
|
+
|
|
4496
6185
|
def _typecheckingstub__dd796c2ffac4ce790fd379f22162cb352a7e6e5fcca10c21249e16c756967555(
|
|
4497
6186
|
project: _Project_57d89203,
|
|
4498
6187
|
*,
|
|
@@ -4512,11 +6201,98 @@ def _typecheckingstub__7b016d0638a2d569458bc60c6c0631e67606ffba250b97da0a8bb9943
|
|
|
4512
6201
|
"""Type checking stubs"""
|
|
4513
6202
|
pass
|
|
4514
6203
|
|
|
6204
|
+
def _typecheckingstub__e1fc10fe84bb8f10fcd95137adbc465ef44fa0a114d64da3b25bdc76d9324fe3(
|
|
6205
|
+
*,
|
|
6206
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6207
|
+
dependency_groups: typing.Optional[typing.Union[PyprojectTomlDependencyGroups, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6208
|
+
project: typing.Optional[typing.Union[PyprojectTomlProject, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6209
|
+
tool: typing.Optional[typing.Union[PyprojectTomlTool, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6210
|
+
) -> None:
|
|
6211
|
+
"""Type checking stubs"""
|
|
6212
|
+
pass
|
|
6213
|
+
|
|
6214
|
+
def _typecheckingstub__3172b8764f200359be57f771adc03f41306604c3a8551c94b129802a9f212c87(
|
|
6215
|
+
*,
|
|
6216
|
+
dev: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
6217
|
+
) -> None:
|
|
6218
|
+
"""Type checking stubs"""
|
|
6219
|
+
pass
|
|
6220
|
+
|
|
6221
|
+
def _typecheckingstub__d9e7cb471169a85cb7809c67deb7b7e20dde1ce20a6a49f8357e0726c13b0040(
|
|
6222
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
6223
|
+
*,
|
|
6224
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6225
|
+
dependency_groups: typing.Optional[typing.Union[PyprojectTomlDependencyGroups, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6226
|
+
project: typing.Optional[typing.Union[PyprojectTomlProject, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6227
|
+
tool: typing.Optional[typing.Union[PyprojectTomlTool, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6228
|
+
) -> None:
|
|
6229
|
+
"""Type checking stubs"""
|
|
6230
|
+
pass
|
|
6231
|
+
|
|
6232
|
+
def _typecheckingstub__8c653bb340110f30f664421242162e21f98489f495f8991c5180052f98429065(
|
|
6233
|
+
resolver: _IResolver_0b7d1958,
|
|
6234
|
+
) -> None:
|
|
6235
|
+
"""Type checking stubs"""
|
|
6236
|
+
pass
|
|
6237
|
+
|
|
6238
|
+
def _typecheckingstub__b8e342a1a2af5016dbe0f8461f2a5c512da049f10c5dfb936ea942878407c985(
|
|
6239
|
+
*,
|
|
6240
|
+
name: builtins.str,
|
|
6241
|
+
authors: typing.Optional[typing.Sequence[typing.Union[ProjectAuthor, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6242
|
+
classifiers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6243
|
+
dependencies: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6244
|
+
description: typing.Optional[builtins.str] = None,
|
|
6245
|
+
dynamic: typing.Optional[typing.Sequence[PyprojectTomlProjectDynamic]] = None,
|
|
6246
|
+
entry_points: typing.Any = None,
|
|
6247
|
+
gui_scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
6248
|
+
import_names: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6249
|
+
import_namespaces: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6250
|
+
keywords: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6251
|
+
license: typing.Any = None,
|
|
6252
|
+
license_files: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
6253
|
+
maintainers: typing.Optional[typing.Sequence[typing.Union[ProjectAuthor, typing.Dict[builtins.str, typing.Any]]]] = None,
|
|
6254
|
+
optional_dependencies: typing.Any = None,
|
|
6255
|
+
readme: typing.Any = None,
|
|
6256
|
+
requires_python: typing.Optional[builtins.str] = None,
|
|
6257
|
+
scripts: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
6258
|
+
urls: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
|
|
6259
|
+
version: typing.Optional[builtins.str] = None,
|
|
6260
|
+
) -> None:
|
|
6261
|
+
"""Type checking stubs"""
|
|
6262
|
+
pass
|
|
6263
|
+
|
|
6264
|
+
def _typecheckingstub__bc2ba765e25294b713eef60bd54f79fe7e8b12bdfb44298beec4d108cc84cf15(
|
|
6265
|
+
*,
|
|
6266
|
+
black: typing.Any = None,
|
|
6267
|
+
cibuildwheel: typing.Any = None,
|
|
6268
|
+
hatch: typing.Any = None,
|
|
6269
|
+
maturin: typing.Any = None,
|
|
6270
|
+
mypy: typing.Any = None,
|
|
6271
|
+
pdm: typing.Any = None,
|
|
6272
|
+
poe: typing.Any = None,
|
|
6273
|
+
poetry: typing.Any = None,
|
|
6274
|
+
pyright: typing.Any = None,
|
|
6275
|
+
pytest: typing.Any = None,
|
|
6276
|
+
repo_review: typing.Any = None,
|
|
6277
|
+
ruff: typing.Any = None,
|
|
6278
|
+
scikit_build: typing.Any = None,
|
|
6279
|
+
setuptools: typing.Any = None,
|
|
6280
|
+
setuptools_scm: typing.Any = None,
|
|
6281
|
+
taskipy: typing.Any = None,
|
|
6282
|
+
tombi: typing.Any = None,
|
|
6283
|
+
tox: typing.Any = None,
|
|
6284
|
+
ty: typing.Any = None,
|
|
6285
|
+
uv: typing.Any = None,
|
|
6286
|
+
) -> None:
|
|
6287
|
+
"""Type checking stubs"""
|
|
6288
|
+
pass
|
|
6289
|
+
|
|
4515
6290
|
def _typecheckingstub__ce0d8c554f8b4609921caa32636cdf3f53ff29d779d94c8c46d6322903608390(
|
|
4516
6291
|
project: _Project_57d89203,
|
|
4517
6292
|
*,
|
|
4518
6293
|
max_failures: typing.Optional[jsii.Number] = None,
|
|
4519
6294
|
testdir: typing.Optional[builtins.str] = None,
|
|
6295
|
+
test_match: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
4520
6296
|
version: typing.Optional[builtins.str] = None,
|
|
4521
6297
|
) -> None:
|
|
4522
6298
|
"""Type checking stubs"""
|
|
@@ -4526,6 +6302,7 @@ def _typecheckingstub__4be1ab17806d0a3326c1d1b9ba1180daed1458dcbff7d77f34e7381dd
|
|
|
4526
6302
|
*,
|
|
4527
6303
|
max_failures: typing.Optional[jsii.Number] = None,
|
|
4528
6304
|
testdir: typing.Optional[builtins.str] = None,
|
|
6305
|
+
test_match: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
4529
6306
|
version: typing.Optional[builtins.str] = None,
|
|
4530
6307
|
) -> None:
|
|
4531
6308
|
"""Type checking stubs"""
|
|
@@ -4567,6 +6344,7 @@ def _typecheckingstub__8103f3b830f25b7a5e774ec261700198b120623a2bd5b4934a1fd82d8
|
|
|
4567
6344
|
package_name: typing.Optional[builtins.str] = None,
|
|
4568
6345
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4569
6346
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
6347
|
+
uv_options: typing.Optional[typing.Union[UvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4570
6348
|
) -> None:
|
|
4571
6349
|
"""Type checking stubs"""
|
|
4572
6350
|
pass
|
|
@@ -4630,6 +6408,7 @@ def _typecheckingstub__b659222a1357930d78c896c62a88d02f0761b15a41c74e5e00700ccfe
|
|
|
4630
6408
|
package_name: typing.Optional[builtins.str] = None,
|
|
4631
6409
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4632
6410
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
6411
|
+
uv_options: typing.Optional[typing.Union[UvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4633
6412
|
python_exec: typing.Optional[builtins.str] = None,
|
|
4634
6413
|
module_name: builtins.str,
|
|
4635
6414
|
deps: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
@@ -4645,7 +6424,9 @@ def _typecheckingstub__b659222a1357930d78c896c62a88d02f0761b15a41c74e5e00700ccfe
|
|
|
4645
6424
|
pytest: typing.Optional[builtins.bool] = None,
|
|
4646
6425
|
pytest_options: typing.Optional[typing.Union[PytestOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4647
6426
|
sample: typing.Optional[builtins.bool] = None,
|
|
6427
|
+
sample_testdir: typing.Optional[builtins.str] = None,
|
|
4648
6428
|
setuptools: typing.Optional[builtins.bool] = None,
|
|
6429
|
+
uv: typing.Optional[builtins.bool] = None,
|
|
4649
6430
|
venv: typing.Optional[builtins.bool] = None,
|
|
4650
6431
|
venv_options: typing.Optional[typing.Union[VenvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4651
6432
|
) -> None:
|
|
@@ -4747,6 +6528,7 @@ def _typecheckingstub__990ed4ecaa4edf7848fc5144b71682e590ee9d8b8da5b2facfae58711
|
|
|
4747
6528
|
package_name: typing.Optional[builtins.str] = None,
|
|
4748
6529
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4749
6530
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
6531
|
+
uv_options: typing.Optional[typing.Union[UvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4750
6532
|
python_exec: typing.Optional[builtins.str] = None,
|
|
4751
6533
|
) -> None:
|
|
4752
6534
|
"""Type checking stubs"""
|
|
@@ -4764,7 +6546,41 @@ def _typecheckingstub__efb76fcc4729646986081d64b0050704d856d4acab1092db7f22a97d7
|
|
|
4764
6546
|
package_name: typing.Optional[builtins.str] = None,
|
|
4765
6547
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4766
6548
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
6549
|
+
uv_options: typing.Optional[typing.Union[UvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6550
|
+
python_exec: typing.Optional[builtins.str] = None,
|
|
6551
|
+
) -> None:
|
|
6552
|
+
"""Type checking stubs"""
|
|
6553
|
+
pass
|
|
6554
|
+
|
|
6555
|
+
def _typecheckingstub__c6af3eeebf702d4696ff95e3dd9f7765abd1bead0231202b6c3d96e210ebae53(
|
|
6556
|
+
scope: _constructs_77d1e7e8.IConstruct,
|
|
6557
|
+
*,
|
|
6558
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6559
|
+
project: typing.Optional[typing.Union[PyprojectTomlProject, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6560
|
+
uv: typing.Optional[typing.Union[_UvConfiguration_126496a9, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6561
|
+
python_exec: typing.Optional[builtins.str] = None,
|
|
6562
|
+
) -> None:
|
|
6563
|
+
"""Type checking stubs"""
|
|
6564
|
+
pass
|
|
6565
|
+
|
|
6566
|
+
def _typecheckingstub__cfefccda3fbe1ff1c577b203b8a3bbfc01f7f1d4af0e6ac2d49593339709bd0c(
|
|
6567
|
+
spec: builtins.str,
|
|
6568
|
+
) -> None:
|
|
6569
|
+
"""Type checking stubs"""
|
|
6570
|
+
pass
|
|
6571
|
+
|
|
6572
|
+
def _typecheckingstub__476e06a93af3d873cd3d5aa2eb681ec297066fbb9e27bac268fb38df7b1fe327(
|
|
6573
|
+
spec: builtins.str,
|
|
6574
|
+
) -> None:
|
|
6575
|
+
"""Type checking stubs"""
|
|
6576
|
+
pass
|
|
6577
|
+
|
|
6578
|
+
def _typecheckingstub__7160d30dca474dc5d88b1ee88cb680c95003b72e43b0c36e6476ea71df3e39bc(
|
|
6579
|
+
*,
|
|
4767
6580
|
python_exec: typing.Optional[builtins.str] = None,
|
|
6581
|
+
build_system: typing.Optional[typing.Union[BuildSystem, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6582
|
+
project: typing.Optional[typing.Union[PyprojectTomlProject, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
6583
|
+
uv: typing.Optional[typing.Union[_UvConfiguration_126496a9, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4768
6584
|
) -> None:
|
|
4769
6585
|
"""Type checking stubs"""
|
|
4770
6586
|
pass
|
|
@@ -4798,6 +6614,7 @@ def _typecheckingstub__ffb2a68f24fc1fda645188af9796f00c5dd2cfddf0c67e4d824be027c
|
|
|
4798
6614
|
package_name: typing.Optional[builtins.str] = None,
|
|
4799
6615
|
poetry_options: typing.Optional[typing.Union[PoetryPyprojectOptionsWithoutDeps, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4800
6616
|
setup_config: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
6617
|
+
uv_options: typing.Optional[typing.Union[UvOptions, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
4801
6618
|
python_exec: typing.Optional[builtins.str] = None,
|
|
4802
6619
|
) -> None:
|
|
4803
6620
|
"""Type checking stubs"""
|
|
@@ -4817,6 +6634,7 @@ def _typecheckingstub__58d69e7441cb3bc0f904d3072147d8851b799f65424aafad7c14abead
|
|
|
4817
6634
|
license: typing.Optional[builtins.str] = None,
|
|
4818
6635
|
maintainers: typing.Optional[typing.Sequence[builtins.str]] = None,
|
|
4819
6636
|
name: typing.Optional[builtins.str] = None,
|
|
6637
|
+
package_mode: typing.Optional[builtins.bool] = None,
|
|
4820
6638
|
packages: typing.Optional[typing.Sequence[typing.Any]] = None,
|
|
4821
6639
|
plugins: typing.Any = None,
|
|
4822
6640
|
readme: typing.Optional[builtins.str] = None,
|
|
@@ -4830,3 +6648,6 @@ def _typecheckingstub__58d69e7441cb3bc0f904d3072147d8851b799f65424aafad7c14abead
|
|
|
4830
6648
|
) -> None:
|
|
4831
6649
|
"""Type checking stubs"""
|
|
4832
6650
|
pass
|
|
6651
|
+
|
|
6652
|
+
for cls in [IPackageProvider, IPythonDeps, IPythonEnv, IPythonPackaging]:
|
|
6653
|
+
typing.cast(typing.Any, cls).__protocol_attrs__ = typing.cast(typing.Any, cls).__protocol_attrs__ - set(['__jsii_proxy_class__', '__jsii_type__'])
|