MCPcopy Create free account
hub / github.com/apple/axlearn / test_namespaced

Method test_namespaced

axlearn/cloud/common/utils_test.py:528–644  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

526 self.assertIsNone(cfg_no_inner.inner)
527
528 def test_namespaced(self):
529 # pylint: disable=missing-class-docstring
530 fv = flags.FlagValues()
531
532 class GrandChild(utils.FlagConfigurable):
533 @config_class
534 class Config(utils.FlagConfigurable.Config):
535 grandchild: Optional[str] = None
536 child_default: Optional[str] = None
537 parent_default: Optional[str] = None
538
539 @classmethod
540 def define_flags(cls, fv: flags.FlagValues):
541 flags.DEFINE_string("grandchild", None, "", flag_values=fv, allow_override=True)
542 flags.DEFINE_string("child_default", None, "", flag_values=fv, allow_override=True)
543 flags.DEFINE_string("parent_default", None, "", flag_values=fv, allow_override=True)
544
545 @utils.namespaced("inner")
546 class Child(utils.FlagConfigurable):
547 @config_class
548 class Config(utils.FlagConfigurable.Config):
549 inner: Required[dict[str, ConfigBase]] = REQUIRED
550 child: Optional[str] = None
551 child_default: Optional[str] = None
552 parent_default: Optional[str] = None
553
554 @classmethod
555 def default_config(cls) -> Config:
556 return super().default_config().set(inner={"c": GrandChild.default_config()})
557
558 @classmethod
559 def define_flags(cls, fv: flags.FlagValues):
560 flags.DEFINE_string("child", None, "", flag_values=fv, allow_override=True)
561 flags.DEFINE_string(
562 "child_default", "from_child", "", flag_values=fv, allow_override=True
563 )
564
565 @utils.namespaced("inner")
566 class Parent(utils.FlagConfigurable):
567 @config_class
568 class Config(utils.FlagConfigurable.Config):
569 inner: Required[dict[str, ConfigBase]] = REQUIRED
570 parent: Optional[str] = None
571 parent_default: Optional[str] = None
572
573 @classmethod
574 def default_config(cls):
575 return (
576 super()
577 .default_config()
578 .set(inner={"a": Child.default_config(), "b": Child.default_config()})
579 )
580
581 @classmethod
582 def define_flags(cls, fv: flags.FlagValues):
583 flags.DEFINE_string("parent", None, "", flag_values=fv, allow_override=True)
584 flags.DEFINE_string(
585 "parent_default", "from_parent", "", flag_values=fv, allow_override=True

Callers

nothing calls this directly

Calls 3

default_configMethod · 0.45
define_flagsMethod · 0.45
from_flagsMethod · 0.45

Tested by

no test coverage detected