(self, item)
| 61 | return iter(self._templates) |
| 62 | |
| 63 | def __getitem__(self, item): |
| 64 | if isinstance(item, str): |
| 65 | template_names = item.split("+") |
| 66 | else: |
| 67 | template_names = [item] |
| 68 | |
| 69 | templates = [] |
| 70 | for template_name in template_names: |
| 71 | template = self._templates[template_name] |
| 72 | if template is Lazy: |
| 73 | from plotly.graph_objs.layout import Template |
| 74 | |
| 75 | if template_name == "none": |
| 76 | # "none" is a special built-in named template that applied no defaults |
| 77 | template = Template(data_scatter=[{}]) |
| 78 | self._templates[template_name] = template |
| 79 | else: |
| 80 | # Load template from package data |
| 81 | path = os.path.join( |
| 82 | "package_data", "templates", template_name + ".json" |
| 83 | ) |
| 84 | template_str = pkgutil.get_data("plotly", path).decode("utf-8") |
| 85 | template_dict = json.loads(template_str) |
| 86 | template = Template(template_dict, _validate=False) |
| 87 | |
| 88 | self._templates[template_name] = template |
| 89 | templates.append(self._templates[template_name]) |
| 90 | |
| 91 | return self.merge_templates(*templates) |
| 92 | |
| 93 | def __setitem__(self, key, value): |
| 94 | self._templates[key] = self._validate(value) |
nothing calls this directly
no test coverage detected