Python | /home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/xml/etree/ElementPath.py in iterfind, line 358 |
---|---|
Web | GET http://localhost:8080/ |
/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/xml/etree/ElementPath.py
in iterfind
Variable | Value |
---|---|
cache_key | ('//item',) |
elem | <Element 'rss' at 0x7f3e119b0270> |
namespaces | None |
path | '//item' |
/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/xml/etree/ElementPath.py
in findall
Variable | Value |
---|---|
elem | <Element 'rss' at 0x7f3e119b0270> |
namespaces | None |
path | '//item' |
/openlibrary/openlibrary/plugins/upstream/utils.py
in _get_blog_feeds
Variable | Value |
---|---|
parse_item | <function _get_blog_feeds.<locals>.parse_item at 0x7f3e119d8e50> |
tree | <Element 'rss' at 0x7f3e119b0270> |
url | 'http://blog.openlibrary.org/feed/' |
/openlibrary/openlibrary/core/cache.py
in update
Variable | Value |
---|---|
args | () |
kw | {} |
self | <openlibrary.core.cache.memcache_memoize object at 0x7f3e179a1640> |
/openlibrary/openlibrary/core/cache.py
in __call__
Variable | Value |
---|---|
_cache | None |
args | () |
kw | {} |
self | <openlibrary.core.cache.memcache_memoize object at 0x7f3e179a1640> |
value_time | None |
/openlibrary/openlibrary/plugins/upstream/utils.py
in get_blog_feeds
Variable | Value |
---|---|
process | <function get_blog_feeds.<locals>.process at 0x7f3e119d8040> |
/openlibrary/openlibrary/plugins/openlibrary/home.py
in get_homepage
Variable | Value |
---|---|
stats | {'authors': <openlibrary.core.admin.Stats object at 0x7f3e119f6250>,
'bot_edits': <openlibrary.core.admin.Stats object at 0x7f3e119fbfa0>,
'covers': <openlibrary.core.admin.Stats object at 0x7f3e119f6820>,
'ebooks': <openlibrary.core.admin.Stats object at 0x7f3e119f6940>,
'editions': <openlibrary.core.admin.Stats object at 0x7f3e119f6a00>,
'human_edits': <openlibrary.core.admin.Stats object at 0x7f3e119fb610>,
'lists': <openlibrary.core.admin.Stats object at 0x7f3e119fb430>,
'loans': <openlibrary.core.admin.LoanStats object at 0x7f3e119fbaf0>,
'members': <openlibrary.core.admin.Stats object at 0x7f3e119fb3d0>,
'subjects': <openlibrary.core.admin.Stats object at 0x7f3e119f6e20>,
'visitors': <openlibrary.core.admin.Stats object at 0x7f3e119fb670>,
'works': <openlibrary.core.admin.Stats object at 0x7f3e119fbe50>} |
/openlibrary/openlibrary/core/cache.py
in update
Variable | Value |
---|---|
args | () |
kw | {} |
self | <openlibrary.core.cache.memcache_memoize object at 0x7f3e119fb3a0> |
/openlibrary/openlibrary/core/cache.py
in __call__
Variable | Value |
---|---|
_cache | None |
args | () |
kw | {} |
self | <openlibrary.core.cache.memcache_memoize object at 0x7f3e119fb3a0> |
value_time | None |
/openlibrary/openlibrary/plugins/openlibrary/home.py
in get_cached_homepage
Variable | Value |
---|---|
five_minutes | 300 |
key | 'home.homepage.en' |
lang | 'en' |
pd | False |
prethread | <function get_cached_homepage.<locals>.prethread at 0x7f3e119d8790> |
/openlibrary/openlibrary/plugins/openlibrary/home.py
in GET
Variable | Value |
---|---|
self | <openlibrary.plugins.openlibrary.home.home object at 0x7f3e119fbdc0> |
/openlibrary/infogami/utils/app.py
in delegate
Variable | Value |
---|---|
args | () |
cls | <class 'openlibrary.plugins.openlibrary.home.home'> |
method | 'GET' |
path | '/' |
/openlibrary/infogami/utils/app.py
in <lambda>
Variable | Value |
---|---|
self | <infogami.utils.app.item object at 0x7f3e119fbdf0> |
/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/site-packages/web/application.py
in handle_class
Variable | Value |
---|---|
args | [] |
cls | <class 'infogami.utils.app.item'> |
meth | 'GET' |
tocall | <bound method item.<lambda> of <infogami.utils.app.item object at 0x7f3e119fbdf0>> |
/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/site-packages/web/application.py
in _delegate
Variable | Value |
---|---|
args | [] |
cls | <class 'infogami.utils.app.item'> |
f | 'item' |
fvars | {'__builtins__': {'ArithmeticError': <class 'ArithmeticError'>,
'AssertionError': <class 'AssertionError'>,
'AttributeError': <class 'AttributeError'>,
'BaseException': <class 'BaseException'>,
'BlockingIOError': <class 'BlockingIOError'>,
'BrokenPipeError': <class 'BrokenPipeError'>,
'BufferError': <class 'BufferError'>,
'BytesWarning': <class 'BytesWarning'>,
'ChildProcessError': <class 'ChildProcessError'>,
'ConnectionAbortedError': <class 'ConnectionAbortedError'>,
'ConnectionError': <class 'ConnectionError'>,
'ConnectionRefusedError': <class 'ConnectionRefusedError'>,
'ConnectionResetError': <class 'ConnectionResetError'>,
'DeprecationWarning': <class 'DeprecationWarning'>,
'EOFError': <class 'EOFError'>,
'Ellipsis': Ellipsis,
'EnvironmentError': <class 'OSError'>,
'Exception': <class 'Exception'>,
'False': False,
'FileExistsError': <class 'FileExistsError'>,
'FileNotFoundError': <class 'FileNotFoundError'>,
'FloatingPointError': <class 'FloatingPointError'>,
'FutureWarning': <class 'FutureWarning'>,
'GeneratorExit': <class 'GeneratorExit'>,
'IOError': <class 'OSError'>,
'ImportError': <class 'ImportError'>,
'ImportWarning': <class 'ImportWarning'>,
'IndentationError': <class 'IndentationError'>,
'IndexError': <class 'IndexError'>,
'InterruptedError': <class 'InterruptedError'>,
'IsADirectoryError': <class 'IsADirectoryError'>,
'KeyError': <class 'KeyError'>,
'KeyboardInterrupt': <class 'KeyboardInterrupt'>,
'LookupError': <class 'LookupError'>,
'MemoryError': <class 'MemoryError'>,
'ModuleNotFoundError': <class 'ModuleNotFoundError'>,
'NameError': <class 'NameError'>,
'None': None,
'NotADirectoryError': <class 'NotADirectoryError'>,
'NotImplemented': NotImplemented,
'NotImplementedError': <class 'NotImplementedError'>,
'OSError': <class 'OSError'>,
'OverflowError': <class 'OverflowError'>,
'PendingDeprecationWarning': <class 'PendingDeprecationWarning'>,
'PermissionError': <class 'PermissionError'>,
'ProcessLookupError': <class 'ProcessLookupError'>,
'RecursionError': <class 'RecursionError'>,
'ReferenceError': <class 'ReferenceError'>,
'ResourceWarning': <class 'ResourceWarning'>,
'RuntimeError': <class 'RuntimeError'>,
'RuntimeWarning': <class 'RuntimeWarning'>,
'StopAsyncIteration': <class 'StopAsyncIteration'>,
'StopIteration': <class 'StopIteration'>,
'SyntaxError': <class 'SyntaxError'>,
'SyntaxWarning': <class 'SyntaxWarning'>,
'SystemError': <class 'SystemError'>,
'SystemExit': <class 'SystemExit'>,
'TabError': <class 'TabError'>,
'TimeoutError': <class 'TimeoutError'>,
'True': True,
'TypeError': <class 'TypeError'>,
'UnboundLocalError': <class 'UnboundLocalError'>,
'UnicodeDecodeError': <class 'UnicodeDecodeError'>,
'UnicodeEncodeError': <class 'UnicodeEncodeError'>,
'UnicodeError': <class 'UnicodeError'>,
'UnicodeTranslateError': <class 'UnicodeTranslateError'>,
'UnicodeWarning': <class 'UnicodeWarning'>,
'UserWarning': <class 'UserWarning'>,
'ValueError': <class 'ValueError'>,
'Warning': <class 'Warning'>,
'ZeroDivisionError': <class 'ZeroDivisionError'>,
'__build_class__': <built-in function __build_class__>,
'__debug__': True,
'__doc__': 'Built-in functions, exceptions, and other '
'objects.\n'
'\n'
"Noteworthy: None is the `nil' object; Ellipsis "
"represents `...' in slices.",
'__import__': <built-in function __import__>,
'__loader__': <class '_frozen_importlib.BuiltinImporter'>,
'__name__': 'builtins',
'__package__': '',
'__spec__': ModuleSpec(name='builtins', loader=<class '_frozen_importlib.BuiltinImporter'>),
'abs': <built-in function abs>,
'all': <built-in function all>,
'any': <built-in function any>,
'ascii': <built-in function ascii>,
'bin': <built-in function bin>,
'bool': <class 'bool'>,
'breakpoint': <built-in function breakpoint>,
'bytearray': <class 'bytearray'>,
'bytes': <class 'bytes'>,
'callable': <built-in function callable>,
'chr': <built-in function chr>,
'classmethod': <class 'classmethod'>,
'compile': <built-in function compile>,
'complex': <class 'complex'>,
'copyright': Copyright (c) 2001-2020 Python Software Foundation.
All Rights Reserved.
Copyright (c) 2000 BeOpen.com.
All Rights Reserved.
Copyright (c) 1995-2001 Corporation for National Research Initiatives.
All Rights Reserved.
Copyright (c) 1991-1995 Stichting Mathematisch Centrum, Amsterdam.
All Rights Reserved.,
'credits': Thanks to CWI, CNRI, BeOpen.com, Zope Corporation and a cast of thousands
for supporting Python development. See www.python.org for more information.,
'delattr': <built-in function delattr>,
'dict': <class 'dict'>,
'dir': <built-in function dir>,
'divmod': <built-in function divmod>,
'enumerate': <class 'enumerate'>,
'eval': <built-in function eval>,
'exec': <built-in function exec>,
'exit': Use exit() or Ctrl-D (i.e. EOF) to exit,
'filter': <class 'filter'>,
'float': <class 'float'>,
'format': <built-in function format>,
'frozenset': <class 'frozenset'>,
'getattr': <built-in function getattr>,
'globals': <built-in function globals>,
'hasattr': <built-in function hasattr>,
'hash': <built-in function hash>,
'help': Type help() for interactive help, or help(object) for help about object.,
'hex': <built-in function hex>,
'id': <built-in function id>,
'input': <built-in function input>,
'int': <class 'int'>,
'isinstance': <built-in function isinstance>,
'issubclass': <built-in function issubclass>,
'iter': <built-in function iter>,
'len': <built-in function len>,
'license': Type license() to see the full license text,
'list': <class 'list'>,
'locals': <built-in function locals>,
'map': <class 'map'>,
'max': <built-in function max>,
'memoryview': <class 'memoryview'>,
'min': <built-in function min>,
'next': <built-in function next>,
'object': <class 'object'>,
'oct': <built-in function oct>,
'open': <built-in function open>,
'ord': <built-in function ord>,
'pow': <built-in function pow>,
'print': <built-in function print>,
'property': <class 'property'>,
'quit': Use quit() or Ctrl-D (i.e. EOF) to exit,
'range': <class 'range'>,
'repr': <built-in function repr>,
'reversed': <class 'reversed'>,
'round': <built-in function round>,
'set': <class 'set'>,
'setattr': <built-in function setattr>,
'slice': <class 'slice'>,
'sorted': <built-in function sorted>,
'staticmethod': <class 'staticmethod'>,
'str': <class 'str'>,
'sum': <built-in function sum>,
'super': <class 'super'>,
'tuple': <class 'tuple'>,
'type': <class 'type'>,
'vars': <built-in function vars>,
'zip': <class 'zip'>},
'__cached__': '/openlibrary/infogami/utils/__pycache__/app.cpython-38.pyc',
'__doc__': 'Infogami application.\n',
'__file__': '/openlibrary/infogami/utils/app.py',
'__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x7f3e19d8efa0>,
'__name__': 'infogami.utils.app',
'__package__': 'infogami.utils',
'__spec__': ModuleSpec(name='infogami.utils.app', loader=<_frozen_importlib_external.SourceFileLoader object at 0x7f3e19d8efa0>, origin='/openlibrary/infogami/utils/app.py'),
'absolute_import': _Feature((2, 5, 0, 'alpha', 1), (3, 0, 0, 'alpha', 0), 262144),
'app': <web.application.application object at 0x7f3e19d7b760>,
'collections': <module 'collections' from '/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/collections/__init__.py'>,
'delegate': <function delegate at 0x7f3e19af8670>,
'encoding_processor': <function encoding_processor at 0x7f3e19af8af0>,
'encodings': {'opds', None, 'rdf', 'yml', 'marcxml', 'json'},
'find_encoding': <function find_encoding at 0x7f3e19af8a60>,
'find_mode': <function find_mode at 0x7f3e19af8550>,
'find_page': <function find_page at 0x7f3e19af84c0>,
'find_view': <function find_view at 0x7f3e19af85e0>,
'flash': <module 'infogami.utils.flash' from '/openlibrary/infogami/utils/flash.py'>,
'get_sorted_paths': <web.utils.Memoize object at 0x7f3e19ae7430>,
'hook_processor': <function hook_processor at 0x7f3e19af8940>,
'item': <class 'infogami.utils.app.item'>,
'media_types': {' application/atom+xml;profile=opds': 'opds',
'application/json': 'json',
'application/marcxml+xml': 'marcxml',
'application/rdf+xml': 'rdf',
'text/x-yaml': 'yml'},
'metamode': <class 'infogami.utils.app.metamode'>,
'metapage': <class 'infogami.utils.app.metapage'>,
'metaview': <class 'infogami.utils.app.metaview'>,
'mode': <class 'infogami.utils.app.mode'>,
'modes': {'backlinks': {None: <class 'infogami.plugins.links.code.backlinks'>},
'change_photo': {None: <class 'openlibrary.plugins.upstream.code.change_photo'>},
'diff': {None: <class 'infogami.core.code.diff'>},
'edit': {None: <class 'openlibrary.plugins.upstream.code.edit'>,
'yml': <class 'openlibrary.plugins.openlibrary.code._yaml_edit'>},
'history': {None: <class 'openlibrary.plugins.upstream.recentchanges.history'>,
'json': <class 'infogami.plugins.api.code.history'>},
'permission': {None: <class 'infogami.core.code.permission'>},
'revert': {None: <class 'openlibrary.plugins.upstream.code.revert'>},
'view': {None: <class 'infogami.core.code.view'>,
'json': <class 'infogami.plugins.api.code.view'>,
'marcxml': <class 'openlibrary.plugins.openlibrary.code.marcxml'>,
'opds': <class 'openlibrary.plugins.openlibrary.code.opds'>,
'rdf': <class 'openlibrary.plugins.openlibrary.code.rdf'>,
'yml': <class 'openlibrary.plugins.openlibrary.code._yaml'>}},
'normpath': <function normpath at 0x7f3e19af8790>,
'os': <module 'os' from '/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/os.py'>,
'page': <class 'infogami.utils.app.page'>,
'pages': {'(/(?:people|books|works|authors|subjects)/[^/]+)/lists': {None: <class 'openlibrary.plugins.openlibrary.lists.lists'>,
'json': <class 'openlibrary.plugins.openlibrary.lists.lists_json'>,
'yml': <class 'openlibrary.plugins.openlibrary.lists.lists_yaml'>},
'(/authors/OL\\d+A)/add-photo': {None: <class 'openlibrary.plugins.upstream.covers.add_photo'>},
'(/authors/OL\\d+A)/edit': {None: <class 'openlibrary.plugins.upstream.addbook.author_edit'>},
'(/authors/OL\\d+A)/manage-photos': {None: <class 'openlibrary.plugins.upstream.covers.manage_photos'>},
'(/authors/OL\\d+A)/works': {'json': <class 'openlibrary.plugins.openlibrary.api.author_works'>},
'(/books/.*)/_borrow_status': {None: <class 'openlibrary.plugins.upstream.borrow.borrow_status'>},
'(/books/.*)/borrow': {None: <class 'openlibrary.plugins.upstream.borrow.borrow'>},
'(/books/.*)/borrow_admin': {None: <class 'openlibrary.plugins.upstream.borrow.borrow_admin'>},
'(/books/.*)/borrow_admin_no_update': {None: <class 'openlibrary.plugins.upstream.borrow.borrow_admin_no_update'>},
'(/books/.*)/daisy': {None: <class 'openlibrary.plugins.upstream.addbook.daisy'>},
'(/books/OL\\d+M)/add-cover': {None: <class 'openlibrary.plugins.upstream.covers.add_cover'>},
'(/books/OL\\d+M)/edit': {None: <class 'openlibrary.plugins.upstream.addbook.book_edit'>},
'(/books/OL\\d+M)/manage-covers': {None: <class 'openlibrary.plugins.upstream.covers.manage_covers'>},
'(/languages/[^_][^/]*)': {None: <class 'openlibrary.plugins.worksearch.languages.languages'>,
'json': <class 'openlibrary.plugins.worksearch.languages.languages_json'>},
'(/people/[^/]+/lists/OL\\d+L)': {'json': <class 'openlibrary.plugins.openlibrary.lists.list_view_json'>,
'yml': <class 'openlibrary.plugins.openlibrary.lists.list_view_yaml'>},
'(/people/[^/]+/lists/OL\\d+L)/feeds/(updates).(atom)': {None: <class 'openlibrary.plugins.openlibrary.lists.feeds'>},
'(/people/\\w+/lists/OL\\d+L)/delete': {'json': <class 'openlibrary.plugins.openlibrary.lists.lists_delete'>},
'(/people/\\w+/lists/OL\\d+L)/editions': {None: <class 'openlibrary.plugins.openlibrary.lists.list_editions'>,
'json': <class 'openlibrary.plugins.openlibrary.lists.list_editions_json'>,
'yml': <class 'openlibrary.plugins.openlibrary.lists.list_editions_yaml'>},
'(/people/\\w+/lists/OL\\d+L)/embed': {None: <class 'openlibrary.plugins.openlibrary.lists.lists_embed'>},
'(/people/\\w+/lists/OL\\d+L)/export': {None: <class 'openlibrary.plugins.openlibrary.lists.export'>},
'(/people/\\w+/lists/OL\\d+L)/seeds': {'json': <class 'openlibrary.plugins.openlibrary.lists.list_seeds'>,
'yml': <class 'openlibrary.plugins.openlibrary.lists.list_seed_yaml'>},
'(/people/\\w+/lists/OL\\d+L)/subjects': {'json': <class 'openlibrary.plugins.openlibrary.lists.list_subjects_json'>,
'yml': <class 'openlibrary.plugins.openlibrary.lists.list_editions_yaml'>},
'(/publishers/[^/]+)': {None: <class 'openlibrary.plugins.worksearch.publishers.publishers'>,
'json': <class 'openlibrary.plugins.worksearch.publishers.publishers_json'>},
'(/subjects/[^/]+)': {None: <class 'openlibrary.plugins.worksearch.subjects.subjects'>,
'json': <class 'openlibrary.plugins.worksearch.subjects.subjects_json'>},
'(/works/OL\\d+W)/add-cover': {None: <class 'openlibrary.plugins.upstream.covers.add_work_cover'>},
'(/works/OL\\d+W)/edit': {None: <class 'openlibrary.plugins.upstream.addbook.work_edit'>},
'(/works/OL\\d+W)/editions': {'json': <class 'openlibrary.plugins.openlibrary.api.work_editions'>},
'(/works/OL\\d+W)/manage-covers': {None: <class 'openlibrary.plugins.upstream.covers.manage_work_covers'>},
'(/works/OL\\d+W)/merge': {None: <class 'openlibrary.plugins.upstream.code.merge_work'>},
'/': {None: <class 'openlibrary.plugins.openlibrary.home.home'>},
'/(?:isbn|ISBN)/([0-9xX-]+)': {None: <class 'openlibrary.plugins.openlibrary.code.isbn_lookup'>},
'/(oclc|lccn|ia|OCLC|LCCN|IA)/([^/]*)(/.*)?': {None: <class 'openlibrary.plugins.openlibrary.code.bookpage'>},
'/(works|books)/(OL\\d+[W|M])/widget': {None: <class 'openlibrary.plugins.openlibrary.code.widget'>},
'/_dev/components/HelloWorld': {None: <class 'openlibrary.plugins.upstream.code.components_test'>},
'/_reload': {None: <class 'openlibrary.plugins.admin.code._reload'>},
'/_tools/amazon_search': {None: <class 'openlibrary.plugins.openlibrary.api.amazon_search_api'>},
'/account': {None: <class 'openlibrary.plugins.upstream.account.account'>},
'/account/audit': {None: <class 'openlibrary.plugins.upstream.account.account_audit'>},
'/account/books': {None: <class 'openlibrary.plugins.upstream.account.account_my_books'>},
'/account/books/(.*)': {None: <class 'openlibrary.plugins.upstream.account.account_my_books_redirect'>},
'/account/create': {None: <class 'openlibrary.plugins.upstream.account.account_create'>},
'/account/email/forgot': {None: <class 'openlibrary.plugins.upstream.account.account_ol_email_forgot'>},
'/account/email/forgot-ia': {None: <class 'openlibrary.plugins.upstream.account.account_ia_email_forgot'>},
'/account/email/verify': {None: <class 'openlibrary.plugins.upstream.account.account_email_verify_old'>},
'/account/email/verify/([0-9a-f]*)': {None: <class 'openlibrary.plugins.upstream.account.account_email_verify'>},
'/account/export': {None: <class 'openlibrary.plugins.upstream.account.export_books'>},
'/account/forgot_password': {None: <class 'infogami.core.code.forgot_password'>},
'/account/import': {None: <class 'openlibrary.plugins.upstream.account.import_books'>},
'/account/import/goodreads': {None: <class 'openlibrary.plugins.upstream.account.fetch_goodreads'>},
'/account/lists': {None: <class 'openlibrary.plugins.upstream.account.account_lists'>},
'/account/loans': {None: <class 'openlibrary.plugins.upstream.account.account_loans'>,
'json': <class 'openlibrary.plugins.upstream.account.account_loans_json'>},
'/account/login': {None: <class 'openlibrary.plugins.upstream.account.account_login'>,
'json': <class 'openlibrary.plugins.upstream.account.account_login_json'>},
'/account/logout': {None: <class 'infogami.core.code.logout'>},
'/account/notifications': {None: <class 'openlibrary.plugins.upstream.account.account_notifications'>},
'/account/password/forgot': {None: <class 'openlibrary.plugins.upstream.account.account_password_forgot'>},
'/account/password/reset/([0-9a-f]*)': {None: <class 'openlibrary.plugins.upstream.account.account_password_reset'>},
'/account/preferences': {None: <class 'infogami.core.code.preferences'>},
'/account/preferences/change_password': {None: <class 'infogami.core.code.change_password'>},
'/account/privacy': {None: <class 'openlibrary.plugins.upstream.account.account_privacy'>},
'/account/reset_password': {None: <class 'infogami.core.code.reset_password'>},
'/account/validate': {None: <class 'openlibrary.plugins.upstream.account.account_validation'>},
'/account/verify': {None: <class 'openlibrary.plugins.upstream.account.account_verify_old'>},
'/account/verify/([0-9a-f]*)': {None: <class 'openlibrary.plugins.upstream.account.account_verify'>},
'/addauthor': {None: <class 'openlibrary.plugins.upstream.addbook.addauthor'>},
'/addbook': {None: <class 'openlibrary.plugins.upstream.addbook.addbook'>},
'/admin(?:/.*)?': {None: <class 'openlibrary.plugins.admin.code.admin'>},
'/advancedsearch': {None: <class 'openlibrary.plugins.worksearch.code.advancedsearch'>},
'/api/(.*)': {None: <class 'infogami.plugins.api.code.api'>},
'/api/books': {None: <class 'openlibrary.plugins.books.code.books_json'>},
'/api/volumes/(brief|full)/(oclc|lccn|issn|isbn|htid|olid|recordnumber)/(.+)': {'json': <class 'openlibrary.plugins.books.code.read_singleget'>},
'/api/volumes/(brief|full)/json/(.+)': {None: <class 'openlibrary.plugins.books.code.read_multiget'>},
'/authors': {None: <class 'openlibrary.plugins.openlibrary.authors.author'>},
'/authors/_autocomplete': {None: <class 'openlibrary.plugins.upstream.addbook.authors_autocomplete'>},
'/authors/merge': {None: <class 'openlibrary.plugins.upstream.merge_authors.merge_authors'>,
'json': <class 'openlibrary.plugins.upstream.merge_authors.merge_authors_json'>},
'/availability/v2': {None: <class 'openlibrary.plugins.openlibrary.api.book_availability'>},
'/barcodescanner': {None: <class 'openlibrary.plugins.worksearch.code.scan'>},
'/books/add': {None: <class 'openlibrary.plugins.upstream.addbook.addbook'>},
'/borrow': {None: <class 'openlibrary.plugins.openlibrary.borrow_home.borrow'>,
'json': <class 'openlibrary.plugins.openlibrary.borrow_home.borrow'>},
'/borrow/about': {None: <class 'openlibrary.plugins.openlibrary.borrow_home.borrow_about'>},
'/borrow/ia/(.*)': {None: <class 'openlibrary.plugins.upstream.borrow.checkout_with_ocaid'>},
'/borrow/notify': {None: <class 'openlibrary.plugins.upstream.borrow.ia_borrow_notify'>},
'/borrow/receive_notification': {None: <class 'openlibrary.plugins.upstream.borrow.borrow_receive_notification'>},
'/browse': {'json': <class 'openlibrary.plugins.openlibrary.api.browse'>},
'/clonebook': {None: <class 'openlibrary.plugins.openlibrary.code.clonebook'>},
'/contact': {None: <class 'openlibrary.plugins.openlibrary.support.contact'>},
'/css/all.css': {None: <class 'openlibrary.plugins.upstream.code.create_dynamic_document.<locals>.page'>},
'/data/ol_cdump_(\\d\\d\\d\\d-\\d\\d-\\d\\d).txt.gz': {None: <class 'openlibrary.plugins.upstream.data.ol_cdumps'>},
'/data/ol_cdump_latest.txt.gz': {None: <class 'openlibrary.plugins.upstream.data.ol_cdump_latest'>},
'/data/ol_dump(|_authors|_editions|_works)_(\\d\\d\\d\\d-\\d\\d-\\d\\d).txt.gz': {None: <class 'openlibrary.plugins.upstream.data.ol_dumps'>},
'/data/ol_dump(|_authors|_editions|_works|_deworks)_latest.txt.gz': {None: <class 'openlibrary.plugins.upstream.data.ol_dump_latest'>},
'/debug/memory': {None: <class 'openlibrary.plugins.openlibrary.code.memory'>},
'/developers/design': {None: <class 'openlibrary.plugins.openlibrary.design.home'>},
'/developers/routes': {None: <class 'openlibrary.plugins.openlibrary.code.routes'>},
'/explore': {None: <class 'openlibrary.plugins.upstream.code.library_explorer'>},
'/favicon.ico': {None: <class 'infogami.core.code.favicon'>},
'/feed': {None: <class 'infogami.core.code.feed'>},
'/getthings': {None: <class 'infogami.core.code.getthings'>},
'/health': {None: <class 'openlibrary.plugins.openlibrary.code.health'>},
'/ia_auth/(.*)': {None: <class 'openlibrary.plugins.upstream.borrow.ia_auth'>},
'/ia_loan_status/(.*)': {None: <class 'openlibrary.plugins.upstream.borrow.ia_loan_status'>},
'/images/.*': {None: <class 'openlibrary.plugins.upstream.code.static'>},
'/internal/account/audit': {None: <class 'openlibrary.plugins.upstream.account.internal_audit'>},
'/internal/account/migration': {None: <class 'openlibrary.plugins.upstream.account.account_migration'>},
'/internal/fake/availability': {None: <class 'openlibrary.plugins.upstream.account.availability'>},
'/internal/fake/civicrm': {None: <class 'openlibrary.plugins.upstream.account.fake_civi'>},
'/internal/fake/loans': {None: <class 'openlibrary.plugins.upstream.account.loans'>},
'/internal/fake/xauth': {None: <class 'openlibrary.plugins.upstream.account.xauth'>},
'/js/all.js': {None: <class 'openlibrary.plugins.upstream.code.create_dynamic_document.<locals>.page'>},
'/languages': {None: <class 'openlibrary.plugins.worksearch.languages.index'>,
'json': <class 'openlibrary.plugins.worksearch.languages.index_json'>},
'/languages/_autocomplete': {None: <class 'openlibrary.plugins.upstream.addbook.languages_autocomplete'>},
'/lists': {None: <class 'openlibrary.plugins.openlibrary.lists.lists_home'>},
'/observations': {'json': <class 'openlibrary.plugins.openlibrary.api.observations'>},
'/partials': {None: <class 'openlibrary.plugins.openlibrary.code.Partials'>},
'/people/([^/]+)/books': {None: <class 'openlibrary.plugins.upstream.account.public_my_books'>},
'/people/([^/]+)/books/([a-zA-Z_-]+)': {None: <class 'openlibrary.plugins.upstream.account.public_my_books'>},
'/people/([^/]+)/books/([a-zA-Z_-]+)/stats': {None: <class 'openlibrary.plugins.upstream.account.readinglog_stats'>},
'/prices': {None: <class 'openlibrary.plugins.openlibrary.api.price_api'>},
'/publishers': {None: <class 'openlibrary.plugins.worksearch.publishers.index'>},
'/query': {'json': <class 'infogami.plugins.api.code.query'>},
'/random': {None: <class 'openlibrary.plugins.openlibrary.home.random_book'>},
'/read': {None: <class 'openlibrary.plugins.openlibrary.borrow_home.read'>,
'json': <class 'openlibrary.plugins.openlibrary.borrow_home.read'>},
'/recentchanges': {None: <class 'openlibrary.plugins.upstream.recentchanges.index2'>,
'json': <class 'infogami.plugins.api.code.recentchanges'>},
'/recentchanges(/[^/0-9][^/]*)': {None: <class 'openlibrary.plugins.upstream.recentchanges.index'>},
'/recentchanges/(\\d\\d\\d\\d(?:/\\d\\d)?(?:/\\d\\d)?)(/[^/]*)?': {None: <class 'openlibrary.plugins.upstream.recentchanges.index_with_date'>},
'/recentchanges/\\d\\d\\d\\d/\\d\\d/\\d\\d/[^/]*/(\\d+)': {None: <class 'openlibrary.plugins.upstream.recentchanges.recentchanges_view'>},
'/recentchanges/goto/(\\d+)': {None: <class 'openlibrary.plugins.upstream.recentchanges.recentchanges_redirect'>},
'/robots.txt': {None: <class 'openlibrary.plugins.openlibrary.code.robotstxt'>},
'/search': {None: <class 'openlibrary.plugins.worksearch.code.search'>,
'json': <class 'openlibrary.plugins.worksearch.code.search_json'>},
'/search/authors': {None: <class 'openlibrary.plugins.worksearch.code.author_search'>,
'json': <class 'openlibrary.plugins.worksearch.code.author_search_json'>},
'/search/inside': {None: <class 'openlibrary.plugins.inside.code.search_inside'>,
'json': <class 'openlibrary.plugins.inside.code.search_inside_json'>},
'/search/languages': {None: <class 'openlibrary.plugins.worksearch.languages.language_search'>},
'/search/lists': {None: <class 'openlibrary.plugins.worksearch.code.list_search'>,
'json': <class 'openlibrary.plugins.worksearch.code.list_search_json'>},
'/search/publishers': {None: <class 'openlibrary.plugins.worksearch.publishers.publisher_search'>},
'/search/subjects': {None: <class 'openlibrary.plugins.worksearch.code.subject_search'>,
'json': <class 'openlibrary.plugins.worksearch.code.subject_search_json'>},
'/show-marc/(.*)': {None: <class 'openlibrary.views.showmarc.old_show_marc'>},
'/show-records/(.*):(\\d+):(\\d+)': {None: <class 'openlibrary.views.showmarc.show_marc'>},
'/show-records/amazon:(.*)': {None: <class 'openlibrary.views.showmarc.show_amazon'>},
'/show-records/bwb:(.*)': {None: <class 'openlibrary.views.showmarc.show_bwb'>},
'/show-records/ia:(.*)': {None: <class 'openlibrary.views.showmarc.show_ia'>},
'/sponsorship/eligibility/(.*)': {None: <class 'openlibrary.plugins.openlibrary.api.sponsorship_eligibility_check'>},
'/stats': {None: <class 'openlibrary.views.loanstats.stats'>},
'/stats/lending(?:/(libraries|regions|countries|collections|subjects|format)/(.+))?': {None: <class 'openlibrary.views.loanstats.lending_stats'>},
'/stats/readinglog': {None: <class 'openlibrary.views.loanstats.readinglog_stats'>},
'/status': {None: <class 'openlibrary.plugins.openlibrary.status.status'>},
'/suggest/blurb/(.*)': {None: <class 'openlibrary.plugins.openlibrary.code.blurb'>},
'/suggest/search': {None: <class 'openlibrary.plugins.openlibrary.code.search'>},
'/suggest/thumbnail': {None: <class 'openlibrary.plugins.openlibrary.code.thumbnail'>},
'/sync_sponsored_books': {None: <class 'openlibrary.plugins.admin.code.sync_sponsored_books'>},
'/system/invalidate': {None: <class 'openlibrary.plugins.openlibrary.code.invalidate'>},
'/works/OL(\\d+)W/bookshelves': {'json': <class 'openlibrary.plugins.openlibrary.api.work_bookshelves'>},
'/works/OL(\\d+)W/notes': {'json': <class 'openlibrary.plugins.openlibrary.api.booknotes'>},
'/works/OL(\\d+)W/observations': {'json': <class 'openlibrary.plugins.openlibrary.api.patron_observations'>},
'/works/OL(\\d+)W/ratings': {'json': <class 'openlibrary.plugins.openlibrary.api.ratings'>},
'/works/_autocomplete': {None: <class 'openlibrary.plugins.upstream.addbook.works_autocomplete'>},
'__registered_later_without_using_this__': {None: <class 'openlibrary.plugins.upstream.code.create_dynamic_document.<locals>.page'>}},
'parse_accept': <function parse_accept at 0x7f3e19af89d0>,
'path_processor': <function path_processor at 0x7f3e19af8820>,
'simplejson': <module 'simplejson' from '/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/site-packages/simplejson/__init__.py'>,
'six': <module 'six' from '/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/site-packages/six.py'>,
'urls': ('/.*', 'item'),
'view': <class 'infogami.utils.app.view'>,
'views': defaultdict(<class 'dict'>,
{'identifiers': {'/type/edition': <class 'openlibrary.plugins.upstream.addbook.work_identifiers'>}}),
'web': <module 'web' from '/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/site-packages/web/__init__.py'>} |
handle_class | <function application._delegate.<locals>.handle_class at 0x7f3e119d80d0> |
self | <web.application.application object at 0x7f3e19d7b760> |
/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/site-packages/web/application.py
in handle
Variable | Value |
---|---|
args | [] |
fn | 'item' |
self | <web.application.application object at 0x7f3e19d7b760> |
/home/openlibrary/.pyenv/versions/3.8.6/lib/python3.8/site-packages/web/application.py
in process
Variable | Value |
---|---|
process | <function application.handle_with_processors.<locals>.process at 0x7f3e195608b0> |
processors | [] |
self | <web.application.application object at 0x7f3e19d7b760> |
No data.
Variable | Value |
---|---|
HTTP_LANG | 'en' |
donation-identifier | 'MC4yMTk1ODQwMzEwMjYwNjY2' |
Variable | Value |
---|---|
app_stack | [<web.application.application object at 0x7f3e19d7b760>] |
conn | <openlibrary.plugins.openlibrary.connection.IAMiddleware object at 0x7f3e119fbd30> |
encoding | None |
features | {'cache_most_recent',
'dev',
'inlibrary',
'lending_v2',
'lists',
'publishers',
'recentchanges_v2',
'stats',
'stats-header',
'superfast',
'undo',
'upstream'} |
flash | [] |
fullpath | '/' |
headers | [] |
home | 'http://localhost:8080' |
homedomain | 'http://localhost:8080' |
homepath | '' |
host | 'localhost:8080' |
ip | '172.21.0.1' |
lang | 'en' |
method | 'GET' |
output | '' |
path | '/' |
protocol | 'http' |
query | '' |
readable_path | '/' |
realhome | 'http://localhost:8080' |
site | <infogami.infobase.client.Site object at 0x7f3e119fbfd0> |
stats | [{'data': {'hit': False, 'key': 'home.homepage.en-'},
'name': 'memcache.get',
't_end': 1617248459.8639343,
't_start': 1617248459.8623796,
'time': 0.001554727554321289},
{'data': {'hit': True, 'key': 'admin._get_count_docs-30'},
'name': 'memcache.get',
't_end': 1617248459.864641,
't_start': 1617248459.8640015,
'time': 0.0006394386291503906},
{'data': {'hit': False, 'key': 'upstream.get_blog_feeds-'},
'name': 'memcache.get',
't_end': 1617248459.8652592,
't_start': 1617248459.8649285,
'time': 0.0003306865692138672},
{'data': {'url': 'http://blog.openlibrary.org/feed/'},
'name': 'get_blog_feeds',
't_end': 1617248460.741198,
't_start': 1617248459.8652825,
'time': 0.87591552734375}] |
status | '200 OK' |
Variable | Value |
---|---|
HTTP_ACCEPT | 'text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9' |
HTTP_ACCEPT_ENCODING | 'gzip, deflate, br' |
HTTP_ACCEPT_LANGUAGE | 'en-US,en;q=0.9' |
HTTP_CONNECTION | 'keep-alive' |
HTTP_COOKIE | 'donation-identifier=MC4yMTk1ODQwMzEwMjYwNjY2; HTTP_LANG=en' |
HTTP_HOST | 'localhost:8080' |
HTTP_REFERER | 'http://localhost:8080/search?q=mark&mode=everything' |
HTTP_SEC_FETCH_DEST | 'document' |
HTTP_SEC_FETCH_MODE | 'navigate' |
HTTP_SEC_FETCH_SITE | 'same-origin' |
HTTP_SEC_FETCH_USER | '?1' |
HTTP_SEC_GPC | '1' |
HTTP_UPGRADE_INSECURE_REQUESTS | '1' |
HTTP_USER_AGENT | ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, '
'like Gecko) Chrome/89.0.4389.90 Safari/537.36') |
PATH_INFO | '/' |
QUERY_STRING | '' |
RAW_URI | '/' |
REMOTE_ADDR | '172.21.0.1' |
REMOTE_PORT | '58538' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | '0.0.0.0' |
SERVER_PORT | '8080' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'gunicorn/20.0.4' |
gunicorn.socket | <socket.socket fd=13, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.21.0.7', 8080), raddr=('172.21.0.1', 58538)> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f3e195694c0> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0x7f3e195695e0> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
You're seeing this error because you have web.config.debug
set to True
. Set that to False
if you don't want to see this.