Пример #1
0
def json_response(data, status=200, headers=None):
    """ Converts *data* into a Flask JSON response. """

    if isinstance(data, Struct):
        data = ObjectMapper(JsonModule()).serialize(data, type(data))
    elif hasattr(data, 'to_json'):
        data = data.to_json()

    if headers is None:
        headers = {}
    headers['Content-type'] = 'application/json'
    return make_response(json_encoder.encode(data), status, headers)
Пример #2
0
    def load(self,
             filename: str,
             mapper: ObjectMapper = None) -> 'WsgiAppConfig':
        """
    Loads the #WsgiAppConfig from a YAML file specified with *filename*.
    """

        if not mapper:
            mapper = ObjectMapper(JsonModule())
        with open(filename) as fp:
            return mapper.deserialize(yaml.safe_load(fp),
                                      cls,
                                      filename=filename)
Пример #3
0
 def json(cls, mapper: ObjectMapper = None):
   mime_mapper = cls()
   mime_mapper.register(
     'application/json',
     JsonContentEncoder(),
     mapper or ObjectMapper(JsonModule()))
   return mime_mapper
Пример #4
0
def execute_role_consumers(produced_roles):
    logger = logging.getLogger(__name__)
    mapper = ObjectMapper(JsonModule())
    ignored_roles = set()

    for role_cls in _role_consumers.values():
        if hasattr(role_cls, 'execute_once'):
            role_cls.execute_once()

    for role in produced_roles:
        if role['role'] in ignored_roles:
            continue
        if role['role'] not in _role_consumers:
            logger.warning('produced role {!r} is not consumed'.format(
                role['role']))
            ignored_roles.add(role['role'])
            continue
        role_cls = _role_consumers[role['role']]
        mapper.deserialize(role, role_cls).execute()
Пример #5
0
def load_config(filename, service_root):
    with open(filename) as fp:
        config = yaml.safe_load(fp)
    runtime = config_preprocess(
        config['config'],
        config['runtime'],
        plugins=[
            Vars({'$serviceRoot': os.path.normpath(service_root)}),
            Include(os.path.dirname(filename), yaml.safe_load)
        ])
    return ObjectMapper(JsonModule()).deserialize(runtime,
                                                  RuntimeConfig,
                                                  filename=filename)
Пример #6
0
from pydoc_markdown.contrib.processors.filter import FilterProcessor
from pydoc_markdown.contrib.processors.crossref import CrossrefProcessor
from pydoc_markdown.contrib.processors.smart import SmartProcessor
from pydoc_markdown.contrib.renderers.markdown import MarkdownRenderer
from pydoc_markdown.util import ytemplate
from typing import List, Optional, Union
import docspec
import logging
import os
import subprocess
import yaml

__author__ = 'Niklas Rosenstein <*****@*****.**>'
__version__ = '3.8.0'

mapper = ObjectMapper(JsonModule())
logger = logging.getLogger(__name__)


class PydocMarkdown(Struct):
  """
  This object represents the main configuration for Pydoc-Markdown.
  """

  #: A list of loader implementations that load #docspec.Module#s.
  #: Defaults to #PythonLoader.
  loaders = Field([Loader], default=lambda: [PythonLoader()])

  #: A list of processor implementations that modify #docspec.Module#s. Defaults
  #: to #FilterProcessor, #SmartProcessor and #CrossrefProcessor.
  processors = Field([Processor], default=lambda: [
Пример #7
0
 def __init__(self):
   self._types = {}
   self.register(
     PATH_PARAMETER_CONTENT_TYPE,
     JsonContentEncoder(for_path_parameters=True),
     ObjectMapper(JsonModule()))
Пример #8
0
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
# IN THE SOFTWARE.

from collections import OrderedDict
from nr.databind.core import Field, ObjectMapper, Struct
from nr.databind.json import JsonModule
from nr.interface import Interface
from typing import Optional, TextIO, Union
import json

MAPPER = ObjectMapper(JsonModule())
RESOLUTION_ALIASES = OrderedDict([
  ('HD', (1280, 720)),
  ('FHD', (1920, 1080)),
  ('2K', (2560, 1440)),
  ('4K', (3840, 2160)),
  ('5K', (5120, 2880)),
  ('8K', (7680, 4320)),
])


def get_closest_resolution_alias(width: int, height: int) -> Optional[str]:
  """
  Returns the closest alias for the specified resolution.
  """
Пример #9
0
def get_default_mappers() -> Dict[str, ObjectMapper]:
    return {'application/json': ObjectMapper(JsonModule())}
Пример #10
0
 def __init__(self, struct, mapper=None):
     assert issubclass(struct, Struct), type(struct)
     self._struct = struct
     self._mapper = mapper or ObjectMapper(JsonModule())