|
3 | 3 | from coreapi.document import Array, Document, Link, Object, Error, required |
4 | 4 | from coreapi.document import dotted_path_to_list |
5 | 5 | from coreapi.exceptions import ParseError, TransportError, ErrorMessage |
6 | | -from coreapi.sessions import DefaultSession |
| 6 | +from coreapi.sessions import Session |
| 7 | +from coreapi.transport import HTTPTransport |
7 | 8 |
|
8 | 9 |
|
9 | 10 | __version__ = '1.1.0' |
|
14 | 15 | 'dotted_path_to_list', |
15 | 16 | 'ParseError', 'NotAcceptable', 'TransportError', 'ErrorMessage', |
16 | 17 | 'HTTPTransport', |
17 | | - 'load', 'dump', 'get' |
| 18 | + 'load', 'dump', 'get', 'get_default_session' |
18 | 19 | ] |
19 | 20 |
|
20 | 21 |
|
| 22 | +_default_session = Session( |
| 23 | + codecs=[CoreJSONCodec(), HTMLCodec()], |
| 24 | + transports=[HTTPTransport()] |
| 25 | +) |
| 26 | + |
| 27 | + |
| 28 | +def get_default_session(): |
| 29 | + return _default_session |
| 30 | + |
| 31 | + |
21 | 32 | def negotiate_encoder(accept=None): |
22 | | - session = DefaultSession() |
| 33 | + session = _default_session |
23 | 34 | return session.negotiate_encoder(accept) |
24 | 35 |
|
25 | 36 |
|
26 | 37 | def negotiate_decoder(content_type=None): |
27 | | - session = DefaultSession() |
| 38 | + session = _default_session |
28 | 39 | return session.negotiate_decoder(content_type) |
29 | 40 |
|
30 | 41 |
|
31 | 42 | def get(url): |
32 | | - session = DefaultSession() |
| 43 | + session = _default_session |
33 | 44 | return session.transition(url, 'get') |
34 | 45 |
|
35 | 46 |
|
36 | 47 | def load(bytestring, content_type=None): |
37 | | - session = DefaultSession() |
| 48 | + session = _default_session |
38 | 49 | codec = session.negotiate_decoder(content_type) |
39 | 50 | return codec.load(bytestring) |
40 | 51 |
|
41 | 52 |
|
42 | 53 | def dump(document, accept=None, **kwargs): |
43 | | - session = DefaultSession() |
| 54 | + session = _default_session |
44 | 55 | codec = session.negotiate_encoder(accept) |
45 | 56 | content = codec.dump(document, **kwargs) |
46 | 57 | return codec.media_type, content |
0 commit comments