diff --git a/graphviz/Dockerfile b/graphviz/Dockerfile deleted file mode 100644 index a8030f2..0000000 --- a/graphviz/Dockerfile +++ /dev/null @@ -1,10 +0,0 @@ -FROM alpine:3 - -RUN apk add --no-cache \ - graphviz python3 py-pip - -ADD requirements.txt ./ -RUN pip3 install -r requirements.txt --break-system-packages - -ADD server.py ./ -CMD hug -f server.py diff --git a/graphviz/compose.yml b/graphviz/compose.yml deleted file mode 100644 index c1ee058..0000000 --- a/graphviz/compose.yml +++ /dev/null @@ -1,7 +0,0 @@ -name: graphviz -services: - graphviz: - ports: - - 8000:8000 - image: graphviz - restart: unless-stopped \ No newline at end of file diff --git a/graphviz/readme.md b/graphviz/readme.md deleted file mode 100644 index 3ba5307..0000000 --- a/graphviz/readme.md +++ /dev/null @@ -1,9 +0,0 @@ - - -``` -docker build -t graphviz . -docker run -p8000:8000 graphviz - -curl localhost:8000/viz.svg -F dot=@test.dot -``` -Based on https://github.com/sseemayer/docker-graphviz diff --git a/graphviz/requirements.txt b/graphviz/requirements.txt deleted file mode 100644 index 846c5ad..0000000 --- a/graphviz/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -hug==2.6.1 -hug-middleware-cors==1.0.0 -six==1.16.0 \ No newline at end of file diff --git a/graphviz/server.py b/graphviz/server.py deleted file mode 100644 index 62b1033..0000000 --- a/graphviz/server.py +++ /dev/null @@ -1,60 +0,0 @@ -import hug -from hug.middleware import CORSMiddleware -from six import BytesIO -import subprocess -import logging -from tempfile import NamedTemporaryFile as ntf - -logging.basicConfig() -api = hug.API(__name__) -api.http.add_middleware(CORSMiddleware(api, allow_credentials=True)) - -@hug.not_found() -def not_found_handler(): - return "Not Found" - -@hug.get_post('/viz.svg', output=hug.output_format.image("svg+xml")) -@hug.get_post('/viz.png', output=hug.output_format.image("png")) -@hug.get_post('/viz.dot', output=hug.output_format.text) -@hug.get_post('/viz.xdot', output=hug.output_format.text) -def demo( - dot: 'A Graphviz dot document', - request, - response, - algorithm: hug.types.one_of(['dot', 'neato', 'twopi', 'circo', 'fdp', 'sfdp', 'patchwork', 'osage'])='dot', -): - - suffix = request.path.split(".")[-1] - - # Enforce unicode strings - try: - dot = dot.decode("utf-8") - except AttributeError: - pass - - with ntf(suffix=".dot", mode="w") as f_dot, ntf(mode="r+b") as f_out, ntf(mode="r") as f_err: - f_dot.write(dot) - f_dot.flush() - - cmd = [ - algorithm, - '-T', - suffix, - f_dot.name, - '-o', - f_out.name - ] - - proc = subprocess.Popen(cmd, stdout=f_err, stderr=subprocess.STDOUT) - - ret = proc.wait() - - if ret != 0: - response.status = hug.HTTP_500 - f_err.seek(0) - return {"status_code": ret, "message": f_err.read()} - - f_out.seek(0) - out_data = f_out.read() - - return BytesIO(out_data) diff --git a/graphviz/test.dot b/graphviz/test.dot deleted file mode 100644 index 024f822..0000000 --- a/graphviz/test.dot +++ /dev/null @@ -1,11 +0,0 @@ - - -digraph D { - - node [fontname="Arial"]; - - node_A [shape=record label="shape=record|{above|middle|below}|right"]; - node_B [shape=plaintext label="shape=plaintext|{curly|braces and|bars without}|effect"]; - - -}