@@ -108,7 +108,14 @@ def _validate_envkey(v: typing.Any) -> str:
108108
109109
110110class ResolverDist (pydantic .BaseModel ):
111- """Packages resolver dist"""
111+ """Packages resolver dist
112+
113+ ::
114+
115+ sdist_server_url: https://pypi.org/simple/
116+ include_sdists: True
117+ include_wheels: False
118+ """
112119
113120 model_config = MODEL_CONFIG
114121
@@ -126,6 +133,11 @@ class DownloadSource(pydantic.BaseModel):
126133 """Package download source
127134
128135 Download package sources from an alternative source, e.g. GitHub release.
136+
137+ ::
138+
139+ url: https://example.com/package.tar.gz
140+ destination_filename: ${dist_name}-${version}.tar.gz
129141 """
130142
131143 model_config = MODEL_CONFIG
@@ -145,12 +157,19 @@ def validate_destination_filename(cls, v):
145157
146158
147159class BuildOptions (pydantic .BaseModel ):
148- """Build system options"""
160+ """Build system options
161+
162+ ::
163+
164+ build_ext_parallel: False
165+ cpu_cores_per_job: 1
166+ memory_per_job_gb: 1.0
167+ """
149168
150169 model_config = MODEL_CONFIG
151170
152171 build_ext_parallel : bool = False
153- """Configure build_ext[parallel] in DIST_EXTRA_CONFIG
172+ """Configure ` build_ext[parallel]` in ` DIST_EXTRA_CONFIG`
154173
155174 This enables parallel builds of setuptools extensions. Incompatible
156175 with some packages, e.g. numba 0.60.0.
@@ -160,20 +179,31 @@ class BuildOptions(pydantic.BaseModel):
160179 """Scale parallel jobs by available CPU cores
161180
162181 Examples:
182+
163183 1: as many parallel jobs as CPU logical cores
184+
164185 2: allocate 2 cores per job
165186 """
166187
167188 memory_per_job_gb : float = Field (default = 1.0 , ge = 0.1 )
168189 """Scale parallel jobs by available virtual memory (without swap)
169190
170191 Examples:
192+
171193 0.5: assume each parallel job requires 512 MB virtual memory
172194 """
173195
174196
175197class ProjectOverride (pydantic .BaseModel ):
176- """Override pyproject.toml settings"""
198+ """Override pyproject.toml settings
199+
200+ ::
201+
202+ update_build_requires:
203+ - setuptools
204+ remove_build_requires:
205+ - ninja
206+ """
177207
178208 model_config = MODEL_CONFIG
179209
@@ -194,7 +224,16 @@ def validate_update_build_requires(cls, v: list[str]) -> list[str]:
194224
195225
196226class VariantInfo (pydantic .BaseModel ):
197- """Variant information for a package"""
227+ """Variant information for a package
228+
229+ ::
230+
231+ env:
232+ VAR1: "value 1"
233+ VAR2: "2.0
234+ wheel_server_url: https://pypi.org/simple/
235+ pre_build: False
236+ """
198237
199238 model_config = MODEL_CONFIG
200239
@@ -214,7 +253,8 @@ class VariantInfo(pydantic.BaseModel):
214253class PackageSettings (pydantic .BaseModel ):
215254 """Package settings
216255
217- yaml::
256+ ::
257+
218258 build_dir: python
219259 changelog:
220260 "1.0.1":
@@ -611,7 +651,16 @@ def serialize(self, **kwargs) -> dict[str, typing.Any]:
611651
612652
613653class SettingsFile (pydantic .BaseModel ):
614- """Models global settings file `settings.yaml`"""
654+ """Models global settings file `settings.yaml`
655+
656+ ::
657+
658+ changelog:
659+ cuda:
660+ - "2024-09-13: updated CUDA version"
661+ rocm:
662+ - "2024-09-01: updated ROCm version"
663+ """
615664
616665 model_config = MODEL_CONFIG
617666
0 commit comments