コード例 #1
0
ファイル: order_by.py プロジェクト: amatino-code/nozomi
    def optionally_many_from_arguments(
            cls: Type[T],
            arguments: QueryString,
            available: Optional[Dict[str, T]] = None,
            key: str = 'order_by',
            fallback_to: Optional[T] = None) -> Optional[List[T]]:

        if available is None:
            if not isinstance(cls.available, dict):
                raise RuntimeError('implement .available order by values')
            available = cls.available

        values = arguments.parse_string(key).split(',')

        if values is None or len(values) < 1:
            return fallback_to

        parsed: List[T] = []

        for term in values:
            if term not in available.keys():
                raise BadRequest('Invalid {k} value. Valid values: {v}'.format(
                    k=key, v=', '.join(available.keys())))
            parsed.append(available[term])
            continue

        return parsed
コード例 #2
0
    def from_arguments(cls: Type[T],
                       arguments: QueryString,
                       max_length: int = 64,
                       min_length: int = 3,
                       key: str = 'fragment') -> T:

        fragment = arguments.parse_string(key=key,
                                          max_length=max_length,
                                          min_length=min_length,
                                          allow_whitespace=True)

        return cls(fragment)