MCPcopy Create free account
hub / github.com/Oneflow-Inc/oneflow / __setattr__

Method __setattr__

python/oneflow/nn/graph/proxy.py:436–464  ·  view source on GitHub ↗
(self, name: str, value=None)

Source from the content-addressed store, hash-verified

434 yield elem
435
436 def __setattr__(self, name: str, value=None) -> None:
437 if value is None or not isinstance(value, Proxy):
438 self.__dict__[name] = value
439 else:
440 dicts_or_sets = (
441 self.__dict__,
442 self._modules,
443 self._parameters,
444 self._buffers,
445 )
446 for d in dicts_or_sets:
447 if name in d:
448 raise AttributeError(
449 "'{}' object has duplicated attribute named '{}'".format(
450 self.to(GraphModule)._name, name
451 )
452 )
453 if value.to(GraphModule).type == GraphBlockType.MODULE:
454 self._modules[name] = value
455 elif value.to(GraphTensor).type == GraphBlockType.PARAMETER:
456 self._parameters[name] = value
457 elif value.to(GraphTensor).type == GraphBlockType.BUFFER:
458 self._buffers[name] = value
459 else:
460 raise AttributeError(
461 "'{}' object are not allowed to set attribute named '{}'".format(
462 type(self).__name__, name
463 )
464 )
465
466 def __getattr__(self, name: str):
467 if name in self.__dict__:

Callers 3

add_moduleMethod · 0.95
register_parameterMethod · 0.95

Calls 3

typeEnum · 0.85
formatMethod · 0.45
toMethod · 0.45

Tested by

no test coverage detected