MCPcopy Index your code
hub / github.com/LawRefBook/Laws / LawDatabase

Class LawDatabase

scripts/database.py:62–111  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

60
61
62class LawDatabase(object):
63
64 def __init__(self) -> None:
65 self.db = db
66
67 def get_or_create_category(self, folder: str) -> Category:
68 try:
69 return Category.get(folder=folder)
70 except Category.DoesNotExist:
71 pass
72 return Category.create(**{
73 "name": folder.split("/")[-1],
74 "folder": folder
75 })
76
77 def get_laws(self, name: str = None, publish_at: datetime | str = None) -> List[Law]:
78 if publish_at and isinstance(publish_at, datetime):
79 publish_at = publish_at.strftime('%Y-%m-%d')
80 expr = None
81 if name:
82 expr = Law.name == name
83 if publish_at:
84 expr = expr & (Law.publish == publish_at)
85 if expr:
86 return Law.select().where(expr)
87 return Law.select().where(1 == 1)
88
89 def delete_law(self, id):
90 Law.delete_by_id(id)
91
92 def create_law(self, name: str, category: Category, level: str, publish_at: str = None, id=None) -> Law:
93 try:
94 params = {
95 "name": name,
96 }
97 if publish_at:
98 params["publish"] = publish_at
99 return Law.get(**params)
100 except Law.DoesNotExist:
101 pass
102 params = {
103 "name": name,
104 "category_id": category.id,
105 "level": level,
106 }
107 if publish_at:
108 params["publish"] = publish_at
109 if id:
110 params["id"] = id
111 return Law.create(**params)
112
113
114def get_laws():

Callers 1

database.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected