- if inquiry.startswith(CHAR_INQUIRY):
- return CHAR_NEWLINE.join(
- [(v.raw() if show_raw else str(v)) for
- v in sorted(table.values(),
- key=lambda v: f'{v.id_indented()}')
- if inquiry[1:].upper() in str(v.searchable()).upper()])
- if table_name == 'designs' and inquiry.startswith('s'):
- n_studs_str = inquiry[1:]
- assert n_studs_str.isdigit()
- return CHAR_NEWLINE.join(
- [(v.raw() if show_raw else str(v)) for
- v in sorted(table.values(),
- key=lambda v: f'{v.id_indented()}')
- if v.n_studs == int(n_studs_str)])
- item = table[inquiry]
- return item.raw() if show_raw else item.show()
+ query_char, query_body = inquiry[0], inquiry[1:]
+ if query_char == CHAR_Q_EQ_ID:
+ item = table[query_body]
+ return item.raw() if show_raw else item.show()
+ return CHAR_NEWLINE.join(
+ [(r.raw() if show_raw else str(r)) for
+ r in sorted(table.values(), key=lambda r: r.id_indented())
+ if r.match(query_char, query_body)])