File: __init__.py

package info (click to toggle)
python-datamodel-code-generator 0.26.4-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 712 kB
  • sloc: python: 9,525; makefile: 14
file content (33 lines) | stat: -rw-r--r-- 793 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from __future__ import annotations

from enum import Enum
from typing import Callable, Dict, Optional, TypeVar

TK = TypeVar('TK')
TV = TypeVar('TV')


class LiteralType(Enum):
    All = 'all'
    One = 'one'


class DefaultPutDict(Dict[TK, TV]):
    def get_or_put(
        self,
        key: TK,
        default: Optional[TV] = None,
        default_factory: Optional[Callable[[TK], TV]] = None,
    ) -> TV:
        if key in self:
            return self[key]
        elif default:  # pragma: no cover
            value = self[key] = default
            return value
        elif default_factory:
            value = self[key] = default_factory(key)
            return value
        raise ValueError('Not found default and default_factory')  # pragma: no cover


__all__ = ['LiteralType']