from abc import ABCMeta, abstractmethod
from typing import Generic, TypeVar
T = TypeVar('T')
class Person:
pass
class Mapper(Generic[T], metaclass=ABCMeta):
@classmethod
@abstractmethod
def from_dict(cls, request: dict) -> T:
pass
def convert(mapper: Mapper[Person], data: dict) -> Person:
return mapper.from_dict(data)
Slide 36
Slide 36 text
from abc import ABCMeta, abstractmethod
from typing import Generic, TypeVar
T = TypeVar('T')
class Person:
pass
class Mapper(Generic[T], metaclass=ABCMeta):
@classmethod
@abstractmethod
def from_dict(cls, request: dict) -> T:
pass
def convert(mapper: Mapper[Person], data: dict) -> Person:
return mapper.from_dict(data)
Slide 37
Slide 37 text
from abc import ABCMeta, abstractmethod
from typing import Generic, TypeVar
T = TypeVar('T')
class Person:
pass
class Mapper(Generic[T], metaclass=ABCMeta):
@classmethod
@abstractmethod
def from_dict(cls, request: dict) -> T:
pass
def convert(mapper: Mapper[Person], data: dict) -> Person:
return mapper.from_dict(data)
Slide 38
Slide 38 text
from abc import ABCMeta, abstractmethod
from typing import Generic, TypeVar
T = TypeVar('T')
class Person:
pass
class Mapper(Generic[T], metaclass=ABCMeta):
@classmethod
@abstractmethod
def from_dict(cls, request: dict) -> T:
pass
def convert(mapper: Mapper[Person], data: dict) -> Person:
return mapper.from_dict(data)
Slide 39
Slide 39 text
from abc import ABCMeta, abstractmethod
from typing import Generic, TypeVar
T = TypeVar('T')
class Person:
pass
class Mapper(Generic[T], metaclass=ABCMeta):
@classmethod
@abstractmethod
def from_dict(cls, request: dict) -> T:
pass
def convert(mapper: Mapper[Person], data: dict) -> Person:
return mapper.from_dict(data)
Slide 40
Slide 40 text
from abc import ABCMeta, abstractmethod
from typing import Generic, TypeVar
T = TypeVar('T')
class Person:
pass
class Mapper(Generic[T], metaclass=ABCMeta):
@classmethod
@abstractmethod
def from_dict(cls, request: dict) -> T:
pass
def convert(mapper: Mapper[Person], data: dict) -> Person:
return mapper.from_dict(data)
Slide 41
Slide 41 text
python2 support
from typing import List
def hello(): # type: () -> None
print 'hello'
class Example:
def method(self, lst, opt=0, *args, **kwargs):
# type: (List[str], int, *str, **bool) -> int
"""Docstring comes after type comment."""
Slide 42
Slide 42 text
# some other package (math.py)
def add(a, b):
return a + b