aboutsummaryrefslogtreecommitdiffstats
path: root/scratch/semgrep/server.py
diff options
context:
space:
mode:
authorOscar Najera <hi@oscarnajera.com>2024-02-04 21:45:42 +0100
committerOscar Najera <hi@oscarnajera.com>2024-02-04 21:45:42 +0100
commitd95bddf2af14e8ac5cc147903435a005039c173e (patch)
tree7316b21a93222a99a4e560dab2cfed0fe03b6a0e /scratch/semgrep/server.py
parent62b37b45ddd0acad629dc00e183d57b79f2ccb71 (diff)
downloaddotfiles-d95bddf2af14e8ac5cc147903435a005039c173e.tar.gz
dotfiles-d95bddf2af14e8ac5cc147903435a005039c173e.tar.bz2
dotfiles-d95bddf2af14e8ac5cc147903435a005039c173e.zip
Rename semgrep to semantic-search
Diffstat (limited to 'scratch/semgrep/server.py')
-rw-r--r--scratch/semgrep/server.py12
1 files changed, 10 insertions, 2 deletions
diff --git a/scratch/semgrep/server.py b/scratch/semgrep/server.py
index 6f3ebcd..becabbb 100644
--- a/scratch/semgrep/server.py
+++ b/scratch/semgrep/server.py
@@ -23,6 +23,11 @@ def ensure_list(data):
raise ValueError("Data must be a list of strings")
+def delete_nodes(nodes):
+ for node in nodes:
+ collection.delete(where={"node-id": node})
+
+
class MyRequestHandler(BaseHTTPRequestHandler):
def do_POST(self):
content_length = int(self.headers["Content-Length"])
@@ -31,6 +36,7 @@ class MyRequestHandler(BaseHTTPRequestHandler):
try:
data = json.loads(post_data)
response_message = f"Received POST request with data: '{data}'\n"
+ self.log_message(response_message)
except ValueError:
response_message = "Invalid JSON data"
self.send_response(400)
@@ -38,12 +44,14 @@ class MyRequestHandler(BaseHTTPRequestHandler):
if query := data.get("query"):
self.log_message("Processing query '%s'", query.replace("\n", " ").strip())
response = collection.query(query_texts=ensure_list(query))
+ elif delete_set := data.get("delete"):
+ delete_nodes(ensure_list(delete_set))
+ response = f"Deleted nodes {delete_set}"
elif paragraphs := data.get("insert"):
data, metadata = drop_duplicates(paragraphs)
nodes = set(m.get("node-id") for m in metadata)
self.log_message("Processing metadata %s", nodes)
- for node in nodes:
- collection.delete(where={"node-id": node})
+ delete_nodes(nodes)
collection.add(
documents=data, metadatas=metadata, ids=list(map(checksum, data))
)