MCPcopy Create free account
hub / github.com/dagger/dagger / loadConfig

Method loadConfig

sdk/python/runtime/discovery.go:365–401  ·  view source on GitHub ↗

loadConfig loads configurations from user files listed in FileContents.

(ctx context.Context, m *PythonSdk)

Source from the content-addressed store, hash-verified

363
364// loadConfig loads configurations from user files listed in FileContents.
365func (d *Discovery) loadConfig(ctx context.Context, m *PythonSdk) error {
366 // d.Files can be empty if EnableCustomConfig is false, which can be disabled
367 // on extension modules. Otherwise, `pyproject.toml` can only be empty
368 // on `dagger init`, in which case it will be created from template.
369 contents, exists := d.Files["pyproject.toml"]
370 if !exists {
371 return nil
372 }
373
374 if err := toml.Unmarshal([]byte(contents), &d.Config); err != nil {
375 return err
376 }
377
378 baseImage, err := d.parseBaseImage(d.DefaultImages[BaseImageName])
379 if err != nil {
380 return err
381 }
382 uvImage, err := d.parseUvImage(d.DefaultImages[UvImageName])
383 if err != nil {
384 return err
385 }
386 d.Images[BaseImageName] = baseImage
387 d.Images[UvImageName] = uvImage
388
389 // For an existing pyproject.toml, the project name may divert from the default
390 if d.Config.Project.Name != "" {
391 m.ProjectName = d.Config.Project.Name
392 m.PackageName = NormalizePackageName(m.ProjectName)
393 }
394
395 // Only look for vendor path when uv.lock is being used
396 if m.UseUvLock() {
397 m.VendorPath = d.Config.Tool.Uv.Sources.Dagger.Path
398 }
399
400 return nil
401}
402
403// findPythonVersion looks for a Python version pin in either `.python-version`
404// or `requires-python` in pyproject.toml.

Callers

nothing calls this directly

Calls 5

parseBaseImageMethod · 0.95
parseUvImageMethod · 0.95
NormalizePackageNameFunction · 0.85
UseUvLockMethod · 0.80
UnmarshalMethod · 0.65

Tested by

no test coverage detected