openflexure-microscope-server/openflexure_microscope/common/flask_labthings/utilities.py
2020-01-03 00:21:16 +00:00

31 lines
767 B
Python

from openflexure_microscope.common.labthings_core.utilities import (
get_docstring,
get_summary,
)
from .schema import Schema, marshmallow, MARSHMALLOW_VERSION_INFO
import collections.abc
import logging
def description_from_view(view_class):
methods = []
for method_key in ["get", "post", "put", "delete"]:
if hasattr(view_class, method_key):
methods.append(method_key.upper())
summary = get_summary(view_class)
d = {"methods": methods, "description": summary}
return d
def rupdate(d, u):
for k, v in u.items():
if isinstance(v, collections.abc.Mapping):
if not k in d:
d[k] = {}
d[k] = rupdate(d.get(k, {}), v)
else:
d[k] = v
return d