MCPcopy Create free account
hub / github.com/dbcli/mycli / FavoriteQueries

Class FavoriteQueries

mycli/packages/special/favoritequeries.py:4–65  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2
3
4class FavoriteQueries:
5 section_name: str = "favorite_queries"
6
7 usage = """
8Favorite Queries are a way to save frequently used queries
9with a short name.
10Examples:
11
12 # Save a new favorite query.
13 > \\fs simple select * from abc where a is not Null;
14
15 # List all favorite queries.
16 > \\f
17 ╒════════╤═══════════════════════════════════════╕
18 │ Name │ Query │
19 ╞════════╪═══════════════════════════════════════╡
20 │ simple │ SELECT * FROM abc where a is not NULL │
21 ╘════════╧═══════════════════════════════════════╛
22
23 # Run a favorite query.
24 > \\f simple
25 ╒════════╤════════╕
26 │ a │ b │
27 ╞════════╪════════╡
28 │ 日本語 │ 日本語 │
29 ╘════════╧════════╛
30
31 # Delete a favorite query.
32 > \\fd simple
33 simple: Deleted.
34"""
35
36 # Class-level variable, for convenience to use as a singleton.
37 instance: FavoriteQueries
38
39 def __init__(self, config) -> None:
40 self.config = config
41
42 @classmethod
43 def from_config(cls, config):
44 return FavoriteQueries(config)
45
46 def list(self) -> list[str | None]:
47 return list(self.config.get(self.section_name, {}))
48
49 def get(self, name) -> str | None:
50 return self.config.get(self.section_name, {}).get(name, None)
51
52 def save(self, name: str, query: str) -> None:
53 self.config.encoding = "utf-8"
54 if self.section_name not in self.config:
55 self.config[self.section_name] = {}
56 self.config[self.section_name][name] = query
57 self.config.write()
58
59 def delete(self, name: str) -> str:
60 try:
61 del self.config[self.section_name][name]

Calls

no outgoing calls