docstr: Push a new attribute into the ScopedLocation.
  
  :param name: attribute name
  :param value: attribute value
  :return: an AutoMLContext copy with the new loc attribute.
docstr_tok: ["Push","a","new","attribute","into","the","ScopedLocation",".",":","param","name",":","attribute","name",":","param","value",":","attribute","value",":","return",":","an","AutoMLContext","copy","with","the","new","loc","attribute","."]
code: def push_attr(self, subdataclass: SubDataclassT) -> "AutoMLContext":
      """
      Push a new attribute into the ScopedLocation.
  
      :param name: attribute name
      :param value: attribute value
      :return: an AutoMLContext copy with the new loc attribute.
      """
      if not isinstance(subdataclass, BaseDataclass) and isinstance(
          subdataclass, (str, int)
      ):
          return self.with_loc(
              self.loc.with_id(subdataclass)
          )  # ID instead.
      return self.with_loc(self.loc.with_dc(subdataclass))
  
imports: import logging
  from neuraxle.base import ExecutionContext, ExecutionPhase
  from neuraxle.logging.logging import NeuraxleLogger
  from neuraxle.metaopt.data.vanilla import BaseDataclass, ScopedLocation, SubDataclassT
  from neuraxle.metaopt.repositories.repo import HyperparamsRepository, SynchronizedHyperparamsRepositoryWrapper, VanillaHyperparamsRepository
label_desc: Use image node_id 15 for calling the AutoMLContext obj's underlying member method code with example usage: obj.push_attr(subdataclass) and returns: self, self