Hot-keys on this page

r m x p   toggle line displays

j k   next/prev highlighted chunk

0   (zero) top of page

1   (one) first highlighted chunk

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

34

35

36

37

38

39

40

41

42

43

44

45

# -*- coding: utf-8 -*- 

 

""" 

requests.hooks 

~~~~~~~~~~~~~~ 

 

This module provides the capabilities for the Requests hooks system. 

 

Available hooks: 

 

``response``: 

    The response generated from a Request. 

 

""" 

 

 

HOOKS = ['response'] 

 

 

def default_hooks(): 

    hooks = {} 

    for event in HOOKS: 

        hooks[event] = [] 

    return hooks 

 

# TODO: response is the only one 

 

 

def dispatch_hook(key, hooks, hook_data, **kwargs): 

    """Dispatches a hook dictionary on a given piece of data.""" 

 

    hooks = hooks or dict() 

 

    if key in hooks: 

        hooks = hooks.get(key) 

 

        if hasattr(hooks, '__call__'): 

            hooks = [hooks] 

 

        for hook in hooks: 

            _hook_data = hook(hook_data, **kwargs) 

            if _hook_data is not None: 

                hook_data = _hook_data 

 

    return hook_data