(self, key)
| 95 | return fk.column.name |
| 96 | |
| 97 | def __getitem__(self, key): |
| 98 | if key in self.convention: |
| 99 | return self.convention[key](self.const, self.table) |
| 100 | elif hasattr(self, "_key_%s" % key): |
| 101 | return getattr(self, "_key_%s" % key)() |
| 102 | else: |
| 103 | col_template = re.match(r".*_?column_(\d+)(_?N)?_.+", key) |
| 104 | if col_template: |
| 105 | idx = col_template.group(1) |
| 106 | multiples = col_template.group(2) |
| 107 | |
| 108 | if multiples: |
| 109 | if self._is_fk: |
| 110 | elems = self.const.elements |
| 111 | else: |
| 112 | elems = list(self.const.columns) |
| 113 | tokens = [] |
| 114 | for idx, elem in enumerate(elems): |
| 115 | attr = "_key_" + key.replace("0" + multiples, "X") |
| 116 | try: |
| 117 | tokens.append(getattr(self, attr)(idx)) |
| 118 | except AttributeError: |
| 119 | raise KeyError(key) |
| 120 | sep = "_" if multiples.startswith("_") else "" |
| 121 | return sep.join(tokens) |
| 122 | else: |
| 123 | attr = "_key_" + key.replace(idx, "X") |
| 124 | idx = int(idx) |
| 125 | if hasattr(self, attr): |
| 126 | return getattr(self, attr)(idx) |
| 127 | raise KeyError(key) |
| 128 | |
| 129 | |
| 130 | _prefix_dict = { |
nothing calls this directly
no test coverage detected