| 1769 | self.scripts.extend(scripts) |
| 1770 | |
| 1771 | def dict_append(self,**dict): |
| 1772 | for key in self.list_keys: |
| 1773 | a = getattr(self, key) |
| 1774 | a.extend(dict.get(key, [])) |
| 1775 | for key in self.dict_keys: |
| 1776 | a = getattr(self, key) |
| 1777 | a.update(dict.get(key, {})) |
| 1778 | known_keys = self.list_keys + self.dict_keys + self.extra_keys |
| 1779 | for key in dict.keys(): |
| 1780 | if key not in known_keys: |
| 1781 | a = getattr(self, key, None) |
| 1782 | if a and a==dict[key]: continue |
| 1783 | self.warn('Inheriting attribute %r=%r from %r' \ |
| 1784 | % (key, dict[key], dict.get('name', '?'))) |
| 1785 | setattr(self, key, dict[key]) |
| 1786 | self.extra_keys.append(key) |
| 1787 | elif key in self.extra_keys: |
| 1788 | self.info('Ignoring attempt to set %r (from %r to %r)' \ |
| 1789 | % (key, getattr(self, key), dict[key])) |
| 1790 | elif key in known_keys: |
| 1791 | # key is already processed above |
| 1792 | pass |
| 1793 | else: |
| 1794 | raise ValueError("Don't know about key=%r" % (key)) |
| 1795 | |
| 1796 | def __str__(self): |
| 1797 | from pprint import pformat |