Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Better interpolation #25

Merged
merged 2 commits into from
Dec 12, 2024
Merged

Better interpolation #25

merged 2 commits into from
Dec 12, 2024

Conversation

percevalw
Copy link
Member

Description

  • Support interpolated seed in the config file (as a reminder, the seed is treated specifically by confit to initialize random generators before any object is resolved)
  • Support if/else expressions in interpolation, and only resolve the relevant branch

Checklist

  • If this PR is a bug fix, the bug is documented in the test suite.
  • Changes were documented in the changelog (pending section).
  • If necessary, changes were made to the documentation.

Copy link

github-actions bot commented Dec 9, 2024

Coverage Report

NameStmtsMiss∆ MissCover
TOTAL95518098.12%
Files without new missing coverage
NameStmtsMiss∆ MissCover
confit/utils/settings.py

Was already missing at lines 10-12

         return bool(loads(value))
-     except Exception:
-         return True

102080.00%
confit/registry.py

Was already missing at line 119

         if name is None and hasattr(e.model, "type_"):
-             name = e.model.type_.__module__ + "." + e.model.type_.__qualname__
         e = ConfitValidationError(
Was already missing at lines 479-484
         """
-         entrypoints = importlib_metadata.entry_points()
  ...
-             return entrypoints.get(self.entry_point_namespace, [])
Was already missing at line 509
                 if from_entry_point:
-                     return from_entry_point
             if not catalogue.check_exists(*path):
Was already missing at line 516
                 )
-             return catalogue._get(path)

2147096.73%
confit/config.py

Was already missing at line 126

                     else:
-                         current = current[part]
                 try:
Was already missing at line 153
         if resolve:
-             return config.resolve(registry=registry)
Was already missing at line 375
                     return local_names[parts] + ("." if path.endswith(":") else "")
-                 except KeyError:
                     raise KeyError(path)
Was already missing at line 420
             if not deep and len(loc) > 1:
-                 return obj
Was already missing at line 500
                 return
-             current[path] = val
Was already missing at line 527
                     ):
-                         old[key] = new_val
                     else:
Was already missing at line 563
             elif isinstance(obj, list):
-                 return [rec(v) for v in obj]
             elif isinstance(obj, tuple):
Was already missing at line 565
             elif isinstance(obj, tuple):
-                 return tuple(rec(v) for v in obj)
             elif isinstance(obj, Reference):
Was already missing at line 614
     if isinstance(config_paths, Path):
-         config_paths = [config_paths]

3049097.04%

8 files skipped due to complete coverage.

Coverage success: total of 98.12% is above 98.08% 🎉

@percevalw percevalw force-pushed the better-interpolation branch from 87d6229 to ebb825d Compare December 9, 2024 14:50
@percevalw percevalw force-pushed the better-interpolation branch from ebb825d to ba3784e Compare December 9, 2024 14:54
@percevalw percevalw requested a review from Thomzoy December 9, 2024 17:28
@percevalw percevalw merged commit 8c9ac3b into main Dec 12, 2024
10 checks passed
@percevalw percevalw deleted the better-interpolation branch December 12, 2024 10:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant