Hide keyboard shortcuts

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# Copyright (C) 2019-2020 Leo P. Singer <leo.singer@ligo.org> 

3# 

4# This program is free software: you can redistribute it and/or modify 

5# it under the terms of the GNU General Public License as published by 

6# the Free Software Foundation, either version 3 of the License, or 

7# (at your option) any later version. 

8# 

9# This program is distributed in the hope that it will be useful, 

10# but WITHOUT ANY WARRANTY; without even the implied warranty of 

11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 

12# GNU General Public License for more details. 

13# 

14# You should have received a copy of the GNU General Public License 

15# along with this program. If not, see <https://www.gnu.org/licenses/>. 

16# 

17from __future__ import absolute_import 

18 

19import requests.sessions 

20 

21from .auth import SessionAuthMixin 

22from .errors import SessionErrorMixin 

23from .file import SessionFileMixin 

24from .user_agent import SessionUserAgentMixin 

25 

26from ._version import get_versions 

27__version__ = get_versions()['version'] 

28del get_versions 

29 

30__all__ = ('Session',) 

31 

32 

33class Session(SessionAuthMixin, 

34 SessionErrorMixin, 

35 SessionFileMixin, 

36 SessionUserAgentMixin, 

37 requests.sessions.Session): 

38 """A :class:`requests.Session` subclass that adds behaviors that are common 

39 to ligo.org REST API services such as that of :doc:`GraceDB 

40 <gracedb:index>`. 

41 

42 It adds the following behaviors to the session: 

43 

44 * GraceDB-style authentication 

45 (see :class:`~requests_gracedb.auth.SessionAuthMixin`) 

46 

47 * Raise exceptions based on HTTP status codes 

48 (see :class:`~requests_gracedb.errors.SessionErrorMixin`) 

49 

50 * Automatically load POSTed files from disk, automatically guess MIME types 

51 (see :class:`~requests_gracedb.file.SessionFileMixin`) 

52 

53 * Add User-Agent string based on Python package name and version 

54 (see :class:`~requests_gracedb.user_agent.SessionUserAgentMixin`) 

55 """