(self, name: str, value=None)
| 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__: |
no test coverage detected