The typing
module
import json
import requests
def upload(data):
requests.post('http://example.com', json=data)
mydata = json.dumps({'foo': 'bar'})
upload(mydata)
import json
import requests
from typing import Mapping, TypeVar
T = TypeVar('T')
def upload(data: Mapping[str, T]):
requests.post('http://example.com', json=data)
mydata = json.dumps({'foo': 'bar'})
upload(mydata) # static checker will complain
Run this as part of test suite/CI