From 7d0350d452618097f2ecc290efe40c62c863fd06 Mon Sep 17 00:00:00 2001 From: Esther Kleinhenz Date: Fri, 19 Oct 2018 09:29:55 +0200 Subject: [PATCH] added logger and logging addon --- application/templates/tag_list.html | 5 +- application/urls.py | 9 + application/views.py | 17 +- log.txt | 37 + mysite/settings.py | 31 + thesisenv/bin/sqlformat | 11 + .../site-packages/debug_toolbar/__init__.py | 17 + .../site-packages/debug_toolbar/apps.py | 81 ++ .../site-packages/debug_toolbar/compat.py | 11 + .../site-packages/debug_toolbar/decorators.py | 16 + .../locale/ca/LC_MESSAGES/django.mo | Bin 0 -> 2916 bytes .../locale/ca/LC_MESSAGES/django.po | 656 ++++++++++++++ .../locale/cs/LC_MESSAGES/django.mo | Bin 0 -> 9567 bytes .../locale/cs/LC_MESSAGES/django.po | 670 ++++++++++++++ .../locale/de/LC_MESSAGES/django.mo | Bin 0 -> 8899 bytes .../locale/de/LC_MESSAGES/django.po | 656 ++++++++++++++ .../locale/en/LC_MESSAGES/django.mo | Bin 0 -> 382 bytes .../locale/en/LC_MESSAGES/django.po | 675 +++++++++++++++ .../locale/es/LC_MESSAGES/django.mo | Bin 0 -> 9294 bytes .../locale/es/LC_MESSAGES/django.po | 658 ++++++++++++++ .../locale/fi/LC_MESSAGES/django.mo | Bin 0 -> 4700 bytes .../locale/fi/LC_MESSAGES/django.po | 656 ++++++++++++++ .../locale/fr/LC_MESSAGES/django.mo | Bin 0 -> 8951 bytes .../locale/fr/LC_MESSAGES/django.po | 659 ++++++++++++++ .../locale/he/LC_MESSAGES/django.mo | Bin 0 -> 1603 bytes .../locale/he/LC_MESSAGES/django.po | 656 ++++++++++++++ .../locale/id/LC_MESSAGES/django.mo | Bin 0 -> 2989 bytes .../locale/id/LC_MESSAGES/django.po | 642 ++++++++++++++ .../locale/it/LC_MESSAGES/django.mo | Bin 0 -> 8772 bytes .../locale/it/LC_MESSAGES/django.po | 658 ++++++++++++++ .../locale/nl/LC_MESSAGES/django.mo | Bin 0 -> 4315 bytes .../locale/nl/LC_MESSAGES/django.po | 656 ++++++++++++++ .../locale/pl/LC_MESSAGES/django.mo | Bin 0 -> 4851 bytes .../locale/pl/LC_MESSAGES/django.po | 670 ++++++++++++++ .../locale/pt/LC_MESSAGES/django.mo | Bin 0 -> 3071 bytes .../locale/pt/LC_MESSAGES/django.po | 656 ++++++++++++++ .../locale/pt_BR/LC_MESSAGES/django.mo | Bin 0 -> 9059 bytes .../locale/pt_BR/LC_MESSAGES/django.po | 657 ++++++++++++++ .../locale/ru/LC_MESSAGES/django.mo | Bin 0 -> 11667 bytes .../locale/ru/LC_MESSAGES/django.po | 695 +++++++++++++++ .../locale/sk/LC_MESSAGES/django.mo | Bin 0 -> 9378 bytes .../locale/sk/LC_MESSAGES/django.po | 672 ++++++++++++++ .../locale/sv_SE/LC_MESSAGES/django.mo | Bin 0 -> 2403 bytes .../locale/sv_SE/LC_MESSAGES/django.po | 657 ++++++++++++++ .../locale/uk/LC_MESSAGES/django.mo | Bin 0 -> 2042 bytes .../locale/uk/LC_MESSAGES/django.po | 670 ++++++++++++++ .../locale/zh_CN/LC_MESSAGES/django.mo | Bin 0 -> 8579 bytes .../locale/zh_CN/LC_MESSAGES/django.po | 642 ++++++++++++++ .../debug_toolbar/management/__init__.py | 0 .../management/commands/__init__.py | 0 .../management/commands/debugsqlshell.py | 24 + .../site-packages/debug_toolbar/middleware.py | 155 ++++ .../debug_toolbar/panels/__init__.py | 226 +++++ .../debug_toolbar/panels/cache.py | 232 +++++ .../debug_toolbar/panels/headers.py | 65 ++ .../debug_toolbar/panels/logging.py | 84 ++ .../debug_toolbar/panels/profiling.py | 183 ++++ .../debug_toolbar/panels/redirects.py | 29 + .../debug_toolbar/panels/request.py | 56 ++ .../debug_toolbar/panels/settings.py | 27 + .../debug_toolbar/panels/signals.py | 86 ++ .../debug_toolbar/panels/sql/__init__.py | 1 + .../debug_toolbar/panels/sql/forms.py | 93 ++ .../debug_toolbar/panels/sql/panel.py | 279 ++++++ .../debug_toolbar/panels/sql/tracking.py | 191 ++++ .../debug_toolbar/panels/sql/utils.py | 60 ++ .../debug_toolbar/panels/sql/views.py | 118 +++ .../debug_toolbar/panels/staticfiles.py | 173 ++++ .../panels/templates/__init__.py | 1 + .../debug_toolbar/panels/templates/panel.py | 222 +++++ .../debug_toolbar/panels/templates/views.py | 66 ++ .../debug_toolbar/panels/timer.py | 94 ++ .../debug_toolbar/panels/versions.py | 65 ++ .../site-packages/debug_toolbar/settings.py | 165 ++++ .../static/debug_toolbar/css/print.css | 3 + .../static/debug_toolbar/css/toolbar.css | 641 ++++++++++++++ .../static/debug_toolbar/img/ajax-loader.gif | Bin 0 -> 404 bytes .../static/debug_toolbar/img/back.png | Bin 0 -> 574 bytes .../static/debug_toolbar/img/back_hover.png | Bin 0 -> 613 bytes .../static/debug_toolbar/img/close.png | Bin 0 -> 498 bytes .../static/debug_toolbar/img/close_hover.png | Bin 0 -> 706 bytes .../debug_toolbar/img/djdt_vertical.png | Bin 0 -> 882 bytes .../static/debug_toolbar/img/indicator.png | Bin 0 -> 436 bytes .../debug_toolbar/js/jquery_existing.js | 1 + .../static/debug_toolbar/js/jquery_post.js | 4 + .../static/debug_toolbar/js/jquery_pre.js | 5 + .../static/debug_toolbar/js/toolbar.js | 330 +++++++ .../debug_toolbar/js/toolbar.profiling.js | 3 + .../static/debug_toolbar/js/toolbar.sql.js | 5 + .../debug_toolbar/js/toolbar.template.js | 11 + .../static/debug_toolbar/js/toolbar.timer.js | 52 ++ .../templates/debug_toolbar/base.html | 63 ++ .../templates/debug_toolbar/panels/cache.html | 69 ++ .../debug_toolbar/panels/headers.html | 60 ++ .../debug_toolbar/panels/logging.html | 28 + .../debug_toolbar/panels/profiling.html | 36 + .../debug_toolbar/panels/request.html | 124 +++ .../debug_toolbar/panels/settings.html | 17 + .../debug_toolbar/panels/signals.html | 19 + .../templates/debug_toolbar/panels/sql.html | 117 +++ .../debug_toolbar/panels/sql_explain.html | 37 + .../debug_toolbar/panels/sql_profile.html | 44 + .../debug_toolbar/panels/sql_select.html | 41 + .../debug_toolbar/panels/staticfiles.html | 56 ++ .../debug_toolbar/panels/template_source.html | 14 + .../debug_toolbar/panels/templates.html | 48 + .../templates/debug_toolbar/panels/timer.html | 44 + .../debug_toolbar/panels/versions.html | 24 + .../templates/debug_toolbar/redirect.html | 16 + .../debug_toolbar/templatetags/__init__.py | 0 .../site-packages/debug_toolbar/toolbar.py | 136 +++ .../site-packages/debug_toolbar/utils.py | 260 ++++++ .../site-packages/debug_toolbar/views.py | 22 + .../DESCRIPTION.rst | 47 + .../INSTALLER | 1 + .../LICENSE.txt | 27 + .../METADATA | 79 ++ .../RECORD | 149 ++++ .../WHEEL | 6 + .../metadata.json | 1 + .../top_level.txt | 1 + .../sqlparse-0.2.4.dist-info/DESCRIPTION.rst | 50 ++ .../sqlparse-0.2.4.dist-info/INSTALLER | 1 + .../sqlparse-0.2.4.dist-info/METADATA | 74 ++ .../sqlparse-0.2.4.dist-info/RECORD | 53 ++ .../sqlparse-0.2.4.dist-info/WHEEL | 6 + .../sqlparse-0.2.4.dist-info/entry_points.txt | 3 + .../sqlparse-0.2.4.dist-info/metadata.json | 1 + .../sqlparse-0.2.4.dist-info/top_level.txt | 1 + .../site-packages/sqlparse/__init__.py | 71 ++ .../site-packages/sqlparse/__main__.py | 22 + .../python3.6/site-packages/sqlparse/cli.py | 184 ++++ .../site-packages/sqlparse/compat.py | 47 + .../site-packages/sqlparse/engine/__init__.py | 16 + .../sqlparse/engine/filter_stack.py | 44 + .../site-packages/sqlparse/engine/grouping.py | 391 +++++++++ .../sqlparse/engine/statement_splitter.py | 105 +++ .../site-packages/sqlparse/exceptions.py | 12 + .../sqlparse/filters/__init__.py | 40 + .../sqlparse/filters/aligned_indent.py | 129 +++ .../site-packages/sqlparse/filters/others.py | 117 +++ .../site-packages/sqlparse/filters/output.py | 123 +++ .../sqlparse/filters/reindent.py | 183 ++++ .../sqlparse/filters/right_margin.py | 49 ++ .../site-packages/sqlparse/filters/tokens.py | 60 ++ .../site-packages/sqlparse/formatter.py | 181 ++++ .../site-packages/sqlparse/keywords.py | 817 ++++++++++++++++++ .../python3.6/site-packages/sqlparse/lexer.py | 81 ++ .../python3.6/site-packages/sqlparse/sql.py | 608 +++++++++++++ .../site-packages/sqlparse/tokens.py | 68 ++ .../python3.6/site-packages/sqlparse/utils.py | 122 +++ 151 files changed, 21780 insertions(+), 11 deletions(-) create mode 100755 thesisenv/bin/sqlformat create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/apps.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/compat.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/decorators.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ca/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ca/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/cs/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/cs/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/de/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/de/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/en/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/en/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/es/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/es/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fi/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fi/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fr/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fr/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/he/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/he/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/id/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/id/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/it/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/it/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/nl/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/nl/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pl/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pl/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt_BR/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt_BR/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ru/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ru/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sk/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sk/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/uk/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/uk/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.mo create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/management/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/management/commands/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/management/commands/debugsqlshell.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/middleware.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/cache.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/headers.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/logging.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/profiling.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/redirects.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/request.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/settings.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/signals.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/forms.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/panel.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/utils.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/views.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/staticfiles.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/panel.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/views.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/timer.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/versions.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/settings.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/print.css create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/ajax-loader.gif create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/back.png create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/back_hover.png create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/close.png create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/close_hover.png create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/djdt_vertical.png create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/indicator.png create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_existing.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_post.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_pre.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.profiling.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.sql.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.template.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.timer.js create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/base.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/cache.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/headers.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/logging.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/profiling.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/request.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/settings.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/signals.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_select.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/staticfiles.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/template_source.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/templates.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/timer.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/versions.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/redirect.html create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/templatetags/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/toolbar.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/utils.py create mode 100644 thesisenv/lib/python3.6/site-packages/debug_toolbar/views.py create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/DESCRIPTION.rst create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/INSTALLER create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/LICENSE.txt create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/METADATA create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/RECORD create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/WHEEL create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/metadata.json create mode 100644 thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/top_level.txt create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/DESCRIPTION.rst create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/INSTALLER create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/METADATA create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/RECORD create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/WHEEL create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/entry_points.txt create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/metadata.json create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/top_level.txt create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/__main__.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/cli.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/compat.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/engine/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/engine/filter_stack.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/engine/grouping.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/engine/statement_splitter.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/exceptions.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/filters/__init__.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/filters/aligned_indent.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/filters/others.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/filters/output.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/filters/reindent.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/filters/right_margin.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/filters/tokens.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/formatter.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/keywords.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/lexer.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/sql.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/tokens.py create mode 100644 thesisenv/lib/python3.6/site-packages/sqlparse/utils.py diff --git a/application/templates/tag_list.html b/application/templates/tag_list.html index 2304ec0..4cd467b 100644 --- a/application/templates/tag_list.html +++ b/application/templates/tag_list.html @@ -4,15 +4,14 @@
Your tags:
- {{ tags }} {{ u }} + {{ u }} {{ arr }}
from List: {% for tag in tags %} diff --git a/application/urls.py b/application/urls.py index 7dee351..c36b183 100644 --- a/application/urls.py +++ b/application/urls.py @@ -1,7 +1,11 @@ +from django.conf import settings from django.conf.urls import url from django.conf.urls import include +from django.urls import path from taggit_templatetags2 import urls as taggit_templatetags2_urls from . import views +import debug_toolbar + urlpatterns = [ url(r'^$', views.post_list, name='post_list'), @@ -19,3 +23,8 @@ urlpatterns = [ url(r'^tags/', include('taggit_templatetags2.urls')), ] +if settings.DEBUG: + import debug_toolbar + urlpatterns += [ + url(r'^__debug__/', include(debug_toolbar.urls)), + ] \ No newline at end of file diff --git a/application/views.py b/application/views.py index 21c12e2..8c36912 100644 --- a/application/views.py +++ b/application/views.py @@ -144,17 +144,18 @@ def student_page(request): def tag_list(request): log = logging.getLogger('mysite') u = CustomUser.objects.get(user=request.user) - tags= Tag.objects.filter(customuser=u) - arr=[] - arr.append(tags) - log.info("test".format(arr)) - """ + tags= Tag.objects.filter(name=u) + log.info(tags) + arr = [] for tag in tags: arr.append(str(tag)) + """ + arr.append(tags) + for tag in tags: + arr.append(str(tag)) + listing = list(arr) """ - listing = list(arr) - return render(request, 'tag_list.html', locals()) - + return render(request, 'tag_list.html', {'arr':arr}) class TagSearch(TagCanvasListView): template_name = 'blog_search_list_view.html' diff --git a/log.txt b/log.txt index e850e67..7a85c95 100644 --- a/log.txt +++ b/log.txt @@ -1,3 +1,40 @@ [16/Oct/2018 19:58:49] INFO [mysite:150] test [16/Oct/2018 20:00:13] INFO [mysite:150] test [16/Oct/2018 20:00:44] INFO [mysite:150] test +[18/Oct/2018 16:49:10] INFO [mysite:150] test +[18/Oct/2018 16:50:20] INFO [mysite:149] test +[18/Oct/2018 16:53:59] INFO [mysite:149] test +[18/Oct/2018 17:02:15] INFO [mysite:149] Here ist the log +[18/Oct/2018 17:03:03] INFO [mysite:149] Here ist the log +[18/Oct/2018 17:04:21] INFO [mysite:150] Here ist the log +[18/Oct/2018 17:08:44] INFO [mysite:150] Here ist the log +[18/Oct/2018 17:22:00] INFO [mysite:150] Here ist the log +[18/Oct/2018 17:29:57] INFO [mysite:150] Here ist the log +[18/Oct/2018 17:33:51] INFO [mysite:150] Here ist the log +[18/Oct/2018 17:37:15] INFO [mysite:147] hei +[18/Oct/2018 17:38:10] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:40:53] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:41:34] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:41:45] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:42:04] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:47:59] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:49:27] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:49:43] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 17:50:18] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:04:38] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:07:12] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:08:17] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:09:29] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:10:27] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:10:59] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:13:11] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:14:22] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:14:45] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:17:07] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:23:37] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:42:53] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:43:28] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 18:46:58] INFO [mysite:147] CustomUser object (25) +[18/Oct/2018 19:12:55] INFO [mysite:147] CustomUser object (25) +[19/Oct/2018 09:18:42] INFO [mysite:147] CustomUser object (25) +[19/Oct/2018 09:19:10] INFO [mysite:148] diff --git a/mysite/settings.py b/mysite/settings.py index dd5b84a..69fe217 100644 --- a/mysite/settings.py +++ b/mysite/settings.py @@ -216,6 +216,37 @@ LOGGING = { 'mysite': { 'handlers': ['console', 'logfile'], 'level': 'DEBUG', + 'formatter': 'standard' }, } } + + +if DEBUG: + INTERNAL_IPS = ('127.0.0.1', 'localhost',) + MIDDLEWARE += ( + 'debug_toolbar.middleware.DebugToolbarMiddleware', + ) + + INSTALLED_APPS += ( + 'debug_toolbar', + ) + + DEBUG_TOOLBAR_PANELS = [ + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.staticfiles.StaticFilesPanel', + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.RedirectsPanel', + ] + + DEBUG_TOOLBAR_CONFIG = { + 'INTERCEPT_REDIRECTS': False, + } \ No newline at end of file diff --git a/thesisenv/bin/sqlformat b/thesisenv/bin/sqlformat new file mode 100755 index 0000000..b475614 --- /dev/null +++ b/thesisenv/bin/sqlformat @@ -0,0 +1,11 @@ +#!/Users/Esthi/thesis_ek/thesisenv/bin/python3 + +# -*- coding: utf-8 -*- +import re +import sys + +from sqlparse.__main__ import main + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit(main()) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/__init__.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/__init__.py new file mode 100644 index 0000000..a360cd2 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/__init__.py @@ -0,0 +1,17 @@ +from __future__ import absolute_import, unicode_literals + +__all__ = ['VERSION'] + + +try: + import pkg_resources + VERSION = pkg_resources.get_distribution('django-debug-toolbar').version +except Exception: + VERSION = 'unknown' + + +# Code that discovers files or modules in INSTALLED_APPS imports this module. + +urls = 'debug_toolbar.toolbar', 'djdt' + +default_app_config = 'debug_toolbar.apps.DebugToolbarConfig' diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/apps.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/apps.py new file mode 100644 index 0000000..5bafec4 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/apps.py @@ -0,0 +1,81 @@ +from __future__ import absolute_import, unicode_literals + +import inspect + +from django.apps import AppConfig +from django.conf import settings +from django.core.checks import Error, register +from django.middleware.gzip import GZipMiddleware +from django.utils.module_loading import import_string +from django.utils.translation import ugettext_lazy as _ + + +class DebugToolbarConfig(AppConfig): + name = 'debug_toolbar' + verbose_name = _("Debug Toolbar") + + +@register +def check_middleware(app_configs, **kwargs): + from debug_toolbar.middleware import DebugToolbarMiddleware + + errors = [] + gzip_index = None + debug_toolbar_indexes = [] + + setting = getattr(settings, 'MIDDLEWARE', None) + setting_name = 'MIDDLEWARE' + if setting is None: + setting = settings.MIDDLEWARE_CLASSES + setting_name = 'MIDDLEWARE_CLASSES' + + # Determine the indexes which gzip and/or the toolbar are installed at + for i, middleware in enumerate(setting): + if is_middleware_class(GZipMiddleware, middleware): + gzip_index = i + elif is_middleware_class(DebugToolbarMiddleware, middleware): + debug_toolbar_indexes.append(i) + + if not debug_toolbar_indexes: + # If the toolbar does not appear, report an error. + errors.append( + Error( + "debug_toolbar.middleware.DebugToolbarMiddleware is missing " + "from %s." % setting_name, + hint="Add debug_toolbar.middleware.DebugToolbarMiddleware to " + "%s." % setting_name, + ) + ) + elif len(debug_toolbar_indexes) != 1: + # If the toolbar appears multiple times, report an error. + errors.append( + Error( + "debug_toolbar.middleware.DebugToolbarMiddleware occurs " + "multiple times in %s." % setting_name, + hint="Load debug_toolbar.middleware.DebugToolbarMiddleware only " + "once in %s." % setting_name, + ) + ) + elif gzip_index is not None and debug_toolbar_indexes[0] < gzip_index: + # If the toolbar appears before the gzip index, report an error. + errors.append( + Error( + "debug_toolbar.middleware.DebugToolbarMiddleware occurs before " + "django.middleware.gzip.GZipMiddleware in %s." % setting_name, + hint="Move debug_toolbar.middleware.DebugToolbarMiddleware to " + "after django.middleware.gzip.GZipMiddleware in %s." % setting_name, + ) + ) + + return errors + + +def is_middleware_class(middleware_class, middleware_path): + try: + middleware_cls = import_string(middleware_path) + except ImportError: + return + return ( + inspect.isclass(middleware_cls) and + issubclass(middleware_cls, middleware_class) + ) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/compat.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/compat.py new file mode 100644 index 0000000..f220b05 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/compat.py @@ -0,0 +1,11 @@ +""" +This file exists to contain all Django and Python compatibility issues. + +In order to avoid circular references, nothing should be imported from +debug_toolbar. +""" + +try: + from django.template.base import linebreak_iter # NOQA +except ImportError: # Django < 1.9 + from django.views.debug import linebreak_iter # NOQA diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/decorators.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/decorators.py new file mode 100644 index 0000000..a1f7f3a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/decorators.py @@ -0,0 +1,16 @@ +import functools + +from django.http import Http404 + + +def require_show_toolbar(view): + @functools.wraps(view) + def inner(request, *args, **kwargs): + from debug_toolbar.middleware import get_show_toolbar + + show_toolbar = get_show_toolbar() + if not show_toolbar(request): + raise Http404 + + return view(request, *args, **kwargs) + return inner diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ca/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ca/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..260ace99ea2851fa6f5a50218fcef049f9a1fb59 GIT binary patch literal 2916 zcmZXUO>9*~6vszI(5HYRpd!LlzFP72y*^qjx75(S7AUmPkJm0VF`3>wy}fWhp7*04 zMwYr@VT_3hiE*JDjR`CScN#;w(U`E&#D#>78)KA>E_7ky|9|hafKKk2-<&gZXU?3N zGq<;{e_x>VLv}&duM=Vl{Ov(hD7_B}@d$Vn+yFKVPlM~BPkNI!3Z74R33`~L&vf9o)a<2ItA zzgs~5zunk(8~p(IIP6vM>j#854$^NrfvLnMkpFKp`c9DRv>AKN*pC?Y8~c#aPlH@{ z0;Hd>fcS()wF!(tu6GgSI+u+8F1Q8yhamm90zL^|2f6+?AouyB>AwZy6F;NkI=_S4 z!M{LkNogM?v~G4RW4Ykn5fYIZq67TnchOZyH_# zx&CF4{$B<8{}&+l`4xyytf1n2H;w*1NWX3y{SL_W{|0&98&GloTS3m#2BJ$GG<*Ly&gJYUx5lLY{)~?VvCJ zEj`A-_!M^wJO;5Khaok{KFA9YzCA3A*|wrp#`!4P-H<&HJWb+x2n%DtvK6uyvYQIZ zbC72sj0MY!kR1?Qha%p9I0#`ZJE@@X9=rsxAx}eCjzIb#`ysr4jA1W?WhbllJh~9Y zi&2Lda56uR3M^p>ohP9Z+Mmvu( zF{Cmzt1xCbP_0zEGV?D{as&$tGnHrY-l^ zI_q;GdX`&SOqYi#W>k=C)Nqmx&R`!rTf!{sx_)ra{GOE(dYVzC>q&TtVz;cL~J8~fR@)Y5g z$5d(QRK{{V>|W}O6YpjG9CqpZsWKs<3XONz&e3LN^Kdn3N`Jo z_sO!^-yX@fe%aO0R}t;5PMtW?UY;?N9e?Fok;yr3OcEiB2Hen({1n?R`Wk9!4HL?qNgmo;FqF&=xbLX=P3?VLqEV5r?e|y@N<;>Ec7u;_BflrxI17GLzfL5n1Lp zO_;H@@(Io$M37Q35Gs!@6_CjBL`nCc_9KO%tI1xv8K_*GMIPeinV$8X()qO(UGli8 z!kN%V;%ChK;fTkZi7{hAriaMRh)&aEJ^}aXd&!1!A41y0DQwtJ#gIlo z;PnX{_1!0c*@Xzr`5w-ybooAQEM~})dp8OH;L0+egaUkF(mWL7xMZ0h1n55%C(1;% zcoIfeu0+1Vy$X?hJR=6Y$ba)7IOPeN*MYrd$34%3-^#g()my?R0&npBPsGZ#d!7iL LBdq3)D0cQQsq}1O literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ca/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ca/LC_MESSAGES/django.po new file mode 100644 index 0000000..5de03a1 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ca/LC_MESSAGES/django.po @@ -0,0 +1,656 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# Libre El Chaval , 2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Catalan (http://www.transifex.com/projects/p/django-debug-toolbar/language/ca/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: ca\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Caxè" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" +msgstr[1] "" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "Encapçalaments" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Entrant" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "" +msgstr[1] "" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Registre de missatges" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "Demanar" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Configuració" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Senyals" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Total: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Hora" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Temps emprat" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versions" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Seriable" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Actiu" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "En transacció" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Desconegut" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Plantilles" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Amagar barra d'eina" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Amagar" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Mostrar barra d'eines" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Tancar" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Ubicació:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Resum" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Total crides" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Total temps" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Comandes" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Crides" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Temps (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Tipus" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Administració" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Clau" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Valor" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Nivell" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Canal" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Missatge" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Ubicació" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Cridar" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Per" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TempsTotal" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Recomptar" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Veure informació" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variable" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Sense dades GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Sense dades POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Configuració" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Senyal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Destinataris" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Petició" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Línia temporal" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Acció" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Connexió:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(desconegut)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Tornar" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL Executat" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Base de dades" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Error" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Cap" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "" +msgstr[1] "Plantilles" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Font" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nom" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versió" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/cs/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/cs/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..3a2db0fb4caa36c8a6c2f9a1aac67cd5ed068153 GIT binary patch literal 9567 zcmcJTdyHJyS-?;8;Nc`qNz)LwDLHLwd$;z?uI;!<$B)=vJF#PXv-a*f#4WgYXU^_i z&z*ZG_c804l%_B8Kz5~yR#oaySVF40uu3JMr3D+x>>^a4MHGo3AW%h+{s9sY6eJY2 z{JwL~o!zw;Ckk-2XMX4X{J!s;Z(q3Sn$Ie}CkeL^YS$?B`|vk@j32%)U8mIj@H~7E z{15m}xb}Lb0(ci3g}(;N@MXt$-=Ne_kUr{Ig}0E-T>1e^WR`|#8$Kl^P{uAU+ z{VP8|0)OCm?VIy@*TXgB-vXJkdKdgrxE}JS%KW?=?u6IE55arkG?aGpkg2NQfzo~v zO1*DE>F3W~`gtf@@d9M&>Ln=q@G^W0y!FPs{vee0n_c=YI7<2+DD6K52jJ(RjQa;r z*86901N=NcW(O|8G$C;T0(LucFh<@J1;6x(D6_4?~us zPC{uHK^Z4?>5o8}*C$;59+-?zYNMeKLTan9)of&pK;}% zcjeEx^shsy_ghfr@rO{>{ayI{o0R$o_!#N0|D;lP!rg4vCYZrz;jhBe@W5K7ej0ug z9)WLvdoH(i$1W5*a>k{ffhE$v4P_lKLRsg3y7H^vk>|e+%K8SOtgj4Z|L%fTZlSF2 zFqCy4gG@o4fO3v0lzu-4ABE3AmZI+9(AaXd9ZJ7rjt@bRlPQ<>p^O(hei+_G`Y|Z; zz6j-<{sKz7??I{meRvf9yG!pw7~e&D6iWS;Ag_eO+eZI4?tOO?D8LhvTq-U($6or@~2(?v+%v- z&qL|wc_{t-J(PWX1yQ;RezkM0C`XP{#XZDD(Xily!a$%6J!`tn)ii*730FjyuSnQfX_oYmsg?e*YzBxl-~?}_)aML@i;sQe-AzcZ$k)WK5aMxpMbKDe+p&Z z--U?0`aTr7x|+dcob6EhKLkbJCg9iM$DruL_V?ubwHwMh?uRn32ce925=#4rUAhaU z-!oA5`)QZ{vg0@4)#QH*%KEQmCM;Iq8|8|p*GnP;G>St^$e_ybDcAs39?MwDSz72%;6J$Oa;VQx@!aalmLh;?} zBC@}ziM{V0g-w^g5ypg_F8y)G`=P8^zD^FSQ$O$G$KW=?4uU4gx{zJ1VKKrTa$#_2%>`r38F)L2xY=y!mR|4@JYfxg4p`gglh>?1o=c?-)Cdow~ht| zgbxwg1hsCU>Q(FJWYr6TWU!`%+7I=*fz)rB!Sa^rX0mFfWVKpR7N&!VZki{Qc>$Gkrrbncby!WTDsg{J@(E%r3R3n)*>_(Kc#NJd-s|m?mmZmPXa6+4NJj*Q++{ zj|ppPZye1gCe}>T4`Xn7+U*DxFOa3UDjUM zX-2Ur>#@Lii9u6DnrLBYFk>he?MdTK*>*QY9ktI->uSuzYAlYhDzYkKZNDb5qt@~s;}jS{ zbdeKMHkpOXGn@^ksAV`e5u2Dsq^*n;)OB~B$4nAsoDcal`!PG~hjm6z6RT1#Q|y@B4pJG5#U-^#M`6&> zp1m&oX}{`GBgv*v7gSa!j2r4HbaS?>##4l+YA=W7ab~bopuJY>()7v-EjiugEhJ+_ zm6Zvxo?N;or!g`1ZW4;YmrQptS*Y<0yT-LV-bqr^)Y#$N08E%BN0k~?M3R0CTf=OM ze4AQUm`k^S}RtR-9@T-kw?NAnyqI@CZ zl^KnpuG{j$>}X~XMsd>%%E}sR`OyP%D@lwF*e83DX)jGGoSZ^KO9yKu*S@mqd9A^E zL~&X=lFazE(%x()DNRHby=LrziP8w>M0zf9+nI{qGQ9cD((s+7E!*^#&6RCiHV$tY z9;RaHm}&bm)645^et%`#){Vn_YYux!TCzKXphj^;@98wr-m2b{&15{CLcPPwbIP8} z+1@dZcTrbv;l|(^h3@Xm)nCY%d~z+MF(9A%`$kviM}E zHB_@QTC!4Ba`)I!;JO>CCPRa3jvPF)e`%98mxtHbmqN&NIkbuvff%xuaJ#P7y%@u> zb8_O|(%nn-|>hF0l4G4;!4M(1<2Abj{~U)b*=Au2O>+)1F4^w<+qoN}c7d z(uvl>x!hqAhi2i7mqhJcCox3zpf|sG(JY+BD|v0V>4@q2Ew8z7Zt+=lywL1sk(v6s zs|&5_yHMHduE}}4-cG4H>IJ52H>Az`*3B#R)u@@mFV-tFi+=k9s6!qb9jFstThumH zV}gd)<@M6SJhPh>xux)IklaRo?`Hj+&XuzkpE9j5OXaYNmg80jI__1j#v-;nRfn=> z7RZt0E*l4eJr8+5xTlP~J-U>6 z&TH$YxLkMo5Wn1b!{k z13qrtAjv9yBB|$_@=9rEYO)>r>Ect)s}s3DffwJYS{cCjngqc_@2qUA-sg#$#V54i z#mTE0oI6B);j9BYB(p4>yiUKq+Ea^7;yF~*344EFpW-Nu8vMUQWWdH;k*DzVaP%6y zigi@eU2oxRZ!YCba(9pGU|?gdcRpx%xOs9OZMAs8s`i}qzI1>BpOhzok!X24u zAQs3uqjlxU#!-d3Z!qi~B_~iWMmn!^E7_Mnt0haTvb)wPdN}WHOx{-0oP+Sl?Wt!m1}>f;QqbSB68 z`>`ZmOLA?`DnVvU%{0&gd;Or4-5M`2Oh{iMIXBa7qxuN#@lMjlVB(lNDJ~{&1tzaC z#f!?7uJACez!#e|%9GM-i*)vVON>^LhpB8vwJgZ=rLN`)E(x#er-fpOn<=Ksv4aqa z$=0Wg?%Jv*^yGf*@{gOSM*pcOt_WdbRUWMfxkh-Bw&Ez?jo$pGT%e^N`!J`o+QPXS zn}Z1Fo@rJ%oDIx^yJW|$quF5XPM*}|IeS`x-$3K&#`+gHNWBY9zu)42TW*C+H~{1tquDD;X*XDQ;AsTb#Lm4$P~(uy4339DtD5aBNBbSg_7y0JQXAor842}CT4 zg)H-=2UY)&R`sI0Vt7;jU8^s(yBIyq3K!@2_jMb!x+xmdMI8k{qVnH)bnp*oFqDukfysnD){YWj$+W z^<@Kiowx^{n&d6q#&Zo4(J#4ntwbD%Y9UrpY<{k|bK+skC2oJm>|0PQskqv52_DRS aZ1jy+Ls2T)Zp(Y~RsNN?r1w_a)qevtO_QYn literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/cs/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/cs/LC_MESSAGES/django.po new file mode 100644 index 0000000..26b6cdb --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/cs/LC_MESSAGES/django.po @@ -0,0 +1,670 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# Vlada Macek , 2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Czech (http://www.transifex.com/projects/p/django-debug-toolbar/language/cs/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: cs\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "Data pro tento panel již nejsou k dispozici. Obnovte stránku a zkuste to znova." + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Mezipaměť" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d volání během %(time).2fms" +msgstr[1] "%(cache_calls)d volání během %(time).2fms" +msgstr[2] "%(cache_calls)d volání během %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Volání mezipaměti z %(count)d backendu" +msgstr[1] "Volání mezipaměti z %(count)d backendů" +msgstr[2] "Volání mezipaměti z %(count)d backendů" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "Záhlaví" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Protokol" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s zpráva" +msgstr[1] "%(count)s zprávy" +msgstr[2] "%(count)s zpráv" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Zprávy protokolu" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profilování" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Zachycení přesměrování" + +#: panels/request.py:18 +msgid "Request" +msgstr "Požadavek" + +#: panels/request.py:35 +msgid "" +msgstr "<žádný pohled>" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Settings" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Nastavení z modulu %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d příjemce 1 signálu" +msgstr[1] "%(num_receivers)d příjemci 1 signálu" +msgstr[2] "%(num_receivers)d příjemců 1 signálu" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d příjemce %(num_signals)d signálů" +msgstr[1] "%(num_receivers)d příjemci %(num_signals)d signálů" +msgstr[2] "%(num_receivers)d příjemců %(num_signals)d signálů" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Signály" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "Statické soubory (nalezeno: %(num_found)s, použito: %(num_used)s)" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Statické soubory" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s soubor použit" +msgstr[1] "%(num_used)s soubory použity" +msgstr[2] "%(num_used)s souborů použito" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Celkem: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Čas" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Uživatelský čas CPU" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f msec" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Systémový čas CPU" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f msec" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "Celkový čas CPU" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f msec" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Uplynulý čas" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f msec" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Přepnutí kontextu" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d dobrovolně, %(ivcsw)d nedobrovolně" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Verze" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "Read uncommitted" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "Read committed" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "Repeatable read" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Serializable" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "V klidu (idle)" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Aktivní" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "Uvnitř transakce" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "V chybovém stavu" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Neznámé" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Šablony" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Šablony (renderovaných: %(num_templates)s)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Skrýt lištu" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Skrýt" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Vypnout pro následné požadavky" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Zapnout pro následné požadavky" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Zobrazit lištu" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Zavřít" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Adresa:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "Aplikace Django Debug Toolbar zachytila přesměrování na výše uvedenou adresu URL za účelem ladicího zobrazení. Chcete-li přesměrování dokončit, klepněte na odkaz výše." + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Souhrn" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Celkem volání" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Celkový čas" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Nalezení v mezipaměti" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Nebylo v mezipaměti" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Příkazy" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Volání" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Čas (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Typ" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Argumenty" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Klíčované argumenty" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Backend" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "Záhlaví požadavku" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Klíč" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Hodnota" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "Záhlaví odezvy" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "Prostředí WSGI" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "Níže je zobrazena pouze podstatná část proměnných prostředí, protože WSGI je dědí od serveru." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Úroveň" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Kanál" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Zpráva" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Adresa" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Nebyly protokolovány žádné zprávy." + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Volání" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "KumulČas" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Celk. za volání" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "CelkČas" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Počet" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Informace o pohledových funkcích" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "Pohledová funkce" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "Název URL" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Soubory cookie" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Proměnná" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Žádné soubory cookie" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Data sezení" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Žádná data sezení" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "Data typu GET" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Žádná data typu GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "Data typu POST" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Žádná data typu POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Nastavení" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Signál" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Poskytuje" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Příjemci" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s dotaz" +msgstr[1] "%(num)s dotazy" +msgstr[2] "%(num)s dotazů" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Dotaz" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Časová osa" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Akce" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Spojení:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Úroveň izolace:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Stav transakce:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(neznámé)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Pro tento požadavek nebyl zaznamenán žádný dotaz SQL." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Zpět" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "Vysvětlené SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Spuštěné SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Databáze" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "Profilované SQL" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Chyba" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "Vybrané SQL" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Prázdná sada" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Cesta ke statickým souborům" +msgstr[1] "Cesty ke statickým souborům" +msgstr[2] "Cesty ke statickým souborům" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(prefix %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Žádné" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "Aplikace se statickými soubory" +msgstr[1] "Aplikace se statickými soubory" +msgstr[2] "Aplikace se statickými soubory" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "Statický soubor" +msgstr[1] "Statické soubory" +msgstr[2] "Statické soubory" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s soubor" +msgstr[1] "%(payload_count)s soubory" +msgstr[2] "%(payload_count)s souborů" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Cesta" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Zdroj šablony:" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Cesta k šabloně" +msgstr[1] "Cesty k šablonám" +msgstr[2] "Cesty k šablonám" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Šablona" +msgstr[1] "Šablony" +msgstr[2] "Šablony" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Zap./vyp. kontext" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Procesor kontextu" +msgstr[1] "Procesory kontextu" +msgstr[2] "Procesory kontextu" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Využití zdrojů" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Prostředek" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Časování prohlížeče" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "Atribut" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "Milisekund od začátku navigace (+délka)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Název" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Verze" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/de/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/de/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..b3d52c2048f602bdc06fe65a1b9deeb0bb147114 GIT binary patch literal 8899 zcmcJTe~et$RmX2=(oz#jo0gWQ5N?{d-o>6>+p$SH{z2CE+Hw7B<6Ya0(_-Gv+?jda zH}6f}d$Z#;(2%sD6|GbhwM8_Q3YBT3N>nIqk(!zkw56c5kRm{V@+^S3u$|3Sm^9^^-nw_R_{XW&P^pMN~PA28-E z@Bw%`ybON~ehnt@JMcJ6ZZu{JelGAi_$tz`|G|oz;cH3n3F!qmNxB7J4u3iD!;n97 ziGMGJPXvAzs@zj>1AH1XRP*QXW$>%;74Ylujqu;#4e&K&9)veT)r%lQGYM4v6{vFW zfNJMmA^kom6+8-=qInEz{*S{~!Y@OW{~M_K-wf&J;c?P0K-J&(L&i+NBT)U8Q1f^Q zZi4THs{g6*{j*T@z6jO+Gf?AvHhllSqS3-XW-Q%t4LoEL4B(zzo(%51{)04JbW)0;>FP!)O< zpNWv(4mGYjL;kM7S*Y=yfSS)KNRy@+zW1TpeGqD#?+@u;ftt_bQ1yNbs^0HH_45^o zDVRTl8u!-&|0VF-fiGw9YWKBJ?cD-p=bNDF%|hAZNvLx7!48bzkHDv)h2Ma(zw22H z)!PJj!W~fc&O^;3hZHprL+!f{LXGxiS38%d6F874*$HVtCA$<<2 zTnB0#%TV)vH~jo{#(V(Ik)D5@F&p6}XyMbafX~DG;W?CeC;S}T248^E)5h0V+zA=F znGNZ)a5L%iQ1kmx;K!i!`bntu`aP)e{~?rK{}@USe*rbmZv;LM)y@l0>-Qa~dT+d$ zxx)#Fsh9_#^!!e!_8*06=U1W1|2kCrkB9sxpxS*BYW`n@s{c>n`+q^T^O84I+yGCL zeihVsJ8&1wq5A(MRQpfCH^VPM)xQBF()Syo>fHjBKLJ&K8cHwqkbf+20ZOm;2lk-W z@ewGy_z;wRKL$0wPebjiCqw%4Q0x5#C_Vg1;9tTmq`wB$&MVkV-Y-D4e;eEfcR<4sCNDUs{b!T&GRcz^}h<$|35(0|5wNon(J?=>fZu2|4FEF zyP?+M08~5kPihU))!pw{_IA^j}8mGn2E`hD4t zSL<;zRR6ca9-M?K_hI;x@G`s$z5vzV7HiDia4%H94+g#;s@;!5RBWDr((5x&^Z7ft z2|fpZ6W&B8(%(~1-+v!!9M3?t`z(|`{vK+bzZLSo9rABvQ)qr~fGWQUO3!yf>FEfR zK2AWj|5m8+FGBTOhVLs-{XPs;?w6qS_W`K+d@Q6t1Fs`JjYu!Qh}??|pWAp*|61cS zh{o_Rq9;b)ji`S;XA#_xxq!R}*@G+~OwB}y^gVnu2ey=PA>(-9BY^@-YF0veH+&n? zL=J_#?eIZlYe)-ecz-BRYkvnKUFi8a9^kvAdtA$o4FVBRTioM=RijyuT%GH;Mt;UCt6#EXr55*o_l$$c)obwwdUs zOKCPpC(Z6Ov&*p?>@~alX|x>0Nwk=_y=JCS##!pI?95Ew?sr{U7G|bjW{s@djZ3pH zYApGGE^V59c{V6qZW&UXw$1*zQ+4`oU=&-uvDu07#AJMvX1@%y`tQvX?dDlmmAr8^ z?IP`~X9go8@lG&Lu7?9J@l6Lk&lTw&S~YN|~=r`Q{cWV-CcHR>(JTeY?)=rVw9W1O^p3;YMrmmOPNP$5mm-?813c_*DD!hGsXol%ELvLL^3s-xMi2r z%@MaE8Dx3WMkBL3s*mPq*6?LVFLmD9L%&og(U$cc3y$hooFp-uDr2G9_i4jfY&>pP z9Tx16(oSqnT-q)>ljeAYqK;>FG)>;;PRxfnlRyXF!LitO;Bx7@!7$NIv!By%wbWq& zrqom;m-pih3 z73e{GkrgsN*-zJI1b@q?o@3o)HaV3@dm9gQhu+J=Z>f+eKc6-8xbXn{vz9jEo%$GcJATHUoZ zl(DYJ`h>hE2kf~PF2hpIY;=GKBi*`}k8a92Fh;whKN|_0?)dLRw__PWn&sUnnKIs4>z|#_siZd=Ku`W4vr$>*@ggqJEU<6cKx!4Y zOR}u0>a<>?XP@-fE*0TZDgWzVIT5SF&@7C-qQwoB{Q?EA^qkS0Q~9A&)d6iz=};Z5 z;^`>qJ99c>M`<^m#tG|`4lK-Rlw?~t0e^V=RGe}Mbun7Xt=$`PC+FFrwZqL?s9(S4 zdTqdaWO-RTRZ{4<|wsl8s`%b%kTYcyD z&0Du`-AcjQNw*wpq*s^Q_U8J|J2r3S*>E%}%9_^Z59tLCtkOAEym?&+;!V@8|IRJ9woJdELc&uY0oE%J==HL z>UGaVYH!_Rw@vQaV6MF3&n&ib-5I{yB|nstZ^VDdILFa|E->ujS#~FFsf)EatC#%U zzq;s$W+<~RomLs^ZtdJXTC11RHio>6PrmZHU%7Di|60?rqq{bo8Px!W5s0FZD@J&Y z(!s~d%wvv%v|nB$gc>mq?+dR-hq=DH|=bhz%f zau*MD|7ouc0{ZDVUs1rKTjEw+5(g|XYb%dIB#_39PH8zATdSAbTq6Jm*F3G2`%HoI}kc z)d4YZjShF9QFJhqUW_`4Ipm6{TXKu%aKxBWi;8pG@1q2lE=K8+IjCmS)k_S5kK7h~(PorK{g#xXV>-1n zm;+9OE2xXKv@u6_b)0bOp~2MIvs%ETjt>PrmEUW_YnnYMh32TdXgg-z$xAg^#TEWw zNJC(uA{=iTAqS@qENnE+I>WVH1F4!jOt8W3&TVz3R(5)-n=ot^jj2V8EqpmmjY5sW zu}NLMy6|hwS1%JRCWIViZ5Zh~=B$w8L|&S+u>uo<3py%u?*@mF#%yqvA<|ev(R5kR zd9^Gl>c-CO1P;7l#kshLK;wu;tym*Wy-F(p2pO{k8GWJ)tDVUz-+Qz+^znn$OC4Rb zhIVtBBak^3XsOk9Y`I1!b>$Rslxhy+(<;Tt7yB&ja4PJwoXA+Zt_sY@5`#@t&Rn;Mc?h1ytMXNSk>rq~1*=xUy-LE+lJFbtNERk*a zR!p$bA!}9eshDIOtW<9)J7qw>jGoe^U(ZllW~LCuI zT|C6-mbG3XvvJCfO89}LZPvV_s&y&vysnI3hQ^HYhxWZLj?u3M1R;%%->kZ=)lPNW zTz|Ru>gYr@c9hZ7?(y*p>rQhxfpQCXUE=1npZiV0CAXA9V(tYCE=~x2c*6;_`Gr91 z7UG#g&ayh5d{8n@Gp(6k&k|z#dupsNX;rlP#IJ(a{w7;_v2X5w`grvSuF4q(9>Z`5 z8}l3Qiijv2#gpbNVQiPlx1yrZx^W)W2uk-t|q{BZ`qI;m-_slo)A??RT*kXWMR&bqIN@cG?8)vL%|O!6+h zSQ92GN~-x^YfcR>FymhK`TLj4%^CDO-oy-fZK%ZPbl0gJ, 2012-2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: German (http://www.transifex.com/projects/p/django-debug-toolbar/language/de/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: de\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "Die Daten für dieses Panel sind nicht mehr verfügbar. Bitte laden Sie die Seite neu." + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d Abfrage in %(time).2fms" +msgstr[1] "%(cache_calls)d Abfragen in %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Cache-Aufrufe von %(count)d Backend" +msgstr[1] "Cache-Aufrufe von %(count)d Backends" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "Header" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Logging" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s Eintrag" +msgstr[1] "%(count)s Einträge" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Logeinträge" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profiling" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Umleitungen abfangen" + +#: panels/request.py:18 +msgid "Request" +msgstr "Anfrage" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Einstellungen" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Einstellungen von %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d Empfänger von einem Signal" +msgstr[1] "%(num_receivers)d Empfänger von einem Signal" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d Empfänger von %(num_signals)d Signalen" +msgstr[1] "%(num_receivers)d Empfänger von %(num_signals)d Signalen" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Signale" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "Statische Dateien (%(num_found)s gefunden, %(num_used)s benutzt)" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Statische Dateien" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s Datei benutzt" +msgstr[1] "%(num_used)s Dateien benutzt" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Gesamt: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Zeit" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "CPU-Zeit Benutzer" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f ms" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "CPU-Zeit System" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f ms" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "CPU-Zeit gesamt" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f ms" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Verstrichene Zeit" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f ms" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Kontextwechsel" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d freiwillig, %(ivcsw)d unfreiwillig" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versionen" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "Lesend, nicht ausgeführt" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "Lesend, ausgeführt" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "Wiederholtes Lesen" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Variable" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "Wartet" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Aktiv" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "In einer Transaktion" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Fehler" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Unbekannt" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Templates" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Templates (%(num_templates)s gerendert)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Toolbar ausblenden" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Ausblenden" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Für nächste und die darauffolgenden Anfragen deaktivieren" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Für nächste und die darauffolgenden Anfragen aktivieren" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Toolbar einblenden" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Schließen" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Ziel:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "Die Django Debug Toolbar hat eine Weiterleitung an die obenstehende URL zur weiteren Überprüfung abgefangen. Klicken Sie den Link, um wie gewohnt weitergeleitet zu werden." + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Zusammenfassung" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Aufrufe gesamt" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Zeit gesamt" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Cache erfolgreich" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Cache verfehlt" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Befehle" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Aufrufe" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Zeit (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Typ" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Argumente" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Schlüsselwort-Argumente" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Backend" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "Anfrage-Header" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Name" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Wert" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "Antwort-Header" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "WSGI-Umgebung" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "Da sich die WSGI-Umgebung von der Umgebung des Servers ableitet, wird nur eine notwendige Teilmenge dargestellt." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Level" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Kanal" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Eintrag" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Ort" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Keine Logbucheinträge vorhanden" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Aufruf" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "Gesamt" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Per" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "Total" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Anzahl" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "View-Informationen" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "View-Funktion" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "URL-Name" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Cookies" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variable" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Keine Cookies" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Sitzungsdaten" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Keine Sitzungsdaten" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "GET-Daten" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Keine GET-Daten" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "POST-Daten" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Keine POST-Daten" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Einstellung" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Signal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Stellt bereit" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Empfänger" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s Abfrage" +msgstr[1] "%(num)s Abfragen" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Abfrage" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Verlauf" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Aktion" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Verbindung:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Isolationsebene:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Transaktionsstatus:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(unbekannt)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Es wurde keine SQL-Abfrage während dieses Vorgangs aufgezeichnet." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Zurück" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL erklärt" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Ausgeführtes SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Datenbank" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "SQL durchleuchtet" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Fehler" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "SQL ausgewählt" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Leeres Set" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Pfad mit statischen Dateien" +msgstr[1] "Pfade mit statischen Dateien" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "-" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "App mit statischen Dateien" +msgstr[1] "Apps mit statischen Dateien" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "Statische Datei" +msgstr[1] "Statische Dateien" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s Datei" +msgstr[1] "%(payload_count)s Dateien" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Pfad" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Template-Quelle:" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Template-Pfad" +msgstr[1] "Template-Pfade" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Template" +msgstr[1] "Templates" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Context zeigen" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Context-Prozessor" +msgstr[1] "Context-Prozessoren" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Ressourcenverwendung" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Ressource" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Browserzeit" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "Timing-Attribut" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "Millisekunden seit Seitenaufruf (plus Dauer)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Name" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Version" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/en/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/en/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..18bc8c95f486261e992654cf9b93589d92cb800b GIT binary patch literal 382 zcmYk0K}!QM5QQsx%F(lj5j-e$G@G_iQ}$xFg+hy^tlrahT(@kKCCQ5Zkp4Y?i?a&W z2Or6hH+k>t{Or(SoiG>76?4kmGOdP8#*Yttww^yNz1z_y;%tjA@Omv++1z}ER|8LenRxD9vK+6p|a!`3CawX=nfd literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/en/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/en/LC_MESSAGES/django.po new file mode 100644 index 0000000..9e58f09 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/en/LC_MESSAGES/django.po @@ -0,0 +1,675 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2018-09-06 09:19+0200\n" +"PO-Revision-Date: 2012-03-31 20:10+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: en\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n != 1)\n" + +#: apps.py:15 +msgid "Debug Toolbar" +msgstr "" + +#: panels/cache.py:188 +msgid "Cache" +msgstr "" + +#: panels/cache.py:193 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" +msgstr[1] "" + +#: panels/cache.py:201 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" + +#: panels/headers.py:34 +msgid "Headers" +msgstr "" + +#: panels/logging.py:66 +msgid "Logging" +msgstr "" + +#: panels/logging.py:72 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "" +msgstr[1] "" + +#: panels/logging.py:75 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:148 +msgid "Profiling" +msgstr "" + +#: panels/redirects.py:16 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:18 +msgid "Settings" +msgstr "" + +#: panels/settings.py:21 +#, python-format +msgid "Settings from %s" +msgstr "" + +#: panels/signals.py:44 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:47 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:52 +msgid "Signals" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:27 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:28 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:29 +msgid "Serializable" +msgstr "" + +#: panels/sql/panel.py:40 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:41 +msgid "Active" +msgstr "" + +#: panels/sql/panel.py:42 +msgid "In transaction" +msgstr "" + +#: panels/sql/panel.py:43 +msgid "In error" +msgstr "" + +#: panels/sql/panel.py:44 +msgid "Unknown" +msgstr "" + +#: panels/sql/panel.py:108 +msgid "SQL" +msgstr "" + +#: panels/staticfiles.py:88 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:106 +msgid "Static files" +msgstr "" + +#: panels/staticfiles.py:111 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" + +#: panels/templates/panel.py:161 +msgid "Templates" +msgstr "" + +#: panels/templates/panel.py:166 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "" + +#: panels/templates/panel.py:198 +msgid "No origin" +msgstr "" + +#: panels/timer.py:26 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "" + +#: panels/timer.py:31 +#, python-format +msgid "Total: %0.2fms" +msgstr "" + +#: panels/timer.py:37 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "" + +#: panels/timer.py:45 +msgid "User CPU time" +msgstr "" + +#: panels/timer.py:45 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "" + +#: panels/timer.py:46 +msgid "System CPU time" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "" + +#: panels/timer.py:47 +msgid "Total CPU time" +msgstr "" + +#: panels/timer.py:47 +#, python-format +msgid "%(total)0.3f msec" +msgstr "" + +#: panels/timer.py:48 +msgid "Elapsed time" +msgstr "" + +#: panels/timer.py:48 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "" + +#: panels/timer.py:49 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:49 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:20 +msgid "Versions" +msgstr "" + +#: templates/debug_toolbar/base.html:14 +msgid "Hide toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:14 +msgid "Hide" +msgstr "" + +#: templates/debug_toolbar/base.html:20 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:20 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:42 +msgid "Show toolbar" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:30 +msgid "Time (ms)" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Location" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/sql.html:9 +#, python-format +msgid "" +"including %(count)s similar" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:13 +#, python-format +msgid "" +"and %(dupes)s duplicates" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:28 +msgid "Query" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:29 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:31 +msgid "Action" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:48 +#, python-format +msgid "%(count)s similar queries." +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:54 +#, python-format +msgid "Duplicated %(dupes)s times." +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:86 +msgid "Connection:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:88 +msgid "Isolation level:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:91 +msgid "Transaction status:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:105 +msgid "(unknown)" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:114 +msgid "No SQL queries were recorded during this request." +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:3 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:7 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:11 +#: templates/debug_toolbar/panels/staticfiles.html:22 +#: templates/debug_toolbar/panels/staticfiles.html:34 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:30 +#: templates/debug_toolbar/panels/templates.html:47 +msgid "None" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:14 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:25 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:39 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:43 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/templates.html:22 +#: templates/debug_toolbar/panels/templates.html:40 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:33 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:10 +msgid "Package" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:11 +msgid "Name" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:12 +msgid "Version" +msgstr "" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: views.py:16 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/es/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/es/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0706dbe52ee801f5800d34ef66c6eee9bd251487 GIT binary patch literal 9294 zcmbW5eT*H~S%*)XG;JI{N*YR&CS_7^y<7Xd1W*M668NJ)BTCg!m4ZSAC87MWG?kEoKoC+P5fZf(0YnK%q-sSe z&+p8+ckiy(v~;xZede4wpYM6kd(OKrTz&bYhUXFFdgQ*#jrlD6=o|Rq>0V{byW#!t z$KliP2KW+8;J4ukn0%ixP56}OzrY_NeeL(x+zH=I`k+tG!eP=2@J;ZS;Fa*>p1%kA zGk?s_74R9)XQ9gdE!+lQfDGCEGkiV#8vFtHDttS99f{Y$A$S-zq3TtTA)1Gv>VE{P z+%H45^XoqSF(_4h0y0(e87MtG1>Xo?gew0ZQ1!pz)8B?CNWcCE>-uNl5b1MJ{XPOU zk4NDS_*+o*zv#a|3)S!6L$&{9sB!+Q|Ne?ke+#PIYZ(k(nyaAnc^%aFn*3Y_Z-ZKo z38;SNpz7TVHI5e4xKgP89`yVmY>@s1sQy0(rH9W$mH!L48$J)E*DLAdYIqG~Xl4gg zy>~(NbHJw$Lyha0&p+vT7HWJE)O=z{(`Lng|2e33e+6oszwOhXf|}1$Q1$*Cs@~r~ z_45^oNtlzV@B97tvrzW909CF77hwh80$+du{5q8V zy@kb4`}^Tucm%56`=RFXFr=t?3~K*90X6Ptp!D@Td0w?^9`SW`4882@+PSD*#XtgE~xr@q4aeSYCVqm@2C9tdwhBx zs@w&raj!zn_vhiCy~dbdgVUt%`jL9yd=g48&%zA80#CyCqP%y(--kEDmmy1JZn(DQ z2$cUA_vyRgPSWQgQ!~?H{1@@D8s9Te?S2WWoqvQX|FX~jn$Q0)sDA$kj=(G5TI>H7sD6(_ zwKE4*?mj5}w4vtpJd|F(3NZz99mb;mn{YS09jf0Ps{D%Q!%+J8Rj7VG2Kh6eFas;Huz7Fr88Gx{A%}lNS1lKPu~VL&Pk~Dr=iN<2W6KzRDbV-TGtOj&F^Wb z@vTAG>tDlt@I|P0uBCIPXtqPG>o`<9XQ0Zz2g+VMQ2RQEn2K5Q-+vKmyua!5KMpZ5 z^QTbbeGW=*FG7v;KOswR{u`>FH~(m@hqpns+l1=pPN;Do^E?Y>?` zD1H78lpTE*GDY(xC_TIirT=fiF1#YB?QR)PlKu_27k(LPy|2B|m_x7uRWFAc_k&P+ zdK7Mlzw6U~1vTHV!kzFH_;q+agHiw2{8+8;w?fTh2h@D`LFwfbRKNH7?-|rQAA*|S zMs9}!5 z2axw5??&2)bU1~aLQWvk;Wd9!ffB7P_b31tV+w_BIwwn2-{ZmHs+|QwCYgg{>tX78&a|LU(e+>vhkA5 zHJ;vkkSzqR?ztjvr=c6Gf2&*BvR3iERa33qLEZd!YJF3=s<17lw-6^b(7UfbkX`ih zyWwh*g{^Zv9jOk*x5}1g3b!Dm&6^g2PGKW*%B&2N;fr$4T~x5TC}$}umeKA~mat-B zzPc;eJ{0@RIPGVfp>A#$;uXHuFT=&K8LH9?X||jWn*(VUEX8*DR&$_A!=*4z!uiDB zYR027&QgaZYsT|-)v;+=nDMI2qO8-2OLIpUU2s1(ZJ9grY`L&`z%b*qZ6>DY#^^D^ zP)3~r21DzUl|c@h2^nqu>r57n=UGRUoWZq%dD>UguHgS!r0``HV@6mP@5DucHBPV> z+z+pdVVYV}NmkG=a|qKG*%`TRvSWHL?MfMR^DM&tv;5*5SHTr3mgABcC?mTd%b(D= z%|z9iW!srUVHpMs85&uPi=Z3Qbr2Wnjxy+LISA9$PL|tdFrC=2u>~zc3ps=NxOux(O zdCvSNS8P<3v@&yQ%G^0Q8?=~~Iby>Wd)pj|Th{#qWtJuLVQ!AL*Z@bZlT9xbvYl&J-YU9!oTIc8TS%URwE!oJx}>7$v-B3HKmGR9lG z=c@`O+Oodm-gzC5lO$%NWh^wlAdPH*jmPb}!-8E?217d&o3_ivVRIrxQ75vXKTY1J zPtN!`lRyW~>9N?svdyLIh+(3gR+ZClz0`gInrbTYropRss6~)4NSq2;7-*rHJDr}$ zQft<`n-0rGGi`G-oo9Fz&5F0BxTUvK&hwsT73e{Gkrgs7S*3#+-UsukYgsp$O-?1! z&PI9+7X5mjwnbL4LVT!S@N+r@NOrRn1ML-*HAowFrJICtO7BXsZR7y!L}3#aSP7fQ zVG=)}?nw+xdB&EdrsG-kUusWqAj(?y*6qcC5%*$d7PIBPq0P7>#MGdsTU>3NyJqe@ z8rXCx&e3d~F4B8hxGm)~<;Qe7s4yOjLuyx$rO9d#y5k~Vh@+4aMK#ZMVao;u{ieY@ zdvm#IW=f1Fa)-mC5QN?C=Jdt_U9Ik54P|U7vN0j=$)S600T<)WCQ%Mwnf_pM zFf$c?jbnLcwJ2>Tzz^3BVAgh6s?wU?OVNMB*D#u1zDo^!tPNqT|9$;a(Hj*VxwZ>V z%^Z)-)@TizS@e78e3-Vg;EMSc@UkS!x}*;50kyiMyLqVypGvt~_sRiSpM7R_-3bPGow6#> z=W5p)O)-_*nXAuZGp94Ozi4N|q_XBr$Oh8pIfKvDq3l_hGw38(V9&d=+NI)@GpFMm zoEh8-@*d~ekd33QhOa-ij73tdU+^Zuc!?dvDq~%Cl`MEXsz{40f62 zW5M`phs_!V<5j!jrj!N;!aAoJ`kdQ4H?K6aynQQ`({_bxYRuZOGZxHnzQ)C3Ftk{f z-La98<>lq3J9**-yVArZj^LX#{bHm$(sD-GaAwu;2iHjA8yvC4$ndt~M~_dgt7&(0 zbep>xqzss48w+F-BhK~h52D2|$5R}fn?2mvw_Z+5zF_mlBpz8#do0*DAD8`sj|H~a zHl0*?m^2QvV#QdHc3rYKxMzP*zaAV)gBuS9yNCC0Gn+5)NfLI#R*0*^4an#&anbkX zimeLj!or@#BNpNLjdy*QvwqiS8x&Q-(cioL_cAVZ;qS7fLCbm<<*)f%R|~uL2Vuf( zsrFsH*q|3Ds2Zp1_f}EWxXZg9zGM5F3VJ6R=FwujlWZ=IU8dDWp9iDl(Q)Yh_kJOfH?C}!1*lL5C*ht!9r$H+{y?AxFHb> z;GhTw(ky7jI`v~bkHUc{UVGBV16e;FKn(){!D-uO@wf#lGSJPPyK0%o^OdWs)hT0+ zip;Gq7ctvLk=(Jr+gM>eH0T?(e6ivP8ZT&{J9aN>xOCyQCwysNlsQDP&C7aR5zVbV zVJ3Bftu4{#OliaA#-SB*-4BUj%>*}HatSB6hocVsgk6!U#^iCilxvEbI(nAZ$Of`~ z^SuufVP`(}gXrh=V++N2oKDi;IAN8U3OPibukUM@Yrg^qMH;Ii2OL|0T_06kc=B*y zIf*wI(?Yn!FB?#|Y#StD&|Q0+>vI^aa+9mvBRlRVKR56ZAykynVp!+mn$TS#F>PPt+pi=x)nPCuX)R z?$J~+%M#=3#WK9O6D9OJp&!i9Ms6D}o?)7G3z<1VES9L*FfK40HJcG&CRqKz?g=<* zQ6DikV~E^GSJBMPa|^Av-1_Snflcj~X*i+Rw)R)X^}K#5dfyF!4{=YMOQKVPwnm(4 z88jkRy54-X;Sd02X*(_}?rbNr&V0@-9Y^5S*(q;5rSPN3vqw8 z!P*lntzUlj16OBS9SDdP!`0r&qids^f?J^V{unGbJ?D5%aD-Or;JUiOoMsIT)@;Vp zwa1w=*L5oC63YJ}q;qXIlq?I>2KAxSl*Qg6zu&r+3sWj9CxRUOP|6l$1qCWr+$xVi zk*H*fbRyH%y=>ZX9>?YAka9WPe0o`UdZ*0V@I(H;aOo0Ki&kW- zGO{|tmWw|bePKvje4_8Idb>EU7ghCQJv=z4L9VT_DdJ<1s)B?2v@O>D1UKDtu;eR* zaGJ$K*bZBS`)$d8Lk8Y3YE46C+W%M&e=w^shjo59*WWM4+19I447~P6esMe~lMRWk zCX+2=4no59h>(fO0(w5xnRmUH(JQ{odD?mf8K`r^DS^5-3aOqeN4QH~sXmml?%I<@ zj3H4xPK&O^gX0bIBy0wAsHa6tY5BGo>J(BmDf7oHm)1Vb>4`z|v2L|K>a-pNmh1)J z$5vyl<4b>d)+b+YeO#b9MdQ|~zrGY1zrRNO`J}e%3qxI*kg`|bT^KbeR=Iy4A>t+c zWasrxStU0IqB?C+FI7?G;BiJg8h1Ihod4JN0WA}x>bz$>?xNW1pl@XuA-dp>Nw|t9 k-WaaREBbhou^lE>l{>GmnVhm4FED4Y))1Gt?l8>%0)ckC2><{9 literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/es/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/es/LC_MESSAGES/django.po new file mode 100644 index 0000000..f7d763e --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/es/LC_MESSAGES/django.po @@ -0,0 +1,658 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# jcatalan , 2014 +# Leonardo J. Caballero G. , 2013-2014 +# marcelor , 2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Spanish (http://www.transifex.com/projects/p/django-debug-toolbar/language/es/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: es\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "La información de este panel ya no se encuentra disponible. Por favor recargue la página y pruebe nuevamente." + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d llamada en %(time).2fms" +msgstr[1] "%(cache_calls)d llamadas en %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "%(count)d llamadas al Cache desde el backend" +msgstr[1] "%(count)d llamadas al Caché desde backends" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "Encabezados" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Registros" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s mensaje" +msgstr[1] "%(count)s mensajes" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Mensajes del registro" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Análisis de rendimiento" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Interceptar re-direcionamiento" + +#: panels/request.py:18 +msgid "Request" +msgstr "Petición" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Configuraciones" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Configuraciones en %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d receptor de 1 señal" +msgstr[1] "%(num_receivers)d receptores de 1 señal" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d receptor de %(num_signals)d señales" +msgstr[1] "%(num_receivers)d receptores de %(num_signals)d señales" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Señales" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "Archivos estáticos (%(num_found)s encontrados, %(num_used)s en uso)" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Archivos estáticos" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s archivo usado" +msgstr[1] "%(num_used)s archivos usados" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Total: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Tiempo" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Tiempo en CPU de usuario" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f mseg" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Tiempo en CPU del sistema" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f mseg" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "Tiempo total de CPU" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f mseg" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Tiempo transcurrido" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f mseg" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Cambios de contexto" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d voluntario, %(ivcsw)d involuntario" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versiones" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "Leer cambios tentativos" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "Leer cambios permanentes" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "Lectura repetible" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Serializable" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "Inactivo" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Activo" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "En transacción" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "En error" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Desconocido" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Plantillas" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Plantillas (%(num_templates)s renderizadas)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Ocutar barra de herramientas" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Ocultar" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Deshabilitar para el próximo y sucesivos peticiones" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Habilitar para el próximo y sucesivos peticiones" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Mostrar barra de herramientas" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Cerrar" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Ubicación:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "El Django Debug Toolbar ha interceptado un re-direccionamiento a la dirección de Internet mostrada arriba, con el propósito de inspeccionarla. Usted puede hacer clic en el vínculo de arriba para continuar con el re-direccionamiento normalmente." + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Resúmen" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Llamadas totales" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Tiempo total" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Aciertos de caché" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Errores de caché" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Comandos" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Llamadas" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Tiempo (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Tipo" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Argumentos" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Argumentos por palabra clave" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Backend" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "Encabezados de peticiones" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Clave" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Valor" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "Encabezados de respuesta" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "Entorno WSGI" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "Ya que el entorno WSGI hereda el entorno del servidor, solo un subconjunto significativo es mostrado más abajo." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Nivel" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Canal" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Mensaje" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Ubicación" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "No hay mensajes registrados" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Llamar" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "TiempoAcum" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Por" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TiempoTot" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Contar" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Información de Vista" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "Función vista" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "Nombre de dirección URL" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Cookies" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variable" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Sin cookies" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Datos de sesión" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Sin datos de sesión" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "Datos del GET" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Sin datos GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "Datos del POST" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Sin datos POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Configuración" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Señal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Proporcionando" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Receptores" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s consulta" +msgstr[1] "%(num)s consultas" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Query" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Línea de tiempo" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Acción" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Conexión:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Nivel de aislamiento:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Estado de la transacción:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(desconocido)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "No se registraron consultas SQL durante ésta petición." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Regresar" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL explicado" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL Ejecutado" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Base de datos" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "SQL analizado" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Error" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "SQL seleccionado" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Establecer Vacío" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Ruta a archivos estático" +msgstr[1] "Rutas a archivos estáticos" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(prefijo %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Ninguno" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "Aplicación a archivos estáticos" +msgstr[1] "Aplicaciones de archivos estáticos" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "Archivo estático" +msgstr[1] "Archivos estáticos" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s archivo" +msgstr[1] "%(payload_count)s archivos" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Ruta" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Fuente de plantilla:" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Ruta de plantilla" +msgstr[1] "Rutas de plantillas" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Plantilla" +msgstr[1] "Plantillas" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Mostrar/Ocultar contexto" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Procesador de contexto" +msgstr[1] "Procesadores de contexto" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Uso de recursos" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Recurso" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Distribución de tiempos de navegador" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "Milisegundos desde inicio de la navegación (+longitud)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nombre" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versión" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fi/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fi/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..4b9ff457bbfe759397dd5616b971b6c3101a2094 GIT binary patch literal 4700 zcmbW3U2I%O6~_mfl-4OwLZD4aVFGotOS-$ZlaO>1hd7R%I{t_guMH7G)?|0Qd%bt> zEO+Lvy-0`$UO)w;f?5F&JguNSAn_sf3AGQaO7MV$5Fk}Rgg|^ryhQ0sr6TeF-#hD% z#)XKHXMZzuXU?26=gb`6I=Jt7fwF*l1of-$6ru^fxeq@mFWxW274Qe(6X5IM2t_)RbYe+u3J^Vpnm^(D{eLB`wneg9>U_WlZ_U4Qia zI|!A!p{x3kz`!&dOeGME2|Kh(t z2&ZuTAjo}>fRBKqAmd~PJPLjmi06p^?i{0{}SXm{SIWj-txQ+QjdKY zq}>O=4}gz?lv4z`{shQ*=RnGt1fi;!1!@0rR5XP|oknHhIu_b>7M1#4L8ZP=qT-1Z zkD`vFvYg8xa-Iawl>1#q{V*!aW2h%k>6fQa8P_c5QJ+p*LVUuLm_kJuq~)Y1ZG`D* zIfLI(RNBMxany@x3-{iWzMDs-FIWzvGCo-*QOl?^?4aaPM^KCGpz!`Zk+!yf7&|;q z`iSQ|fqDv+zGdNCvVh9F$a_^l{Uj=5fN}W@D$6V?{l>TI7%Iyp)UmXMxbXAxy^{q_Go~!Ktw~VVsWhVZAN#8NgrbjkX zJh3KQR#&mo8K=VhT_dY^O-$Z0l1rjyWHzF_n5eqIL@7F2OeD@!O{*0+aZy#9Vsdf0 zjB}~tOh-~*$=vp?^j%&|(!cl(LowMkuFca6HPc4ZdNxDX0F^KrIuE^y+n5_)4m#$$b(qd7$ zhFH|GSd7hD5K@I}X+&Qi#ICrmtx4jl7BqB8$AJoi&#Rju2DEcr;c2%TaxFG3d9G?| z`uwmxS4taVDGhiJOm;B6DzPg(u++6qwtQ;CEL__FrN0dKkjHT zf^bJyAvYCeaa&^@)o@s~yhuIGADLrtu?6d~pK;kIM*I$aw*4tB6i;kfRJv^~mb3U4 z%T~wR(^piOXtAPjSUji|ya5b;Pb*dey@7XU&BU$D|2Y12#BgDzR`8R`^3uAB>PBAD zHwdTukb=P%&jWw0N~rn2dEQtbhR4WjQu7da^KbvM_c^ zj*XU2jU68u8yUgG!gbvVsLtK*bPz>>ZOB~1xpui!+Su4ArWYhw)0;&+ z10`Hnnr}<(QZ2Q*P@~lamswp3y};61P|6R@&&*G4AJb@YWGKD%5fp|?%91ZY2|f>^ zv$EPyF)r=+a%H-3W_unDThno2Dne``hRgEI&A@FbUPf3BErv;~!ooD1WXm#Yr(HWf zc2;K1@mwU2j?2;f*&#fUyVFlIaW=t&<`7qJlYG)C>aICH(R6UJT|l|J2Kqe=Wtpeh zwL08RJz00~eODIgz?VuzhF;q<_uxi{2-ED_AX71G?O5rkD(}-<^47hq9VDT9nTvgV zD%zU8J0CTn=k9#8HL^P&ad>w=YKol0ORsV13{p}>wN=9{alOW%uG6{(IAOG&t{#f^s3T|61HOixWrLcrTJKVkZR8;fKo=p;_e_j~HxR2frQ#^IGPqwv%(;Ti0ove8w_i zGr|AdS;8`@Mzh&fSQ*4QZ=GY}N@8n+G;z%*3G822Vgj#0Vly<+-fqEuT{G6Lc=kEDI`G1*jnkt6}V{~N29~kZX~oq>X#+Bv27YqV2>8gC$(zp(_nzgLR7Xg zQ*}rG?K52erNDLZKNll{KUtDv3$H7J#3#9dcJzYQkwtv%2nQU4&vV^&JJ@}7X8XOa kgXiF$h-oh~aw6^+v31f}BJ)YliG_Zz*-Z~6J!dEW1GdP7&j0`b literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fi/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fi/LC_MESSAGES/django.po new file mode 100644 index 0000000..7e27b07 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fi/LC_MESSAGES/django.po @@ -0,0 +1,656 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# nanook , 2012 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Finnish (http://www.transifex.com/projects/p/django-debug-toolbar/language/fi/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fi\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Välimuisti" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d kutsu %(time).2fms" +msgstr[1] "%(cache_calls)d kutsua %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Loki" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s viesti" +msgstr[1] "%(count)s viestiä" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profilointi" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Asetukset" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Asetukset tiedostosta %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d vastaanotin 1 signaalille" +msgstr[1] "%(num_receivers)d vastaanotinta 1 signaalille" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d vastaanotin %(num_signals)d signaalille" +msgstr[1] "%(num_receivers)d vastaanotinta %(num_signals)d signaalille" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Signaalit" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Staattiset tiedostot" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Aika" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Käyttäjän CPU-aika" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f msek" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Järjestelmän CPU-aika" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f msek" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "CPU-aika yhteensä" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f msek" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Kulunut aika" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f msek" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Kontekstin vivut" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versiot" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Muuttuja" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Tapahtuma" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "Tapahtuman tila:" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Virhe" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "(tuntematon)" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Asettelupohjat" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Asetttelupohjat (%(num_templates)s renderöity)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Piilota" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Sulje" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Aika (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Tyyppi" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Avain" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Arvo" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Taso" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Kanava" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Viesti" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Sijainti" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Ei viestejä lokissa" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Kutsu" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "CumTime" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "/" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TotTime" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Määrä" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Näkymän tiedot" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Muuttuja" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Ei GET-dataa" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Ei POST-dataa" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Asetus" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Signaali" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Vastaanottimet" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s kysely" +msgstr[1] "%(num)s kyselyä" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Kysely" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Aikajana" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Tapahtuma" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Yhteys:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Eristystaso:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Tapahtuman status:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(tuntematon)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Tämän pyynnön aikana ei tehty yhtään SQL-kyselyä." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Takaisin" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Suoritettu SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Tietokanta" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Virhe" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Tyhjä joukko" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "None" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "Staattiset tiedostot" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Polku" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Sivupohjan polku" +msgstr[1] "Sivupohjan polku" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Sivupohja" +msgstr[1] "Sivupohja" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Kontekstiprosessori" +msgstr[1] "Kontekstiprosessori" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Resurssi" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nimi" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versio" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fr/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/fr/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..74f7470f177c2d8c295866bfdbb335954e7167ad GIT binary patch literal 8951 zcmbW5eT-%0UB{o6LS+@Iv{H(Fd7vya3_G(+ORdY9d(YfC z?78P$&da<|ZK0GW6-;yska#OJQ)8JKYWLO+L$}RTfv*a zPlN9PH^CVE1~>;E{262F;G-U&1AmVCzk2*WcrEqIud3SL4USN+gI9td_P7M{XJUS? z03Y)B2&i$N0r!BP139Ys68Ki|N$_g$8SqB%YvASJzkoB~w?WMtVGu_#2SLrB05xs~ z)H<`iz6gp1_kmo|G(p`z1%DQN0@V1YK+XRnUwutxnhQ2Td4@gV~>{uAH<@Yg}{^+oU+@NYo2GXD%} z-uFQ5^FO}+zo5?bf4==P4yXRBK%MWMpziY?kRfKj?>`1=-P=K(^Il&+2kJg4sCnz4 z<~p_jX0bBt`Kns2j zl-@lLYM)oYL*T!G8vibYqx0VY>U;-4-TMT1GdK%A4d$TucKti5{`Y}8&j_e_c9)VS}0 zI>!${-Sdi{NA_=G4{(Q$N2k!wnvUwO3pMMwB{67H2#|z-c zz!yO6_l{qv?8IJB_nHGW?qi_%c^=gK-}3EW0JYy!p!RnIQ z`d^^*`pp=7L}n}~z4!nqJvjnu{N14Vcox)omVEz%p!DZ4Q2TurJOchUsQ31dAS!QO z0kz(LfD_=4K&^8dn`{3$ez>}cLGk}_Q1|@}Q2YNLsP&!%b-$-Uo#&51?f-R9eEVxq z_j(1?xbK15_XnWHUHRVXp4Wit9|pDWxNkoNYM&;k{oA1UT7r`Qr+oVppw@j7)cbk? z)Or3ANLgNMPt2gRq$EjA6j4%B(?2PKyX)V)3l zs{IM@X7EekcfprH@$K0gs`ESt>O3!k;>+KHu-tshxBn2-ewU&2TK`&51#r>kYph~_P)n@1rSl20y+gf3gyrN$U^$2p`*})5Nz1--REl$f#VQj zao=8k@A2g^kHp^re~slG=bSYsBTv(Pyx zgCvVjL6X(`A$^!mXEUUSA6En4Cn4$My^!>(_x*CO04_qy&>SS4s6qNpL#xn=DttFV zpLV6{4g4Zy)Y+VX8qh}}>4v_CA?blW$@iC_gOGIM7D(S2XdbFV(&gSKy_N3ilkWct zGy<(b`yuI#bn3&1~dsxL9$Ovko0^Qx&zYp zAt+LT?-29>C{%^-E@%R}RTaKBLxC&tMudBZn?Z9WJl723I3HS7*)+{MV5{X{Z}p4Dm3i3WddpE9T9y6uf#$r|-VHY5G-#dc z@knzReyL`0CU*iEtKYJ0J9*forAUh)9@*7$Zr8waSIcTMUxT}=X^g~zY-7LOI~@7O zDCsww;W9a&q-)8DIhv$)H44{`o1G}ya|Qj9rev%}jLlk$z2NhxUc>(mqO zW@$&0oN~4766h!a-BJ5ipad6Ve9`=PiJBuPjuPILC<4nfkQIi=NI zwxMznt{1kOrA>4_&33oA32son78Tq;4e5Dl`J~QmCd}|X&NsDnK{`)*-s`mbh9ZGS&-yGrA#N`Zq^LD1&3@!m;g?BGEd_` zs%GPGHH;hPu5d%NmS!y*^wn-won|&|y0QI2gHpR^mvU9w(!NvPP@Rh6IO0*I2%2}F zG((GyN9}6EoEK8q;eBzKw2PGyGZ(<9xzzTrNqPS61%GEM@W2^3gl*TtOuTM#Ot{l3 zGxn`S?FCTRQcbTK6ut4xZOkDtAT*(%xo+-wI+rG)+1_qGC|1mTn3?%3#e(Qolvbmb zO7}P`dm1UQgWe(%GOk)CgALx^($x)-o75&_5_P8|J+v!co~Oe+Es+o%RRNnOgHN@a zCMalcptM2U2-mxD5GCxc8qY??uBzl=jDS@MvnYt8hqOJFfh#YBMWO3>%=?AP5*%%& zt?>BX{OG7Fn1z*et*>Yc&Rv)anCXP8hjZ`3?I&%RtVS7}jgl31FLL*!e534`Jb?yd zv2aNHZJNXzHgK*XT8^3lBl2>I=fabN6#%|Nu0Y8%7&}a`x*ykp~QUQX%{x~BJ5bqZS~FR z?NVx@&&&6aP`)99927rUF+?MKoQW1iS%95v4m%tObi>dho*MHyP`>x%2|SqsYv zk~HfCaoso@s~`d2Z;vR>fLUEvl(XNZ)%^U%CFQk;N1tXz?Nr{5TD22pJFhLK z4ZCOl?#0?9RzNG)a8hBzj*lHUSQ|T78$V>n4>S&q?;9H*8)IPYbhsMnq`Su*xV3TU zmVIMCS z-iAHA6czn*H!xLu=HoI8;@S)X%NsW7x@vxG{D`fJ$A%Mo+#VP?vd3H;mt#VR3&Ph4 z%-yK`Qo|H-@O~7LT`P1P)=~^O67XB&aUuWv+|#8 znr#i0$&U}u{p!2M_2cm7O2oq>Fvjn1ZTd6r>?Kh5-Mabiu-q;2+C95sc82bV*n9OI z@j8t=qIK%qu{x$HARO8itowE|93`!-O)M{_ZEKU5y^A44GOHzl`cXO~x#tMevLkL^ zHuFIibha)O8PTZ%ce{!sCfbluIUN?b2y-eekQl)+?lL7bi9&*zUXRyFE?a86)1bv_D+GgtKVELUO9`9>?UuPap+PXw`;FsJLV^_#!ui% zb4#{U#%SFv@nMU!Vrx?c&Z=;pL%^Cuo|)(Z!$4PGZn(wMp)624e8|Q@75x)^D30Br zY3s{4zH*fn>N=B{+uuQKaS=9=jO`**B567F>bVoXl+h{y4VxwT1xrDIML(RCCP z5>=Ao;e1|qh3PDlPAJ%$UT2}QV4bPnRSBF~v{uN>%Rd#)V0VEh?-kNsa_zl zf1<=-+4xlly(<=xQ<7rza|Q&+t#z>~b)cS`IgSihTSHMVjgXKhb-MxGhj*P0O!C8( z48=jyNp-NSsXlW+Hl=-l14yIpbcn^fL|Wkl?DQNy@<<6eBpdEJkZ6!%q_{aaN0O0t zc#6#uMer)3eBqtmO!u~b=;6cUp2}*U6Z8^KsO|FEPBe7Yphqzyf!i-o&=FMR+Fy7(J z;;>8P?u-wo<$Y8Q2_o$`qW|Q05_zwin{~OX3z_3&KPf++5xsJDr6#VuZnrU(A#=2pX#xZ)MU1A_gD!Fk+$`(9iL(a z+bI=1msJ?BZx(yZ6CF}^;l+X12$l({;UaSD@ZNb?SQ|W9Ud9rKH4% z`IxLv$-_21Z6EDaZbAp>yW`4Hxv0u7=*kiVB9aYV;@ZA#C~$$t;J_+xLsq}MPM`z2X^&hEx)MK3%$51atvI^L{cYT_}W?BOj;#$+LlnQ Se`VGg%, 2013 +# claudep , 2013 +# David Paccoud, 2009 +# drivard , 2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: French (http://www.transifex.com/projects/p/django-debug-toolbar/language/fr/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: fr\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "Les données de ce panneau ne sont plus disponibles. Rechargez la page et essayez à nouveau." + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d appel en %(time).2fms" +msgstr[1] "%(cache_calls)d appels en %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Appels au cache depuis %(count)d moteur" +msgstr[1] "Appels au cache depuis %(count)d moteurs" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "En-têtes" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Journaux" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s message" +msgstr[1] "%(count)s messages" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Messages du journal" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profilage" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Interception des redirections" + +#: panels/request.py:18 +msgid "Request" +msgstr "Requête" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Paramètres" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Paramètres de %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d receveur d'un signal" +msgstr[1] "%(num_receivers)d receveurs d'un signal" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d receveur de %(num_signals)d signaux" +msgstr[1] "%(num_receivers)d receveurs de %(num_signals)d signaux" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Signaux" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "Fichiers statiques (%(num_found)s trouvé(s), %(num_used)s utilisé(s))" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Fichiers statiques" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s fichier utilisé" +msgstr[1] "%(num_used)s fichiers utilisés" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Total : %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Temps" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Temps CPU de l'utilisateur" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f ms" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Temps CPU du système" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f ms" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "Temps total du CPU" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f ms" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Temps écoulé" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f ms" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Basculements de contexte" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d volontaire, %(ivcsw)d involontaire" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versions" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Auto validation" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "Lecture non validée" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "Lecture validée" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "Lecture répétable" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Sérialisable" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "Inactif" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Actif" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "Transaction en cours" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Erreur" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Indéterminé" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Gabarits" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Gabarits (%(num_templates)s affichés)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Masquer la barre d'outils" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Masquer" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Désactiver pour les requêtes suivantes" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Activer pour les requêtes suivantes" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Afficher la barre d'outils" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Fermer" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Emplacement :" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "La barre de débogage Django a intercepté une redirection vers l'URL ci-dessus afin de permettre la consultation des messages de débogage. Vous pouvez cliquer sur le lien ci-dessus pour continuer normalement avec la redirection." + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Résumé" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Nombre total d'appels" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Temps total" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Succès de cache" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Défauts de cache" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Commandes" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Appels" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Temps (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Type" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Paramètres" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Paramètres nommés" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Moteur" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "En-têtes de requête" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Clé" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Valeur" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "En-têtes de réponse" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "Environnement WSGI" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "Comme l'environnement WSGI hérite de celui du serveur, seul un sous-ensemble pertinent est affiché ci-dessous." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Niveau" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Canal" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Message" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Emplacement" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Aucun message dans le journal" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Appel" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "Temps cumulé" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Par" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "Temps total" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Compte" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Afficher l'information" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "Fonction de vue" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "Nom d'URL" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Cookies" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variable" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Pas de cookies" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Données de session" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Pas de données de session" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "Données GET" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Aucune donnée GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "Données POST" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Aucune donnée POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Paramètre" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Signal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Fournissant" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Receveurs" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s requête" +msgstr[1] "%(num)s requêtes" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Requête" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Chronologie" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Action" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Connexion :" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Niveau d'isolation :" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "État de la transaction :" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(indéterminé)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Aucune requête SQL n'a été enregistrée durant cette requête." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Retour" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL expliqué" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL Exécuté" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Base de données" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "SQL profilé" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Erreur" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "SQL sélectionné" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Ensemble vide" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Chemin de fichier statique" +msgstr[1] "Chemins de fichiers statiques" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Aucun" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "Application de fichiers statiques" +msgstr[1] "Applications de fichiers statiques" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "Fichiers statiques" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s fichier" +msgstr[1] "%(payload_count)s fichiers" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Chemin" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Source du gabarit :" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "" +msgstr[1] "Chemin du gabarit" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "" +msgstr[1] "Gabarit" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Afficher/masquer le contexte" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Processeur de contexte" +msgstr[1] "Processeurs de contexte" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Utilisation des ressources" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Ressource" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Chronologie du navigateur" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "Attribut mesuré" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "Millisecondes depuis le début de la navigation (+longueur)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nom" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Version" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/he/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/he/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..08c8cd4a33b5bb92a18c37b2446645f1926621c6 GIT binary patch literal 1603 zcmZvaO>7%Q6vwAfXfR);w0yJ(hKh=YYQ46bNM+L?(!`+=4o#bFkBISly56$hv3AEv z+#}+|DTFwYQAkNeA@zkLoDfG26(^**A;Fzn4@g}2zx9w*z({X@^Jd=n&aX!f_88U) z$V-s>kW-L*2k^oA;338y1%+i3JP2KZkANC{47_RekHIIPe*%)-CO86afe(XsK=Qk5 z&%Xr^LI2+JNAPjzKYBomLGu3yB>xTY7`OvI z2YzSof429(TmAu3okxuc+@qE!EKhnW z4nwHM=OHgZo`gIDp}e$c?zHG_&_YRh4^%(Ro)*&P|CRPMKdR+87C0yoL@5(N#$t4-HnhHc7 zucpE9o8I`@GbOA-O=Q~fQ;}q7L8Ts_>bB5pz^6K4C(}{F&x_$nQP`8W zTVpFlm4nQzRe*nDl)IWGE8ad{V)eY1)!o-Btt zG`Y>pIvfY&wr^s#k#Ar&8T_}&dmBM|<_psMu)~&P)5G~K3eYp3p*+~F;`A0bU&6VE zZ=c@z|D4i`-#h-tJ@0HA(FgEEtR2K!!*=U|Esjvc0L3FXQeYMv!y, 2012 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Hebrew (http://www.transifex.com/projects/p/django-debug-toolbar/language/he/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: he\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" +msgstr[1] "" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "רישום יומן" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "" +msgstr[1] "" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "סיגנלים" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "זמן" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "גירסאות" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "משתנה" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "פעילות" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "שגיאה" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "תבניות" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "הסתר" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "סגור" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "סוג" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "מפתח" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "ערך" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "רמה" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "הודעה" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "מקום" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "אין הודעות" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "משתנה" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "אין נתוני GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "אין נתוני POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "סיגנל" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "פעילות" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "חזרה" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL שבוצע" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "שגיאה" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "קבוצה ריקה" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "" +msgstr[1] "תבנית" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/id/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/id/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..c22845abe9b178f8591806f48cb372d069d9908a GIT binary patch literal 2989 zcma)-OK%)S5XUH&n>dq)us04E+sVdW8!n*q?zG39otLJ2 zY%iR6NJPp7gd&h2+~9=72S5nH0WKgw;t&MN0r&uc4}kdBOxtUd9B6INud5%`Rn^_K zH+OBk#!!Y)_oM!{fw2qVhj-(Ha$_T7hrwUKt>8c4CUDC=1$TnzVtc^HzP<) z_eYTSy8)8kKfzt#Um)q*2q$R$R*?4F4$}I)wx5Hv?l4ID`tA4$@Brjd5I=Sa9~$?; zhrk%5byvWh;5Crq`Y}lRd=1k6-&y%5kkAd!X6pso> zajbz@$}WL)ewRVAD+1}fmu&wVw*M^S0v66IAG~585Ku479|@M ztv0LGXI+j(S=d|c8<-C@FZYy9Y(!w?URD!9z-kL3iX<4sTC!RUAy?+24GUN;3mYnw z?5r@NDKKR$5Q&x^H`F^8CZ@x+G;C~HwlahMnTwO`Ips+<9&wY3NQ=U_aUBPO%;bSw zl!418WQR>slTF60e1uI|XV1s{*|7%quqQ*ieqp97*nnsr#J(>*j7O5yWy+>yOR7bg zYP58mr7g+GmKm8U5vW&0GeCzlMn(P#^=gC9r*X(nwPH`6>CvYud4tU;KN5ijCL5U9 z;`53$b=&I(Aat~mA;$p}F>1&#f#;GZ!Yr_Ll3o?jqIlAWmqXpl8nG#Q=*ZS6>qeAo zn2>3gH9Co8v&CItvs$Lz>2o5;B%2cm0l7bi=+H&6)ND@4C9b0RI1P&vsHgE|TmWa> zbL=FSpS>(1Kjvp;GxK>Pj)SI1OVcumQ{zl&UwO`G=4+=ByS!At&~R$0%#}H~Gt%V) z)&4=JI_L}x@qvDKXy9mdpjyR5XId^QGUxVr{U_X^V@InfrAeWU(;%-A!#H*MNGHUJ zw)jZqXBvmePl=+ZPuQMk!olUfIQ7q9apY%sJx)W4(B{Cr<#Jyu4l79!0bNNdUhcT#k>idj9IpgcXGM9H-qO_g)L1uC{e9IEo{*6dY{sd$ z+{k59!SSo;ByTN<6i?;!Y~!3W+?_|h&CApoi*V_1IbA;7RA$w7mn*MS53*DQ&N-Zu zc6pTKqCVY!k{8X>)sv+)DI$?tM67I-C)(UoZE3_prjRGvS{0uO88-1M{!f~y!(m?q zY(mgmn37RuvV=__lF;Vjt(y!lY9&vM3axbUa$gW_lOY0WAi_js3RA-*ixB;GtYdnG z7bkf`rqCnX87zbD4(!UJj%vexdSaQjNhIH^f$+42;fitzZ9b7jErnN;cO#Fq(Tik2 z-ZygRg(q@jD4+bdi_*%PzC38W18)&BBqU+FgL#6f%Lq3w6l^97n|NiO=%9@hQ@k%E zGR*K{Gfwo*O)N>(9kNW+$+Jw3QJKPv{Bf%`TQ9BT6pk1p$E;?L^{IvBfiJ#DCMrNS zHmcptDXVJo|ARZk`FR;B{J-3Ge^wVJaMZ_9vhxaeyBmN!XB6p$O{xVtsv^1ISpEe< CIh3ma literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/id/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/id/LC_MESSAGES/django.po new file mode 100644 index 0000000..8589fb5 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/id/LC_MESSAGES/django.po @@ -0,0 +1,642 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# Muhammad Panji , 2012 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Indonesian (http://www.transifex.com/projects/p/django-debug-toolbar/language/id/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: id\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s pesan" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Pengaturan" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Pengaturan dari %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Sinyal" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Berkas statik" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Waktu" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "CPU time pengguna" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "CPU time sistem" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "CPU time total" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Waktu terlampaui" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versi" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Variabel" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Aksi" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "Status transaksi:" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "(tidak diketahui)" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Template" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Menyembunyikan" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Menutup" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Waktu (milidetik)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Jenis" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Kunci" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Nilai" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Tingkat" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Kanal" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Pesan" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Lokasi" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Tidak ada pesan yang dicatat" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Panggil" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "CumTime" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Per" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TotTime" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Hitung" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Lihat informasi" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variabel" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Tidak ada data GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Tidak ada data POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Pengaturan" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Sinyal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Penerima" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Aksi" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Koneksi:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Tingkat isolasi:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Status transaksi:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(tidak diketahui)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Kembali" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL Tereksekusi" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Basis data" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Himpunan kosong" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Tidak ada" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "Berkas statik" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Template path" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Sumber daya" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versi" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/it/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/it/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..25867d6b02b2f6885512bc49c0f81617707ff1d5 GIT binary patch literal 8772 zcmcJTd#q*EUB?%SV6UZB)PkUNL1&nIojLc#4A3(V7-sIkg_+?p_s&!*Fx~f@ea~6U zK6@Ybi^fF*5Nmx%6|?{!7oCs>%YUx;l*^uP|Ouj z^>#t^vnQl)gc{fWkbg_yEY$esq2_Zhq)F2a-&dj9{Q%TBKN`{>hnmmRQ1yNbs@@Aw z{d@(Y3g*wC#{IRxuLo+-%D)V%-K(J5yADdEm!S0S6{z+u zXEXM}w?dUa4K@Dzq0UhrZ-Od!E7Ukn zLe2Lq{K7@p26zwYJy+E8c`v-0^ph}yzXRvt)RpKad=yI0o`Y(EYWG*6*5%W12YeoCd@qOZ{{mI-TOs`&sCB!P z#ZvqC!fCh&r8ggg8t0R65i==5em)V>&jfxBzLoqhLXGF| zpvL)cf&UF7(w9)^TG)ls>&Kw_`3$@nz6dq%|ANw+OKe^4N~m!jh5G(Zcs*>vXW(N{ z>v1!UYhH(-%H0XIp7T)ixF2d_@a*74`^E7vKZR&-K7i

IpE*wpJ`Ac6Cv*yd>5koCP(xG~PuT4eA@&+kKy zB0qyXi0ne%iRjr`!#v^>qphgbjnB5CBq_$)R2Hji7eTaI&$XYg*bCF|>+EnFv!{8+MmyqI~L`ud+g3p7cyNs%r>L_JYI6= z`C7k>6=P$TcyiVkLB1L&O22vPRqg^ zuF9;H^?I%}w?(aU{wGe`=C(XrDdOBROqX`dk-5`NdTgO6lU@Ps=-OnZkYnbEl(zo$ zD$9!JSx=R`!nN%p?W<{D@P92*gfd;n2BO13kQuP)%cIIeQMs_JyC($!v;$K!S`iK8Osq)3~n5mTWP^IfN>%vZ;KbBmNQM_r*E@=d22 ztO^xXO9SS_QJ!;Iunsdx)JJ=@Be9w3^~+UT#HE=@UuX3^XZ|zi<5pGD%KSaY&FwP_ zw#~H69dXp=Y@0h=JN7@e%(7%L%FS$>12CJ~*w^Nz%%il3YGs;bb@Nu-FBxRpVHOzW zY>_3ARLv&wa-1~HUGb`9CCl438mirKeKg0jmM=SeY4X+?*s4N_j*i|ml`$tqo+5o|D@`Z4<^waKYO+Uv-Gwj1{IR9s{gJH&_j z1v{rpfMh>QQP4p_X@gcHKHpCwm(sgZ92*(HI#I+48>~c}yC`uN)IEuHQ=X5@Qqu`6 zhA*`xIMB-4@u8i?feHU&=DXR-P|@c76=G^o({HX0&O7FBpS5wi>~dDtrCoY23xA|S zrtFw*2NlL*aY^m5S(>cc$X^$3$+aR%6xAZfg(GVV`c3U3XLDuT%$F!ntG*nfet&bC zk*q7w*CuYx*id9+LPnCi_3RRs#9u+8?7A|;{o`TgE6f+S@BC^}#yyLn|_t|G0Mfby*I0{^r>wnu61r*Jq`d# z9jFwQsbY)q?fUNnQ(_rGn&rJH88_Yl>&K4jrqLS>#ClP8QCa405wm6%IEx$#wTdYv zS=Lo`E3aErpY-mPitwqFP4%zba`gpg7S=4C#k7=F!2+-LW1~5zvMs0UOV^y%MLFEE zGf`5-=1jyX(Fr+&Vb#qWSeP>`l3n6p`wQ8pT*}4LLlG&rUf*RR9^}+DX4{QWzq##x zjbIV7ylk8(IB&h7HcrLMP9xn~ZtCsLeK+i$&yhAreyJgvLPE4$$FX}87$8l* znCMTmy_Pn-o;AYlG?9b`CtNu(HgaP2#LU_-yiO}??Iln4C5fa@Ug~VWWI;ZCD*y|y4gxC z#X8d(JbtvF{Ox@BSI_=`^6aro*oAD1YajB1Z;z*HH+c621}!UE4qsg!K6fs@{lLvn z<#9M&=x&kQ8dv`Urx+hUAn#QD9{LpOZ?(1gB>|*Wo{~x^lftuo$M;Lni zXS^QAY`N>1md%p>6(5d`=HrMLqf1zlIQ9j?2A0g+(9dnobi zjRvCLqSrNlhZLyPARIVJ#KejX;sK4TU|Ve8z3}|H4WP2d-{(s3P8kJ!oRVbY_7tuN z#xk-j76E}{6Y=02W^Os!6cXS`EmMeAR5s6;L{FD+9Sl&7Yi=z{@Hc;EG0dn+USzoJ zg^Rf_m#d5^97Zu5R_Ap$HzRi+?@lfuhqI!xA{HlKnzl;|?f8sXy8`Z02)3<_aS~9F0FF23u_O`?iC(&Lr7v-7mb#|NR^*C`+l4QfEVffMv zkwVAsAddN_2tvkkT@0bEN|IeJb@Xl9v>AnX!jDm*M3r{B@r4V~7<#B^!XG{Da3&4a zYSdX&4|#I=LuO>XWAEdP7oPG?gtoBb3RZ%76J_9;#xT0!0yf|zF3dup-C6j@L4Y3M4E$5meLje?Q7?c!Q zNe-WTzG)PISUIb0K~8PmxIS9Z(H}R5`~5mBk@M+V*ze65gDu@yEabY4xyQH~2z^3R zN(~Z&2w@PU1Y^4;OkogXW?uhh;RXu^M^10SO2oZL!L3&?_TAxY)#1ha?k@ZoHKE_$M1o4Z$*1?LdS|5O@n>v>9#)Ke7 zSFAb8nWxW, 2012 +# Flavio Curella , 2013 +# yakky , 2013-2014 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Italian (http://www.transifex.com/projects/p/django-debug-toolbar/language/it/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: it\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "Non sono più disponibili dati per questo pannello. Ricarica la pagina e riprova." + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d chiamata in %(time).2fms" +msgstr[1] "%(cache_calls)d chiamate in %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Chiamate alla cache da %(count)d backend" +msgstr[1] "Chiamate alla cache da %(count)d backend" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "Intestazioni" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Logging" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s messaggio" +msgstr[1] "%(count)s messaggi" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Messaggi di log" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profilazione" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Intercetta ridirezioni" + +#: panels/request.py:18 +msgid "Request" +msgstr "Request" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Impostazioni" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Impostazioni da %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d ricevitore di 1 segnale" +msgstr[1] "%(num_receivers)d ricevitori di 1 segnale" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d ricevitore di %(num_signals)d segnali" +msgstr[1] "%(num_receivers)d ricevitori di %(num_signals)d segnali" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Segnali" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "File statici (%(num_found)s trovati, %(num_used)s usati)" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Files statici" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s file usato" +msgstr[1] "%(num_used)s file usati" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Totale: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Tempo" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Tempo CPU utente" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f msec" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Tempo CPU sistema" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f msec" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "Tempo Totale CPU" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f msec" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Tempo Trascorso" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f msec" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Cambi di contesto" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d volontario, %(ivcsw)d involontario" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versioni" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "Read uncommitted" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "Read committed" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "Repeatable read" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Serializable" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "Idle" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Azione" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "Stato transazione:" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Errore" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "(sconosciuto)" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Template" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Templates (%(num_templates)s rendered)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Nascondi Toolbar" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Nascondi" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Disattiva per la prossima requests e le successive" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Abilita per la prossima requests e le successive" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Mostra Toolbar" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Chiudi" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Location:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "Django Debug Toolbar ha intercettato un redirect verso la URL indicata per visualizzare il debug, Puoi cliccare sul link sopra per continuare normalmente con la redirezione." + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Sommario" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Chiamate totali" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Tempo Totale" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Trovati in cache" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Non trovati in cache" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Comandi" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Chiamate" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Durata (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Tipo" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Argomenti" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Parole chiave" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Backend" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "Header della request" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Nome" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Valore" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "Header della response" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "Ambiente WSGI" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "Visto che l'ambiente WSGI è ereditato dal server, sotto è mostrata solo la parte significativa." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Livello" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Canale" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Messaggio" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Location" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Nessun messaggio registrato" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Chiamata" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "CumTime" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Per" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TotTime" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Numero" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Vedi Informazioni" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "Funzione View" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "Nome URL" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Cookies" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variabile" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Nessun cookie" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Dati di sessione" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Nessun dato in sessione" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "Dati GET" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Nessun dato in GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "Dati POST" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Nessuno dato in POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Impostazione" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Segnale" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Forniti" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Ricevitori" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s query" +msgstr[1] "%(num)s query" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Query" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Timeline" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Azione" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Connessione:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Isolation level:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Stato transazione:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(sconosciuto)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Nessuna Query SQL è stata registrata durante questa richiesta" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Indietro" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL spigato" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL eseguita" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Database" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "SQL profilato" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Errore" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "SQL selezionato" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Insieme vuoto" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Percorso file statici" +msgstr[1] "Percorsi file statici" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(prefisso %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Nessuno" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "App file statici" +msgstr[1] "App file statici" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "Files statici" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s file" +msgstr[1] "%(payload_count)s file" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Percorso" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Sorgente del template" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Percorso dei template" +msgstr[1] "Percorsi dei template" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "" +msgstr[1] "Template" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Cambia contesto" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Context processor" +msgstr[1] "Context processors" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Uso risorsa" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Risorsa" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Tempo browser" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "Attributo" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "Millisecondi dall'inizio della navigazione (+lunghezza)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nome" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versione" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/nl/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/nl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..043aedede1278ee316a3cac95ea0742383c88240 GIT binary patch literal 4315 zcmcJRU2I%O6@Uj?AT=!|r6v3nn35m7P1kEXPDnSliS0OP;>2;h>mUJAnBASdd+odT zF860`gZh9#m4JszlnV8MC!|Uh5(2?XD$>rsRyC7 zAAxU&4?F!7ci=l||2+J`o0R%0Jc_=?W@Ffgb@&>T zxSGePa1BaaHJrW+C(yqF`KcFp$U0w!vfrOWS;z08_~#E!{|l73`n%ILgJhk@p!BOi z+0Q8`=Q{7&FG1;d4Kh@H!s#6-e)tR&fA?Mc6A)LbCtdq9Q0zYE_+2RTJ@51%Ilc_V z-cO*+^E1d#{f5T_@Q+a5A7C=Ee-D&(9)hyp!w{FM5|n;3P~z%QDE8(cKefU``h5~g zoVB5b36%N124%h9gtG5%LFxB>DChSg6hHqIz8C%u%6k3@KLYQflgvK_rTvuSStxcd zLAt7S#|D&hj-ibEB9wi72}-;@4aHy2L9zE8r@sKj-iuJi{}>Wh>VwEQGLMuIiJkW# zk0Iix_aW2B{fLy=0>dZQUtVO7vd%}4W5_9FP|i|eI&}yUABjI7M)nr*nUs$r4*8(Vd!Y&BovYnuRPx4#$*3u3 z{=Zq@(=SQ=t}RVYoM`KAVw;RiqtpcZTW;*@nC)xnH;{vt!-4X*UY*sZo1t~ z^!RA8qLYB?~y#J03-MlE-H>8?&} zs+Qw8iq-OtZDuKNYu7HT3(IxgVwif&Z`u5z(6e^$JTlBP1=F&S2LJC3?~wi&hT{Ly5#l2=r%6KxN7Sj!_= z6<}o6?Q+1Xwwt83t2vv(fpyzu>eQ-1B^lOq&!nB3wb9ExH91!KqOhBrO8ER@8@6n0 zTP0POW0Hp+mlKy7KA|Z}i&ql8d)6Z=VN*nms>dcwOdbe2Nllt1RaM{ZS+!9Fq}oVq zJQ{u71esOW4L%hAUFY+bsB}!!bs|^$VLOVu#aVMko5Wf9Vyo;rRrR?|6MB(8XB(NP z>qWqft=nD{r{yb&=eNp>nU|F7QB{wvU9FdwVw)Q)6QZ`NrzfXo%9AtY>63bTs(Nzz z_~i8DBpu7^w(rYw_V=55w0iQy@kz?qWs{`keAk>x6j$}aZkLc~>V?e9`1V6RYl@Z$ z<66#kXLcr{*qdi?=w;k`<+?RpHj<^yjvnu%X|GzTY;SK*q~cD$ZFeS`QMb}7HlI{_ zl~%sza!dAHb{|P4aONsuP$`XFxp-xHiooC9tddbi+@F%dYA$7+VXn*aYSC98p3;FISVf=`*^h&W(rq zp*cNOIy1)IH@NN_;-gNwzr}{M-Fn}%?ml}XasXG9yubCvzx}}E4UfzRy8GM&w_98> z$KJ00m%BgqH@E#D@V&j4f9Ts(_lK|4c;4XIExv0>0`j_nhE67MYSQfZTMc94A|2Q~ z8`w5iNSt~9dpfvET-qM~UooMe+r|xId(Jeq;pHjgd{$lyEZHPbtNc?inM)C*Hy3TI#&p#M z%e2EBk!zzIkgF~@>E>Bd#eYZ?*c_&ctAhYd)MCs9Hpmk=0uvS!gFIo`10E-#aj$cV zm>5;r*$1r{1=|R>QRz`WDXGX87 zV`|WO)F=N-aBJ@1yUepko;+j@j&zVbHd{&HZ(>TahrA, 2012-2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Dutch (http://www.transifex.com/projects/p/django-debug-toolbar/language/nl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: nl\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" +msgstr[1] "" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s bericht" +msgstr[1] "%(count)s berichten" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profilering" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Instellingen" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Instellingen van %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d ontvanger van 1 signaal" +msgstr[1] "%(num_receivers)d ontvangers van 1 signaal" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d ontvanger van %(num_signals)d signalen" +msgstr[1] "%(num_receivers)d ontvangers van %(num_signals)d signalen" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Signalen" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Totaal: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Tijd" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Gebruikers CPU tijd" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f msec" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Systeem CPU tijd" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f msec" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "Totaal CPU tijd" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f msec" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Verlopen tijd" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f msec" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d vrijwillig, %(ivcsw)d niet vrijwillig" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versies" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Serializeerbaar" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Actief" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Foutief" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Niet gekend" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Templates" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Templates (%(num_templates)s gerenderd)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Verberg toolbar" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Verbergen" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Bekijk toolbar" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Sluiten" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Samenvatting" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Tijd (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Type" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Sleutel" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Waarde" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Niveau" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Kanaal" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Bericht" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Locatie" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Geen berichten gelogd" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Oproepen" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TotTijd" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Aantal" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Bekijk informatie" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Parameter" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "GET data" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Geen GET data" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "POST data" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Geen POST data" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Instelling" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Signaal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Ontvangers" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Query" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Tijdslijn" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Actie" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Verbinding:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Transactiestatus:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(niet gekend)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Terug" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL uitgelegd" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Uitgevoerde SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Database" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Fout" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Lege set" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "None" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Templatepad" +msgstr[1] "Templatepaden" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Template" +msgstr[1] "Templates" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Bron" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Naam" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versie" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pl/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pl/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6c1c79142329c43d5b48babf235641b85fa67915 GIT binary patch literal 4851 zcmb`JTWlOx8OIN8fnZVyDdiR@r?fF%()I2-4ox<;Q#-L+Qzvm^JCV`{>+H<&dc3o9 zmbrMdn>?V>sz|hzNCha33L!{Hh>KJO6;y&iNmks%1C@Aag}4X_LB#_+pyq)G{{NY? zz9cTBRY&v9@0@SGbNkMB=9@okz3s~a*Cgbl5cd`#6!_iS@W54khY+6uOW?iWY4Bs< zH$Wf!DR>CH@0~)t4?Jc06!-zuzi#Uh{t=tzkyr8*T7rBO=!&dYzAq!73BEaEbjr?&km5|7eV$v1eU-_a4UEU zq}|gXZt)Br?Dsia|0c-(zXx*M7eJ2lqSappxi7y4>CeC0_y4rK267xam-~DN2$d*; zyzm)3#m8MB<0l8=mAD_|d?rB7ZwkbaViu%7 z=B<7KWE=$`?Y{(`1iuQ>ehVf|ZUfn_7i52Vkp9{Qa@>7Ze-Pxp&Vk%l1+rZLa^4BZ zah?QecLt>0*FfCjJ9zN@C6MhdgS7i4$o=@8t-k`&?yn%GD*gfD7XQKH0C+o`b`N+I zWV>aM?fwk1zgI!V*=yil@J<93 z`#%Ei03QK4{u5UJq~%vY+~PbQ9QPu~et!tE{m(#-_bZU|d&%-;5V!af9ta~b1}Q@( zAZxGtQ27YtLsm&2(*L{|A9=_JAri6=!q}r9dF{?1Zn5lw^V|jDy6EE^qy*u-ix6Jh zGNdv40LnuU`j2}t4B<5ip^tfStvl0_5aX7_gAlIs!;p_d-VdQ4xX1TH=o?<#gFTP| z$U~4%L3r_u-V0%D-UZ>_bgw&6;GPs9BarP7UVRY8)F&amko^#zjZZ^(^+R}8x!-p~ z(rbI4qnt%O?u~*l*{(*&hBsMaNHnK8F5a%LU*HNUZn(fwW*j13! zVe;8ThplxrPusWip?0*ltV7PHTb5=)rfugVuNtUyuC|o*vSF*}%{61IlFYjQf4#4< zi&B>r`*$wLdZZn+j7_Zk+zp!f8w``{G<``>3rsV}iJ`#AWluLp#848bW###*;_DGH z>cpN2QY>pRn#9I2^|}{}G3C_KhYnn^e|oMAzd7)EG2Khqw>m5CZBFdx{%6m0_anIw znmQY$d*{juI!ybb;r}#=(2eh>4-^+w5NOnV6QO@hP6aO12HJG)Wt0&w;(&@(MZspg z-iTW=(yyg9I7BvnHMG_<16|@`g&RWW%00X zi76JvlyTBGC{(LnP!$Jla2`^1Ee;v^;P|X`F$I>V56`StFlrj62u#`3p=Kjkq2}osmfVn{E7;Dj_QU9 z>bd!`q#EUCO_mR|svY-l zL5KPA00D+TEX&;$FJ75xE0TYO5Tw4T1bDLN0ZlW;#|2%H}MFsNtIbEym~9!g`A?Jm@98;R&UDgt<0*} zjdq}d7Sd`ZR5jW3TvJPsTJgd)QGE4mBWNMF)|@4UXWVMy)3zqJ9*<(}wBLAkJ)VUy z!mW)2$~4->7G0NM6LC{!+`~6&$SAaJ0#AvD6+=jzQ1x2iEeU*#kdydg8VBv_<4zkD zT^5sm7X4$Yt&k#vma{0P@uh3YcE!7LF%)C8cF}Xqz^hnPH{{cdJy#1`OX9e!!0N2q z<`itwhI>7X)%Nh8;kA*vQAf`96Zke$BU{&$@3rwpF>`z3_?qK*NVS_vjBy9EX)%ef zt22>{&X1M5W>$)`l31B+W2@nSmNaf)V$jcbeRjaa zOvV=ce-H4stMj@#UE5H%LC+igAT(RqFGA`h z{8Pe{=_C6~INUiW>D)xjq`wAh!XW)ipp$tn5g{s!v!FXshl2toj^jrGF^~d3QwWRB OrOW5-kAkzL#eV@@ukGFd literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pl/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pl/LC_MESSAGES/django.po new file mode 100644 index 0000000..0d674f1 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pl/LC_MESSAGES/django.po @@ -0,0 +1,670 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# Konrad Mosoń , 2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Polish (http://www.transifex.com/projects/p/django-debug-toolbar/language/pl/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pl\n" +"Plural-Forms: nplurals=3; plural=(n==1 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d wywołanie w %(time).2fms" +msgstr[1] "%(cache_calls)d wywołania w %(time).2fms" +msgstr[2] "%(cache_calls)d wywołań w %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Wywołań z cache z %(count)d backendu" +msgstr[1] "Wywołań z cache z %(count)d backendów" +msgstr[2] "Wywołań z cache z %(count)d backendów" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Logi" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s wiadomość" +msgstr[1] "%(count)s wiadomości" +msgstr[2] "%(count)s wiadomości" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profilowanie" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Ustawienia" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Ustawienia z %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d orbiorca 1 sygnału" +msgstr[1] "%(num_receivers)d odbiorców 1 sygnału" +msgstr[2] "%(num_receivers)d odbiorców 1 sygnału" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d odbiora %(num_signals)d sygnału" +msgstr[1] "%(num_receivers)d odbiorców %(num_signals)d sygnałów" +msgstr[2] "%(num_receivers)d odbiorców %(num_signals)d sygnałów" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Sygnały" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Czas" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f msec" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f msec" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f msec" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f msec" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Wersje" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Aktywne" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "W transakcji" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "W błędzie" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Nieznane" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Templatki" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Templatki (%(num_templates)s wyrenderowano)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Ukryj" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Zamknij" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Podsumowanie" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Polecenia" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Wywołania" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Czas (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Typ" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Backend" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Klucz" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Wartość" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Poziom" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Kanał" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Wiadomość" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Lokalizacja" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Nie zalogowano żadnych wiadomości" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Wywołanie" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Ilość" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Pokaż informacje" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Zmienna" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Brak danych GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Brak danych POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Ustawienie" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Sygnał" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Odbiorcy" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s zapytanie" +msgstr[1] "%(num)s zapytania" +msgstr[2] "%(num)s zapytań" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Zapytanie" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Oś czasu" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Akcja" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Połączenie:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Poziom izolacji:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Status transakcji:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(nieznany)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Żadne zapytania SQL nie zostały odnotowane podczas tego zapytania." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Wstecz" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Wykonane zapytanie SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Baza danych" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Błąd" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Pusty zbiór" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Brak" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Ścieżka templatki" +msgstr[1] "Ścieżki templatek" +msgstr[2] "Ścieżki templatek" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Templatki" +msgstr[1] "Templatki" +msgstr[2] "Templatki" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Zasób" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nazwa" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Wersja" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..aa6f9951fac7ff8a768b5a0e989fbccca056a11f GIT binary patch literal 3071 zcma)-OKco97{?71O1I_FQlKxW+md#dFuR*=g36|;Xp;>Dk~Gb3dqD^}GtR8ro$+)$ zlWZyuh;t8IK!OWY2oML55L5yQ6^R^>P&t4qA%s*Os^EYG2P8Of;s4DzS;9lYTF-Cn zvHd-4|M%*abB`dhkulcR*V218^gF2_!q8f&<`};1+NLf}nA`Kw4*yWj{#k4S{551f==nw!dln zpRoNNh#xzP2hHn(+rVc)n)jmZe;p({Z-e{6_d&A%4R|Yf4WxK~wf*a{7_GMn54g;> zg5=K*+rQ7Y`@xT~cZ1+oeE%JTXuVA^b{n`8#3$Boc@TsNHf(teq;)623OEbm$DYOG z0q{JSrs{r){j=jca}{9RYb?G!+ox7l(xNb?<#><)pn{t^3q6r?4Za7G|Cd49@6SORcNL`h*Ff^?XOQCk4a9b3_YPnj zmChsCxD%C15%r$zE%%w`(V42D(jM(YC7aiy?nhlI_u3bVtBiUdD*3unC?C5~DPAgc zAE@j^t!8g|3=|jn+;95`drb* z|2ZR$b<7%F>86SFc=N<0dsKNcd+hgI-6MOG#KA@3e|KcUql0noFi8Q@8UhFG|Y4B9C z@~K2Yg&rdIO01=jrIt=ar_TGT<=T9Jsj&!+$c_p(FqxV=mYD2s>P#>!GS8LTO20F8HL6P-;jvIKWK6J3Zic**q zCULT`kQ^P?`O&2SJL2-Ash=8b20twFp0cn#4+n$YvX1>Dm>l{kPL$J?78e)G2_;R<%Wm1#K_$vFU@B3?%K~>i3f!^Bywb62R-&X*DojmGHF}vE zC|3)k8pl6`&q#ZnC%A|e?5hfgx!V>oZr#Yq*0^)1H;$~&%h+jzuJ&-a>ip20N>+WZ z^C&6IbkbOKoN*lorq07CYnqYTFwb8{iXq=K!Usyjg%wrNYh}fg#?@h4y2{hg78QER zL^@o43wM&#W%-TeSM@4S=}v+xJub;-k{D=-hQ!G1a4m?KMd1T2UII&>aKr1)! zcSUb-rl25U0uM&p0&+Q>g_%hY-Q+x0(w|;yR{F{$8XANPP<+on2${rGp&`=ammr2<;*U{=Ge=4NiG%)7DhEOoc)jHm=;Z zR57-~B+C~dSbDX~^!j?^)^tK8(?ItWtM~Tb+Jy~3LZM$!HB4PAU=7NeM$UP5D@A@T dAz}(+ar{=#Few@SlSs+(6p&oe5za_C_!HHG={5iW literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt/LC_MESSAGES/django.po new file mode 100644 index 0000000..038fdec --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt/LC_MESSAGES/django.po @@ -0,0 +1,656 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# joseduraes , 2014 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Portuguese (http://www.transifex.com/projects/p/django-debug-toolbar/language/pt/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" +msgstr[1] "" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Registo" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "" +msgstr[1] "" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Intercetar redirecionamentos" + +#: panels/request.py:18 +msgid "Request" +msgstr "Pedido" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Configurações" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Sinais" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Ficheiros estáticos" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Total: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Tempo" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versões" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Variável" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Acção" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Erro" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Desconhecido" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Templates" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Templates (%(num_templates)s renderizados)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Ocultar barra" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Ocultar" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Desactivar para o seguinte e sucessivos pedidos" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Activar para o próximo e sucessivos pedidos" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Mostrar barra" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Fechar" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Localização" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Resumo" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Comandos" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Tipo" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Chave" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Valor" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Nível" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Mensagem" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Localização" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Nenhuma mensagem registada" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variável" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Sem dados GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "dados POST" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Sem variáveis POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Configurações" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Sinal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Receptores" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Acção" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Estado da transacção:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(desconhecido)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Nenhuma query SQL foi registada durante este pedido." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Voltar" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL Executado" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Erro" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Set vazio" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(prefixo %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Nenhum" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "Ficheiro estático" +msgstr[1] "Ficheiros estáticos" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "" +msgstr[1] "Caminho da Template" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "Processador de Contexto" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Recurso" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nome" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versão" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt_BR/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/pt_BR/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..808c489ae9b686c7e238238d017f2bc97bbdcbd0 GIT binary patch literal 9059 zcmbW450GR>UB^2l7v&6~LBgM4>=-WDVrl6ml8B|z0;5==&|<5CrKF6hSg0kb(uf!>j1+2F5(_`y zem%3ZdwY@aYJT&1-LL=ry8G9^?%y+4UiJ%y=R?RFk#}Ea%%kvEzL!6q-uD^vc6bK9 z34RX#5d3@Cf!~HRuychmWAL%Se}O+h`t`4@! zna}cfIea|u38->U!|m`Hh|1PV zAA@S=mqPm2p{C*?$WYDi!taNVL6!RwRK2G|`fuS3>3@K#H~A|1hIOd^8c_Q8;0^E` zRQ(6S_uqu7_b62RpNG=#@$mi6L;A0w%6$dWmH8*AdHhc({a()BrSJ_<>u?QJKNC>( z-U6k^TcPxthU)KR;Co<=^b%D6KMytjPe7IbB%FkwhMLcRgjd4nAu5=c(W&ZP3DwVQ zL;6}My{-@WZw}lIrQbfN@f?ISW#+>7CRDo#l%DSm=?_AU=i^ZIehsSLBT)VPF~k(i z8kF9D8Td@#zXtv{RJ+?4gxY%rl$~D%Rc|+x9Zo@&I|AEq7QPPt5w!3rD7*V6RK2TM zl$+soQ1$MH8b<^vV$MMAyAMF=eI9DQJ`JyjpMwvJp)zl zE+{=5)VP=7lb0CtemF~d{=Z{1n^`pM#pGYhGV*45F&p z7t(XEM!FI5KMFN(4~6f)7x*Vo>-J>em!bC?fzO5f|9~3zx8NJ#rTj_HYoNwI1!v$L zP~-eKlztCGwf~1u>+yN0@?Q-3PlWuZq4fI-WJ=7}p!)mY@O|6WRr-}MCjTm^^}G+t z4n6|a-yekh$3y;KL9O2lQ0s6B#-#aw71X-F5lXKS$j?mjCw*t2>McO^^DZcRkD>It zA8H)G3N>F3Le+Z&s-H)p>a9V|$5T-4Jqy*}KSQnKH$wjPG_H1cLY)Isa36dpl%Br` zF$MD=)H*)~)!&m){e2l~zP<{zufGm8pWlGe?^{s%UVcrb*A-BDT@BU#jUjz2)cj0C zrp%m#YBz(L-*ZrUd>E>q2cY_YDDd~8%6$Q<|EHk(`8%lj_ylrdKIevpF-*P7f}A=Yj6bq57d6X?%GPPTi}~X zPr=7w2Woz9!l*T0w?XN95MuIX4&nk$7ivD<2i5-lA^(@5=JB_o>U|b!9lr>*?$3np z&qB@b^N=lUUV!TNHB5%)>uRX>cR<-m4QhVh0yU2ZLwW&TLV8@^kPjkvBEygDgzaPQ zLM}yq8qpIY_ao9@&$|%mdKUQ*vKN_0P|ZZhtw{foPMEB5AwzSo=VvPTf0oFshP2k| z-AEI;BjoLZ??Wa+T1dkCPX+eiO^D_~&rcw4Loj3iFnnXHSATx!_3g+xjv?A(??LpeARR>Osx@yQvK>8I^V7)XO7Oh5g4qvchkEWqFk|nR+weG|r;Z#! zTF5>``{)Mb1IUjdQ^+ky{~6_F1W6IuT_y~y>*-H4tyRWR=tcZ@WmM%$fgM4e7P+O(pL6T4%ih`VldY}ZmZ z-?C7?RjIU0iqYJ5U7klRr+OQ6)KpS-DRQQC+3JQ=?84VmnQORs*=5qF|8CPI>+7D% z<5m)RUBg?|%9geA@2;9^P1>sY|F88;<;vVO8QxOdaaQl4`cQV>&+kR6oiu8m>d%qt zP<*Rw%}nkWWMb^5CELwigPbBQqR!|AIj1ftSYD8`+{jm$-Q~2yibdJ#jdsUK95Ul% zkZneKnOlm_^0j&y%}32hnVe42m1NZHNm9EUyOn)rPnkr^QQV0ZJ8qwuY7}vrcq}_J zm9@&QON!h~l||Y}yWO}j`=iEb|L2mX*`K8=xyvkS#!1T@m|dvTV*^8(@CIl{)(0zt z95n}IwAH^iS!O&-yQ<_3u4xx(UrqahFIprIW!fiw6bA?Nt5i9TtC>l-V1lOu=z?{pqxIYr)AU!q>?#McIVkq=3rDrb}41B?Kro+h*oW! zCpQ#!Fo8BoR=a8D#_VjzMY&@W$WW-^sL*nJ*TyKa)iK}PB4y0MIM?L+rW5I*LV4L} zuou}(lxNH34DnDW>S36gY-bL2d&R2FU11I--(mGEOEYumtZS47t<2qd)ZB4s-ZmMQ zIpU%w+twV3o6i5)B27DsQD&x_*!FZ{ov+PHkwr-!RdzDX#AOZFD^Ri-v*XcnI!`;1 ztjKoUvg_2%JKU;dCC!>P8d%g(eKbeYhA%sKsq@zAyP;f(mJI7y@Jq+yPA6s$rK};_ zJZU(K`NplP!<-FK*pZzbm$ZuZsF{hFsF~CbhROTv@wqT&63l`3XDqf|ahc}2ftt)t zv&`tXTI#R>V`{1qOoP|pD|6dHN&E#_*j}!Y`#GIS6KB@Dn~jRLnRS_&%~BkOM#bB5 z+|=8h-l?8o73e|Rj1@9ISti37!M*aS=U6wHO-3cs-bVVg?XaFFT%MM!5Fe@+T$ubj z$zGaZp#6ff2F->$+v`MeLhnlTys9CQyABJigv;Wn6Q5J}B!-4O=ZZqZ3CssC)h6H5 zNSkioj(pF!e=&3IbY);@bN+NN6{zVKR~zT9xjUw|CIN&q9fmS&ViWWjM*B^Q8Ul{9=tb7TB$wg7R#2M zuY81UN4ir4SHR|p2JV2>^~(}1rg*Z26Gy$5Yx>$cf3(MXW!A$t=VSKnw8Y^jw$X_j zr-$mXSx9R0C74&~ERMSEzxUmaMS~>Gx>0A$cxSCYJE8+eZ#2L>`7_E!MUlmexIi<{ zzGVZcRopJgqN=LHd1#(}(%-UFginS1uYcvRtIjzyzwQ++Zm1}8CU~{yjK-YE4=q$@ zuUXJ}IatM$QKxj~WW)=s$PSejl~Zt}MJ%{T3w;MsmO%8Qzx84NYe>UL_i%kFL1sj^ja zD@yF1sLC0OLeAT|yU&iLS!*AalU9kZs?EEoTeq`lOc{sI8rh#k=i<(&9cdRuuRcD$ zva&MfkEM9YogKqpj^nsA75R8?yy-2r=54MPPPOq)Xned^oZ5e4e02M<>0^i1XKiw9 zV!OW;BHS9b?f`u zKHDj?s8c)48s>GI^n5bkyX$saz3v@J>^?g=di!>B!4baM#edcW3MQvSX@!YKLqeM8mBd8X)-YmxY8R)$@2!caAY-)}~i|h;5_{Cc}L~P*i zi&b!eiz2$ws8NTzHp-uzla~a74oXKu4Co&B9lvL19hOg}I6y z%uLv(eb;MsFJDSy#@=G*W;zcDR=D6gnUk(w{RMt7<#wwpV?SmIP4#`h0vD~7$_!M| zeIETnzw7Jhl{pX*=C{*LVGKtZu{77j^d-bGiw?hl1s-*Af%>T3b483c3S}w-MT;TJ z(WGwpc7i}Q!$=l#KjCZ?CAEbI)>hTQt1&S$P;aCPafk>saD_N7BN~(ESIWmYGAF+3 zQnq$pQR={$`;)^qS&CbzT^Y`BQoCwXnq#zx=j)!P-{h^Pz?2Grfl@`N! z{V=8yEu4=C5&pVq7C z2+b-JAG0UZ#@cV$9s#@$&#>GiwLUN#YD?2hfW}8I;aKGbDpWCAII=Vg{h9Wm+EJVf z-i(mZf0?QRHNU$z+%3#hhhQ`D-T2szR{Fu4KhXT;N<$#d3PGFn4wr_oxW3TlIBw3z zZn(qYGlyl0(R2pqtuKUhI$s%V+ck7*`hkS*q<)!~)g6rJF3pA, 2013-2014 +# Percy Pérez-Pinedo, 2009 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Portuguese (Brazil) (http://www.transifex.com/projects/p/django-debug-toolbar/language/pt_BR/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: pt_BR\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "Os dados para este painel não está mais disponível. Por favor, recarregue a página e tente novamente." + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d chamada em %(time).2fms" +msgstr[1] "%(cache_calls)d chamadas em %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Chamadas ao cache de %(count)d backend" +msgstr[1] "Chamadas ao cache de %(count)d backends" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "Cabeçalhos" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Logs" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s mensagem" +msgstr[1] "%(count)s mensagens" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Mensagens de log" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profiling" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Interceptar redirecionamentos" + +#: panels/request.py:18 +msgid "Request" +msgstr "Requisição" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Configurações" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Configurações em: %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d receptor de 1 sinal" +msgstr[1] "%(num_receivers)d receptores de 1 sinal" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d receptor de %(num_signals)d sinais" +msgstr[1] "%(num_receivers)d receptores de %(num_signals)d sinais" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Sinais" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "Arquivos estáticos (%(num_found)s encontrados, %(num_used)s sendo utilizados)" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Arquivos estáticos" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s arquivo utilizado" +msgstr[1] "%(num_used)s arquivos utilizados" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Total: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Tempo" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Tempo de CPU do usuário" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f ms" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Tempo de CPU do sistema" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f ms" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "Tempo total de CPU" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f ms" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Tempo decorrido" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f ms" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Mudanças de contexto" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d voluntário, %(ivcsw)d involuntário" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versões" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "Read uncommitted" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "Read committed" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "Leitura repetida" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Variável" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "Ocioso" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Ação" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "Na transação" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Erro" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "Desconhecido" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Templates" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Templates (%(num_templates)s renderizados)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Ocultar barra de ferramentas" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Esconder" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Desativar para próximas requisições" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Habilitar para próximas requisições" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Mostrar barra de ferramentas" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Fechar" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Localização:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "O Django Debug Toolbar interceptou um redirecionamento para a URL acima para fins de visualização de depuração. Você pode clicar no link acima para continuar com o redirecionamento normalmente." + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Resumo" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Total de chamadas" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Tempo total" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Acessos ao cache" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Falhas de cache" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Comandos" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Chamadas" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Tempo (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Tipo" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Argumentos" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Argumentos" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Backend" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "Cabeçalhos de Requisição" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Chave" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Valor" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "Cabeçalhos de Resposta" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "Ambiente WSGI" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "Uma vez que o ambiente WSGI herda o ambiente do servidor, apenas um subconjunto significativo é mostrado abaixo." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Nível" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Canal" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Mensagem" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Localização" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Nenhuma mensagem logada" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Chamar" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "CumTime" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Per" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TotTime" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Contagem" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Ver informação" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "Função View" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "Nome da URL" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Cookies" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variável" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Sem Cookies" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Dados de Sessão" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Sem dados de Sessão" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "Dados de GET" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Não há dados de GET" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "Dados de POST" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Não há dados de POST" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Configuração" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Sinais" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Fornecendo" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Recebedores" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s consulta" +msgstr[1] "%(num)s consultas" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Query" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Linha do tempo" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Ação" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Conexão:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Nível de isolamento:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Status da transação:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(unknown)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "Nenhuma consulta SQL foi registrada durante esta requisição." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Voltar" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL explicada" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "SQL Executada" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Banco de dados" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "SQL perfilado" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Erro" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "SQL selecionada" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Conjunto vazio" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Caminho do arquivo estático" +msgstr[1] "Caminho dos arquivos estáticos" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(prefixo %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Nenhum" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "Arquivo estático de app" +msgstr[1] "Arquivos estáticos de apps" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "Arquivo estático" +msgstr[1] "Arquivos estáticos" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s arquivo" +msgstr[1] "%(payload_count)s arquivos" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Caminho" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Origem do Template:" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Caminho do Template" +msgstr[1] "Caminho do Templates" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Template" +msgstr[1] "Templates" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Alternar contexto" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "Processador do Contexto" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Uso de recursos" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Recurso" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Cronometragem do Navegador" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "Atributo de Cronometragem" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "Milissegundos desde início de navegação (+length)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Nome" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Versão" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ru/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ru/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..f67bfb07ccee0b0dd8c99ed5b865977fcfe8e56e GIT binary patch literal 11667 zcmb`LdvILUeaBD1Kq4H{5J=LNHpc;jRIHbIR@er=02A8?OE#fEoU7d{Y4K`z*}E%Q zl%$r-!^8#wB?E=7+C5=X>ti z)vhc9A?)brd!E1ZJHO{S_aDz*@D;;v59K_{-3yF44!-^&{_%V5Ok-{U{~o*mykMa* zzYVSfv)}-@5quSF1JD0Rf}6mP(H`^oN8l%Df77>*f-SVa4}Ki{Irw34;aLfO0;J1W z@N}@v<7Iw)8Q4Vswcr`xO(1{f7XEz(90X4TcZ1i0kARy08VIZApFoak-U2o6ZBTT6 z0qW?de$*I_Y!-q#_ou*L2bY7Iw-MC3ExvslxRG`m)cXCP_&*9ZgWm;z3;Zdl{XYsZ zo%cNOBJe^`^frPT?*&CC0JYy8p!hBN@e$v?2h_X=Kv*}Af|BQ6kUulUzf-~QfYQfz zLGAN8sC7RC#m9eu+V^cx`<=pMVH4O2o(*dMYe30mEvWf7ft}#zLCN=F@NDoYP;_4e zIkK4swf+^~|2U_PR*4++jT^7_nUj(I}F;M52@c31aFL-L=W9F*R^?)zT^VaXf=MYjTq-rs^+|0XE8 z{VOQFyzR$-;l~%?v z!0&-Cfct+F+XipPi8Svm5R)+1Atd1~Af(JT-yR3Aru`TwzkAh>zXhI8`wWz*`4@xY zZ zWahuYJh%Yj7lS2G@_P=HeqI1YcM5zFdO2$RecuD+aeIv zn=8T7!COJm?*j>CW(d3#90x`BpznVLTuA#3kN*zBy7?Kn6kJ4-lHK%zI%gLAHBi6J z3Do{yLruKvcPnKpWgSIw|3ixSs{X_STezRjE!#hXGD10plBLMMv}g5qt*_|(vb9di z7)5@rA0jm+%5pXM-IIXRr>~kn@Dl?r_ zC8B(o@@0yC$~QMtl#kA#+(21KSxIT5Y^2DBQiS4dXjS*i>$;GO3k*TbN6mRmJ>B6c#NUW^w~&b@%2jHcMe69nSV_^Xxfgi!Elg>^1rC ztQBDw^FvzXY%Oj3JZU%a9j8Q|%wPuQlIcU4D8dj|;|A^@)xjW_3u(c4kW15%r|nMI zrFtpcUb2N^K84ZeizoKD1#VI_k}1KvI`Z3O?yJSISzR9L#n;T5pcL5tJhB+fM79vH zsm(;Wi%Pa8S{vj>hw{a+&30$QAPR90nGh>N77T=p%VkQ%(Kbh}k2z*d*jFB~z4?5$ zFDRNdnMg`<8|B2hmPF;0*vIKujcZ28V@T0vSEZ%m2C6H z*)TUy8f-Be0~EY5Z)?Y--hE?_KQj$v;9??XVMoHE^pJv0q?0Ze**7r?ubeiKN_iuq z>f>!>voJ}_p(|g^z^-bTb0ir!>2A#DLNmK@H?E>U-5rz$O?Ox{-Nig%Nav(BoJp&8 zlMB_G&T-O+o(Qc1`07}Y9C{8*OC zr^6MCqh;-`VtNMiBQ?|OaXH5%z)GiXIo-`Y*R8W*Za7m!!kOG4yO;11Mtr9NpVEoC zh;wAMB{rYSj@rQGmrOq{#*C=khXdj6He%nL?ZdA}+DuOgb4s~vQeTII*#R3A3Uk|y z6AIF9{R(w7OlfQ==8~ni_7k35G7~C8sMBXM2d1Y?OeBx@j7Ft!$P&GikkA_rp{i17 zs+Fi#BTm6hwcoYs1`|W*s*TSMMOCiY$kA3fDw0BQmUN5hMZRn92yz2?+Ys;UV4$0d z4-U9fPzw-f*Qq7w%M!lwT)j*K~I`O<|~{Oya8K(IkbM-q|>52~4GOgn&m2q0yOhicFi6jBYk771y-5 zCCHXTvn9ZzM$&tW@Fk0r-`-Z_|vSo#nx@1C9Nis~N zXmbY++`2B^>dAM_tIj5ZOTJiY-4G3A(ygn?15s;lzRNas-`Lx_nrNeqTS=s0mtES? zd3kHc6|GAf>*vc+=KhIJd( z&Wf$Gt)t0ZOL80lEq7U2P`eAASJ~8HP$beU-`sm`>y@+fWFh@wv2`sGU0Uk0SN3H} zP2JgYG03)Fi%z31n=80xwEU8*Y*Jm`oLk)4v3z-_z3@V-YR97Got^e-+hLhbd&Tml z)uCm}FICm8=vda-Veh^>S;Cx-7S?pKW@*b+O`mJMF3g3+MC{#p(s{{twq4nFMO$Z+ znfqReXX2MCJL1X81MyURES`?1Yl+~*btnU41(wElz)tTf`%YfMb>2m3!+SwDG>m?)VrI zd^tWaJHs?P2b$tw)A8ZT7*h1kj>R)Pc-37Qx5>)*fE$@)&Jjm< zx-!92*eyLE&qV$^Q6WoLnD{ZK9C8cxL3nDOj)ytGepYZ4*d4Fzu75Dck5nFv54&v+ z7#fOsJK;~KW&_2&eN?9q&BWYiv$P&y)>twI8BF7D_zMX^g<8jQniAa%6&*_3}2n8?07G8lAULy;dh{Xu6fPht#*by%I`NGm2elXM%I9;iHG-Q0t1*g0#I&b@Y>Yhy9YB?URg?uX{2gi4omegRApVCQIZb!hIvks zSjApUb_a10Nyxfujk#h&tJ7ZAE=DzM^r)?AQ7S%+I zuh(7AWFsU-$!@=*^i!_FDd)`7*j{N@cHnMAuEAk+nV3vY;7D=(R`>_~*DdOcFL z*Z1~zx5~e&_9IWjg^Pg*iWtTG|`EY9tWT^3ZA09L+T{BhbS0Sig(P(+Y1BQt&{dL4 z=2}6LMU@YxkuS1NuCUxrcE^YC9LFM}ap~GQ@1*=%$8l~@i^Wm@M~Y4c3yI zzvL$SBpDLv;g8>7svZ^2$MnRLhapzq4~h3aBI}q|bf}XHC!T2}!M!3eq=ulxgzAOD0TpcO#-?qvl&Y|&JApoj`fsEtr{TG#wTPS; zS)G`?*NE|Z8BzRnxf>gFJ8*5+WT#cc>u&M3GJ%m{Kqh`3TDpvI?Q3YrZtKR}r7;P7 zP6E4Tmr*;~D4t(#@CnCeEjn8+AT^faNz&*XHX53Ut!ng19&(cL60G~4+hXSZgj>Bu zR4*8^zF8NU=V~D_(rsZ;0wfwPu`Uz2xZqywlM$vh_a zC`>y`PtNDwPf+#mwYdvtcaXvByL0l{E%vU3QI5@fd&F|S2G7SKpqHyY!@C;+eGPAK zY?s}2UrIQUyE+-drfwJ~ImP2nX8!4<3zfgCD%Vs6ii{PgA>^`At>NM$W^*jL=}Pjt w!YcB+pnxCOp8aC~7#Wk;3~6`!(|qnrCs_jVljIl!-RjdNQ8zrC_!2Sy4}#y282|tP literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ru/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ru/LC_MESSAGES/django.po new file mode 100644 index 0000000..7e8aa78 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/ru/LC_MESSAGES/django.po @@ -0,0 +1,695 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# Ilya Baryshev , 2013 +# Mikhail Korobov, 2009 +# Алексей Борискин , 2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2016-07-21 16:45+0600\n" +"PO-Revision-Date: 2016-07-21 17:22+0600\n" +"Last-Translator: Igor 'idle sign' Starikov \n" +"Language-Team: Russian (http://www.transifex.com/projects/p/django-debug-" +"toolbar/language/ru/)\n" +"Language: ru\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" +"%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" +"X-Generator: Poedit 1.8.7.1\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "Отладочная панель" + +#: panels/cache.py:204 +msgid "Cache" +msgstr "Кеш" + +#: panels/cache.py:209 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d обращение за %(time).2f мс" +msgstr[1] "%(cache_calls)d обращения за %(time).2f мс" +msgstr[2] "%(cache_calls)d обращений за %(time).2f мс" + +#: panels/cache.py:217 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Обращения к кешу от %(count)d бэкенда" +msgstr[1] "Обращения к кешу от %(count)d бэкендов" +msgstr[2] "Обращения к кешу от %(count)d бэкендов" + +#: panels/headers.py:34 +msgid "Headers" +msgstr "Заголовки" + +#: panels/logging.py:66 +msgid "Logging" +msgstr "Логи" + +#: panels/logging.py:72 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s сообщение" +msgstr[1] "%(count)s сообщений" +msgstr[2] "%(count)s сообщений" + +#: panels/logging.py:75 +msgid "Log messages" +msgstr "Сообщения в логе" + +#: panels/profiling.py:144 +msgid "Profiling" +msgstr "Профилирование" + +#: panels/redirects.py:16 +msgid "Intercept redirects" +msgstr "Перехватывать перенаправления" + +#: panels/request.py:18 +msgid "Request" +msgstr "Запрос" + +#: panels/request.py:35 +msgid "" +msgstr "<нет представления>" + +#: panels/request.py:47 +msgid "" +msgstr "<недоступно>" + +#: panels/settings.py:18 +msgid "Settings" +msgstr "Настройки" + +#: panels/settings.py:21 +#, python-format +msgid "Settings from %s" +msgstr "Настройки из %s" + +#: panels/signals.py:44 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d получатель 1 сигнала" +msgstr[1] "%(num_receivers)d получателя 1 сигнала" +msgstr[2] "%(num_receivers)d получателей 1 сигнала" + +#: panels/signals.py:47 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d получатель %(num_signals)d сигнала(ов)" +msgstr[1] "%(num_receivers)d получателя %(num_signals)d сигнала(ов)" +msgstr[2] "%(num_receivers)d получателей %(num_signals)d сигнала(ов)" + +#: panels/signals.py:52 +msgid "Signals" +msgstr "Сигналы" + +#: panels/sql/panel.py:25 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:26 +msgid "Read uncommitted" +msgstr "Read uncommitted" + +#: panels/sql/panel.py:27 +msgid "Read committed" +msgstr "Read committed" + +#: panels/sql/panel.py:28 +msgid "Repeatable read" +msgstr "Repeatable read" + +#: panels/sql/panel.py:29 +msgid "Serializable" +msgstr "Сериализуемый" + +#: panels/sql/panel.py:40 +msgid "Idle" +msgstr "Ожидание" + +#: panels/sql/panel.py:41 +msgid "Active" +msgstr "Действие" + +#: panels/sql/panel.py:42 +msgid "In transaction" +msgstr "В транзакции" + +#: panels/sql/panel.py:43 +msgid "In error" +msgstr "Ошибка" + +#: panels/sql/panel.py:44 +msgid "Unknown" +msgstr "Неизвестно" + +#: panels/sql/panel.py:108 +msgid "SQL" +msgstr "SQL" + +#: panels/staticfiles.py:87 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "Файлов статики (вего: %(num_found)s, использовано: %(num_used)s)" + +#: panels/staticfiles.py:105 +msgid "Static files" +msgstr "Статика" + +#: panels/staticfiles.py:110 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s файл используется" +msgstr[1] "%(num_used)s файла используются" +msgstr[2] "%(num_used)s файлов используются" + +#: panels/templates/panel.py:128 +msgid "Templates" +msgstr "Шаблоны" + +#: panels/templates/panel.py:133 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Шаблоны (обработано %(num_templates)s)" + +#: panels/templates/panel.py:164 +msgid "No origin" +msgstr "Нет источника" + +#: panels/timer.py:26 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2f мс (%(total)0.2f мс)" + +#: panels/timer.py:31 +#, python-format +msgid "Total: %0.2fms" +msgstr "Итого: %0.2f мс" + +#: panels/timer.py:37 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Время" + +#: panels/timer.py:45 +msgid "User CPU time" +msgstr "Пользовательское время ядра" + +#: panels/timer.py:45 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f мс" + +#: panels/timer.py:46 +msgid "System CPU time" +msgstr "Системное время ядра" + +#: panels/timer.py:46 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f мс" + +#: panels/timer.py:47 +msgid "Total CPU time" +msgstr "Общее время ядра" + +#: panels/timer.py:47 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f мс" + +#: panels/timer.py:48 +msgid "Elapsed time" +msgstr "Затраченное время" + +#: panels/timer.py:48 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f мс" + +#: panels/timer.py:49 +msgid "Context switches" +msgstr "Переключения контекста" + +#: panels/timer.py:49 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d намеренных, %(ivcsw)d вынужденных" + +#: panels/versions.py:20 +msgid "Versions" +msgstr "Версии" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Скрыть панель" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Скрыть" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Отключить для последующих запросов" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Включить для последующих запросов" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Показать панель" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Сводка" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Всего вызовов" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Общее время" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Попадания" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Промахи" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Команды" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Вызовы" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:23 +msgid "Time (ms)" +msgstr "Время (мс)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Тип" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Аргументы" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Именованные аргументы" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Бэкенд" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "Заголовки запроса" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Заголовок" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Значение" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "Заголовки ответа" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "WSGI-окружение" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" +"Так как WSGI-окружение наследует окружение сервера, ниже отображены лишь те " +"из переменных, которые важны для нужд отладки." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Уровень" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Канал" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Сообщение" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Location" +msgstr "Место" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Сообщений нет" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Вызов" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "КумулВрем" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "ЗаВызов" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "ИтогВремя" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Кол-во" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Информация о представлении" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "Функция представления" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "Имя URL" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Куки" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Переменная" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Нет куков" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Сессия" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Нет данных в сессии" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "GET" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Нет GET данных" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "POST" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Нет POST данных" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Параметр" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Сигнал" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Аргументы" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Получатели сигнала" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s запрос" +msgstr[1] "%(num)s запроса" +msgstr[2] "%(num)s запросов" + +#: templates/debug_toolbar/panels/sql.html:9 +#, python-format +msgid "including %(dupes)s duplicates" +msgstr "включая дублей: %(dupes)s" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Query" +msgstr "Запрос" + +#: templates/debug_toolbar/panels/sql.html:22 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Временная диаграмма" + +#: templates/debug_toolbar/panels/sql.html:24 +msgid "Action" +msgstr "Действие" + +#: templates/debug_toolbar/panels/sql.html:41 +#, python-format +msgid "Duplicated %(dupes)s times." +msgstr "Дублей: %(dupes)s." + +#: templates/debug_toolbar/panels/sql.html:73 +msgid "Connection:" +msgstr "Соединение:" + +#: templates/debug_toolbar/panels/sql.html:75 +msgid "Isolation level:" +msgstr "Уровень изоляции:" + +#: templates/debug_toolbar/panels/sql.html:78 +msgid "Transaction status:" +msgstr "Статус транзакции:" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "(unknown)" +msgstr "(неизвестно)" + +#: templates/debug_toolbar/panels/sql.html:101 +msgid "No SQL queries were recorded during this request." +msgstr "" +"Во время обработки этого HTTP-запроса не было записано ни одного SQL-запроса." + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL Explain" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Запрос" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "База данных" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "Профилирование SQL" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Ошибка" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "Выбранные SQL-запросы" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Ничего, ноль строк" + +#: templates/debug_toolbar/panels/staticfiles.html:3 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Путь к статике" +msgstr[1] "Пути к статике" +msgstr[2] "Пути к статике" + +#: templates/debug_toolbar/panels/staticfiles.html:7 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(префикс %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:11 +#: templates/debug_toolbar/panels/staticfiles.html:22 +#: templates/debug_toolbar/panels/staticfiles.html:34 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Нет" + +#: templates/debug_toolbar/panels/staticfiles.html:14 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "Приложение со статикой" +msgstr[1] "Приложения со статикой" +msgstr[2] "Приложения со статикой" + +#: templates/debug_toolbar/panels/staticfiles.html:25 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "Файл статики" +msgstr[1] "Файлы статики" +msgstr[2] "Файлы статики" + +#: templates/debug_toolbar/panels/staticfiles.html:39 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s файл" +msgstr[1] "%(payload_count)s файла" +msgstr[2] "%(payload_count)s файлов" + +#: templates/debug_toolbar/panels/staticfiles.html:43 +msgid "Path" +msgstr "Путь" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Источник шаблона:" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Путь к шаблонам" +msgstr[1] "Пути к шаблонам" +msgstr[2] "Пути к шаблонам" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Шаблон" +msgstr[1] "Шаблоны" +msgstr[2] "Шаблоны" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Контекст" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Контекст процессор" +msgstr[1] "Контекст процессоры" +msgstr[2] "Контекст процессоры" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Потребление ресурсов" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Ресурс" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Браузерное время" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "Событие" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "С начала навигации в мс (+продолжительность)" + +#: templates/debug_toolbar/panels/versions.html:7 +msgid "Package" +msgstr "Пакет" + +#: templates/debug_toolbar/panels/versions.html:8 +msgid "Name" +msgstr "Название" + +#: templates/debug_toolbar/panels/versions.html:9 +msgid "Version" +msgstr "Версия" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Место:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" +"Django Debug Toolbar перехватил перенаправление на адрес, указанный выше. Вы " +"можете нажать на ссылку, чтобы выполнить переход самостоятельно." + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" +"Данные этой панели больше недоступны. Пожалуйста, перезагрузите страницу и " +"попробуйте ещё раз." + +#~ msgid "Close" +#~ msgstr "Закрыть" + +#~ msgid "Back" +#~ msgstr "Назад" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sk/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..a26e3cc7b87414440c05389a4ee5fc54829deb76 GIT binary patch literal 9378 zcmchbeT-b!RlskPl(bIMhR_mPXmS(cc(=~XuGevzj=fHt^=JIG@qVOn(we(7Z+G6# zoA+Mc$E;_Y(9))m0#>3z06`I1NGt_#D$yW;gBPUP1%w(@2^s{dqEtNx!P}H7!QBP~(x;&G`vjDE zJPo(N-+)s8&)oNyq4fKAP}=`{DC7JW_x;~o`oEx*yMn>crMd>ndcFtB_{#iT3GarY zk1;6yOhKvl5R`G$po}Yo(%(lMKLJame-29je+XqAmZ6mY3%Cvb4U~0#E1g^q-w7F- z+5)BC`=Ru+%cb{28P{Q#f86mwDC4U_nU4=?TAg;^KLw@TUw|^s-*V~Sfij<$pwwG| zQtz*z^z#o8lTiNzW!&F#ypq96`Z~w=LTUGXP}&=TV(&ZM_XnZa<1CbNO<0FH)bLd( zcK14zc5gu$JKzwM@*b4&Hz7sTV^H?pQ&7fx4$3+$!`tAW!?W<4P}cF6-dTMAH7MhI z4obZjpv?P^q4e{YF8vA=ef=X8{k-P#zXNGfUGuJ@-J77acPo_oB`E8)1ByPz-1kH7 z`w5pm38h>W$~Yc@GVhPWzkQQZPr?P#{tZfPhhKqWPw)B>bO*;^3w{k6_~CaK`{qv| zDpK!wPr;j^_>b)_eIJze9)>cHr=ZO5S(pASlyP*RjQLK)xJA*xibL7C6hHx}((2j%+>Q0)39mp|n4?}TOYcSEt? zCY1F}pv?bqxEKC1l=@$SKMwyDioUPAsc3%-6nzar8E*w%0q=n_o-ru%J>tGkLs_SX zq0FlRWxXDSn40<&6n*?AlzF}2(koE<{Q{KneGQ8L_)jR~`)?@iywFqUso`y2+Ux%~sES!PY-mKIFjG?U43OoQ`fl~fPoC{l5ZGosl z?SebtNywH_PeB>aZ^NzdMffcIGL-fIB#SHGe-_I8e-TPQ&p7@bl<}>&^yi_>`&B4* z^$jTV|BmCew-)PjBb4#o0%iVNp{(F?9h`_ zKl0Pa38ee**{*}E=?9T3k;f5veB@^k(VsjIA)?dM$P>tJWC~$P?3#Z7b|0C8=u31W z&+!84la2yRK($?Z6n+Ttkb^F7JNzgj`?dRo?&YT(V|WK5Ya`F2$R0#=Di6!6w7l@# zSwJ0zi^zwO`;d<#vZhCn`;lXatl=p{o&_X8M8Bew8X|jN9xkUIfTq1cO$qmd$$4Bhu;hDl7xHS2M3V|5u2t|-BOgJ! zPm7nM$Zd%1ln}AyE08Ag0J00|J|n#3$dJp}4}SuYeU>8fBn9m6 zBm7PxWkhUK{Ea*hB3B{P$jwOik^S&6vKM&_nMbxDClPrz7f_$DiGixA*1c0z69nmC zO$)Uj>dgb0-}DB{BeTs^ZQh_zx>2bp53|8kH@!49bDq>&pCe6$d6OcKtd)L$)uh%oT{QpQTED1Vo_aN=H|qzU zmUmaZFFWn#$EF=brgo~kMpB338)eJNq*fur4jOU_T*VqjhanAQ}>!`!~S?-P2HPB3#pfAhUtfM zYHWO}LXTApW!M^^9$1^K804TD6QeDDt;w?DNz{}|*5GP-hW4dtTkx_)Qdg$#Gs2>H z(@#^Zag4oSe|W8%F!V?TQA)qe!GtxkBXaFzEApOsr!yTVQ5E}-l1p=J1zRXx@H1v0 z8Bs$le@w=$#`5MQ+fMB@nbETmD^mAU9UHpVej0AcbZ?cl3ERym@ydEU@J#BlQ^cC6 z;Zb4E?^t1@7A9Oc=UDeJH=FfrCE8u8S=W}LNk z>SbzQ_&run66U|}v{%hDTA8^2h&r%uQrDQ4I_Q}ids`j!Yo7hlSri2`CQ*lKY=A?d z_H1olvc!a`DU9h5tD984IAf4CAGg3L52aCH#ME@)wY;FB4ts5pg(#_M(=)px@=+a$ zs*H@*Im=o(e>YUe6KL~s_T7;tU1!2|G*tkDebeOVhGCi<0@WQ#QKB$fv z7V21}d(-57{P={MGYQtfIz5!F7raE)y2>zFom!sIZ=q_ZfU-1Ib*90qbEv5f7$i=G zEDSW2ncFoz7KNT#>u%g+bv5oKYCMVXDl#kHT7FI5?zf)z1X`d6*^6jM*<>E}XE-0s zr`SVpVm1ktNLw4}QrDe6Pk3pRqai*NFZek*1W3kFh=FzsiZ#e;c&FpQ_#wSZiftnf zut=m{fPy9ACB6y#Md_YI-;^i3ER*RtroETK6YQ!+HE;Lkbk~r5Q4{rOp=W3l_6Si0 zsA-ie8|Q(E1BbL1w)}*Z^}{;7XQ|y%E>rxNoDNbLkHsN%yN<%3t&Ke{{8_(hD3Rtf zY!|kyPU$z)GwjWUvYN;+o@#M8m^i*T%}DwR#G=HDGu9PZpAaX>*?MXgPhyWCq4;&l zbmxzSn#gfqoW2w7H1nDocU$c9Nw0}UGEa41(%u^`h0%2LZL05Mq3=rX``V|pJ1RP| zZKoWL367Z^P#aW}EaTpJ6V63?uQ!v=>B+(s=(>^nh1>D$5!2iCDABIInTc>%QzwpC zXI8Vd_ZNf=JNme?V&iS>{z4=^Pnv5!X z)A;ep(imPtS}t*@c@;e}yzP$C@ExU*9eQM2Wyi?Y;gR8C3YJcIEnh}@X}N75sO;Fj zb(m+<5tC*myD}JRlvMPdc9Tt7)qC=}oEuW8cbOumY+TMg%{xw)qhxM3mBYClmsFbc zOtYdVf~aL0dZ3jZI!l_hd0?9LCAQ~T1AUR3|Wu2Q&;OI!9k2pP3|wL_5WGTxWI!^ z<(D5+5qNwb<=j~iNBQcqpLH(iv~zxj>)N`LqW860ci(%9baDOlB`ywMdW~=V!M1vt zPwS(e27_E5_4IPqM?I3gKI)Mi7vR*Q8E!+-%5vDbP_6feK3qoDecL$x3B5(Err9O{ zTJ%jVWY zSvh0gXfRalW1|;!cVG2lq1;6`mnniaiU{cPWv0bh-~_5R3Y%^d0}&tjrkhdt5@m}q z{lgSq3e-uHwW7plw&QHbhFNU$;>Y+{)~%u@;>1+($eFjYtQ*A%n!lmk@x+V6JY!(J z>fP{aJX$$J{L+iBI!gpttTSFYwCns&}LIhXNaVI!C8U!!xL>y%t77DJ}tqOQ);qG9F@;p%g?%atchu)0J)hGRVC z%A3!3&J$h45&IFXw;F9V6$fpZ$_0%Lq_SX3i?y(=6E5K6*lxfwe$S1K)!Q>hO}AMU zH1YgeI3}y04hBRuD`)6*qLH-GP64+jXpTun^H|0)Z{>_1vS)~fr9tkdEf=C;t}P&YS&8pOs9W6j&868j zn?p@8w!wb_x=~@PowmG;u)6bnUtB1b)?+3>A9)77P-6#vDO9mD)C zmvgdaeIMO4I-jfcinc4gKH6(<-C6a=x@>NHs@b^>sttqP#lmj}qQsutl>avAR(o~H zT1+l`B;;I@;7@cd&eP-n4gvp6!^81kKr$s>#Zd7(>sxAeUc_8EoEjJut#Ed1(D(&5 zBd2m%$tA@86ydHUS?MJm6}fiRjfA|N^O@|yxM, 2012 +# Juraj Bubniak , 2013 +# Rastislav Kober , 2012 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Slovak (http://www.transifex.com/projects/p/django-debug-toolbar/language/sk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sk\n" +"Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "Dáta pre tento panel už nie sú k dispozícii. Načítajte si prosím stránku a skúste to znova." + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(cache_calls)d volanie za %(time).2fms" +msgstr[1] "%(cache_calls)d volaní za %(time).2fms" +msgstr[2] "%(cache_calls)d volaní za %(time).2fms" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "Cache volania z %(count)d backendu" +msgstr[1] "Cache volania z %(count)d backendov" +msgstr[2] "Cache volania z %(count)d backendov" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "Hlavičky" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Zápis" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s správa" +msgstr[1] "%(count)s správ" +msgstr[2] "%(count)s správ" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "Správy zápisu" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Analýza" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "Zachytiť presmerovania" + +#: panels/request.py:18 +msgid "Request" +msgstr "Požiadavka" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Nastavenia" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "Nastavenia z %s" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "%(num_receivers)d príjemca 1 signálu" +msgstr[1] "%(num_receivers)d príjemcov 1 signálu" +msgstr[2] "%(num_receivers)d príjemcov 1 signálu" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_receivers)d príjemca %(num_signals)d signálov" +msgstr[1] "%(num_receivers)d príjemcov %(num_signals)d signálov" +msgstr[2] "%(num_receivers)d príjemcov %(num_signals)d signálov" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Signály" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "Statické súbory (%(num_found)s nájdených, %(num_used)s použitých)" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Statické súbory" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s použitý súbor" +msgstr[1] "%(num_used)s použitých súborov" +msgstr[2] "%(num_used)s použitých súborov" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2fms (%(total)0.2fms)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "Celkovo: %0.2fms" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Čas" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "Užívateľský čas CPU" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f msek" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "Systémový čas CPU" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f msek" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "Celkový čas CPU" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f msek" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "Uplynutý čas" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f msek" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "Prepnutí kontextu" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d dobrovoľných, %(ivcsw)d nedobrovoľných" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Verzie" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "Autocommit" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "Read uncommitted" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "Read committed" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "Opakovateľné čítanie" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Premenná" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "Nečinný" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Akcia" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "Stav transakcie:" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Chyba" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "(neznámy)" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Šablóny" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Šablóny (%(num_templates)s spracovaných)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "Skryť panel nástrojov" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Skryť" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "Zakázať pre ďalšie a nasledujúce požiadavky" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "Povoliť pre ďalšie a nasledujúce požiadavky" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "Zobraziť panel nástrojov" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Zatvoriť" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "Poloha:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "Django Debug Toolbar zachytil presmerovanie na vyššie uvedenú URL pre účely ladenia. Pre normálne presmerovanie môžete kliknúť na vyššie uvedený odkaz." + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Zhrnutie" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "Celkovo volaní" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "Celkový čas" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "Volaní cache" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "Vynechania cache" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "Príkazy" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "Volania" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Čas (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Typ" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "Argumenty" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "Kľúčové argumenty" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "Backend" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "Hlavičky požiadavky" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Kľúč" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Hodnota" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "Hlavičky odpovede" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "WSGI prostredie" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "Keďže WSGI prostredie dedí z prostredia servera, je nižšie zobrazená iba významná podmnožina." + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Úroveň" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "Kanál" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Správa" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Poloha" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Žiadne správy neboli zaznamenané" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "Volanie" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "CumTime" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "Za" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "TotTime" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Počet" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Zobraziť informácie" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "View funkcia" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "URL meno" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Cookies" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Premenná" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "Žiadne cookies" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Dáta relácie" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "Žiadne dáta relácie" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "GET dáta" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Žiadne GET dáta" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "POST dáta" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Žiadne POST dáta" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Nastavenie" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Signál" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "Poskytuje" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Príjemcovia" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s dopyt" +msgstr[1] "%(num)s dopytov" +msgstr[2] "%(num)s dopytov" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Dopyt" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "Časová os" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Akcia" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Pripojenie:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "Úroveň izolácie:" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "Stav transakcie:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(neznámy)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "V priebehu tejto požiadavky neboli zaznamenané žiadne SQL dopyty." + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Späť" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL vysvetlené" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Vykonané SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Databáza" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "SQL profilované" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Chyba" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "SQL označené" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Prázdny rad" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "Cesta k statickému súboru" +msgstr[1] "Cesty k statickým súborom" +msgstr[2] "Cesty k statickým súborom" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(prefix %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Žiadny" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "Aplikácia pre statické súbory" +msgstr[1] "Aplikácie pre statické súbory" +msgstr[2] "Aplikácie pre statické súbory" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "Statické súbory" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s súbor" +msgstr[1] "%(payload_count)s súborov" +msgstr[2] "%(payload_count)s súborov" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Cesta" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "Zdrojový kód šablóny:" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "Cesta k šablóne" +msgstr[1] "Cesta k šablóne" +msgstr[2] "Cesta k šablóne" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Šablóna" +msgstr[1] "Šablóna" +msgstr[2] "Šablóna" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "Prepnúť kontext" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Spracovateľ kontextu" +msgstr[1] "Spracovateľ kontextu" +msgstr[2] "Spracovateľ kontextu" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "Využitie prostriedkov" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Prostriedok" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "Čas prehliadača" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "Časový atribút" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "Milisekúnd od spustenia navigácie (+dĺžka)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Meno" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Verzia" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..ae733443df889244111aff09c68a8e54247a6003 GIT binary patch literal 2403 zcmZXTO>7%Q6vv0s^5K?`wm@4bFogze(zTt?NUhscO%sPk#HkazK?o!?*_~{*-kr5} zW}TRxKv2BlXx{tHo1J-Y z=FPsF`*wcB&`OZQkPq)-Y!cjaHx$~zos1m?4}tfCXTW>F^OhGtbhZe!3w+H|fV*M) z*4E&Cu)84ndE3sv3+{paK8VgfgQ9ioARXZvNPfSx^IwDa!u}paXE&fI&QBou`OVJ% zY55mO@%{$M&uwdyL2+^*#n}(i{sSQSKWe`p1L?kFcK$R->!z$d5AK8gDoAlc5FuE{ z+LuA{cLhXe??F-A5A6IW)?No6#{4z#XS~68;0v@Kn`!+wmOohj2-3NJ0kM?*ZtXun z%Ev8h{{y14+fd|Z2h;=LZjja;0%`w{ogW6t?@2p<)^ZxmVSW~*`@I4_2)+(J1hzo( za~VWuZ$Xj&cR=#@F-ZCO)Y_kel=m+{boLb#<@H;T{N4a*->)D#yJ_cdS^f)>|6OoO z>-K`=?;uF)4_gk|??r2mfs~IkAUd0dqW7zVNIQETLbb31;y|8*JO-imEQHg*wqxKE z0|O*~lnZ({dP{0_Mry--u!G>!5PE|nkRixX2<492UI?9M(5NQqUexGbPeBer=njKM z`J(m+gmST;47A4~&p?V~*hV>i6!Ijb0Leq>J*m_*eLwPq&l__W*Nv(x1@0`&r zpQ@IMS5<*cxF(2IhK^+Cgxg}1!d;PUGK@8Jtdz`_R4|5LHYJQ$68Kb&+NR63G_0B= zal)!=(oK!@cw>H+oew<8W)zp%r87 z#)hFJs|&Nj>PfsDgn{zed@7SJTac~{Ix^81={QYX$tZ3^CV>cpH^owj326-Nu+*#( z_)3HpFb&S)a`=@n(kK#e+>}u}6h>|g^wv>;(>9@aKGFqtv7be@D8f`iBR0id#IY!; zmYOXFa+L>aIZmSf?Qxq+NUJmBId)NnPhAqqkNK2bN`2mp<8VnNxdqvd6XVphA9&8W z)YnckuJBy_LerT{WaiAli^vKeEsq>`%Ez72F+Ms{85nEv%k zq4iwSoi`fQQXyBHsZ}>qHc~9-@P`_yaQJQ;Suk?Vl<p@;k>K|nzu261PHe8D z11!tLsVX=2@OxDFiKW17T%y9WSh;$bCL(mE@n*WhRXa2F_~eiQPvm*QEW>J!DSfh8n)#&y8d+Ql&&|+(eO2z&I65tT~ literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po new file mode 100644 index 0000000..0c8b2e8 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po @@ -0,0 +1,657 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# Alex Nordlund , 2012-2013 +# Alex Nordlund , 2012 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Swedish (Sweden) (http://www.transifex.com/projects/p/django-debug-toolbar/language/sv_SE/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: sv_SE\n" +"Plural-Forms: nplurals=2; plural=(n != 1);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Cache" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" +msgstr[1] "" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s meddelande" +msgstr[1] "%(count)s meddelanden" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "Profilering" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Inställningar" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "" +msgstr[1] "" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Signaler" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "Statiska filer" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Tid" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Versioner" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "Variabel" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "Åtgärd" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "Felmeddelande" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "(okänd)" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Mallar" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Dölj" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Stäng" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "Sammanfattning" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Tid (ms)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Nyckel" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Värde" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Nivå" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Meddelande" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Plats" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "Räkna" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "Visa informationen" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Variabel" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Ingen GET data" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Ingen POST data" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "Inställning" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Signal" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Mottagare" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Fråga" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Åtgärd" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "Anslutning:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(okänd)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Bakåt" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "Utförd SQL" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "Databas" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Felmeddelande" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "Tomt set" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "Inget" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "Statiska filer" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "Sökväg" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Mall" +msgstr[1] "Mallar" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "Resurs" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "Namn" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Version" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/uk/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/uk/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..6ea928e1b4190f2cd8c115907dd948bd5f2a15f9 GIT binary patch literal 2042 zcmaKsO>7%g5XT=7zTEIt3Z#6#3MJTTH(t95Dx0_^O;V_EXh>Z+!p45xY-8`5-E}^s z9-5+(9x4!DNmU3?4wM5RCrw1ud{m+*Bo1%kQVD@T95{ivAaR5L?7r54BA&GSo0&H= zZ)V=wKWuJ#hhaT}=RrJMu460(HeZhyRvo+voCll0W$;FDP4NRs;3{MJb94(3n2MfU>o={ zNOhc6_Bo}W11ayPAmv*CDbI@1FM*p-)7M}E_RDZ4{tVK&zk#=de}H#`O)!$)qWBm{ zc^?O9BEP9U6B;$!U&>; zaYeJ(0#fa?Fh2G`B*phbHQ%Fj>X+{7VLbOK8_kURyaP}4J%H2)E$ZXmNW!b97}&1E z_L{{})@v3=1nVukzF>W3U=EuQ`aRF}*wc1NuxG?1%Zo8lW_h=0Msa!9vTVm<1H$)B zOR#5M{#1W~mk>?z;DLh;r4sx2yo?}GV$aotH_3)XQP^X`^VvZW1jq%!wj8sp;Io3L zRLf={t_ls)28kzIlTNMjVxYYJl+Qikl!PZrDORv6h{ua3D?Zf8s$kEXz zsAt-aZ8|(T5(HHvogN<_Zx1NBeOOGi7u`y_8V|rvSJS1aZ>>aqYeC$1x~x*BYoqB@ zVqpJ3e`8RYc0JMSI)QLdGNx_tKuiQ_T%_%E@#2W-`69?2D(usCHT>xG!@|@0ouXU9 zr(p11!*+1Bbc5GM6NBZNXO^{nu2=C5?o=by&+Y8uv6xFbtrDZRh9A0bDAdy@2%1OOx?KB*@~=G_&HwGoWu8Qic@&Aan$0@D=5Haz, 2013 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Ukrainian (http://www.transifex.com/projects/p/django-debug-toolbar/language/uk/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: uk\n" +"Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "Кеш" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "Логи" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "" + +#: panels/request.py:18 +msgid "Request" +msgstr "" + +#: panels/request.py:35 +msgid "" +msgstr "" + +#: panels/request.py:47 +msgid "" +msgstr "" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "Налаштування" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "Сигнали" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "Час" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "Версії" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "Шаблони" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "Шаблони (оброблено %(num_templates)s)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "Сховати" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "Закрити" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "Час (мс)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "Тип" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "Ключ" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "Значення" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "Рівень" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "Повідомлення" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "Місце" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "Повідомлень немає" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "Змінна" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "Немає GET даних" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "Немає POST даних" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "Сигнал" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "Отримувачі сигнала" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "Запит" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "Подія" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "Назад" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "База даних" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "Помилка" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "Шаблон" +msgstr[1] "Шаблони" +msgstr[2] "Шаблонів" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "" +msgstr[1] "" +msgstr[2] "" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "Версія" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.mo b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.mo new file mode 100644 index 0000000000000000000000000000000000000000..0dad769483ba72ad65725d639fd8a331529ebd5e GIT binary patch literal 8579 zcmbW43vg7|dB;yuNL$&dQ_{F`Lz)xY7;W*c9yY;V9ySQsCsV_&xAp z@Mqwc!3XYTEC#LsH-qQF5csj;gP&#WcaeWVF#_I?d{X5Pg8}5vfS(6{0RA@k6Gb1y zANvSDp8IU8{-K=z10ao43R3@- zAP1iWY225Ue!JpM@D=FWLF(tnAhwvLK^l(^1?fKzt^+wp{YF6AkL@b|Es*N%RqR*# z)8JC*&x1qYkCZ;j<$QO5G~ZnywciKQJdc93zr!Gn^DapGe*mez2a=sW1WCUTm1$mI z04dHaR{5nMwGV-`k54Q8dd24yw}5nBUsBXTYPS>o6!>S5I!N*NG&1Bf^t}Z6Q<0MA z6wSnZluFp_QI(CHo5hlH@{ewE$=E{Cjwa0so_fP52@|9Vv78{k8ECHO4lMMx)vKC(eAqzXd*La~6p z=O8bLl>DI>@G^vK0M`;WOMput+aUD)G2{RQAx*qt0M-DBP(pnhz^F>MfIC#0&hVc= zR;qj+l}M1^zLHmf%@FdDFr*7Y-?t!eO|}>EN04d=eV>(J_26R=@{tFXj_@$VD$1`x zx(w1*qy>Fa}^&4AAxLwEKs`LpsCVLpaaQgRF*;efn!Zn5N$0ais$D}RN{V#jSOPK|`aMR_Cor>;fC|Fept>a-Y`p{yP^ z90%T5g|i@jkZjRRQ%5dlIT#mf(99^*7PMlqVM@DtyUP={6@mX-_MIBhKvZ(t3>PaP zg|&k`zl!F~s*>?~96PpNb2Z*%VMkgFhbJ@)%?-y~>hi)abIt6CTecqJwJ}|Dbet6O zCbZDepjk&bogUZj2#M|*QHQNJ9I}w;+N8-+B_|o73FE|}KF+0seW;FU33xAAL}%6U zgxkR#-DTD0ui4zTvHt3IJ(6_MOWg|_*|XL4Jc?zp4Z0S^*=8Gzs4jlEYgw^I&1N-G z9Do{=>!LLhuC1AlCY`AUyK6`Ego{Z=4TJ^Evc|Du8o3&e>8*M!%%0ObNZKqr%C&;q zZKOiB(Ta$=g+v&s=6tMjDAP>dw@C%BO-3wc;GkJBG-81n(K&qFXqE#yI5jRWT^7^L zX1684Hfz|Z%@!{#6Y1LL>(rW&!5)a92V?U#-KM>cV4B#SXwt^G($vZTA?hlkTmwlJ zP#qq_BoS1gf`dA=aZjJkdTpJRm6(wYnC{x%0zMHJoH4jth<~cQCHW8*w(M>5qA@j0zN6##U#M$l89@#mg_nkSC4bVVHp7G^*BuB>MWmd3Ms@I z%qFiFxuQbp2;oBcT#=KX6$TQ0JGeD%L~I<5Xn@sYf7fr<%w~(P*Bg_~yk5o#-lEaN zLxlny9<2}#U|nGrt&m8dgBR_y$cm>JRY8$U@mC~qBg)H=)z3vmjxgjV9c*w%LT9vQlj6`;c|o(S zbg34sxJ`>Cb+%2ziK5fA4MCW0X+?)^!zS@21Oah*i=1KN5{koVQLp%HP&nC+6B?|E z237m;UF}tZ=waDzaFf$)M1$*+%}%i13iFcM=j(%22q)BY5VxHk=9T3Yj|a;i4^}Sc zl@;OTmCMR2%ga$QxJ7R@Xr_18t9UZJ{IO-__)0cvjvEv^14p&&Fkjmd$LWpmwaMlr zo=zrTrAbXlQ<|sakGF>`yLk;7o6SkYs$jjY#lyU+1vW&$Dy4)L;H53Dn+TVcwY9Z{ z#Fb<;>FpuJ$}$8k+6JdAQ5F^68WjE(R5w~#Om$qgtEHi8b6KEdQ_ZI8xgDzrm6wQT zgNeDrf?-bHQ6|FTN*-y^Y($aOTkD?*J~3C1tly;D!D>Wn3g}_}M5Eyr))3}mtdiPT z($-?ZXJ9`k%*}+zI;$&Ia+zFRzOsbPz4E!Ax||t(%{#E49#QlDCGg)I&R*G@8N7(< z`M0Wndf30-?e9)OCm;0b$xHs(k!5zOLvsT_`AePZxCR z@tmHV_6}YweokXn(6Cakr#Ex66MInflJ-ws%A6g+L)w39*gw^ie@v$*d%eCC7P5wU z2hV2r&M^PlbarAd^ZNGq$F8t!*Cll6_w}cz&a>?7pm*{N^ZJiuE~l9PPG5Gk+k4|; zc6`_$x_L}#S9nI|?VBY?>b3x!Sv)I zSlR3D@_Ww}Ud>nq<{`U=u9{7acwIBddwmDJ{nz2vxxE)D{=V z>*~#>j-iOj2Hw;F%e~g^rEXx}>B&xP8y1+E9;4}|Cj6^=G8cBkz%);3VQCGP`QB9S ze0`&Tsg`pG}$n&$@J$fjWap3&^^VGJVPo7vQu*Eb@b-f~bmIkus`zLtCEud&>T z{_Ienf;TbZ?Vs?!+b1S5^cGWnrl$^h2Zxz|=z`yU2@CbcPk8-D(P%JpVLCH4>UCd6 z)p23Z!EtYFNO`F$O3(CWX2zKW+1DQ$@n(k*5-5Dg3{%0xOWn+NU-E8tdZUNP&9MI> zEa9P@J2vZ0T?oL>do!a~m^v`@+@7~Ir5A7Ec?I67i{ANtnf?RW**C}}jC2k5{~ouo63 zLwaJLH`b3cNxqOf{f6JUTi!OzJG|fPzg(=Mx>JL60TpYNy^B@z%JVPb{QI1)s-9bL zM9lE^i>`3R1(<*Ibxe6~X+A!-!o>LJcl6u&_9Q#TD|S7r(>le4M-N zPrl`!9SE?yzQfa#Q`jg(RD`|E$#JY)#s{@~lXHOr3qknC4vRNADoWqOc5?3Txd`uo z4KjOfcwN)79;)O9Zozk9F+@xm(h70MALvcboDv69of3gk87QzVBAc0-g-6j1=v_Sn z7iIF|DBL4V-UWqgV(#b_E&_SC%-dMpnc{X)S54s#Wk`AZuVQb-8(m$ZOa{)(!RzoD z+V{-WY46M-@l4N0F>(Jhc#PjYQ9P8_c@vjCxh>1|bo-~?%tJiO<>e(G>?)3m*LktK Gv;PHtm(tV# literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po new file mode 100644 index 0000000..521d577 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po @@ -0,0 +1,642 @@ +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# +# +# Translators: +# mozillazg , 2013-2014 +msgid "" +msgstr "" +"Project-Id-Version: Django Debug Toolbar\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2014-04-25 21:52+0200\n" +"PO-Revision-Date: 2014-04-25 19:53+0000\n" +"Last-Translator: Aymeric Augustin \n" +"Language-Team: Chinese (China) (http://www.transifex.com/projects/p/django-debug-toolbar/language/zh_CN/)\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Language: zh_CN\n" +"Plural-Forms: nplurals=1; plural=0;\n" + +#: apps.py:11 +msgid "Debug Toolbar" +msgstr "" + +#: views.py:14 +msgid "" +"Data for this panel isn't available anymore. Please reload the page and " +"retry." +msgstr "当前面板的数据暂不可用。请刷新页面并重试。" + +#: panels/cache.py:191 +msgid "Cache" +msgstr "缓存" + +#: panels/cache.py:196 +#, python-format +msgid "%(cache_calls)d call in %(time).2fms" +msgid_plural "%(cache_calls)d calls in %(time).2fms" +msgstr[0] "%(time).2f 毫秒内 %(cache_calls)d 次调用" + +#: panels/cache.py:204 +#, python-format +msgid "Cache calls from %(count)d backend" +msgid_plural "Cache calls from %(count)d backends" +msgstr[0] "来自 %(count)d 个后端的缓存调用" + +#: panels/headers.py:35 +msgid "Headers" +msgstr "HTTP 头" + +#: panels/logging.py:64 +msgid "Logging" +msgstr "日志" + +#: panels/logging.py:70 +#, python-format +msgid "%(count)s message" +msgid_plural "%(count)s messages" +msgstr[0] "%(count)s 条消息" + +#: panels/logging.py:73 +msgid "Log messages" +msgstr "日志信息" + +#: panels/profiling.py:127 +msgid "Profiling" +msgstr "性能分析" + +#: panels/redirects.py:17 +msgid "Intercept redirects" +msgstr "拦截重定向" + +#: panels/request.py:18 +msgid "Request" +msgstr "请求" + +#: panels/request.py:35 +msgid "" +msgstr "<没有 view>" + +#: panels/request.py:47 +msgid "" +msgstr "<不可用>" + +#: panels/settings.py:20 +msgid "Settings" +msgstr "设置" + +#: panels/settings.py:23 +#, python-format +msgid "Settings from %s" +msgstr "来自 %s 的设置" + +#: panels/signals.py:45 +#, python-format +msgid "%(num_receivers)d receiver of 1 signal" +msgid_plural "%(num_receivers)d receivers of 1 signal" +msgstr[0] "1个信号 %(num_receivers)d 个接收者" + +#: panels/signals.py:48 +#, python-format +msgid "%(num_receivers)d receiver of %(num_signals)d signals" +msgid_plural "%(num_receivers)d receivers of %(num_signals)d signals" +msgstr[0] "%(num_signals)d 个信号 %(num_receivers)d 个接收者" + +#: panels/signals.py:53 +msgid "Signals" +msgstr "信号" + +#: panels/staticfiles.py:89 +#, python-format +msgid "Static files (%(num_found)s found, %(num_used)s used)" +msgstr "静态文件 (%(num_found)s 个找到,%(num_used)s 个被使用)" + +#: panels/staticfiles.py:107 +msgid "Static files" +msgstr "静态文件" + +#: panels/staticfiles.py:112 +#, python-format +msgid "%(num_used)s file used" +msgid_plural "%(num_used)s files used" +msgstr[0] "%(num_used)s 个文件被使用" + +#: panels/timer.py:23 +#, python-format +msgid "CPU: %(cum)0.2fms (%(total)0.2fms)" +msgstr "CPU: %(cum)0.2f 毫秒 (总耗时: %(total)0.2f 毫秒)" + +#: panels/timer.py:28 +#, python-format +msgid "Total: %0.2fms" +msgstr "总共:%0.2f 毫秒" + +#: panels/timer.py:34 templates/debug_toolbar/panels/logging.html:7 +#: templates/debug_toolbar/panels/sql_explain.html:11 +#: templates/debug_toolbar/panels/sql_profile.html:12 +#: templates/debug_toolbar/panels/sql_select.html:11 +msgid "Time" +msgstr "时间" + +#: panels/timer.py:42 +msgid "User CPU time" +msgstr "用户 CPU 时间" + +#: panels/timer.py:42 +#, python-format +msgid "%(utime)0.3f msec" +msgstr "%(utime)0.3f 毫秒" + +#: panels/timer.py:43 +msgid "System CPU time" +msgstr "系统 CPU 时间" + +#: panels/timer.py:43 +#, python-format +msgid "%(stime)0.3f msec" +msgstr "%(stime)0.3f 毫秒" + +#: panels/timer.py:44 +msgid "Total CPU time" +msgstr "总的 CPU 时间" + +#: panels/timer.py:44 +#, python-format +msgid "%(total)0.3f msec" +msgstr "%(total)0.3f 毫秒" + +#: panels/timer.py:45 +msgid "Elapsed time" +msgstr "耗时" + +#: panels/timer.py:45 +#, python-format +msgid "%(total_time)0.3f msec" +msgstr "%(total_time)0.3f 毫秒" + +#: panels/timer.py:46 +msgid "Context switches" +msgstr "上下文切换" + +#: panels/timer.py:46 +#, python-format +msgid "%(vcsw)d voluntary, %(ivcsw)d involuntary" +msgstr "%(vcsw)d 主动, %(ivcsw)d 被动" + +#: panels/versions.py:25 +msgid "Versions" +msgstr "版本" + +#: panels/sql/panel.py:22 +msgid "Autocommit" +msgstr "自动提交" + +#: panels/sql/panel.py:23 +msgid "Read uncommitted" +msgstr "读取未提交的" + +#: panels/sql/panel.py:24 +msgid "Read committed" +msgstr "读取已提交的" + +#: panels/sql/panel.py:25 +msgid "Repeatable read" +msgstr "可重复读取" + +#: panels/sql/panel.py:26 +msgid "Serializable" +msgstr "可序列化" + +#: panels/sql/panel.py:37 +msgid "Idle" +msgstr "空闲" + +#: panels/sql/panel.py:38 +msgid "Active" +msgstr "活跃" + +#: panels/sql/panel.py:39 +msgid "In transaction" +msgstr "事务" + +#: panels/sql/panel.py:40 +msgid "In error" +msgstr "错误" + +#: panels/sql/panel.py:41 +msgid "Unknown" +msgstr "未知" + +#: panels/sql/panel.py:105 +msgid "SQL" +msgstr "SQL" + +#: panels/templates/panel.py:141 +msgid "Templates" +msgstr "模板" + +#: panels/templates/panel.py:146 +#, python-format +msgid "Templates (%(num_templates)s rendered)" +msgstr "模板 (%(num_templates)s 个被渲染)" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide toolbar" +msgstr "隐藏工具栏" + +#: templates/debug_toolbar/base.html:19 +msgid "Hide" +msgstr "隐藏" + +#: templates/debug_toolbar/base.html:25 +msgid "Disable for next and successive requests" +msgstr "针对下一个连续的请求禁用该功能" + +#: templates/debug_toolbar/base.html:25 +msgid "Enable for next and successive requests" +msgstr "针对下一个连续的请求启用该功能" + +#: templates/debug_toolbar/base.html:47 +msgid "Show toolbar" +msgstr "显示工具栏" + +#: templates/debug_toolbar/base.html:53 +msgid "Close" +msgstr "关闭" + +#: templates/debug_toolbar/redirect.html:8 +msgid "Location:" +msgstr "位置:" + +#: templates/debug_toolbar/redirect.html:10 +msgid "" +"The Django Debug Toolbar has intercepted a redirect to the above URL for " +"debug viewing purposes. You can click the above link to continue with the " +"redirect as normal." +msgstr "Django Debug Toolbar 为了调试目的拦截了一个重定向到上面 URL 的请求。 您可以点击上面的链接继续执行重定向操作。" + +#: templates/debug_toolbar/panels/cache.html:2 +msgid "Summary" +msgstr "摘要" + +#: templates/debug_toolbar/panels/cache.html:6 +msgid "Total calls" +msgstr "总调用次数" + +#: templates/debug_toolbar/panels/cache.html:7 +msgid "Total time" +msgstr "总耗时" + +#: templates/debug_toolbar/panels/cache.html:8 +msgid "Cache hits" +msgstr "缓存命中" + +#: templates/debug_toolbar/panels/cache.html:9 +msgid "Cache misses" +msgstr "缓存未命中" + +#: templates/debug_toolbar/panels/cache.html:21 +msgid "Commands" +msgstr "命令" + +#: templates/debug_toolbar/panels/cache.html:39 +msgid "Calls" +msgstr "调用" + +#: templates/debug_toolbar/panels/cache.html:43 +#: templates/debug_toolbar/panels/sql.html:20 +msgid "Time (ms)" +msgstr "时间(毫秒)" + +#: templates/debug_toolbar/panels/cache.html:44 +msgid "Type" +msgstr "类型" + +#: templates/debug_toolbar/panels/cache.html:45 +#: templates/debug_toolbar/panels/request.html:8 +msgid "Arguments" +msgstr "参数" + +#: templates/debug_toolbar/panels/cache.html:46 +#: templates/debug_toolbar/panels/request.html:9 +msgid "Keyword arguments" +msgstr "关键字参数" + +#: templates/debug_toolbar/panels/cache.html:47 +msgid "Backend" +msgstr "后端" + +#: templates/debug_toolbar/panels/headers.html:3 +msgid "Request headers" +msgstr "请求头" + +#: templates/debug_toolbar/panels/headers.html:8 +#: templates/debug_toolbar/panels/headers.html:27 +#: templates/debug_toolbar/panels/headers.html:48 +msgid "Key" +msgstr "键" + +#: templates/debug_toolbar/panels/headers.html:9 +#: templates/debug_toolbar/panels/headers.html:28 +#: templates/debug_toolbar/panels/headers.html:49 +#: templates/debug_toolbar/panels/request.html:33 +#: templates/debug_toolbar/panels/request.html:59 +#: templates/debug_toolbar/panels/request.html:85 +#: templates/debug_toolbar/panels/request.html:110 +#: templates/debug_toolbar/panels/settings.html:6 +#: templates/debug_toolbar/panels/timer.html:11 +msgid "Value" +msgstr "值" + +#: templates/debug_toolbar/panels/headers.html:22 +msgid "Response headers" +msgstr "响应头" + +#: templates/debug_toolbar/panels/headers.html:41 +msgid "WSGI environ" +msgstr "WSGI 环境变量" + +#: templates/debug_toolbar/panels/headers.html:43 +msgid "" +"Since the WSGI environ inherits the environment of the server, only a " +"significant subset is shown below." +msgstr "由于 WSGI 的环境变量继承自 server,所以下面只显示了一些重要的子集。" + +#: templates/debug_toolbar/panels/logging.html:6 +msgid "Level" +msgstr "级别" + +#: templates/debug_toolbar/panels/logging.html:8 +msgid "Channel" +msgstr "频道" + +#: templates/debug_toolbar/panels/logging.html:9 +msgid "Message" +msgstr "消息" + +#: templates/debug_toolbar/panels/logging.html:10 +#: templates/debug_toolbar/panels/staticfiles.html:45 +msgid "Location" +msgstr "位置" + +#: templates/debug_toolbar/panels/logging.html:26 +msgid "No messages logged" +msgstr "没有消息被记录" + +#: templates/debug_toolbar/panels/profiling.html:5 +msgid "Call" +msgstr "调用" + +#: templates/debug_toolbar/panels/profiling.html:6 +msgid "CumTime" +msgstr "调用该函数及其内部调用其他函数花费的总时间" + +#: templates/debug_toolbar/panels/profiling.html:7 +#: templates/debug_toolbar/panels/profiling.html:9 +msgid "Per" +msgstr "平均每次调用花费的时间" + +#: templates/debug_toolbar/panels/profiling.html:8 +msgid "TotTime" +msgstr "调用该函数花费的总时间" + +#: templates/debug_toolbar/panels/profiling.html:10 +msgid "Count" +msgstr "总的调用次数" + +#: templates/debug_toolbar/panels/request.html:3 +msgid "View information" +msgstr "View 信息" + +#: templates/debug_toolbar/panels/request.html:7 +msgid "View function" +msgstr "View 函数" + +#: templates/debug_toolbar/panels/request.html:10 +msgid "URL name" +msgstr "URL 名称" + +#: templates/debug_toolbar/panels/request.html:24 +msgid "Cookies" +msgstr "Cookies" + +#: templates/debug_toolbar/panels/request.html:32 +#: templates/debug_toolbar/panels/request.html:58 +#: templates/debug_toolbar/panels/request.html:84 +#: templates/debug_toolbar/panels/request.html:109 +msgid "Variable" +msgstr "变量" + +#: templates/debug_toolbar/panels/request.html:46 +msgid "No cookies" +msgstr "没有 cookies" + +#: templates/debug_toolbar/panels/request.html:50 +msgid "Session data" +msgstr "Session 数据" + +#: templates/debug_toolbar/panels/request.html:72 +msgid "No session data" +msgstr "没有 session 数据" + +#: templates/debug_toolbar/panels/request.html:76 +msgid "GET data" +msgstr "GET 请求数据" + +#: templates/debug_toolbar/panels/request.html:98 +msgid "No GET data" +msgstr "没有 GET 请求数据" + +#: templates/debug_toolbar/panels/request.html:102 +msgid "POST data" +msgstr "POST 请求数据" + +#: templates/debug_toolbar/panels/request.html:123 +msgid "No POST data" +msgstr "没有 POST 请求数据" + +#: templates/debug_toolbar/panels/settings.html:5 +msgid "Setting" +msgstr "设置项" + +#: templates/debug_toolbar/panels/signals.html:5 +msgid "Signal" +msgstr "信号" + +#: templates/debug_toolbar/panels/signals.html:6 +msgid "Providing" +msgstr "提供" + +#: templates/debug_toolbar/panels/signals.html:7 +msgid "Receivers" +msgstr "接收者" + +#: templates/debug_toolbar/panels/sql.html:7 +#, python-format +msgid "%(num)s query" +msgid_plural "%(num)s queries" +msgstr[0] "%(num)s 个查询" + +#: templates/debug_toolbar/panels/sql.html:18 +msgid "Query" +msgstr "查询" + +#: templates/debug_toolbar/panels/sql.html:19 +#: templates/debug_toolbar/panels/timer.html:36 +msgid "Timeline" +msgstr "时间线" + +#: templates/debug_toolbar/panels/sql.html:21 +msgid "Action" +msgstr "功能" + +#: templates/debug_toolbar/panels/sql.html:64 +msgid "Connection:" +msgstr "连接:" + +#: templates/debug_toolbar/panels/sql.html:66 +msgid "Isolation level:" +msgstr "隔离级别" + +#: templates/debug_toolbar/panels/sql.html:69 +msgid "Transaction status:" +msgstr "事务状态:" + +#: templates/debug_toolbar/panels/sql.html:83 +msgid "(unknown)" +msgstr "(未知)" + +#: templates/debug_toolbar/panels/sql.html:92 +msgid "No SQL queries were recorded during this request." +msgstr "在处理这个请求期间没有记录到 SQL 查询。" + +#: templates/debug_toolbar/panels/sql_explain.html:3 +#: templates/debug_toolbar/panels/sql_profile.html:3 +#: templates/debug_toolbar/panels/sql_select.html:3 +#: templates/debug_toolbar/panels/template_source.html:3 +msgid "Back" +msgstr "返回" + +#: templates/debug_toolbar/panels/sql_explain.html:4 +msgid "SQL explained" +msgstr "SQL explain 分析" + +#: templates/debug_toolbar/panels/sql_explain.html:9 +#: templates/debug_toolbar/panels/sql_profile.html:10 +#: templates/debug_toolbar/panels/sql_select.html:9 +msgid "Executed SQL" +msgstr "执行的 SQL 语句" + +#: templates/debug_toolbar/panels/sql_explain.html:13 +#: templates/debug_toolbar/panels/sql_profile.html:14 +#: templates/debug_toolbar/panels/sql_select.html:13 +msgid "Database" +msgstr "数据库" + +#: templates/debug_toolbar/panels/sql_profile.html:4 +msgid "SQL profiled" +msgstr "SQL 性能分析" + +#: templates/debug_toolbar/panels/sql_profile.html:37 +msgid "Error" +msgstr "错误" + +#: templates/debug_toolbar/panels/sql_select.html:4 +msgid "SQL selected" +msgstr "选中的 SQL 语句" + +#: templates/debug_toolbar/panels/sql_select.html:36 +msgid "Empty set" +msgstr "空集合" + +#: templates/debug_toolbar/panels/staticfiles.html:4 +msgid "Static file path" +msgid_plural "Static file paths" +msgstr[0] "静态文件路径" + +#: templates/debug_toolbar/panels/staticfiles.html:8 +#, python-format +msgid "(prefix %(prefix)s)" +msgstr "(前缀 %(prefix)s)" + +#: templates/debug_toolbar/panels/staticfiles.html:12 +#: templates/debug_toolbar/panels/staticfiles.html:23 +#: templates/debug_toolbar/panels/staticfiles.html:35 +#: templates/debug_toolbar/panels/templates.html:10 +#: templates/debug_toolbar/panels/templates.html:28 +#: templates/debug_toolbar/panels/templates.html:43 +msgid "None" +msgstr "空" + +#: templates/debug_toolbar/panels/staticfiles.html:15 +msgid "Static file app" +msgid_plural "Static file apps" +msgstr[0] "包含静态文件的应用" + +#: templates/debug_toolbar/panels/staticfiles.html:26 +msgid "Static file" +msgid_plural "Static files" +msgstr[0] "静态文件" + +#: templates/debug_toolbar/panels/staticfiles.html:40 +#, python-format +msgid "%(payload_count)s file" +msgid_plural "%(payload_count)s files" +msgstr[0] "%(payload_count)s 个文件" + +#: templates/debug_toolbar/panels/staticfiles.html:44 +msgid "Path" +msgstr "路径" + +#: templates/debug_toolbar/panels/template_source.html:4 +msgid "Template source:" +msgstr "模板源:" + +#: templates/debug_toolbar/panels/templates.html:2 +msgid "Template path" +msgid_plural "Template paths" +msgstr[0] "模板路径" + +#: templates/debug_toolbar/panels/templates.html:13 +msgid "Template" +msgid_plural "Templates" +msgstr[0] "模板" + +#: templates/debug_toolbar/panels/templates.html:21 +#: templates/debug_toolbar/panels/templates.html:37 +msgid "Toggle context" +msgstr "切换上下文" + +#: templates/debug_toolbar/panels/templates.html:31 +msgid "Context processor" +msgid_plural "Context processors" +msgstr[0] "Context processors" + +#: templates/debug_toolbar/panels/timer.html:2 +msgid "Resource usage" +msgstr "资源使用" + +#: templates/debug_toolbar/panels/timer.html:10 +msgid "Resource" +msgstr "资源" + +#: templates/debug_toolbar/panels/timer.html:26 +msgid "Browser timing" +msgstr "浏览器计时" + +#: templates/debug_toolbar/panels/timer.html:35 +msgid "Timing attribute" +msgstr "计时属性" + +#: templates/debug_toolbar/panels/timer.html:37 +msgid "Milliseconds since navigation start (+length)" +msgstr "导航开始后的毫秒 (+长度)" + +#: templates/debug_toolbar/panels/versions.html:5 +msgid "Name" +msgstr "名称" + +#: templates/debug_toolbar/panels/versions.html:6 +msgid "Version" +msgstr "版本" diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/management/__init__.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/management/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/management/commands/__init__.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/management/commands/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/management/commands/debugsqlshell.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/management/commands/debugsqlshell.py new file mode 100644 index 0000000..2bb2b8d --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/management/commands/debugsqlshell.py @@ -0,0 +1,24 @@ +from __future__ import absolute_import, print_function, unicode_literals + +from time import time + +import sqlparse +# 'debugsqlshell' is the same as the 'shell'. +from django.core.management.commands.shell import Command # noqa +from django.db.backends import utils as db_backends_utils + + +class PrintQueryWrapper(db_backends_utils.CursorDebugWrapper): + def execute(self, sql, params=()): + start_time = time() + try: + return self.cursor.execute(sql, params) + finally: + raw_sql = self.db.ops.last_executed_query(self.cursor, sql, params) + end_time = time() + duration = (end_time - start_time) * 1000 + formatted_sql = sqlparse.format(raw_sql, reindent=True) + print('%s [%.2fms]' % (formatted_sql, duration)) + + +db_backends_utils.CursorDebugWrapper = PrintQueryWrapper diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/middleware.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/middleware.py new file mode 100644 index 0000000..3dbcd14 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/middleware.py @@ -0,0 +1,155 @@ +""" +Debug Toolbar middleware +""" + +from __future__ import absolute_import, unicode_literals + +import re +import threading + +from django.conf import settings +from django.utils import six +from django.utils.deprecation import MiddlewareMixin +from django.utils.encoding import force_text +from django.utils.lru_cache import lru_cache +from django.utils.module_loading import import_string + +from debug_toolbar import settings as dt_settings +from debug_toolbar.toolbar import DebugToolbar + +_HTML_TYPES = ('text/html', 'application/xhtml+xml') + + +def show_toolbar(request): + """ + Default function to determine whether to show the toolbar on a given page. + """ + if request.META.get('REMOTE_ADDR', None) not in settings.INTERNAL_IPS: + return False + + return bool(settings.DEBUG) + + +@lru_cache() +def get_show_toolbar(): + # If SHOW_TOOLBAR_CALLBACK is a string, which is the recommended + # setup, resolve it to the corresponding callable. + func_or_path = dt_settings.get_config()['SHOW_TOOLBAR_CALLBACK'] + if isinstance(func_or_path, six.string_types): + return import_string(func_or_path) + else: + return func_or_path + + +class DebugToolbarMiddleware(MiddlewareMixin): + """ + Middleware to set up Debug Toolbar on incoming request and render toolbar + on outgoing response. + """ + debug_toolbars = {} + + def process_request(self, request): + # Decide whether the toolbar is active for this request. + show_toolbar = get_show_toolbar() + if not show_toolbar(request): + return + + # Don't render the toolbar during AJAX requests. + if request.is_ajax(): + return + + toolbar = DebugToolbar(request) + self.__class__.debug_toolbars[threading.current_thread().ident] = toolbar + + # Activate instrumentation ie. monkey-patch. + for panel in toolbar.enabled_panels: + panel.enable_instrumentation() + + # Run process_request methods of panels like Django middleware. + response = None + for panel in toolbar.enabled_panels: + response = panel.process_request(request) + if response: + break + return response + + def process_view(self, request, view_func, view_args, view_kwargs): + toolbar = self.__class__.debug_toolbars.get(threading.current_thread().ident) + if not toolbar: + return + + # Run process_view methods of panels like Django middleware. + response = None + for panel in toolbar.enabled_panels: + response = panel.process_view(request, view_func, view_args, view_kwargs) + if response: + break + return response + + def process_response(self, request, response): + toolbar = self.__class__.debug_toolbars.pop(threading.current_thread().ident, None) + if not toolbar: + return response + + # Run process_response methods of panels like Django middleware. + for panel in reversed(toolbar.enabled_panels): + new_response = panel.process_response(request, response) + if new_response: + response = new_response + + # Deactivate instrumentation ie. monkey-unpatch. This must run + # regardless of the response. Keep 'return' clauses below. + # (NB: Django's model for middleware doesn't guarantee anything.) + for panel in reversed(toolbar.enabled_panels): + panel.disable_instrumentation() + + # Check for responses where the toolbar can't be inserted. + content_encoding = response.get('Content-Encoding', '') + content_type = response.get('Content-Type', '').split(';')[0] + if any((getattr(response, 'streaming', False), + 'gzip' in content_encoding, + content_type not in _HTML_TYPES)): + return response + + # Collapse the toolbar by default if SHOW_COLLAPSED is set. + if toolbar.config['SHOW_COLLAPSED'] and 'djdt' not in request.COOKIES: + response.set_cookie('djdt', 'hide', 864000) + + # Insert the toolbar in the response. + content = force_text(response.content, encoding=response.charset) + insert_before = dt_settings.get_config()['INSERT_BEFORE'] + pattern = re.escape(insert_before) + bits = re.split(pattern, content, flags=re.IGNORECASE) + if len(bits) > 1: + # When the toolbar will be inserted for sure, generate the stats. + for panel in reversed(toolbar.enabled_panels): + panel.generate_stats(request, response) + panel.generate_server_timing(request, response) + + response = self.generate_server_timing_header(response, toolbar.enabled_panels) + + bits[-2] += toolbar.render_toolbar() + response.content = insert_before.join(bits) + if response.get('Content-Length', None): + response['Content-Length'] = len(response.content) + return response + + @staticmethod + def generate_server_timing_header(response, panels): + data = [] + + for panel in panels: + stats = panel.get_server_timing_stats() + if not stats: + continue + + for key, record in stats.items(): + # example: `SQLPanel_sql_time=0; "SQL 0 queries"` + data.append('{}_{}={}; "{}"'.format(panel.panel_id, + key, + record.get('value'), + record.get('title'))) + + if data: + response['Server-Timing'] = ', '.join(data) + return response diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/__init__.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/__init__.py new file mode 100644 index 0000000..7a074b5 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/__init__.py @@ -0,0 +1,226 @@ +from __future__ import absolute_import, unicode_literals + +import warnings + +from django.template.loader import render_to_string + +from debug_toolbar import settings as dt_settings +from debug_toolbar.utils import get_name_from_obj + + +class Panel(object): + """ + Base class for panels. + """ + def __init__(self, toolbar): + self.toolbar = toolbar + + # Private panel properties + + @property + def panel_id(self): + return self.__class__.__name__ + + @property + def enabled(self): + # Check to see if settings has a default value for it + disabled_panels = dt_settings.get_config()['DISABLE_PANELS'] + panel_path = get_name_from_obj(self) + # Some panels such as the SQLPanel and TemplatesPanel exist in a + # panel module, but can be disabled without panel in the path. + # For that reason, replace .panel. in the path and check for that + # value in the disabled panels as well. + disable_panel = ( + panel_path in disabled_panels or + panel_path.replace('.panel.', '.') in disabled_panels) + if disable_panel: + default = 'off' + else: + default = 'on' + # The user's cookies should override the default value + return self.toolbar.request.COOKIES.get('djdt' + self.panel_id, default) == 'on' + + # Titles and content + + @property + def nav_title(self): + """ + Title shown in the side bar. Defaults to :attr:`title`. + """ + return self.title + + @property + def nav_subtitle(self): + """ + Subtitle shown in the side bar. Defaults to the empty string. + """ + return '' + + @property + def has_content(self): + """ + ``True`` if the panel can be displayed in full screen, ``False`` if + it's only shown in the side bar. Defaults to ``True``. + """ + return True + + @property + def title(self): + """ + Title shown in the panel when it's displayed in full screen. + + Mandatory, unless the panel sets :attr:`has_content` to ``False``. + """ + raise NotImplementedError + + @property + def template(self): + """ + Template used to render :attr:`content`. + + Mandatory, unless the panel sets :attr:`has_content` to ``False`` or + overrides `attr`:content`. + """ + raise NotImplementedError + + @property + def content(self): + """ + Content of the panel when it's displayed in full screen. + + By default this renders the template defined by :attr:`template`. + Statistics stored with :meth:`record_stats` are available in the + template's context. + """ + if self.has_content: + return render_to_string(self.template, self.get_stats()) + + # URLs for panel-specific views + + @classmethod + def get_urls(cls): + """ + Return URLpatterns, if the panel has its own views. + """ + return [] + + # Enable and disable (expensive) instrumentation, must be idempotent + + def enable_instrumentation(self): + """ + Enable instrumentation to gather data for this panel. + + This usually means monkey-patching (!) or registering signal + receivers. Any instrumentation with a non-negligible effect on + performance should be installed by this method rather than at import + time. + + Unless the toolbar or this panel is disabled, this method will be + called early in :class:`DebugToolbarMiddleware.process_request`. It + should be idempotent. + """ + + def disable_instrumentation(self): + """ + Disable instrumentation to gather data for this panel. + + This is the opposite of :meth:`enable_instrumentation`. + + Unless the toolbar or this panel is disabled, this method will be + called late in :class:`DebugToolbarMiddleware.process_response`. It + should be idempotent. + """ + + # Store and retrieve stats (shared between panels for no good reason) + + def record_stats(self, stats): + """ + Store data gathered by the panel. ``stats`` is a :class:`dict`. + + Each call to ``record_stats`` updates the statistics dictionary. + """ + self.toolbar.stats.setdefault(self.panel_id, {}).update(stats) + + def get_stats(self): + """ + Access data stored by the panel. Returns a :class:`dict`. + """ + return self.toolbar.stats.get(self.panel_id, {}) + + def record_server_timing(self, key, title, value): + """ + Store data gathered by the panel. ``stats`` is a :class:`dict`. + + Each call to ``record_stats`` updates the statistics dictionary. + """ + data = {key: dict(title=title, value=value)} + self.toolbar.server_timing_stats.setdefault(self.panel_id, {}).update(data) + + def get_server_timing_stats(self): + """ + Access data stored by the panel. Returns a :class:`dict`. + """ + return self.toolbar.server_timing_stats.get(self.panel_id, {}) + + # Standard middleware methods + + def process_request(self, request): + """ + Like process_request in Django's middleware. + + Write panel logic related to the request there. Save data with + :meth:`record_stats`. + """ + + def process_view(self, request, view_func, view_args, view_kwargs): + """ + Like process_view in Django's middleware. + + Write panel logic related to the view there. Save data with + :meth:`record_stats`. + """ + + def process_response(self, request, response): + """ + Like process_response in Django's middleware. This is similar to + :meth:`generate_stats `, + but will be executed on every request. It should be used when either + the logic needs to be executed on every request or it needs to change + the response entirely, such as :class:`RedirectsPanel`. + + Write panel logic related to the response there. Post-process data + gathered while the view executed. Save data with :meth:`record_stats`. + + Return a response to overwrite the existing response. + """ + + def generate_stats(self, request, response): + """ + Similar to :meth:`process_response + `, + but may not be executed on every request. This will only be called if + the toolbar will be inserted into the request. + + Write panel logic related to the response there. Post-process data + gathered while the view executed. Save data with :meth:`record_stats`. + + Does not return a value. + """ + + def generate_server_timing(self, request, response): + """ + Similar to :meth:`generate_stats + `, + + Generate stats for Server Timing https://w3c.github.io/server-timing/ + + Does not return a value. + """ + + +# Backward-compatibility for 1.0, remove in 2.0. +class DebugPanel(Panel): + + def __init__(self, *args, **kwargs): + warnings.warn("DebugPanel was renamed to Panel.", DeprecationWarning) + super(DebugPanel, self).__init__(*args, **kwargs) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/cache.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/cache.py new file mode 100644 index 0000000..366af3f --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/cache.py @@ -0,0 +1,232 @@ +from __future__ import absolute_import, unicode_literals + +import inspect +import sys +import time +from collections import OrderedDict + +from django.conf import settings +from django.core import cache +from django.core.cache import CacheHandler, caches as original_caches +from django.core.cache.backends.base import BaseCache +from django.dispatch import Signal +from django.middleware import cache as middleware_cache +from django.utils.translation import ugettext_lazy as _, ungettext + +from debug_toolbar import settings as dt_settings +from debug_toolbar.panels import Panel +from debug_toolbar.utils import ( + get_stack, get_template_info, render_stacktrace, tidy_stacktrace, +) + +cache_called = Signal(providing_args=[ + "time_taken", "name", "return_value", "args", "kwargs", "trace"]) + + +def send_signal(method): + def wrapped(self, *args, **kwargs): + t = time.time() + value = method(self, *args, **kwargs) + t = time.time() - t + + if dt_settings.get_config()['ENABLE_STACKTRACES']: + stacktrace = tidy_stacktrace(reversed(get_stack())) + else: + stacktrace = [] + + template_info = get_template_info() + cache_called.send(sender=self.__class__, time_taken=t, + name=method.__name__, return_value=value, + args=args, kwargs=kwargs, trace=stacktrace, + template_info=template_info, backend=self.cache) + return value + return wrapped + + +class CacheStatTracker(BaseCache): + """A small class used to track cache calls.""" + def __init__(self, cache): + self.cache = cache + + def __repr__(self): + return str("") % repr(self.cache) + + def _get_func_info(self): + frame = sys._getframe(3) + info = inspect.getframeinfo(frame) + return (info[0], info[1], info[2], info[3]) + + def __contains__(self, key): + return self.cache.__contains__(key) + + def __getattr__(self, name): + return getattr(self.cache, name) + + @send_signal + def add(self, *args, **kwargs): + return self.cache.add(*args, **kwargs) + + @send_signal + def get(self, *args, **kwargs): + return self.cache.get(*args, **kwargs) + + @send_signal + def set(self, *args, **kwargs): + return self.cache.set(*args, **kwargs) + + @send_signal + def delete(self, *args, **kwargs): + return self.cache.delete(*args, **kwargs) + + @send_signal + def clear(self, *args, **kwargs): + return self.cache.clear(*args, **kwargs) + + @send_signal + def has_key(self, *args, **kwargs): + # Ignore flake8 rules for has_key since we need to support caches + # that may be using has_key. + return self.cache.has_key(*args, **kwargs) # noqa + + @send_signal + def incr(self, *args, **kwargs): + return self.cache.incr(*args, **kwargs) + + @send_signal + def decr(self, *args, **kwargs): + return self.cache.decr(*args, **kwargs) + + @send_signal + def get_many(self, *args, **kwargs): + return self.cache.get_many(*args, **kwargs) + + @send_signal + def set_many(self, *args, **kwargs): + self.cache.set_many(*args, **kwargs) + + @send_signal + def delete_many(self, *args, **kwargs): + self.cache.delete_many(*args, **kwargs) + + @send_signal + def incr_version(self, *args, **kwargs): + return self.cache.incr_version(*args, **kwargs) + + @send_signal + def decr_version(self, *args, **kwargs): + return self.cache.decr_version(*args, **kwargs) + + +class CacheHandlerPatch(CacheHandler): + def __getitem__(self, alias): + actual_cache = super(CacheHandlerPatch, self).__getitem__(alias) + return CacheStatTracker(actual_cache) + + +middleware_cache.caches = CacheHandlerPatch() + + +class CachePanel(Panel): + """ + Panel that displays the cache statistics. + """ + template = 'debug_toolbar/panels/cache.html' + + def __init__(self, *args, **kwargs): + super(CachePanel, self).__init__(*args, **kwargs) + self.total_time = 0 + self.hits = 0 + self.misses = 0 + self.calls = [] + self.counts = OrderedDict(( + ('add', 0), + ('get', 0), + ('set', 0), + ('delete', 0), + ('clear', 0), + ('get_many', 0), + ('set_many', 0), + ('delete_many', 0), + ('has_key', 0), + ('incr', 0), + ('decr', 0), + ('incr_version', 0), + ('decr_version', 0), + )) + cache_called.connect(self._store_call_info) + + def _store_call_info(self, sender, name=None, time_taken=0, + return_value=None, args=None, kwargs=None, + trace=None, template_info=None, backend=None, **kw): + if name == 'get': + if return_value is None: + self.misses += 1 + else: + self.hits += 1 + elif name == 'get_many': + for key, value in return_value.items(): + if value is None: + self.misses += 1 + else: + self.hits += 1 + time_taken *= 1000 + + self.total_time += time_taken + self.counts[name] += 1 + self.calls.append({ + 'time': time_taken, + 'name': name, + 'args': args, + 'kwargs': kwargs, + 'trace': render_stacktrace(trace), + 'template_info': template_info, + 'backend': backend + }) + + # Implement the Panel API + + nav_title = _("Cache") + + @property + def nav_subtitle(self): + cache_calls = len(self.calls) + return ungettext("%(cache_calls)d call in %(time).2fms", + "%(cache_calls)d calls in %(time).2fms", + cache_calls) % {'cache_calls': cache_calls, + 'time': self.total_time} + + @property + def title(self): + count = len(getattr(settings, 'CACHES', ['default'])) + return ungettext("Cache calls from %(count)d backend", + "Cache calls from %(count)d backends", + count) % dict(count=count) + + def enable_instrumentation(self): + if isinstance(middleware_cache.caches, CacheHandlerPatch): + cache.caches = middleware_cache.caches + else: + cache.caches = CacheHandlerPatch() + + def disable_instrumentation(self): + cache.caches = original_caches + # While it can be restored to the original, any views that were + # wrapped with the cache_page decorator will continue to use a + # monkey patched cache. + middleware_cache.caches = original_caches + + def generate_stats(self, request, response): + self.record_stats({ + 'total_calls': len(self.calls), + 'calls': self.calls, + 'total_time': self.total_time, + 'hits': self.hits, + 'misses': self.misses, + 'counts': self.counts, + }) + + def generate_server_timing(self, request, response): + stats = self.get_stats() + value = stats.get('total_time', 0) + title = 'Cache {} Calls'.format(stats.get('total_calls', 0)) + self.record_server_timing('total_time', title, value) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/headers.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/headers.py new file mode 100644 index 0000000..cec5b09 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/headers.py @@ -0,0 +1,65 @@ +from __future__ import absolute_import, unicode_literals + +from collections import OrderedDict + +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar.panels import Panel + + +class HeadersPanel(Panel): + """ + A panel to display HTTP headers. + """ + # List of environment variables we want to display + ENVIRON_FILTER = set(( + 'CONTENT_LENGTH', + 'CONTENT_TYPE', + 'DJANGO_SETTINGS_MODULE', + 'GATEWAY_INTERFACE', + 'QUERY_STRING', + 'PATH_INFO', + 'PYTHONPATH', + 'REMOTE_ADDR', + 'REMOTE_HOST', + 'REQUEST_METHOD', + 'SCRIPT_NAME', + 'SERVER_NAME', + 'SERVER_PORT', + 'SERVER_PROTOCOL', + 'SERVER_SOFTWARE', + 'TZ', + )) + + title = _("Headers") + + template = 'debug_toolbar/panels/headers.html' + + def process_request(self, request): + wsgi_env = list(sorted(request.META.items())) + self.request_headers = OrderedDict( + (unmangle(k), v) for (k, v) in wsgi_env if is_http_header(k)) + if 'Cookie' in self.request_headers: + self.request_headers['Cookie'] = '=> see Request panel' + self.environ = OrderedDict( + (k, v) for (k, v) in wsgi_env if k in self.ENVIRON_FILTER) + self.record_stats({ + 'request_headers': self.request_headers, + 'environ': self.environ, + }) + + def generate_stats(self, request, response): + self.response_headers = OrderedDict(sorted(response.items())) + self.record_stats({ + 'response_headers': self.response_headers, + }) + + +def is_http_header(wsgi_key): + # The WSGI spec says that keys should be str objects in the environ dict, + # but this isn't true in practice. See issues #449 and #482. + return isinstance(wsgi_key, str) and wsgi_key.startswith('HTTP_') + + +def unmangle(wsgi_key): + return wsgi_key[5:].replace('_', '-').title() diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/logging.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/logging.py new file mode 100644 index 0000000..db01179 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/logging.py @@ -0,0 +1,84 @@ +from __future__ import absolute_import, unicode_literals + +import datetime +import logging + +from django.utils.translation import ugettext_lazy as _, ungettext + +from debug_toolbar.panels import Panel +from debug_toolbar.utils import ThreadCollector + +try: + import threading +except ImportError: + threading = None + +MESSAGE_IF_STRING_REPRESENTATION_INVALID = '[Could not get log message]' + + +class LogCollector(ThreadCollector): + + def collect(self, item, thread=None): + # Avoid logging SQL queries since they are already in the SQL panel + # TODO: Make this check whether SQL panel is enabled + if item.get('channel', '') == 'django.db.backends': + return + super(LogCollector, self).collect(item, thread) + + +class ThreadTrackingHandler(logging.Handler): + def __init__(self, collector): + logging.Handler.__init__(self) + self.collector = collector + + def emit(self, record): + try: + message = record.getMessage() + except Exception: + message = MESSAGE_IF_STRING_REPRESENTATION_INVALID + + record = { + 'message': message, + 'time': datetime.datetime.fromtimestamp(record.created), + 'level': record.levelname, + 'file': record.pathname, + 'line': record.lineno, + 'channel': record.name, + } + self.collector.collect(record) + + +# We don't use enable/disable_instrumentation because logging is global. +# We can't add thread-local logging handlers. Hopefully logging is cheap. + +collector = LogCollector() +logging_handler = ThreadTrackingHandler(collector) +logging.root.addHandler(logging_handler) + + +class LoggingPanel(Panel): + template = 'debug_toolbar/panels/logging.html' + + def __init__(self, *args, **kwargs): + super(LoggingPanel, self).__init__(*args, **kwargs) + self._records = {} + + nav_title = _("Logging") + + @property + def nav_subtitle(self): + records = self._records[threading.currentThread()] + record_count = len(records) + return ungettext("%(count)s message", "%(count)s messages", + record_count) % {'count': record_count} + + title = _("Log messages") + + def process_request(self, request): + collector.clear_collection() + + def generate_stats(self, request, response): + records = collector.get_collection() + self._records[threading.currentThread()] = records + collector.clear_collection() + self.record_stats({'records': records}) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/profiling.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/profiling.py new file mode 100644 index 0000000..4d36199 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/profiling.py @@ -0,0 +1,183 @@ +from __future__ import absolute_import, division, unicode_literals + +import cProfile +import os +from colorsys import hsv_to_rgb +from pstats import Stats + +from django.utils import six +from django.utils.html import format_html +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar import settings as dt_settings +from debug_toolbar.panels import Panel + +# Occasionally the disable method on the profiler is listed before +# the actual view functions. This function call should be ignored as +# it leads to an error within the tests. +INVALID_PROFILER_FUNC = '_lsprof.Profiler' + + +def contains_profiler(func_tuple): + """Helper function that checks to see if the tuple contains + the INVALID_PROFILE_FUNC in any string value of the tuple.""" + has_profiler = False + for value in func_tuple: + if isinstance(value, six.string_types): + has_profiler |= INVALID_PROFILER_FUNC in value + return has_profiler + + +class DjangoDebugToolbarStats(Stats): + __root = None + + def get_root_func(self): + if self.__root is None: + for func, (cc, nc, tt, ct, callers) in self.stats.items(): + if len(callers) == 0 and not contains_profiler(func): + self.__root = func + break + return self.__root + + +class FunctionCall(object): + def __init__(self, statobj, func, depth=0, stats=None, + id=0, parent_ids=[], hsv=(0, 0.5, 1)): + self.statobj = statobj + self.func = func + if stats: + self.stats = stats + else: + self.stats = statobj.stats[func][:4] + self.depth = depth + self.id = id + self.parent_ids = parent_ids + self.hsv = hsv + + def parent_classes(self): + return self.parent_classes + + def background(self): + r, g, b = hsv_to_rgb(*self.hsv) + return 'rgb(%f%%,%f%%,%f%%)' % (r * 100, g * 100, b * 100) + + def func_std_string(self): # match what old profile produced + func_name = self.func + if func_name[:2] == ('~', 0): + # special case for built-in functions + name = func_name[2] + if name.startswith('<') and name.endswith('>'): + return '{%s}' % name[1:-1] + else: + return name + else: + file_name, line_num, method = self.func + idx = file_name.find('/site-packages/') + if idx > -1: + file_name = file_name[(idx + 14):] + + split_path = file_name.rsplit(os.sep, 1) + if len(split_path) > 1: + file_path, file_name = file_name.rsplit(os.sep, 1) + else: + file_path = '' + + return format_html( + '{0}/' + '{1}' + ' in {3}' + '({2})', + file_path, + file_name, + line_num, + method) + + def subfuncs(self): + i = 0 + h, s, v = self.hsv + count = len(self.statobj.all_callees[self.func]) + for func, stats in self.statobj.all_callees[self.func].items(): + i += 1 + h1 = h + (i / count) / (self.depth + 1) + if stats[3] == 0: + s1 = 0 + else: + s1 = s * (stats[3] / self.stats[3]) + yield FunctionCall(self.statobj, + func, + self.depth + 1, + stats=stats, + id=str(self.id) + '_' + str(i), + parent_ids=self.parent_ids + [self.id], + hsv=(h1, s1, 1)) + + def count(self): + return self.stats[1] + + def tottime(self): + return self.stats[2] + + def cumtime(self): + cc, nc, tt, ct = self.stats + return self.stats[3] + + def tottime_per_call(self): + cc, nc, tt, ct = self.stats + + if nc == 0: + return 0 + + return tt / nc + + def cumtime_per_call(self): + cc, nc, tt, ct = self.stats + + if cc == 0: + return 0 + + return ct / cc + + def indent(self): + return 16 * self.depth + + +class ProfilingPanel(Panel): + """ + Panel that displays profiling information. + """ + title = _("Profiling") + + template = 'debug_toolbar/panels/profiling.html' + + def process_view(self, request, view_func, view_args, view_kwargs): + self.profiler = cProfile.Profile() + args = (request,) + view_args + return self.profiler.runcall(view_func, *args, **view_kwargs) + + def add_node(self, func_list, func, max_depth, cum_time=0.1): + func_list.append(func) + func.has_subfuncs = False + if func.depth < max_depth: + for subfunc in func.subfuncs(): + if subfunc.stats[3] >= cum_time: + func.has_subfuncs = True + self.add_node(func_list, subfunc, max_depth, cum_time=cum_time) + + def generate_stats(self, request, response): + if not hasattr(self, 'profiler'): + return None + # Could be delayed until the panel content is requested (perf. optim.) + self.profiler.create_stats() + self.stats = DjangoDebugToolbarStats(self.profiler) + self.stats.calc_callees() + + root_func = self.stats.get_root_func() + # Ensure root function exists before continuing with function call analysis + if root_func: + root = FunctionCall(self.stats, root_func, depth=0) + func_list = [] + self.add_node(func_list, + root, + dt_settings.get_config()['PROFILER_MAX_DEPTH'], + root.stats[3] / 8) + self.record_stats({'func_list': func_list}) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/redirects.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/redirects.py new file mode 100644 index 0000000..01a6016 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/redirects.py @@ -0,0 +1,29 @@ +from __future__ import absolute_import, unicode_literals + +from django.template.response import SimpleTemplateResponse +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar.panels import Panel + + +class RedirectsPanel(Panel): + """ + Panel that intercepts redirects and displays a page with debug info. + """ + + has_content = False + + nav_title = _("Intercept redirects") + + def process_response(self, request, response): + if 300 <= int(response.status_code) < 400: + redirect_to = response.get('Location', None) + if redirect_to: + status_line = '%s %s' % (response.status_code, response.reason_phrase) + cookies = response.cookies + context = {'redirect_to': redirect_to, 'status_line': status_line} + # Using SimpleTemplateResponse avoids running global context processors. + response = SimpleTemplateResponse('debug_toolbar/redirect.html', context) + response.cookies = cookies + response.render() + return response diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/request.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/request.py new file mode 100644 index 0000000..6420e3c --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/request.py @@ -0,0 +1,56 @@ +from __future__ import absolute_import, unicode_literals + +from django.http import Http404 +from django.urls import resolve +from django.utils.encoding import force_text +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar.panels import Panel +from debug_toolbar.utils import get_name_from_obj + + +class RequestPanel(Panel): + """ + A panel to display request variables (POST/GET, session, cookies). + """ + template = 'debug_toolbar/panels/request.html' + + title = _("Request") + + @property + def nav_subtitle(self): + """ + Show abbreviated name of view function as subtitle + """ + view_func = self.get_stats().get('view_func', '') + return view_func.rsplit('.', 1)[-1] + + def generate_stats(self, request, response): + self.record_stats({ + 'get': [(k, request.GET.getlist(k)) for k in sorted(request.GET)], + 'post': [(k, request.POST.getlist(k)) for k in sorted(request.POST)], + 'cookies': [(k, request.COOKIES.get(k)) for k in sorted(request.COOKIES)], + }) + view_info = { + 'view_func': _(""), + 'view_args': 'None', + 'view_kwargs': 'None', + 'view_urlname': 'None', + } + try: + match = resolve(request.path) + func, args, kwargs = match + view_info['view_func'] = get_name_from_obj(func) + view_info['view_args'] = args + view_info['view_kwargs'] = kwargs + view_info['view_urlname'] = getattr(match, 'url_name', + _("")) + except Http404: + pass + self.record_stats(view_info) + + if hasattr(request, 'session'): + self.record_stats({ + 'session': [(k, request.session.get(k)) + for k in sorted(request.session.keys(), key=force_text)] + }) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/settings.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/settings.py new file mode 100644 index 0000000..f930951 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/settings.py @@ -0,0 +1,27 @@ +from __future__ import absolute_import, unicode_literals + +from collections import OrderedDict + +from django.conf import settings +from django.utils.translation import ugettext_lazy as _ +from django.views.debug import get_safe_settings + +from debug_toolbar.panels import Panel + + +class SettingsPanel(Panel): + """ + A panel to display all variables in django.conf.settings + """ + template = 'debug_toolbar/panels/settings.html' + + nav_title = _("Settings") + + def title(self): + return _("Settings from %s") % settings.SETTINGS_MODULE + + def generate_stats(self, request, response): + self.record_stats({ + 'settings': OrderedDict(sorted(get_safe_settings().items(), + key=lambda s: s[0])), + }) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/signals.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/signals.py new file mode 100644 index 0000000..cd647db --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/signals.py @@ -0,0 +1,86 @@ +from __future__ import absolute_import, unicode_literals + +import weakref + +from django.core.signals import ( + got_request_exception, request_finished, request_started, +) +from django.db.backends.signals import connection_created +from django.db.models.signals import ( + class_prepared, post_delete, post_init, post_migrate, post_save, + pre_delete, pre_init, pre_save, +) +from django.utils.module_loading import import_string +from django.utils.translation import ugettext_lazy as _, ungettext + +from debug_toolbar.panels import Panel + + +class SignalsPanel(Panel): + template = 'debug_toolbar/panels/signals.html' + + SIGNALS = { + 'request_started': request_started, + 'request_finished': request_finished, + 'got_request_exception': got_request_exception, + 'connection_created': connection_created, + 'class_prepared': class_prepared, + 'pre_init': pre_init, + 'post_init': post_init, + 'pre_save': pre_save, + 'post_save': post_save, + 'pre_delete': pre_delete, + 'post_delete': post_delete, + 'post_migrate': post_migrate, + } + + def nav_subtitle(self): + signals = self.get_stats()['signals'] + num_receivers = sum(len(s[2]) for s in signals) + num_signals = len(signals) + # here we have to handle a double count translation, hence the + # hard coding of one signal + if num_signals == 1: + return ungettext("%(num_receivers)d receiver of 1 signal", + "%(num_receivers)d receivers of 1 signal", + num_receivers) % {'num_receivers': num_receivers} + return ungettext("%(num_receivers)d receiver of %(num_signals)d signals", + "%(num_receivers)d receivers of %(num_signals)d signals", + num_receivers) % {'num_receivers': num_receivers, + 'num_signals': num_signals} + + title = _("Signals") + + @property + def signals(self): + signals = self.SIGNALS.copy() + for signal in self.toolbar.config['EXTRA_SIGNALS']: + signal_name = signal.rsplit('.', 1)[-1] + signals[signal_name] = import_string(signal) + return signals + + def generate_stats(self, request, response): + signals = [] + for name, signal in sorted(self.signals.items(), key=lambda x: x[0]): + receivers = [] + for receiver in signal.receivers: + receiver = receiver[1] + if isinstance(receiver, weakref.ReferenceType): + receiver = receiver() + if receiver is None: + continue + + receiver = getattr(receiver, '__wraps__', receiver) + receiver_name = getattr(receiver, '__name__', str(receiver)) + if getattr(receiver, '__self__', None) is not None: + receiver_class_name = getattr(receiver.__self__, '__class__', type).__name__ + text = "%s.%s" % (receiver_class_name, receiver_name) + elif getattr(receiver, 'im_class', None) is not None: # Python 2 only + receiver_class_name = receiver.im_class.__name__ + text = "%s.%s" % (receiver_class_name, receiver_name) + else: + text = "%s" % receiver_name + receivers.append(text) + signals.append((name, signal, receivers)) + + self.record_stats({'signals': signals}) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/__init__.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/__init__.py new file mode 100644 index 0000000..a4f9cd4 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/__init__.py @@ -0,0 +1 @@ +from debug_toolbar.panels.sql.panel import SQLPanel # noqa diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/forms.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/forms.py new file mode 100644 index 0000000..a4e622f --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/forms.py @@ -0,0 +1,93 @@ +from __future__ import absolute_import, unicode_literals + +import hashlib +import hmac +import json + +from django import forms +from django.conf import settings +from django.core.exceptions import ValidationError +from django.db import connections +from django.utils.crypto import constant_time_compare +from django.utils.encoding import force_bytes +from django.utils.functional import cached_property + +from debug_toolbar.panels.sql.utils import reformat_sql + + +class SQLSelectForm(forms.Form): + """ + Validate params + + sql: The sql statement with interpolated params + raw_sql: The sql statement with placeholders + params: JSON encoded parameter values + duration: time for SQL to execute passed in from toolbar just for redisplay + hash: the hash of (secret + sql + params) for tamper checking + """ + sql = forms.CharField() + raw_sql = forms.CharField() + params = forms.CharField() + alias = forms.CharField(required=False, initial='default') + duration = forms.FloatField() + hash = forms.CharField() + + def __init__(self, *args, **kwargs): + initial = kwargs.get('initial', None) + + if initial is not None: + initial['hash'] = self.make_hash(initial) + + super(SQLSelectForm, self).__init__(*args, **kwargs) + + for name in self.fields: + self.fields[name].widget = forms.HiddenInput() + + def clean_raw_sql(self): + value = self.cleaned_data['raw_sql'] + + if not value.lower().strip().startswith('select'): + raise ValidationError("Only 'select' queries are allowed.") + + return value + + def clean_params(self): + value = self.cleaned_data['params'] + + try: + return json.loads(value) + except ValueError: + raise ValidationError('Is not valid JSON') + + def clean_alias(self): + value = self.cleaned_data['alias'] + + if value not in connections: + raise ValidationError("Database alias '%s' not found" % value) + + return value + + def clean_hash(self): + hash = self.cleaned_data['hash'] + + if not constant_time_compare(hash, self.make_hash(self.data)): + raise ValidationError('Tamper alert') + + return hash + + def reformat_sql(self): + return reformat_sql(self.cleaned_data['sql']) + + def make_hash(self, data): + m = hmac.new(key=force_bytes(settings.SECRET_KEY), digestmod=hashlib.sha1) + for item in [data['sql'], data['params']]: + m.update(force_bytes(item)) + return m.hexdigest() + + @property + def connection(self): + return connections[self.cleaned_data['alias']] + + @cached_property + def cursor(self): + return self.connection.cursor() diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/panel.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/panel.py new file mode 100644 index 0000000..89a93bb --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/panel.py @@ -0,0 +1,279 @@ +from __future__ import absolute_import, unicode_literals + +import uuid +from collections import defaultdict +from copy import copy +from pprint import saferepr + +from django.conf.urls import url +from django.db import connections +from django.utils.translation import ugettext_lazy as _, ungettext_lazy as __ + +from debug_toolbar.panels import Panel +from debug_toolbar.panels.sql import views +from debug_toolbar.panels.sql.forms import SQLSelectForm +from debug_toolbar.panels.sql.tracking import unwrap_cursor, wrap_cursor +from debug_toolbar.panels.sql.utils import ( + contrasting_color_generator, reformat_sql, +) +from debug_toolbar.utils import render_stacktrace + + +def get_isolation_level_display(vendor, level): + if vendor == 'postgresql': + import psycopg2.extensions + choices = { + psycopg2.extensions.ISOLATION_LEVEL_AUTOCOMMIT: _("Autocommit"), + psycopg2.extensions.ISOLATION_LEVEL_READ_UNCOMMITTED: _("Read uncommitted"), + psycopg2.extensions.ISOLATION_LEVEL_READ_COMMITTED: _("Read committed"), + psycopg2.extensions.ISOLATION_LEVEL_REPEATABLE_READ: _("Repeatable read"), + psycopg2.extensions.ISOLATION_LEVEL_SERIALIZABLE: _("Serializable"), + } + else: + raise ValueError(vendor) + return choices.get(level) + + +def get_transaction_status_display(vendor, level): + if vendor == 'postgresql': + import psycopg2.extensions + choices = { + psycopg2.extensions.TRANSACTION_STATUS_IDLE: _("Idle"), + psycopg2.extensions.TRANSACTION_STATUS_ACTIVE: _("Active"), + psycopg2.extensions.TRANSACTION_STATUS_INTRANS: _("In transaction"), + psycopg2.extensions.TRANSACTION_STATUS_INERROR: _("In error"), + psycopg2.extensions.TRANSACTION_STATUS_UNKNOWN: _("Unknown"), + } + else: + raise ValueError(vendor) + return choices.get(level) + + +class SQLPanel(Panel): + """ + Panel that displays information about the SQL queries run while processing + the request. + """ + def __init__(self, *args, **kwargs): + super(SQLPanel, self).__init__(*args, **kwargs) + self._offset = {k: len(connections[k].queries) for k in connections} + self._sql_time = 0 + self._num_queries = 0 + self._queries = [] + self._databases = {} + self._transaction_status = {} + self._transaction_ids = {} + + def get_transaction_id(self, alias): + if alias not in connections: + return + conn = connections[alias].connection + if not conn: + return + + if conn.vendor == 'postgresql': + cur_status = conn.get_transaction_status() + else: + raise ValueError(conn.vendor) + + last_status = self._transaction_status.get(alias) + self._transaction_status[alias] = cur_status + + if not cur_status: + # No available state + return None + + if cur_status != last_status: + if cur_status: + self._transaction_ids[alias] = uuid.uuid4().hex + else: + self._transaction_ids[alias] = None + + return self._transaction_ids[alias] + + def record(self, alias, **kwargs): + self._queries.append((alias, kwargs)) + if alias not in self._databases: + self._databases[alias] = { + 'time_spent': kwargs['duration'], + 'num_queries': 1, + } + else: + self._databases[alias]['time_spent'] += kwargs['duration'] + self._databases[alias]['num_queries'] += 1 + self._sql_time += kwargs['duration'] + self._num_queries += 1 + + # Implement the Panel API + + nav_title = _("SQL") + + @property + def nav_subtitle(self): + return __("%d query in %.2fms", "%d queries in %.2fms", + self._num_queries) % (self._num_queries, self._sql_time) + + @property + def title(self): + count = len(self._databases) + return __('SQL queries from %(count)d connection', + 'SQL queries from %(count)d connections', + count) % {'count': count} + + template = 'debug_toolbar/panels/sql.html' + + @classmethod + def get_urls(cls): + return [ + url(r'^sql_select/$', views.sql_select, name='sql_select'), + url(r'^sql_explain/$', views.sql_explain, name='sql_explain'), + url(r'^sql_profile/$', views.sql_profile, name='sql_profile'), + ] + + def enable_instrumentation(self): + # This is thread-safe because database connections are thread-local. + for connection in connections.all(): + wrap_cursor(connection, self) + + def disable_instrumentation(self): + for connection in connections.all(): + unwrap_cursor(connection) + + def generate_stats(self, request, response): + colors = contrasting_color_generator() + trace_colors = defaultdict(lambda: next(colors)) + query_similar = defaultdict(lambda: defaultdict(int)) + query_duplicates = defaultdict(lambda: defaultdict(int)) + + # The keys used to determine similar and duplicate queries. + def similar_key(query): + return query['raw_sql'] + + def duplicate_key(query): + raw_params = () if query['raw_params'] is None else tuple(query['raw_params']) + # saferepr() avoids problems because of unhashable types + # (e.g. lists) when used as dictionary keys. + # https://github.com/jazzband/django-debug-toolbar/issues/1091 + return (query['raw_sql'], saferepr(raw_params)) + + if self._queries: + width_ratio_tally = 0 + factor = int(256.0 / (len(self._databases) * 2.5)) + for n, db in enumerate(self._databases.values()): + rgb = [0, 0, 0] + color = n % 3 + rgb[color] = 256 - n // 3 * factor + nn = color + # XXX: pretty sure this is horrible after so many aliases + while rgb[color] < factor: + nc = min(256 - rgb[color], 256) + rgb[color] += nc + nn += 1 + if nn > 2: + nn = 0 + rgb[nn] = nc + db['rgb_color'] = rgb + + trans_ids = {} + trans_id = None + i = 0 + for alias, query in self._queries: + query_similar[alias][similar_key(query)] += 1 + query_duplicates[alias][duplicate_key(query)] += 1 + + trans_id = query.get('trans_id') + last_trans_id = trans_ids.get(alias) + + if trans_id != last_trans_id: + if last_trans_id: + self._queries[(i - 1)][1]['ends_trans'] = True + trans_ids[alias] = trans_id + if trans_id: + query['starts_trans'] = True + if trans_id: + query['in_trans'] = True + + query['alias'] = alias + if 'iso_level' in query: + query['iso_level'] = get_isolation_level_display(query['vendor'], + query['iso_level']) + if 'trans_status' in query: + query['trans_status'] = get_transaction_status_display(query['vendor'], + query['trans_status']) + + query['form'] = SQLSelectForm(auto_id=None, initial=copy(query)) + + if query['sql']: + query['sql'] = reformat_sql(query['sql']) + query['rgb_color'] = self._databases[alias]['rgb_color'] + try: + query['width_ratio'] = (query['duration'] / self._sql_time) * 100 + query['width_ratio_relative'] = ( + 100.0 * query['width_ratio'] / (100.0 - width_ratio_tally)) + except ZeroDivisionError: + query['width_ratio'] = 0 + query['width_ratio_relative'] = 0 + query['start_offset'] = width_ratio_tally + query['end_offset'] = query['width_ratio'] + query['start_offset'] + width_ratio_tally += query['width_ratio'] + query['stacktrace'] = render_stacktrace(query['stacktrace']) + i += 1 + + query['trace_color'] = trace_colors[query['stacktrace']] + + if trans_id: + self._queries[(i - 1)][1]['ends_trans'] = True + + # Queries are similar / duplicates only if there's as least 2 of them. + # Also, to hide queries, we need to give all the duplicate groups an id + query_colors = contrasting_color_generator() + query_similar_colors = { + alias: { + query: (similar_count, next(query_colors)) + for query, similar_count in queries.items() + if similar_count >= 2 + } + for alias, queries in query_similar.items() + } + query_duplicates_colors = { + alias: { + query: (duplicate_count, next(query_colors)) + for query, duplicate_count in queries.items() + if duplicate_count >= 2 + } + for alias, queries in query_duplicates.items() + } + + for alias, query in self._queries: + try: + (query["similar_count"], query["similar_color"]) = ( + query_similar_colors[alias][similar_key(query)] + ) + (query["duplicate_count"], query["duplicate_color"]) = ( + query_duplicates_colors[alias][duplicate_key(query)] + ) + except KeyError: + pass + + for alias, alias_info in self._databases.items(): + try: + alias_info["similar_count"] = sum( + e[0] for e in query_similar_colors[alias].values() + ) + alias_info["duplicate_count"] = sum( + e[0] for e in query_duplicates_colors[alias].values() + ) + except KeyError: + pass + + self.record_stats({ + 'databases': sorted(self._databases.items(), key=lambda x: -x[1]['time_spent']), + 'queries': [q for a, q in self._queries], + 'sql_time': self._sql_time, + }) + + def generate_server_timing(self, request, response): + stats = self.get_stats() + title = 'SQL {} queries'.format(len(stats.get('queries', []))) + value = stats.get('sql_time', 0) + self.record_server_timing('sql_time', title, value) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py new file mode 100644 index 0000000..73058f7 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/tracking.py @@ -0,0 +1,191 @@ +from __future__ import absolute_import, unicode_literals + +import datetime +import json +from threading import local +from time import time + +from django.utils import six +from django.utils.encoding import force_text + +from debug_toolbar import settings as dt_settings +from debug_toolbar.utils import get_stack, get_template_info, tidy_stacktrace + + +class SQLQueryTriggered(Exception): + """Thrown when template panel triggers a query""" + pass + + +class ThreadLocalState(local): + def __init__(self): + self.enabled = True + + @property + def Wrapper(self): + if self.enabled: + return NormalCursorWrapper + return ExceptionCursorWrapper + + def recording(self, v): + self.enabled = v + + +state = ThreadLocalState() +recording = state.recording # export function + + +def wrap_cursor(connection, panel): + if not hasattr(connection, '_djdt_cursor'): + connection._djdt_cursor = connection.cursor + + def cursor(*args, **kwargs): + # Per the DB API cursor() does not accept any arguments. There's + # some code in the wild which does not follow that convention, + # so we pass on the arguments even though it's not clean. + # See: + # https://github.com/jazzband/django-debug-toolbar/pull/615 + # https://github.com/jazzband/django-debug-toolbar/pull/896 + return state.Wrapper(connection._djdt_cursor(*args, **kwargs), connection, panel) + + connection.cursor = cursor + return cursor + + +def unwrap_cursor(connection): + if hasattr(connection, '_djdt_cursor'): + del connection._djdt_cursor + del connection.cursor + + +class ExceptionCursorWrapper(object): + """ + Wraps a cursor and raises an exception on any operation. + Used in Templates panel. + """ + def __init__(self, cursor, db, logger): + pass + + def __getattr__(self, attr): + raise SQLQueryTriggered() + + +class NormalCursorWrapper(object): + """ + Wraps a cursor and logs queries. + """ + + def __init__(self, cursor, db, logger): + self.cursor = cursor + # Instance of a BaseDatabaseWrapper subclass + self.db = db + # logger must implement a ``record`` method + self.logger = logger + + def _quote_expr(self, element): + if isinstance(element, six.string_types): + return "'%s'" % force_text(element).replace("'", "''") + else: + return repr(element) + + def _quote_params(self, params): + if not params: + return params + if isinstance(params, dict): + return {key: self._quote_expr(value) for key, value in params.items()} + return [self._quote_expr(p) for p in params] + + def _decode(self, param): + # If a sequence type, decode each element separately + if isinstance(param, list) or isinstance(param, tuple): + return [self._decode(element) for element in param] + + # If a dictionary type, decode each value separately + if isinstance(param, dict): + return {key: self._decode(value) for key, value in param.items()} + + # make sure datetime, date and time are converted to string by force_text + CONVERT_TYPES = (datetime.datetime, datetime.date, datetime.time) + try: + return force_text(param, strings_only=not isinstance(param, CONVERT_TYPES)) + except UnicodeDecodeError: + return '(encoded string)' + + def _record(self, method, sql, params): + start_time = time() + try: + return method(sql, params) + finally: + stop_time = time() + duration = (stop_time - start_time) * 1000 + if dt_settings.get_config()['ENABLE_STACKTRACES']: + stacktrace = tidy_stacktrace(reversed(get_stack())) + else: + stacktrace = [] + _params = '' + try: + _params = json.dumps([self._decode(p) for p in params]) + except TypeError: + pass # object not JSON serializable + + template_info = get_template_info() + + alias = getattr(self.db, 'alias', 'default') + conn = self.db.connection + vendor = getattr(conn, 'vendor', 'unknown') + + params = { + 'vendor': vendor, + 'alias': alias, + 'sql': self.db.ops.last_executed_query( + self.cursor, sql, self._quote_params(params)), + 'duration': duration, + 'raw_sql': sql, + 'params': _params, + 'raw_params': params, + 'stacktrace': stacktrace, + 'start_time': start_time, + 'stop_time': stop_time, + 'is_slow': duration > dt_settings.get_config()['SQL_WARNING_THRESHOLD'], + 'is_select': sql.lower().strip().startswith('select'), + 'template_info': template_info, + } + + if vendor == 'postgresql': + # If an erroneous query was ran on the connection, it might + # be in a state where checking isolation_level raises an + # exception. + try: + iso_level = conn.isolation_level + except conn.InternalError: + iso_level = 'unknown' + params.update({ + 'trans_id': self.logger.get_transaction_id(alias), + 'trans_status': conn.get_transaction_status(), + 'iso_level': iso_level, + 'encoding': conn.encoding, + }) + + # We keep `sql` to maintain backwards compatibility + self.logger.record(**params) + + def callproc(self, procname, params=None): + return self._record(self.cursor.callproc, procname, params) + + def execute(self, sql, params=None): + return self._record(self.cursor.execute, sql, params) + + def executemany(self, sql, param_list): + return self._record(self.cursor.executemany, sql, param_list) + + def __getattr__(self, attr): + return getattr(self.cursor, attr) + + def __iter__(self): + return iter(self.cursor) + + def __enter__(self): + return self + + def __exit__(self, type, value, traceback): + self.close() diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/utils.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/utils.py new file mode 100644 index 0000000..197e484 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/utils.py @@ -0,0 +1,60 @@ +from __future__ import absolute_import, unicode_literals + +import re + +import sqlparse +from django.utils.html import escape +from sqlparse import tokens as T + + +class BoldKeywordFilter: + """sqlparse filter to bold SQL keywords""" + def process(self, stream): + """Process the token stream""" + for token_type, value in stream: + is_keyword = token_type in T.Keyword + if is_keyword: + yield T.Text, '' + yield token_type, escape(value) + if is_keyword: + yield T.Text, '' + + +def reformat_sql(sql): + stack = sqlparse.engine.FilterStack() + stack.preprocess.append(BoldKeywordFilter()) # add our custom filter + stack.postprocess.append(sqlparse.filters.SerializerUnicode()) # tokens -> strings + return swap_fields(''.join(stack.run(sql))) + + +def swap_fields(sql): + expr = r'SELECT (...........*?) FROM' + subs = (r'SELECT ' + r'••• ' + r'\1 ' + r'FROM') + return re.sub(expr, subs, sql) + + +def contrasting_color_generator(): + """ + Generate constrasting colors by varying most significant bit of RGB first, + and then vary subsequent bits systematically. + """ + def rgb_to_hex(rgb): + return '#%02x%02x%02x' % tuple(rgb) + + triples = [(1, 0, 0), (0, 1, 0), (0, 0, 1), + (1, 1, 0), (0, 1, 1), (1, 0, 1), (1, 1, 1)] + n = 1 << 7 + so_far = [[0, 0, 0]] + while True: + if n == 0: # This happens after 2**24 colours; presumably, never + yield "#000000" # black + copy_so_far = list(so_far) + for triple in triples: + for previous in copy_so_far: + rgb = [n * triple[i] + previous[i] for i in range(3)] + so_far.append(rgb) + yield rgb_to_hex(rgb) + n >>= 1 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/views.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/views.py new file mode 100644 index 0000000..47fca42 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/sql/views.py @@ -0,0 +1,118 @@ +from __future__ import absolute_import, unicode_literals + +from django.http import HttpResponseBadRequest +from django.template.response import SimpleTemplateResponse +from django.views.decorators.csrf import csrf_exempt + +from debug_toolbar.decorators import require_show_toolbar +from debug_toolbar.panels.sql.forms import SQLSelectForm + + +@csrf_exempt +@require_show_toolbar +def sql_select(request): + """Returns the output of the SQL SELECT statement""" + form = SQLSelectForm(request.POST or None) + + if form.is_valid(): + sql = form.cleaned_data['raw_sql'] + params = form.cleaned_data['params'] + cursor = form.cursor + cursor.execute(sql, params) + headers = [d[0] for d in cursor.description] + result = cursor.fetchall() + cursor.close() + context = { + 'result': result, + 'sql': form.reformat_sql(), + 'duration': form.cleaned_data['duration'], + 'headers': headers, + 'alias': form.cleaned_data['alias'], + } + # Using SimpleTemplateResponse avoids running global context processors. + return SimpleTemplateResponse('debug_toolbar/panels/sql_select.html', context) + return HttpResponseBadRequest('Form errors') + + +@csrf_exempt +@require_show_toolbar +def sql_explain(request): + """Returns the output of the SQL EXPLAIN on the given query""" + form = SQLSelectForm(request.POST or None) + + if form.is_valid(): + sql = form.cleaned_data['raw_sql'] + params = form.cleaned_data['params'] + vendor = form.connection.vendor + cursor = form.cursor + + if vendor == 'sqlite': + # SQLite's EXPLAIN dumps the low-level opcodes generated for a query; + # EXPLAIN QUERY PLAN dumps a more human-readable summary + # See https://www.sqlite.org/lang_explain.html for details + cursor.execute("EXPLAIN QUERY PLAN %s" % (sql,), params) + elif vendor == 'postgresql': + cursor.execute("EXPLAIN ANALYZE %s" % (sql,), params) + else: + cursor.execute("EXPLAIN %s" % (sql,), params) + + headers = [d[0] for d in cursor.description] + result = cursor.fetchall() + cursor.close() + context = { + 'result': result, + 'sql': form.reformat_sql(), + 'duration': form.cleaned_data['duration'], + 'headers': headers, + 'alias': form.cleaned_data['alias'], + } + # Using SimpleTemplateResponse avoids running global context processors. + return SimpleTemplateResponse('debug_toolbar/panels/sql_explain.html', context) + return HttpResponseBadRequest('Form errors') + + +@csrf_exempt +@require_show_toolbar +def sql_profile(request): + """Returns the output of running the SQL and getting the profiling statistics""" + form = SQLSelectForm(request.POST or None) + + if form.is_valid(): + sql = form.cleaned_data['raw_sql'] + params = form.cleaned_data['params'] + cursor = form.cursor + result = None + headers = None + result_error = None + try: + cursor.execute("SET PROFILING=1") # Enable profiling + cursor.execute(sql, params) # Execute SELECT + cursor.execute("SET PROFILING=0") # Disable profiling + # The Query ID should always be 1 here but I'll subselect to get + # the last one just in case... + cursor.execute(""" + SELECT * + FROM information_schema.profiling + WHERE query_id = ( + SELECT query_id + FROM information_schema.profiling + ORDER BY query_id DESC + LIMIT 1 + ) +""") + headers = [d[0] for d in cursor.description] + result = cursor.fetchall() + except Exception: + result_error = "Profiling is either not available or not supported by your database." + cursor.close() + context = { + 'result': result, + 'result_error': result_error, + 'sql': form.reformat_sql(), + 'duration': form.cleaned_data['duration'], + 'headers': headers, + 'alias': form.cleaned_data['alias'], + } + # Using SimpleTemplateResponse avoids running global context processors. + return SimpleTemplateResponse('debug_toolbar/panels/sql_profile.html', context) + return HttpResponseBadRequest('Form errors') diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/staticfiles.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/staticfiles.py new file mode 100644 index 0000000..cd400d7 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/staticfiles.py @@ -0,0 +1,173 @@ +from __future__ import absolute_import, unicode_literals + +from collections import OrderedDict +from os.path import join, normpath + +from django.conf import settings +from django.contrib.staticfiles import finders, storage +from django.contrib.staticfiles.templatetags import staticfiles +from django.core.files.storage import get_storage_class +from django.utils.encoding import python_2_unicode_compatible +from django.utils.functional import LazyObject +from django.utils.translation import ugettext_lazy as _, ungettext + +from debug_toolbar import panels +from debug_toolbar.utils import ThreadCollector + +try: + import threading +except ImportError: + threading = None + + +@python_2_unicode_compatible +class StaticFile(object): + """ + Representing the different properties of a static file. + """ + def __init__(self, path): + self.path = path + + def __str__(self): + return self.path + + def real_path(self): + return finders.find(self.path) + + def url(self): + return storage.staticfiles_storage.url(self.path) + + +class FileCollector(ThreadCollector): + + def collect(self, path, thread=None): + # handle the case of {% static "admin/" %} + if path.endswith('/'): + return + super(FileCollector, self).collect(StaticFile(path), thread) + + +collector = FileCollector() + + +class DebugConfiguredStorage(LazyObject): + """ + A staticfiles storage class to be used for collecting which paths + are resolved by using the {% static %} template tag (which uses the + `url` method). + """ + def _setup(self): + + configured_storage_cls = get_storage_class(settings.STATICFILES_STORAGE) + + class DebugStaticFilesStorage(configured_storage_cls): + + def __init__(self, collector, *args, **kwargs): + super(DebugStaticFilesStorage, self).__init__(*args, **kwargs) + self.collector = collector + + def url(self, path): + self.collector.collect(path) + return super(DebugStaticFilesStorage, self).url(path) + + self._wrapped = DebugStaticFilesStorage(collector) + + +_original_storage = storage.staticfiles_storage + + +class StaticFilesPanel(panels.Panel): + """ + A panel to display the found staticfiles. + """ + name = 'Static files' + template = 'debug_toolbar/panels/staticfiles.html' + + @property + def title(self): + return (_("Static files (%(num_found)s found, %(num_used)s used)") % + {'num_found': self.num_found, 'num_used': self.num_used}) + + def __init__(self, *args, **kwargs): + super(StaticFilesPanel, self).__init__(*args, **kwargs) + self.num_found = 0 + self._paths = {} + + def enable_instrumentation(self): + storage.staticfiles_storage = staticfiles.staticfiles_storage = DebugConfiguredStorage() + + def disable_instrumentation(self): + storage.staticfiles_storage = staticfiles.staticfiles_storage = _original_storage + + @property + def num_used(self): + return len(self._paths[threading.currentThread()]) + + nav_title = _('Static files') + + @property + def nav_subtitle(self): + num_used = self.num_used + return ungettext("%(num_used)s file used", + "%(num_used)s files used", + num_used) % {'num_used': num_used} + + def process_request(self, request): + collector.clear_collection() + + def generate_stats(self, request, response): + used_paths = collector.get_collection() + self._paths[threading.currentThread()] = used_paths + + self.record_stats({ + 'num_found': self.num_found, + 'num_used': self.num_used, + 'staticfiles': used_paths, + 'staticfiles_apps': self.get_staticfiles_apps(), + 'staticfiles_dirs': self.get_staticfiles_dirs(), + 'staticfiles_finders': self.get_staticfiles_finders(), + }) + + def get_staticfiles_finders(self): + """ + Returns a sorted mapping between the finder path and the list + of relative and file system paths which that finder was able + to find. + """ + finders_mapping = OrderedDict() + for finder in finders.get_finders(): + for path, finder_storage in finder.list([]): + if getattr(finder_storage, 'prefix', None): + prefixed_path = join(finder_storage.prefix, path) + else: + prefixed_path = path + finder_cls = finder.__class__ + finder_path = '.'.join([finder_cls.__module__, + finder_cls.__name__]) + real_path = finder_storage.path(path) + payload = (prefixed_path, real_path) + finders_mapping.setdefault(finder_path, []).append(payload) + self.num_found += 1 + return finders_mapping + + def get_staticfiles_dirs(self): + """ + Returns a list of paths to inspect for additional static files + """ + dirs = [] + for finder in finders.get_finders(): + if isinstance(finder, finders.FileSystemFinder): + dirs.extend(finder.locations) + return [(prefix, normpath(dir)) for prefix, dir in dirs] + + def get_staticfiles_apps(self): + """ + Returns a list of app paths that have a static directory + """ + apps = [] + for finder in finders.get_finders(): + if isinstance(finder, finders.AppDirectoriesFinder): + for app in finder.apps: + if app not in apps: + apps.append(app) + return apps diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/__init__.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/__init__.py new file mode 100644 index 0000000..1f768f5 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/__init__.py @@ -0,0 +1 @@ +from debug_toolbar.panels.templates.panel import TemplatesPanel # noqa diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/panel.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/panel.py new file mode 100644 index 0000000..56bd04a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/panel.py @@ -0,0 +1,222 @@ +from __future__ import absolute_import, unicode_literals + +from collections import OrderedDict +from contextlib import contextmanager +from os.path import normpath +from pprint import pformat, saferepr + +from django import http +from django.conf.urls import url +from django.core import signing +from django.db.models.query import QuerySet, RawQuerySet +from django.template import RequestContext, Template +from django.test.signals import template_rendered +from django.test.utils import instrumented_test_render +from django.utils import six +from django.utils.encoding import force_text +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar.panels import Panel +from debug_toolbar.panels.sql.tracking import SQLQueryTriggered, recording +from debug_toolbar.panels.templates import views + +# Monkey-patch to enable the template_rendered signal. The receiver returns +# immediately when the panel is disabled to keep the overhead small. + +# Code taken and adapted from Simon Willison and Django Snippets: +# https://www.djangosnippets.org/snippets/766/ + +if Template._render != instrumented_test_render: + Template.original_render = Template._render + Template._render = instrumented_test_render + + +# Monkey-patch to store items added by template context processors. The +# overhead is sufficiently small to justify enabling it unconditionally. + +@contextmanager +def _request_context_bind_template(self, template): + if self.template is not None: + raise RuntimeError("Context is already bound to a template") + + self.template = template + # Set context processors according to the template engine's settings. + processors = (template.engine.template_context_processors + + self._processors) + self.context_processors = OrderedDict() + updates = {} + for processor in processors: + name = '%s.%s' % (processor.__module__, processor.__name__) + context = processor(self.request) + self.context_processors[name] = context + updates.update(context) + self.dicts[self._processors_index] = updates + + try: + yield + finally: + self.template = None + # Unset context processors. + self.dicts[self._processors_index] = {} + + +RequestContext.bind_template = _request_context_bind_template + + +class TemplatesPanel(Panel): + """ + A panel that lists all templates used during processing of a response. + """ + def __init__(self, *args, **kwargs): + super(TemplatesPanel, self).__init__(*args, **kwargs) + self.templates = [] + # Refs GitHub issue #910 + # Hold a series of seen dictionaries within Contexts. A dictionary is + # considered seen if it is `in` this list, requiring that the __eq__ + # for the dictionary matches. If *anything* in the dictionary is + # different it is counted as a new layer. + self.seen_layers = [] + # Holds all dictionaries which have been prettified for output. + # This should align with the seen_layers such that an index here is + # the same as the index there. + self.pformat_layers = [] + + def _store_template_info(self, sender, **kwargs): + template, context = kwargs['template'], kwargs['context'] + + # Skip templates that we are generating through the debug toolbar. + if (isinstance(template.name, six.string_types) and ( + template.name.startswith('debug_toolbar/') or + template.name.startswith( + tuple(self.toolbar.config['SKIP_TEMPLATE_PREFIXES'])))): + return + + context_list = [] + for context_layer in context.dicts: + if hasattr(context_layer, 'items') and context_layer: + # Refs GitHub issue #910 + # If we can find this layer in our pseudo-cache then find the + # matching prettified version in the associated list. + key_values = sorted(context_layer.items()) + if key_values in self.seen_layers: + index = self.seen_layers.index(key_values) + pformatted = self.pformat_layers[index] + context_list.append(pformatted) + else: + temp_layer = {} + for key, value in context_layer.items(): + # Replace any request elements - they have a large + # unicode representation and the request data is + # already made available from the Request panel. + if isinstance(value, http.HttpRequest): + temp_layer[key] = '<>' + # Replace the debugging sql_queries element. The SQL + # data is already made available from the SQL panel. + elif key == 'sql_queries' and isinstance(value, list): + temp_layer[key] = '<>' + # Replace LANGUAGES, which is available in i18n context processor + elif key == 'LANGUAGES' and isinstance(value, tuple): + temp_layer[key] = '<>' + # QuerySet would trigger the database: user can run the query from SQL Panel + elif isinstance(value, (QuerySet, RawQuerySet)): + model_name = "%s.%s" % ( + value.model._meta.app_label, value.model.__name__) + temp_layer[key] = '<<%s of %s>>' % ( + value.__class__.__name__.lower(), model_name) + else: + try: + recording(False) + saferepr(value) # this MAY trigger a db query + except SQLQueryTriggered: + temp_layer[key] = '<>' + except UnicodeEncodeError: + temp_layer[key] = '<>' + except Exception: + temp_layer[key] = '<>' + else: + temp_layer[key] = value + finally: + recording(True) + # Refs GitHub issue #910 + # If we've not seen the layer before then we will add it + # so that if we see it again we can skip formatting it. + self.seen_layers.append(key_values) + # Note: this *ought* to be len(...) - 1 but let's be safe. + index = self.seen_layers.index(key_values) + try: + pformatted = force_text(pformat(temp_layer)) + except UnicodeEncodeError: + pass + else: + # Note: this *ought* to be len(...) - 1 but let's be safe. + self.pformat_layers.insert(index, pformatted) + context_list.append(pformatted) + + kwargs['context'] = context_list + kwargs['context_processors'] = getattr(context, 'context_processors', None) + self.templates.append(kwargs) + + # Implement the Panel API + + nav_title = _("Templates") + + @property + def title(self): + num_templates = len(self.templates) + return _("Templates (%(num_templates)s rendered)") % {'num_templates': num_templates} + + @property + def nav_subtitle(self): + if self.templates: + return self.templates[0]['template'].name + return '' + + template = 'debug_toolbar/panels/templates.html' + + @classmethod + def get_urls(cls): + return [ + url(r'^template_source/$', views.template_source, name='template_source'), + ] + + def enable_instrumentation(self): + template_rendered.connect(self._store_template_info) + + def disable_instrumentation(self): + template_rendered.disconnect(self._store_template_info) + + def generate_stats(self, request, response): + template_context = [] + for template_data in self.templates: + info = {} + # Clean up some info about templates + template = template_data.get('template', None) + if hasattr(template, 'origin') and template.origin and template.origin.name: + template.origin_name = template.origin.name + template.origin_hash = signing.dumps(template.origin.name) + else: + template.origin_name = _('No origin') + template.origin_hash = '' + info['template'] = template + # Clean up context for better readability + if self.toolbar.config['SHOW_TEMPLATE_CONTEXT']: + context_list = template_data.get('context', []) + info['context'] = '\n'.join(context_list) + template_context.append(info) + + # Fetch context_processors/template_dirs from any template + if self.templates: + context_processors = self.templates[0]['context_processors'] + template = self.templates[0]['template'] + # django templates have the 'engine' attribute, while jinja templates use 'backend' + engine_backend = getattr(template, 'engine', None) or getattr(template, 'backend') + template_dirs = engine_backend.dirs + else: + context_processors = None + template_dirs = [] + + self.record_stats({ + 'templates': template_context, + 'template_dirs': [normpath(x) for x in template_dirs], + 'context_processors': context_processors, + }) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/views.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/views.py new file mode 100644 index 0000000..e6d8ab0 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/templates/views.py @@ -0,0 +1,66 @@ +from __future__ import absolute_import, unicode_literals + +from django.core import signing +from django.http import HttpResponseBadRequest +from django.template import Origin, TemplateDoesNotExist +from django.template.engine import Engine +from django.template.response import SimpleTemplateResponse +from django.utils.safestring import mark_safe + +from debug_toolbar.decorators import require_show_toolbar + + +@require_show_toolbar +def template_source(request): + """ + Return the source of a template, syntax-highlighted by Pygments if + it's available. + """ + template_origin_name = request.GET.get('template_origin', None) + if template_origin_name is None: + return HttpResponseBadRequest('"template_origin" key is required') + try: + template_origin_name = signing.loads(template_origin_name) + except Exception: + return HttpResponseBadRequest('"template_origin" is invalid') + template_name = request.GET.get('template', template_origin_name) + + final_loaders = [] + loaders = Engine.get_default().template_loaders + + for loader in loaders: + if loader is not None: + # When the loader has loaders associated with it, + # append those loaders to the list. This occurs with + # django.template.loaders.cached.Loader + if hasattr(loader, 'loaders'): + final_loaders += loader.loaders + else: + final_loaders.append(loader) + + for loader in final_loaders: + origin = Origin(template_origin_name) + try: + source = loader.get_contents(origin) + break + except TemplateDoesNotExist: + pass + else: + source = "Template Does Not Exist: %s" % (template_origin_name,) + + try: + from pygments import highlight + from pygments.lexers import HtmlDjangoLexer + from pygments.formatters import HtmlFormatter + + source = highlight(source, HtmlDjangoLexer(), HtmlFormatter()) + source = mark_safe(source) + source.pygmentized = True + except ImportError: + pass + + # Using SimpleTemplateResponse avoids running global context processors. + return SimpleTemplateResponse('debug_toolbar/panels/template_source.html', { + 'source': source, + 'template_name': template_name + }) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/timer.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/timer.py new file mode 100644 index 0000000..812ab8d --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/timer.py @@ -0,0 +1,94 @@ +from __future__ import absolute_import, unicode_literals + +import time + +from django.template.loader import render_to_string +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar.panels import Panel + +try: + import resource # Not available on Win32 systems +except ImportError: + resource = None + + +class TimerPanel(Panel): + """ + Panel that displays the time a response took in milliseconds. + """ + + def nav_subtitle(self): + stats = self.get_stats() + if hasattr(self, '_start_rusage'): + utime = self._end_rusage.ru_utime - self._start_rusage.ru_utime + stime = self._end_rusage.ru_stime - self._start_rusage.ru_stime + return _("CPU: %(cum)0.2fms (%(total)0.2fms)") % { + 'cum': (utime + stime) * 1000.0, + 'total': stats['total_time'] + } + elif 'total_time' in stats: + return _("Total: %0.2fms") % stats['total_time'] + else: + return '' + + has_content = resource is not None + + title = _("Time") + + template = 'debug_toolbar/panels/timer.html' + + @property + def content(self): + stats = self.get_stats() + rows = ( + (_("User CPU time"), _("%(utime)0.3f msec") % stats), + (_("System CPU time"), _("%(stime)0.3f msec") % stats), + (_("Total CPU time"), _("%(total)0.3f msec") % stats), + (_("Elapsed time"), _("%(total_time)0.3f msec") % stats), + (_("Context switches"), _("%(vcsw)d voluntary, %(ivcsw)d involuntary") % stats), + ) + return render_to_string(self.template, {'rows': rows}) + + def process_request(self, request): + self._start_time = time.time() + if self.has_content: + self._start_rusage = resource.getrusage(resource.RUSAGE_SELF) + + def generate_stats(self, request, response): + stats = {} + if hasattr(self, '_start_time'): + stats['total_time'] = (time.time() - self._start_time) * 1000 + if hasattr(self, '_start_rusage'): + self._end_rusage = resource.getrusage(resource.RUSAGE_SELF) + stats['utime'] = 1000 * self._elapsed_ru('ru_utime') + stats['stime'] = 1000 * self._elapsed_ru('ru_stime') + stats['total'] = stats['utime'] + stats['stime'] + stats['vcsw'] = self._elapsed_ru('ru_nvcsw') + stats['ivcsw'] = self._elapsed_ru('ru_nivcsw') + stats['minflt'] = self._elapsed_ru('ru_minflt') + stats['majflt'] = self._elapsed_ru('ru_majflt') + # these are documented as not meaningful under Linux. If you're running BSD + # feel free to enable them, and add any others that I hadn't gotten to before + # I noticed that I was getting nothing but zeroes and that the docs agreed. :-( + # + # stats['blkin'] = self._elapsed_ru('ru_inblock') + # stats['blkout'] = self._elapsed_ru('ru_oublock') + # stats['swap'] = self._elapsed_ru('ru_nswap') + # stats['rss'] = self._end_rusage.ru_maxrss + # stats['srss'] = self._end_rusage.ru_ixrss + # stats['urss'] = self._end_rusage.ru_idrss + # stats['usrss'] = self._end_rusage.ru_isrss + + self.record_stats(stats) + + def generate_server_timing(self, request, response): + stats = self.get_stats() + + self.record_server_timing('utime', 'User CPU time', stats.get('utime', 0)) + self.record_server_timing('stime', 'System CPU time', stats.get('stime', 0)) + self.record_server_timing('total', 'Total CPU time', stats.get('total', 0)) + self.record_server_timing('total_time', 'Elapsed time', stats.get('total_time', 0)) + + def _elapsed_ru(self, name): + return getattr(self._end_rusage, name) - getattr(self._start_rusage, name) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/versions.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/versions.py new file mode 100644 index 0000000..2e8d588 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/panels/versions.py @@ -0,0 +1,65 @@ +from __future__ import absolute_import, unicode_literals + +import sys + +import django +from django.apps import apps +from django.utils.translation import ugettext_lazy as _ + +from debug_toolbar.panels import Panel + + +class VersionsPanel(Panel): + """ + Shows versions of Python, Django, and installed apps if possible. + """ + @property + def nav_subtitle(self): + return 'Django %s' % django.get_version() + + title = _("Versions") + + template = 'debug_toolbar/panels/versions.html' + + def generate_stats(self, request, response): + versions = [ + ('Python', '', '%d.%d.%d' % sys.version_info[:3]), + ('Django', '', self.get_app_version(django)), + ] + versions += list(self.gen_app_versions()) + self.record_stats({ + 'versions': sorted(versions, key=lambda v: v[0]), + 'paths': sys.path, + }) + + def gen_app_versions(self): + for app_config in apps.get_app_configs(): + name = app_config.verbose_name + app = app_config.module + version = self.get_app_version(app) + if version: + yield app.__name__, name, version + + def get_app_version(self, app): + version = self.get_version_from_app(app) + if isinstance(version, (list, tuple)): + # We strip dots from the right because we do not want to show + # trailing dots if there are empty elements in the list/tuple + version = '.'.join(str(o) for o in version).rstrip('.') + return version + + def get_version_from_app(self, app): + if hasattr(app, 'get_version'): + get_version = app.get_version + if callable(get_version): + try: + return get_version() + except TypeError: + pass + else: + return get_version + if hasattr(app, 'VERSION'): + return app.VERSION + if hasattr(app, '__version__'): + return app.__version__ + return diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/settings.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/settings.py new file mode 100644 index 0000000..76b2c6b --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/settings.py @@ -0,0 +1,165 @@ +from __future__ import absolute_import, unicode_literals + +import warnings + +from django.conf import settings +from django.utils import six +from django.utils.lru_cache import lru_cache + +# Always import this module as follows: +# from debug_toolbar import settings [as dt_settings] + +# Don't import directly CONFIG or PANELs, or you will miss changes performed +# with override_settings in tests. + + +CONFIG_DEFAULTS = { + # Toolbar options + 'DISABLE_PANELS': {'debug_toolbar.panels.redirects.RedirectsPanel'}, + 'INSERT_BEFORE': '', + 'RENDER_PANELS': None, + 'RESULTS_CACHE_SIZE': 10, + 'ROOT_TAG_EXTRA_ATTRS': '', + 'SHOW_COLLAPSED': False, + 'SHOW_TOOLBAR_CALLBACK': 'debug_toolbar.middleware.show_toolbar', + # Panel options + 'EXTRA_SIGNALS': [], + 'ENABLE_STACKTRACES': True, + 'HIDE_IN_STACKTRACES': ( + 'socketserver' if six.PY3 else 'SocketServer', + 'threading', + 'wsgiref', + 'debug_toolbar', + 'django.db', + 'django.core.handlers', + 'django.core.servers', + 'django.utils.decorators', + 'django.utils.deprecation', + 'django.utils.functional', + ), + 'PROFILER_MAX_DEPTH': 10, + 'SHOW_TEMPLATE_CONTEXT': True, + 'SKIP_TEMPLATE_PREFIXES': ( + 'django/forms/widgets/', + 'admin/widgets/', + ), + 'SQL_WARNING_THRESHOLD': 500, # milliseconds +} + + +@lru_cache() +def get_config(): + USER_CONFIG = getattr(settings, 'DEBUG_TOOLBAR_CONFIG', {}) + + # Backward-compatibility for 1.0, remove in 2.0. + _RENAMED_CONFIG = { + 'RESULTS_STORE_SIZE': 'RESULTS_CACHE_SIZE', + 'ROOT_TAG_ATTRS': 'ROOT_TAG_EXTRA_ATTRS', + 'HIDDEN_STACKTRACE_MODULES': 'HIDE_IN_STACKTRACES' + } + for old_name, new_name in _RENAMED_CONFIG.items(): + if old_name in USER_CONFIG: + warnings.warn( + "%r was renamed to %r. Update your DEBUG_TOOLBAR_CONFIG " + "setting." % (old_name, new_name), DeprecationWarning) + USER_CONFIG[new_name] = USER_CONFIG.pop(old_name) + + if 'HIDE_DJANGO_SQL' in USER_CONFIG: + warnings.warn( + "HIDE_DJANGO_SQL was removed. Update your " + "DEBUG_TOOLBAR_CONFIG setting.", DeprecationWarning) + USER_CONFIG.pop('HIDE_DJANGO_SQL') + + if 'TAG' in USER_CONFIG: + warnings.warn( + "TAG was replaced by INSERT_BEFORE. Update your " + "DEBUG_TOOLBAR_CONFIG setting.", DeprecationWarning) + USER_CONFIG['INSERT_BEFORE'] = '' % USER_CONFIG.pop('TAG') + + CONFIG = CONFIG_DEFAULTS.copy() + CONFIG.update(USER_CONFIG) + + if 'INTERCEPT_REDIRECTS' in USER_CONFIG: + warnings.warn( + "INTERCEPT_REDIRECTS is deprecated. Please use the " + "DISABLE_PANELS config in the " + "DEBUG_TOOLBAR_CONFIG setting.", DeprecationWarning) + if USER_CONFIG['INTERCEPT_REDIRECTS']: + if 'debug_toolbar.panels.redirects.RedirectsPanel' \ + in CONFIG['DISABLE_PANELS']: + # RedirectsPanel should be enabled + try: + CONFIG['DISABLE_PANELS'].remove( + 'debug_toolbar.panels.redirects.RedirectsPanel' + ) + except KeyError: + # We wanted to remove it, but it didn't exist. This is fine + pass + elif 'debug_toolbar.panels.redirects.RedirectsPanel' \ + not in CONFIG['DISABLE_PANELS']: + # RedirectsPanel should be disabled + CONFIG['DISABLE_PANELS'].add( + 'debug_toolbar.panels.redirects.RedirectsPanel' + ) + + return CONFIG + + +PANELS_DEFAULTS = [ + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.staticfiles.StaticFilesPanel', + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.RedirectsPanel', +] + + +@lru_cache() +def get_panels(): + try: + PANELS = list(settings.DEBUG_TOOLBAR_PANELS) + except AttributeError: + PANELS = PANELS_DEFAULTS + else: + # Backward-compatibility for 1.0, remove in 2.0. + _RENAMED_PANELS = { + 'debug_toolbar.panels.version.VersionDebugPanel': + 'debug_toolbar.panels.versions.VersionsPanel', + 'debug_toolbar.panels.timer.TimerDebugPanel': + 'debug_toolbar.panels.timer.TimerPanel', + 'debug_toolbar.panels.settings_vars.SettingsDebugPanel': + 'debug_toolbar.panels.settings.SettingsPanel', + 'debug_toolbar.panels.headers.HeaderDebugPanel': + 'debug_toolbar.panels.headers.HeadersPanel', + 'debug_toolbar.panels.request_vars.RequestVarsDebugPanel': + 'debug_toolbar.panels.request.RequestPanel', + 'debug_toolbar.panels.sql.SQLDebugPanel': + 'debug_toolbar.panels.sql.SQLPanel', + 'debug_toolbar.panels.template.TemplateDebugPanel': + 'debug_toolbar.panels.templates.TemplatesPanel', + 'debug_toolbar.panels.cache.CacheDebugPanel': + 'debug_toolbar.panels.cache.CachePanel', + 'debug_toolbar.panels.signals.SignalDebugPanel': + 'debug_toolbar.panels.signals.SignalsPanel', + 'debug_toolbar.panels.logger.LoggingDebugPanel': + 'debug_toolbar.panels.logging.LoggingPanel', + 'debug_toolbar.panels.redirects.InterceptRedirectsDebugPanel': + 'debug_toolbar.panels.redirects.RedirectsPanel', + 'debug_toolbar.panels.profiling.ProfilingDebugPanel': + 'debug_toolbar.panels.profiling.ProfilingPanel', + } + for index, old_panel in enumerate(PANELS): + new_panel = _RENAMED_PANELS.get(old_panel) + if new_panel is not None: + warnings.warn( + "%r was renamed to %r. Update your DEBUG_TOOLBAR_PANELS " + "setting." % (old_panel, new_panel), DeprecationWarning) + PANELS[index] = new_panel + return PANELS diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/print.css b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/print.css new file mode 100644 index 0000000..cde6499 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/print.css @@ -0,0 +1,3 @@ +#djDebug { + display: none !important; +} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css new file mode 100644 index 0000000..ae57f4c --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/css/toolbar.css @@ -0,0 +1,641 @@ +/* http://www.positioniseverything.net/easyclearing.html */ +#djDebug .djdt-clearfix:after { + content: "."; + display: block; + height: 0; + clear: both; + visibility: hidden; +} +#djDebug .djdt-clearfix {display: inline-block;} +/* Hides from IE-mac \*/ +#djDebug .djdt-clearfix {display: block;} +* html #djDebug .djdt-clearfix {height: 1%;} +/* end hide from IE-mac */ + +/* Debug Toolbar CSS Reset, adapted from Eric Meyer's CSS Reset */ +#djDebug {color:#000;background:#FFF;} +#djDebug, #djDebug div, #djDebug span, #djDebug applet, #djDebug object, #djDebug iframe, +#djDebug h1, #djDebug h2, #djDebug h3, #djDebug h4, #djDebug h5, #djDebug h6, #djDebug p, #djDebug blockquote, #djDebug pre, +#djDebug a, #djDebug abbr, #djDebug acronym, #djDebug address, #djDebug big, #djDebug cite, #djDebug code, +#djDebug del, #djDebug dfn, #djDebug em, #djDebug font, #djDebug img, #djDebug ins, #djDebug kbd, #djDebug q, #djDebug s, #djDebug samp, +#djDebug small, #djDebug strike, #djDebug strong, #djDebug sub, #djDebug sup, #djDebug tt, #djDebug var, +#djDebug b, #djDebug u, #djDebug i, #djDebug center, +#djDebug dl, #djDebug dt, #djDebug dd, #djDebug ol, #djDebug ul, #djDebug li, +#djDebug fieldset, #djDebug form, #djDebug label, #djDebug legend, +#djDebug table, #djDebug caption, #djDebug tbody, #djDebug tfoot, #djDebug thead, #djDebug tr, #djDebug th, #djDebug td, +#djDebug button { + margin:0; + padding:0; + min-width:0; + width:auto; + border:0; + outline:0; + font-size:12px; + line-height:1.5em; + color:#000; + vertical-align:baseline; + background-color:transparent; + font-family:sans-serif; + text-align:left; + text-shadow: none; + white-space: normal; + -webkit-transition: none; + -moz-transition: none; + -o-transition: none; + transition: none; +} + +#djDebug button, #djDebug a.button { + background-color: #eee; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #eee), color-stop(100%, #cccccc)); + background-image: -webkit-linear-gradient(top, #eee, #cccccc); + background-image: -moz-linear-gradient(top, #eee, #cccccc); + background-image: -ms-linear-gradient(top, #eee, #cccccc); + background-image: -o-linear-gradient(top, #eee, #cccccc); + background-image: linear-gradient(top, #eee, #cccccc); + border: 1px solid #ccc; + border-bottom: 1px solid #bbb; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + color: #333; + line-height: 1; + padding: 0 8px; + text-align: center; + text-shadow: 0 1px 0 #eee; +} + +#djDebug button:hover, #djDebug a.button:hover { + background-color: #ddd; + background-image: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #ddd), color-stop(100%, #bbb)); + background-image: -webkit-linear-gradient(top, #ddd, #bbb); + background-image: -moz-linear-gradient(top, #ddd, #bbb); + background-image: -ms-linear-gradient(top, #ddd, #bbb); + background-image: -o-linear-gradient(top, #ddd, #bbb); + background-image: linear-gradient(top, #ddd, #bbb); + border-color: #bbb; + border-bottom-color: #999; + cursor: pointer; + text-shadow: 0 1px 0 #ddd; +} + +#djDebug button:active, #djDebug a.button:active { + border: 1px solid #aaa; + border-bottom: 1px solid #888; + -webkit-box-shadow: inset 0 0 5px 2px #aaa, 0 1px 0 0 #eee; + -moz-box-shadow: inset 0 0 5px 2px #aaa, 0 1px 0 0 #eee; + box-shadow: inset 0 0 5px 2px #aaa, 0 1px 0 0 #eee; +} + +#djDebug #djDebugToolbar { + background-color:#111; + width:200px; + z-index:100000000; + position:fixed; + top:0; + bottom:0; + right:0; + opacity:0.9; + overflow-y: auto; +} + +#djDebug #djDebugToolbar small { + color:#999; +} + +#djDebug #djDebugToolbar ul { + margin:0; + padding:0; + list-style:none; +} + +#djDebug #djDebugToolbar li { + border-bottom:1px solid #222; + color:#fff; + display:block; + font-weight:bold; + float:none; + margin:0; + padding:0; + position:relative; + width:auto; +} + +#djDebug #djDebugToolbar input[type=checkbox] { + float: right; + margin: 10px; +} + +#djDebug #djDebugToolbar li>a, +#djDebug #djDebugToolbar li>div.djdt-contentless { + font-weight:normal; + font-style:normal; + text-decoration:none; + display:block; + font-size:16px; + padding:10px 10px 5px 25px; + color:#fff; +} +#djDebug #djDebugToolbar li>div.djdt-disabled { + font-style: italic; + color: #999; +} + +#djDebug #djDebugToolbar li a:hover { + color:#111; + background-color:#ffc; +} + +#djDebug #djDebugToolbar li.djdt-active { + background: #333 no-repeat left center; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAQAAAAngNWGAAABe0lEQVR4AW2SO0tDQRCFz+bGJxEUrKzsBBsb/4DYiIWdECvB/6CCYGtp6QNRjJ1FihSCVpZGMIhYSBAfIGKRx70xyY3JbrKOk7DJLp7DXm7Il9nMmREYQgQeAI1W1/zZUhR9ZI9gjSZb0iHMRSPbE1QzhhF2jN4H6YdRCHaPvOTjdDb1jWECBhiJoC1tg6Kotbw9WkxBoIUGaqiiQs8fSCj+t9qAIL1nlg9fKgSGKKNEJ2RUMqh7QCDIr58k31AlrIiA0CqhDTQJtUFAqsTFxjV85FGAz1XrkDZodPewkih8IkdwCRWu2U6VerQ0O3OzuTSJ/k62JiIXJI2NL0wBjDiTseQHW8fnGY6myf3+Dz49x88+vjr9SoPaoG6lLteuCApMiu1otAWG/s7BXtYEzv3yZOyrc5nV3XTZjPAv7Jqp2AVf9+dOyx4EFCTqCAnimZB1z9X38fk05RblfVQE1LkR5a6vwCivruANV2ynjU5FHpIE+AsCnCuNfgGtjt1gZaIn2wAAAABJRU5ErkJggg=="), url(../img/indicator.png); + padding-left:10px; +} + +#djDebug #djDebugToolbar li.djdt-active a:hover { + color:#b36a60; + background-color:transparent; +} + +#djDebug #djDebugToolbar li small { + font-size:12px; + color:#999; + font-style:normal; + text-decoration:none; + font-variant:small-caps; +} + +#djDebug #djDebugToolbarHandle { + position:fixed; + background-color:#fff; + border:1px solid #111; + top:30px; + right:0; + z-index:100000000; + opacity:0.75; +} + +#djDebug #djShowToolBarButton { + display:block; + height:75px; + width:30px; + border-right:none; + border-bottom:4px solid #fff; + border-top:4px solid #fff; + border-left:4px solid #fff; + color:#fff; + font-size:10px; + font-weight:bold; + text-decoration:none; + text-align:center; + text-indent:-999999px; + background: #000 no-repeat left center; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABLCAIAAACN/FLOAAADOUlEQVR4Ae2WUWhSXxzHp5v+y4mGGkkEETIfIhyEUThaD0XlGg7qZTJdpGOzQSiVC9uWlCxsMmvW0k2WBDVJMzJWBAaG6ORfGZMexAd9EXzxwWFI9qB24K7DZUNRdlSC++H35P1yPpff/Z1zbCMgICAg2AECgUClUmk0msHBQRqN1jyxxWIp/6Wrq6s5UkKsVCrP1wCfz0csrpGlpaXWiFdXV1sjdrvdiMW5XG6jBoxG47801YTYbDZj1mKxyOPx2loLmUzmcDhcLpdKpTbDJxQKbTZbLBYrlUqw/+l02uVySSSShijpdDrYneWqhEIh0AOUVtDPcDhcroFkMslgMJCJTSZTuWasVisaK4vFyufzZRw+n89gMMjlcqlUqtfrvV4v/pMXCgU2m41ArFAo8EemWCzenhGJRGDE8LcnArHD4YArqtXqSjGZTAZjdrsdgRjMKlyRyWRWilEoFHDCYLFAIIBADHYt3K/Vk6lUCktGo1EE4kQigS2XzWbHqpLJZLBkPB5HIAavX66TSCSCQBwMBusV+/1+BGKPx1Ov2Ol0IhDrdLr1OtFqtTv3EjBYnWwuY0ux9jHI7eTGiu2Bm9/Ki9tr7deTl9+nhq6fIZFITRXDmns73hoxqJP9ggaKw78XPm88wirw04IXz6yMNFB8Z3kY//v+Q5x3yRns0fP/dc0TA/SOy9ijVz/06MXg+43q+0emL3T38LY8mn9/DRPPelSN+0NP2sOhgx1MoXbAHw/w9koUPYrJvqOn+Ih9h4UHb9uGXsfufi3Z4Ch9TM8aXaO9km6UJgiN/t8D9xjQVKlnoQnQA5RW0E9H+BYUVCkw2J2MXcjEatOlWqxY6axDyG6FYP4xfumnPs1Vw0Cf/MQ56TEw4WbvOP6TrxUWmOxOBGIwqHDRQG5eJD6yPSMQ8cCIwdiAsgeBGB4LoKTq05VifbLjMDZllyMQg1mFK9KZuyvFOijtX4qbDQenGwIx2LVwv1ZPfkgZsaQzOo1A7E1sHv3+7MOLY71V6lNmDku+id9DIAavD1tdY72ITCIQLwcn6hUv+m8gEIOrpl7xfecIAvEVnXhlfbquGtaebSMgICAgaBR/AF2yboPNdvDUAAAAAElFTkSuQmCC"), url(../img/djdt_vertical.png); + opacity:0.5; +} + +#djDebug #djShowToolBarButton:hover { + background-color:#111; + border-top-color:#FFE761; + border-left-color:#FFE761; + border-bottom-color:#FFE761; + cursor:move; + opacity:1.0; +} + +#djDebug code { + display:block; + font-family:Consolas, Monaco, "Bitstream Vera Sans Mono", "Lucida Console", monospace; + font-size: 12px; + white-space:pre; + overflow:auto; +} + +#djDebug .djDebugOdd { + background-color:#f5f5f5; +} + +#djDebug .djdt-panelContent { + display:none; + position:fixed; + margin:0; + top:0; + right:200px; + bottom:0; + left:0px; + background-color:#eee; + color:#666; + z-index:100000000; +} + +#djDebug .djdt-panelContent > div { + border-bottom:1px solid #ddd; +} + +#djDebug .djDebugPanelTitle { + position:absolute; + background-color:#ffc; + color:#666; + padding-left:20px; + top:0; + right:0; + left:0; + height:50px; +} + +#djDebug .djDebugPanelTitle code { + display:inline; + font-size:inherit; +} + +#djDebug .djDebugPanelContent { + position:absolute; + top:50px; + right:0; + bottom:0; + left:0; + height:auto; + padding:5px 0 0 20px; +} + +#djDebug .djDebugPanelContent .djdt-loader { + display:block; + margin:80px auto; +} + +#djDebug .djDebugPanelContent .djdt-scroll { + height:100%; + overflow:auto; + display:block; + padding:0 10px 0 0; +} + +#djDebug h3 { + font-size:24px; + font-weight:normal; + line-height:50px; +} + +#djDebug h4 { + font-size:20px; + font-weight:bold; + margin-top:0.8em; +} + +#djDebug .djdt-panelContent table { + border:1px solid #ccc; + border-collapse:collapse; + width:100%; + background-color:#fff; + display:table; + margin-top:0.8em; + overflow: auto; +} +#djDebug .djdt-panelContent tbody td, +#djDebug .djdt-panelContent tbody th { + vertical-align:top; + padding:2px 3px; +} +#djDebug .djdt-panelContent tbody td.djdt-time { + text-align: center; +} + +#djDebug .djdt-panelContent thead th { + padding:1px 6px 1px 3px; + text-align:left; + font-weight:bold; + font-size:14px; + white-space: nowrap; +} +#djDebug .djdt-panelContent tbody th { + width:12em; + text-align:right; + color:#666; + padding-right:.5em; +} + +#djDebug .djTemplateContext { + background-color:#fff; +} + +/* +#djDebug .djdt-panelContent p a:hover, #djDebug .djdt-panelContent dd a:hover { + color:#111; + background-color:#ffc; +} + +#djDebug .djdt-panelContent p { + padding:0 5px; +} + +#djDebug .djdt-panelContent p, #djDebug .djdt-panelContent table, #djDebug .djdt-panelContent ol, #djDebug .djdt-panelContent ul, #djDebug .djdt-panelContent dl { + margin:5px 0 15px; + background-color:#fff; +} +#djDebug .djdt-panelContent table { + clear:both; + border:0; + padding:0; + margin:0; + border-collapse:collapse; + border-spacing:0; +} + +#djDebug .djdt-panelContent table a { + color:#000; + padding:2px 4px; +} +#djDebug .djdt-panelContent table a:hover { + background-color:#ffc; +} + +#djDebug .djdt-panelContent table th { + background-color:#333; + font-weight:bold; + color:#fff; + padding:3px 7px 3px; + text-align:left; + cursor:pointer; +} +#djDebug .djdt-panelContent table td { + padding:5px 10px; + font-size:14px; + background-color:#fff; + color:#000; + vertical-align:top; + border:0; +} +#djDebug .djdt-panelContent table tr.djDebugOdd td { + background-color:#eee; +} +*/ + +#djDebug .djdt-panelContent .djDebugClose { + display:block; + position:absolute; + top:4px; + right:15px; + height:40px; + width:40px; + background: no-repeat center center; + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAQAAACQTsNJAAABuUlEQVR4Ab2WXeoaMRTFZxHz6pObcA0DeXUHhXktFl8LXYAPXYBLKhQGBOFqW3XS8YOW6vjHmnp6wWZyHU1maqHnQDAf/Ehu7twYhUQxdUixO/wr8ts3oeg9TQjCEx5R7SGvKCd4nPNsIyShD4QGf6QkBBkQWnrgg4zqS2fm01kbze3M3GFGjyBvCdLFqYRUySM1zLAOUXJ6dZAACcoPBOHkFpK5qY1BQBt5sExC0gAijEkriMuLfI9m8SqXNxbSd+QSbVSCnPtXyNjdCCoZ7PANF7C4/Y4tznASNzW+QqaP9lFcj4cLW4PY+vFepsSQ2Hbnp5vw2ShB231Cau72EkfUs53lC4R+YQkSXsBAiFdXc72IkupmDODDfKkhwKtdygUgHAuXw7gEIN7jCIQNsfc43sDuqlgsbC57A+u94q82nFVscv8Vy2Rbi72csGKQ+RPignvytGuZbPW0P6KNjvdpz97aIf3jLz/ArfuKXz9dCt7IojR9qihNAuUx33vL454grOqF+t2/F2rPk/H5pzaa2+Ynw3lIaOlh6BlVlDUCMlLND3pKhRdQUPof/1o4x9Qlxe6G/+T8BlqvQqkd4EyZAAAAAElFTkSuQmCC"), url(../img/close.png); +} + +#djDebug .djdt-panelContent .djDebugClose:hover { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAACiUlEQVR4Ad2Yz2oTURSH+xCz7cqX6DMUZtudCxExigq2WhcKYtGFVLrwAboSKoVGxT+tJWpTa2lLTDsm6SSTjtZoIq0prf+2Hu8PcmHInJvJPYwuPPDBMDPn8DE5c+fcDEgjDENHMahwOwx2zg1IsE1wFXcVvoIM+J173L8hckrRUpAlLeSmITKsKNoKMHioJRUZU1DKjNmKTCUWDWpUL21RJbcAcIxz/chM9StyvVeh8rOHtH7nJi2dOc6Ba7gnSWY8ScQ1JVdfv6C1yQlegAH3+su5XjLDvUTKXNK77H0Ul4Bck0jZJJLhEry5GV1ULvNg1iSTiYlw64SfX0ShNEAtfp3pEhnhjJmekIJapqcyEhWZZt4OtuDqlXPUWHxKYXaGli+c1Ocpf/4E1Wfv0afcPK1dG+VyTW/TdFQk6Pdp7BfWSMdhtQIZSFDbe0s6DiqezVMJtIjTfXGnuv3b9Iib+RxF47C2Te3SJkUDsqZ81GZkHIgMdV+ora8YC62MnqbvH0Iyxa/WZ3pz+awxH7UZkSH9YaMolZfPdaJZZvd9XOJLU0sYQW1ucROJoCcOyh51x1G9ip4Ri1j9NLoxDaEbWPDTWDbrx/lHsZ740dilSKChBc1q+fp+3SyQjp/NBnoi1sB4KpLXl13QSo/n2GKFW1fpaKdG+8UNSEQbmPY2VulbWKfi5A0uFzUTFzR+ib/NFJSBWolLvKYd++i9WkhNxF9i35Y29/W9KB8DxDPJJU4EBP9wMPJFoyLmCetRUc8gPK5JRDOhIBOlJ9nE4Rn3yIdnwXYi2Crq7QSOU99OaGBNKTMu3XK63GQvADXcNDbhGcWeQAA5mf/ybwkOR3FM4XbAsSOt9wcLTn8FNtAKkQAAAABJRU5ErkJggg=="), url(../img/close_hover.png); +} + +#djDebug .djdt-panelContent .djDebugClose.djDebugBack { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAACBUlEQVR4Ad2Y0WriQBSGfYjc7tW+hM8g5HbfYMHbxcXbhT6AF30AH6cXvRCEttK0JgZi0qhQaRNtNWV2fuiADicZcxirdOCn45mccz4mMyczbXDbeDx2pH5IuRD6n7YGR3UdkPBSaiQlSoQxPOMeA+S3VIxENRXD1wZIS2rAANA1RCwuSAdBLKtTF6RnCur7fjGZTLZJkhQQ+rAdANM7FORfVaA0Td/zPBdlDWN4xgDTNYG4Zc7T6TQjASqA4jjOKmBaVSA3lNN8Pi8Es8GXBkEuGqTNh2DDtCkQvU5gal+FpYZYZJ3RQH5RxPqaWG82qmuw02uGyoHcuyB9anfowZ6el+I2jITellkOu9gWH5UwJbupvwvimWZDgVzdeWLohyqpAlF2zE7dWfEUiKMPBkGwNxt6QmjwEKik+Ltnz9ZvpTCITcA4AGnqA1EUreFkgrm+fwSEsuO3spfCIDYB0gRIi9gtlVsWSVRSAOzaMSOw4zVSDbGp4nZGIPxXg6TWXo39xarsjMV6LtuXLmiz2cx6QUNMuqAZSvxqtbJW4hHLVOKVFvpDSZK8HPmjt6C+vn9OcAz4S4FA3hcejEasoyKmlnFUVK+DklsFAl2c9vDMuE6EYbhR1wn0bV8nlEAtLKvLvXK62smeK8RwbVzC21IpAyCF77f8twQlR+onEkLow8aN9x+oYk85YNJqYQAAAABJRU5ErkJggg=="), url(../img/back.png); +} + +#djDebug .djdt-panelContent .djDebugClose.djDebugBack:hover { + background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACIAAAAiCAYAAAA6RwvCAAACLElEQVR4Ad2YT8sSURTG/RCzbdWX8DMIs23XMrBlTLiTSIKKIqgP4C6KQAuKsLCycqGLRHNsXqck2giStIiiRdDtPtABuz0zNw+XkAYe3vHce57zY/7cOfetaI/VahVZHbOKIZz/ilU02jcBBW9YZVaGC2OYg7nhQU5ZrVlhj9bIDQFSs5ooAFzN4KUFSWASWMm+INe8pvnSvJ1PzaLfg3COmB8G3n8Jcq7MKH14z4yvXjCD0yepMIY5HpiGDyQuSj56+cSMrrQ4ABHmZi/6ZTC1MpCUJb3u3oa5SsjlIKjFQeosYda5JaZ6mLt3OAxquiBsncieP4ZRCMGLrjMuyAlG7D4To2Yi5/44eWZYDdTeBWmzt8M1W95sm09Z+kd8dv0S4maY1EthCt6m9i5ITq8GAcHx+cN7KSogEqdXx3NVcgGJ3MF3R29+MCMpiOPbx40Uxd/f4q8uNgth4E1gIoBU3YHleOgYcJjvX78AQuL4LfFCGHgTkCpAau7A4umj0nuNIlIUALtxXBEcuI0kF950cTsoEO2tQdGAtyb8w4rfiof1cF5fvqDN73dCL2jwpAuaf4m/fD7UEg8v7xIv2rqTsme9cB+9AX1btuzre0bdBuh7krMMBMr/YWOUaVpF9BP7t4rSg3DFvua5xRJF8wddb/OMOfrmWbGdyKcT2U7gPPh2QgRqE1gN7ZYzZp29Qim8QmzC61YbBcAGuf/hvyW4IqvjKAjhHDGt309H4mp9BS17eAAAAABJRU5ErkJggg=="), url(../img/back_hover.png); +} + +#djDebug .djdt-panelContent dt, #djDebug .djdt-panelContent dd { + display:block; +} + +#djDebug .djdt-panelContent dt { + margin-top:0.75em; +} + +#djDebug .djdt-panelContent dd { + margin-left:10px; +} + +#djDebug a.toggleTemplate { + padding:4px; + background-color:#bbb; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; +} + +#djDebug a.toggleTemplate:hover { + padding:4px; + background-color:#444; + color:#ffe761; + -webkit-border-radius:3px; + -moz-border-radius:3px; + border-radius:3px; +} + + +#djDebug .djDebugSqlWrap { + position:relative; +} + +#djDebug .djDebugCollapsed { + display: none; + text-decoration: none; + color: #333; +} + +#djDebug .djDebugUncollapsed { + color: #333; + text-decoration: none; +} + +#djDebug .djUnselected { + display: none; +} +#djDebug tr.djHiddenByDefault { + display: none; +} +#djDebug tr.djSelected { + display: table-row; +} + +#djDebug .djDebugSql { + word-break:break-word; + z-index:100000002; +} + +#djDebug .djSQLDetailsDiv tbody th { + text-align: left; +} + +#djDebug .djSqlExplain td { + white-space: pre; +} + +#djDebug span.djDebugLineChart { + background-color:#777; + height:3px; + position:absolute; + bottom:0; + top:0; + left:0; + display:block; + z-index:1000000001; +} +#djDebug span.djDebugLineChartWarning { + background-color:#900; +} + +#djDebug .highlight { color:#000; } +#djDebug .highlight .err { color:#000; } /* Error */ +#djDebug .highlight .g { color:#000; } /* Generic */ +#djDebug .highlight .k { color:#000; font-weight:bold } /* Keyword */ +#djDebug .highlight .o { color:#000; } /* Operator */ +#djDebug .highlight .n { color:#000; } /* Name */ +#djDebug .highlight .mi { color:#000; font-weight:bold } /* Literal.Number.Integer */ +#djDebug .highlight .l { color:#000; } /* Literal */ +#djDebug .highlight .x { color:#000; } /* Other */ +#djDebug .highlight .p { color:#000; } /* Punctuation */ +#djDebug .highlight .m { color:#000; font-weight:bold } /* Literal.Number */ +#djDebug .highlight .s { color:#333 } /* Literal.String */ +#djDebug .highlight .w { color:#888888 } /* Text.Whitespace */ +#djDebug .highlight .il { color:#000; font-weight:bold } /* Literal.Number.Integer.Long */ +#djDebug .highlight .na { color:#333 } /* Name.Attribute */ +#djDebug .highlight .nt { color:#000; font-weight:bold } /* Name.Tag */ +#djDebug .highlight .nv { color:#333 } /* Name.Variable */ +#djDebug .highlight .s2 { color:#333 } /* Literal.String.Double */ +#djDebug .highlight .cp { color:#333 } /* Comment.Preproc */ + +#djDebug .djdt-timeline { + width: 30%; +} +#djDebug .djDebugTimeline { + position: relative; + height: 100%; + min-height: 100%; +} +#djDebug div.djDebugLineChart { + position: absolute; + left: 0; + right: 0; + top: 0; + bottom: 0; + vertical-align: middle; +} +#djDebug div.djDebugLineChart strong { + text-indent: -10000em; + display: block; + font-weight: normal; + vertical-align: middle; + background-color:#ccc; +} + +#djDebug div.djDebugLineChartWarning strong { + background-color:#900; +} + +#djDebug .djDebugInTransaction div.djDebugLineChart strong { + background-color: #d3ff82; +} +#djDebug .djDebugStartTransaction div.djDebugLineChart strong { + border-left: 1px solid #94b24d; +} +#djDebug .djDebugEndTransaction div.djDebugLineChart strong { + border-right: 1px solid #94b24d; +} + +#djDebug .djdt-panelContent ul.djdt-stats { + position: relative; + list-style-type: none; +} +#djDebug .djdt-panelContent ul.djdt-stats li { + width: 30%; + float: left; +} +#djDebug .djdt-panelContent ul.djdt-stats li strong.djdt-label { + display: block; +} +#djDebug .djdt-panelContent ul.djdt-stats li span.djdt-color { + height: 12px; + width: 3px; + display: inline-block; +} +#djDebug .djdt-panelContent ul.djdt-stats li span.djdt-info { + display: block; + padding-left: 5px; +} + +#djDebug .djdt-panelContent thead th { + white-space: nowrap; +} +#djDebug .djDebugRowWarning .djdt-time { + color: red; +} +#djdebug .djdt-panelContent table .djdt-toggle { + width: 14px; + padding-top: 3px; +} +#djDebug .djdt-panelContent table .djdt-actions { + min-width: 70px; + white-space: nowrap; +} +#djdebug .djdt-panelContent table .djdt-color { + width: 3px; +} +#djdebug .djdt-panelContent table .djdt-color span { + width: 3px; + height: 12px; + overflow: hidden; + padding: 0; +} +#djDebug .djToggleSwitch { + text-decoration: none; + border: 1px solid #999; + height: 12px; + width: 12px; + line-height: 12px; + text-align: center; + color: #777; + display: inline-block; + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#FFF', endColorstr='#DCDCDC'); /* for IE */ + background: -webkit-gradient(linear, left top, left bottom, from(#FFF), to(#DCDCDC)); /* for webkit browsers */ + background:-moz-linear-gradient(center top , #FFFFFF 0pt, #DCDCDC 100%) repeat scroll 0 0 transparent; +} +#djDebug .djNoToggleSwitch { + height: 14px; + width: 14px; + display: inline-block; +} + +#djDebug .djSQLDetailsDiv { + margin-top:0.8em; +} +#djDebug pre { + white-space: -moz-pre-wrap; /* Mozilla, since 1999 */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS-3 */ + word-wrap: break-word; /* Internet Explorer 5.5+ */ + color: #555; + border:1px solid #ccc; + border-collapse:collapse; + background-color:#fff; + display:block; + overflow: auto; + padding:2px 3px; + margin-bottom: 3px; + font-family:Consolas, Monaco, "Bitstream Vera Sans Mono", "Lucida Console", monospace; +} +#djDebug .djdt-stack span { + color: #000; + font-weight: bold; +} +#djDebug .djdt-stack span.djdt-path { + color: #777; + font-weight: normal; +} +#djDebug .djdt-stack span.djdt-code { + font-weight: normal; +} + +#djDebug .djdt-width-20 { + width: 20%; +} +#djDebug .djdt-width-60 { + width: 60%; +} +#djDebug .djdt-highlighted { + background-color: lightgrey; +} +.djdt-hidden { + display: none; +} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/ajax-loader.gif b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/ajax-loader.gif new file mode 100644 index 0000000000000000000000000000000000000000..a7c3f2bacbe630950c16f53e3c27dd840f2e8622 GIT binary patch literal 404 zcmZ?wbhEHb)Mnsj_{hNU?%lhzw6s;LRsl)He^Smxsfi`2DGKG8B^e5dS&0=n`H3ld znR#jX42nNl7`PZ17!?0=`?-b$J39ur8tEA@GXjNlfS3VfAOn+8OCQJSX*X{)e?H13 zeJ||u>DC8kZ4r?R)6{G4&Dyt|CtcU`diyE8Uq?3owA-;j!N^AxXd>8TMr31bj{uEP z;7?56IIHFOnwrlu67PNQNtrQY{;7pt&RzvNJJ_?&Ze06Pg>MsMs)$s6#HZT6Q+}5p z&C*E81%TGdiiN4(8Lw%U?wsno9F=b>WnG7*rn?>{@R)9v%+M)yIi1FiTcrX vD}VECG@HG3ZvWp+k0+)$$G&~0?NxTdRajt8g3>tw(O*m=3=Gzwa03GXAUBr* literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/back.png b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/back.png new file mode 100644 index 0000000000000000000000000000000000000000..aef96c126ed416459c614d62341490584aba1bd2 GIT binary patch literal 574 zcmV-E0>S->P)-0s!BgwG)4cHdyZ+r`D(g+726eE=V)7rhXKw$ijF24d2vP-zowHDz{w z=ztC<8FLt`bl|7snVfSzCNn29ZE)LoJa(jhNVyRDpSA`^bsdoKQfee6N`x^y;~oR# zw^WQoH5J3x21rY4zyQ!SL@X{y2SF^WQx~LX3hMiQF_}!ZNs<&0`mh}U(>oO8Usa$q zP2cl87iA4&c*X$JHG#Ng&eQ2MBLOOa;yBJKU|LlmHE*hlGhhW3B zDGMo|ob_jD+5nSq{6{ z79W)`CA+D=3*wn(LxEh~d1B~?DyafdcFa!QS@9HzqYnl_us0ieLTK<1sHFJ2XV2De zr7(z1z&HSD>H|>}t>I*XxxRk{gtFtevX{ajHUZKENQ>Alm0K1`R8j!!+A$-r<26zZ zv8m#AMj-rGgQV78js3-{?2N^FF58zbXtUYOdO<@>x}X_K{A#tbR^k!MRN|Eu`a?;Q zyd3$Xx1hehe@<`=_)CF6-WMK>My#VErj~J3RIh`QTLl7Loc8d{xK4y&xKY;$^le`! zlt3*ktING|y4uN}E5vYZT*BK@DFYyd@3;K71SLo6ClW&F!^VyGAE;taIbhOiVE_OC M07*qoM6N<$f}|Y*7ytkO literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/back_hover.png b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/back_hover.png new file mode 100644 index 0000000000000000000000000000000000000000..2ce3edaf8007361915f4f6824f1488749182dda5 GIT binary patch literal 613 zcmV-r0-F7aP)zYs1M*Sia-mBu&}anp^HRwY+k1%+6a=g zh@wT%?LN=}yFD{E50{Vz9^UcXd!F-S{@gkDt!R(cY86=>vx*^{|B6*K+BX3OZ&+nk zh6`hugSp{BPFby4VUO0x4FOWKnkWEV&ETa4NnjFK$-W@hyr%imyq!HVa|kO<*E`RNaB)c<2~#nD1Y|07ByUE%8Da zcoUE+Kx*#5;_0K(dyOJe6ac$%ToD|&jU*S|ba6W<5bdo&(SWxm{KJahiih=ZUSGbT z&F^w8As2IzZ|vkU~v|6ya4 zX<9|}6Z^M{(t~itzUH~b5=HX|U2pS@Ir`>Vv7N}L6WLDSJot7(1Zopl4egdQW}Ur4 zDZD~#!s}KW1;7Tm|KYzSxFW0LCJNzs1+c%-;JxvJ06CP3RA+IPWc%1WWBP5{@ga&`4 zBm@}{T6*AvjOt5g=F?dl&F#$GVMdQ2Zwb=Hsf1L?BQ?yh4pDM?b&voF$`1tLShe!!+fbBz^h%#1t1&?m&3ROAl~B$gblIxINreSs#q*+E_(y(z2dJn zoK0#&@Rg^UXGE&VCdP;>C oP*D0G|5`Z5)Fs94hX3UJ23oH|sU6@l|v+c^4=ra^%+noy$F^USdS{Djp(S=mH@Bz9KDuqVHKdmKdQ)_8UOgkp& zB$JNTXdP$V~Msa=llf^0SAue&;4FojJ~dYq%##W;{v6H6>SHzo50r30{B!_xj7ZUNXbI zM9N&!yX<`wmw;T8NZBNk;S#*L8C_H^^I+B_lZlCN>x7?QM4>c5Eq zTBfHm5*3+d-VV0l>XmcUSbR!hc7~QOoYdzjfBpp3XYbLc+&rya8|89MZ_{*CB=)KZ$6>Vs8AwpudrLYFDxS?#3ABjQeQ~F{{oC}2oB13?9(Bi2y^5X@i&*_Mx-ku*8(8quST^g&`A4yy_|e#y10009yNklzDm8c75ZG9Mxwgi$zJ4@Kn~4(eqxU8G~PK`50A+m@6pY%*)s(oL2G zHAyovRs;ry=;U7+lODteeGz=|!C^@DpmyM{!(~HJc2t7<;rHbIaz2;e{hf1cBOo9k zAlLx{fk35FX*8O_!9g00);zJrVk!TntE;OyQbMd$D$mydpU+1uu92msrPhd7S65pj zcDvn(#kpK=qXvvd=5RP%E|*HBHp3?r3T-x9EEX%3 zO0fUwblT-|NhFenDCu-M*q!C7ghCN*qfrFn zL?VGLm(6C!s*=fMuw*MN)$bc$-bkf_=tUng$Hlj zhF-_+el6MHD1A)N8eOBkl5UhH2#x;V1NRuvRH8C!;Rl`7^{KPrwF)-m~?>PRGuN4-U>`nw?FsN|RKyF?n zKC(R{5b?l>!PtPZ2Z0zK3!tRx)0JX`iPQ{r>F3i(|c2>QiP8OTLNULm&pP4_jShy@*UA5HANO z>J=~gZy*qZtEOJ@edh=Q@fDqTWqrD?8rGg|BOo9kAZQeS09~?fgUxpE)Bpeg07*qo IM6N<$g4PV2Q~&?~ literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/indicator.png b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/img/indicator.png new file mode 100644 index 0000000000000000000000000000000000000000..828a6c01c4bbcdcceade3d7987573dbc44582fc3 GIT binary patch literal 436 zcmV;l0ZaagP)H zGlmg%jNS+7hfxT2kG$mLbT;*kVFCsiiJ&cQgQBRlyggb>L7;^OYN(<@&mTxA{QIBwk9GMB#n(POaY8IlddcdLp literal 0 HcmV?d00001 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_existing.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_existing.js new file mode 100644 index 0000000..085495a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_existing.js @@ -0,0 +1 @@ +var djdt = {jQuery: jQuery}; diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_post.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_post.js new file mode 100644 index 0000000..9e4c8bc --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_post.js @@ -0,0 +1,4 @@ +var djdt = {jQuery: jQuery.noConflict(true)}; +if (window.define) { + window.define.amd = _djdt_define_amd_backup; +} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_pre.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_pre.js new file mode 100644 index 0000000..cca2a0f --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/jquery_pre.js @@ -0,0 +1,5 @@ +var _djdt_define_amd_backup; +if (window.define) { + _djdt_define_amd_backup = window.define.amd; + window.define.amd = undefined; +} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js new file mode 100644 index 0000000..f167b5b --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.js @@ -0,0 +1,330 @@ +(function () { + var $$ = { + on: function(root, eventName, selector, fn) { + root.addEventListener(eventName, function(event) { + var target = event.target.closest(selector); + if (root.contains(target)) { + fn.call(target, event); + } + }); + }, + show: function(element) { + element.style.display = 'block'; + }, + hide: function(element) { + element.style.display = 'none'; + }, + toggle: function(element, value) { + if (value) { + $$.show(element); + } else { + $$.hide(element); + } + }, + visible: function(element) { + style = getComputedStyle(element); + return style.display !== 'none'; + }, + executeScripts: function(root) { + root.querySelectorAll('script').forEach(function(e) { + var clone = document.createElement('script'); + clone.src = e.src; + root.appendChild(clone); + }); + }, + }; + + var onKeyDown = function(event) { + if (event.keyCode == 27) { + djdt.hide_one_level(); + } + }; + + var ajax = function(url, init) { + init = Object.assign({credentials: 'same-origin'}, init); + return fetch(url, init).then(function(response) { + if (response.ok) { + return response.text(); + } else { + var win = document.querySelector('#djDebugWindow'); + win.innerHTML = '

'+response.status+': '+response.statusText+'

'; + $$.show(win); + return Promise.reject(); + } + }); + }; + + var djdt = { + handleDragged: false, + events: { + ready: [] + }, + isReady: false, + init: function() { + var djDebug = document.querySelector('#djDebug'); + $$.show(djDebug); + $$.on(djDebug.querySelector('#djDebugPanelList'), 'click', 'li a', function(event) { + event.preventDefault(); + if (!this.className) { + return; + } + var current = djDebug.querySelector('#' + this.className); + if ($$.visible(current)) { + djdt.hide_panels(); + } else { + djdt.hide_panels(); + + $$.show(current); + this.parentElement.classList.add('djdt-active'); + + var inner = current.querySelector('.djDebugPanelContent .djdt-scroll'), + store_id = djDebug.getAttribute('data-store-id'); + if (store_id && inner.children.length === 0) { + var url = djDebug.getAttribute('data-render-panel-url'); + var url_params = new URLSearchParams(); + url_params.append('store_id', store_id); + url_params.append('panel_id', this.className); + url += '?' + url_params.toString(); + ajax(url).then(function(body) { + inner.previousElementSibling.remove(); // Remove AJAX loader + inner.innerHTML = body; + $$.executeScripts(inner); + }); + } + } + }); + $$.on(djDebug, 'click', 'a.djDebugClose', function(event) { + event.preventDefault(); + djdt.hide_one_level(); + }); + $$.on(djDebug, 'click', '.djDebugPanelButton input[type=checkbox]', function() { + djdt.cookie.set(this.getAttribute('data-cookie'), this.checked ? 'on' : 'off', { + path: '/', + expires: 10 + }); + }); + + // Used by the SQL and template panels + $$.on(djDebug, 'click', '.remoteCall', function(event) { + event.preventDefault(); + + var name = this.tagName.toLowerCase(); + var ajax_data = {}; + + if (name == 'button') { + var form = this.closest('form'); + ajax_data.url = this.getAttribute('formaction'); + + if (form) { + ajax_data.body = new FormData(form); + ajax_data.method = form.getAttribute('method') || 'POST'; + } + } + + if (name == 'a') { + ajax_data.url = this.getAttribute('href'); + } + + ajax(ajax_data.url, ajax_data).then(function(body) { + var win = djDebug.querySelector('#djDebugWindow'); + win.innerHTML = body; + $$.executeScripts(win); + $$.show(win); + }); + }); + + // Used by the cache, profiling and SQL panels + $$.on(djDebug, 'click', 'a.djToggleSwitch', function(event) { + event.preventDefault(); + var self = this; + var id = this.getAttribute('data-toggle-id'); + var open_me = this.textContent == this.getAttribute('data-toggle-open'); + if (id === '' || !id) { + return; + } + var name = this.getAttribute('data-toggle-name'); + var container = this.closest('.djDebugPanelContent').querySelector('#' + name + '_' + id); + container.querySelectorAll('.djDebugCollapsed').forEach(function(e) { + $$.toggle(e, open_me); + }); + container.querySelectorAll('.djDebugUncollapsed').forEach(function(e) { + $$.toggle(e, !open_me); + }); + this.closest('.djDebugPanelContent').querySelectorAll('.djToggleDetails_' + id).forEach(function(e) { + if (open_me) { + e.classList.add('djSelected'); + e.classList.remove('djUnselected'); + self.textContent = self.getAttribute('data-toggle-close'); + } else { + e.classList.remove('djSelected'); + e.classList.add('djUnselected'); + self.textContent = self.getAttribute('data-toggle-open'); + } + var switch_ = e.querySelector('.djToggleSwitch') + if (switch_) switch_.textContent = self.textContent; + }); + }); + + djDebug.querySelector('#djHideToolBarButton').addEventListener('click', function(event) { + event.preventDefault(); + djdt.hide_toolbar(true); + }); + djDebug.querySelector('#djShowToolBarButton').addEventListener('click', function(event) { + event.preventDefault(); + if (!djdt.handleDragged) { + djdt.show_toolbar(); + } + }); + var startPageY, baseY; + var handle = document.querySelector('#djDebugToolbarHandle'); + var onHandleMove = function(event) { + // Chrome can send spurious mousemove events, so don't do anything unless the + // cursor really moved. Otherwise, it will be impossible to expand the toolbar + // due to djdt.handleDragged being set to true. + if (djdt.handleDragged || event.pageY != startPageY) { + var top = baseY + event.pageY; + + if (top < 0) { + top = 0; + } else if (top + handle.offsetHeight > window.innerHeight) { + top = window.innerHeight - handle.offsetHeight; + } + + handle.style.top = top + 'px'; + djdt.handleDragged = true; + } + }; + djDebug.querySelector('#djShowToolBarButton').addEventListener('mousedown', function(event) { + event.preventDefault(); + startPageY = event.pageY; + baseY = handle.offsetTop - startPageY; + document.addEventListener('mousemove', onHandleMove); + }); + document.addEventListener('mouseup', function (event) { + document.removeEventListener('mousemove', onHandleMove); + if (djdt.handleDragged) { + event.preventDefault(); + djdt.cookie.set('djdttop', handle.offsetTop, { + path: '/', + expires: 10 + }); + setTimeout(function () { + djdt.handleDragged = false; + }, 10); + } + }); + if (djdt.cookie.get('djdt') == 'hide') { + djdt.hide_toolbar(false); + } else { + djdt.show_toolbar(); + } + djdt.isReady = true; + djdt.events.ready.forEach(function(callback) { + callback(djdt); + }); + }, + hide_panels: function() { + $$.hide(djDebug.querySelector('#djDebugWindow')); + djDebug.querySelectorAll('.djdt-panelContent').forEach(function(e) { + $$.hide(e); + }); + djDebug.querySelectorAll('#djDebugToolbar li').forEach(function(e) { + e.classList.remove('djdt-active'); + }); + }, + hide_toolbar: function(setCookie) { + djdt.hide_panels(); + $$.hide(djDebug.querySelector('#djDebugToolbar')); + + var handle = document.querySelector('#djDebugToolbarHandle'); + $$.show(handle); + // set handle position + var handleTop = djdt.cookie.get('djdttop'); + if (handleTop) { + handleTop = Math.min(handleTop, window.innerHeight - handle.offsetHeight); + handle.style.top = handleTop + 'px'; + } + + document.removeEventListener('keydown', onKeyDown); + + if (setCookie) { + djdt.cookie.set('djdt', 'hide', { + path: '/', + expires: 10 + }); + } + }, + hide_one_level: function(skipDebugWindow) { + if ($$.visible(djDebug.querySelector('#djDebugWindow'))) { + $$.hide(djDebug.querySelector('#djDebugWindow')); + } else if (djDebug.querySelector('#djDebugToolbar li.djdt-active')) { + djdt.hide_panels(); + } else { + djdt.hide_toolbar(true); + } + }, + show_toolbar: function() { + document.addEventListener('keydown', onKeyDown); + $$.hide(djDebug.querySelector('#djDebugToolbarHandle')); + $$.show(djDebug.querySelector('#djDebugToolbar')); + djdt.cookie.set('djdt', 'show', { + path: '/', + expires: 10 + }); + }, + ready: function(callback){ + if (djdt.isReady) { + callback(djdt); + } else { + djdt.events.ready.push(callback); + } + }, + cookie: { + get: function(key){ + if (document.cookie.indexOf(key) === -1) return null; + + var cookieArray = document.cookie.split('; '), + cookies = {}; + + cookieArray.forEach(function(e){ + var parts = e.split('='); + cookies[ parts[0] ] = parts[1]; + }); + + return cookies[ key ]; + }, + set: function(key, value, options){ + options = options || {}; + + if (typeof options.expires === 'number') { + var days = options.expires, t = options.expires = new Date(); + t.setDate(t.getDate() + days); + } + + document.cookie = [ + encodeURIComponent(key) + '=' + String(value), + options.expires ? '; expires=' + options.expires.toUTCString() : '', + options.path ? '; path=' + options.path : '', + options.domain ? '; domain=' + options.domain : '', + options.secure ? '; secure' : '' + ].join(''); + + return value; + } + }, + applyStyle: function(name) { + var selector = '#djDebug [data-' + name + ']'; + document.querySelectorAll(selector).forEach(function(element) { + element.style[name] = element.getAttribute('data-' + name); + }); + } + }; + window.djdt = { + show_toolbar: djdt.show_toolbar, + hide_toolbar: djdt.hide_toolbar, + close: djdt.hide_one_level, + cookie: djdt.cookie, + applyStyle: djdt.applyStyle + }; + document.addEventListener('DOMContentLoaded', djdt.init); +})(); diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.profiling.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.profiling.js new file mode 100644 index 0000000..5823cfb --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.profiling.js @@ -0,0 +1,3 @@ +(function () { + djdt.applyStyle('padding-left'); +})(); diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.sql.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.sql.js new file mode 100644 index 0000000..65093c8 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.sql.js @@ -0,0 +1,5 @@ +(function () { + djdt.applyStyle('background-color'); + djdt.applyStyle('left'); + djdt.applyStyle('width'); +})(); diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.template.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.template.js new file mode 100644 index 0000000..01ac8a4 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.template.js @@ -0,0 +1,11 @@ +(function ($) { + var uarr = String.fromCharCode(0x25b6), + darr = String.fromCharCode(0x25bc); + + $('a.djTemplateShowContext').on('click', function() { + var arrow = $(this).children('.toggleArrow'); + arrow.html(arrow.html() == uarr ? darr : uarr); + $(this).parent().next().toggle(); + return false; + }); +})(djdt.jQuery); diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.timer.js b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.timer.js new file mode 100644 index 0000000..b695994 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/static/debug_toolbar/js/toolbar.timer.js @@ -0,0 +1,52 @@ +(function () { + // Browser timing remains hidden unless we can successfully access the performance object + var perf = window.performance || window.msPerformance || + window.webkitPerformance || window.mozPerformance; + if (!perf) + return; + + var rowCount = 0, + timingOffset = perf.timing.navigationStart, + timingEnd = perf.timing.loadEventEnd, + totalTime = timingEnd - timingOffset; + function getLeft(stat) { + return ((perf.timing[stat] - timingOffset) / (totalTime)) * 100.0; + } + function getCSSWidth(stat, endStat) { + var width = ((perf.timing[endStat] - perf.timing[stat]) / (totalTime)) * 100.0; + // Calculate relative percent (same as sql panel logic) + width = 100.0 * width / (100.0 - getLeft(stat)); + return (width < 1) ? "2px" : width + "%"; + } + function addRow(stat, endStat) { + rowCount++; + var row = document.createElement('tr'); + row.className = (rowCount % 2) ? 'djDebugOdd' : 'djDebugEven'; + if (endStat) { + // Render a start through end bar + row.innerHTML = '' + stat.replace('Start', '') + '' + + '
 
' + + '' + (perf.timing[stat] - timingOffset) + ' (+' + (perf.timing[endStat] - perf.timing[stat]) + ')'; + row.querySelector('strong').style.width = getCSSWidth(stat, endStat); + } else { + // Render a point in time + row.innerHTML = '' + stat + '' + + '
 
' + + '' + (perf.timing[stat] - timingOffset) + ''; + row.querySelector('strong').style.width = '2px'; + } + row.querySelector('.djDebugLineChart').style.left = getLeft(stat) + '%'; + document.querySelector('#djDebugBrowserTimingTableBody').appendChild(row); + } + + // This is a reasonably complete and ordered set of timing periods (2 params) and events (1 param) + addRow('domainLookupStart', 'domainLookupEnd'); + addRow('connectStart', 'connectEnd'); + addRow('requestStart', 'responseEnd'); // There is no requestEnd + addRow('responseStart', 'responseEnd'); + addRow('domLoading', 'domComplete'); // Spans the events below + addRow('domInteractive'); + addRow('domContentLoadedEventStart', 'domContentLoadedEventEnd'); + addRow('loadEventStart', 'loadEventEnd'); + document.querySelector('#djDebugBrowserTiming').classList.remove('djdt-hidden'); +})(); diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/base.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/base.html new file mode 100644 index 0000000..3d4740c --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/base.html @@ -0,0 +1,63 @@ +{% load i18n %}{% load static %} + + + +
+
+ +
+
+ « +
+ {% for panel in toolbar.panels %} + {% if panel.has_content and panel.enabled %} +
+
+ +

{{ panel.title|safe }}

+
+
+ {% if toolbar.store_id %} + loading +
+ {% else %} +
{{ panel.content }}
+ {% endif %} +
+
+ {% endif %} + {% endfor %} +
+
diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/cache.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/cache.html new file mode 100644 index 0000000..39c9089 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/cache.html @@ -0,0 +1,69 @@ +{% load i18n %} +

{% trans "Summary" %}

+ + + + + + + + + + + + + + + + + +
{% trans "Total calls" %}{% trans "Total time" %}{% trans "Cache hits" %}{% trans "Cache misses" %}
{{ total_calls }}{{ total_time }} ms{{ hits }}{{ misses }}
+

{% trans "Commands" %}

+ + + + {% for name in counts.keys %} + + {% endfor %} + + + + + {% for value in counts.values %} + + {% endfor %} + + +
{{ name }}
{{ value }}
+{% if calls %} +

{% trans "Calls" %}

+ + + + + + + + + + + + {% for call in calls %} + + + + + + + + + + + + + {% endfor %} + +
{% trans "Time (ms)" %}{% trans "Type" %}{% trans "Arguments" %}{% trans "Keyword arguments" %}{% trans "Backend" %}
+ + + {{ call.time|floatformat:"4" }}{{ call.name|escape }}{{ call.args|escape }}{{ call.kwargs|escape }}{{ call.backend }}
{{ call.trace }}
+{% endif %} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/headers.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/headers.html new file mode 100644 index 0000000..6b43e94 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/headers.html @@ -0,0 +1,60 @@ +{% load i18n %} + +

{% trans "Request headers" %}

+ + + + + + + + + + {% for key, value in request_headers.items %} + + + + + {% endfor %} + +
{% trans "Key" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
+ +

{% trans "Response headers" %}

+ + + + + + + + + + {% for key, value in response_headers.items %} + + + + + {% endfor %} + +
{% trans "Key" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
+ +

{% trans "WSGI environ" %}

+ +

{% trans "Since the WSGI environ inherits the environment of the server, only a significant subset is shown below." %}

+ + + + + + + + + + {% for key, value in environ.items %} + + + + + {% endfor %} + +
{% trans "Key" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/logging.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/logging.html new file mode 100644 index 0000000..3908f4f --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/logging.html @@ -0,0 +1,28 @@ +{% load i18n %} +{% if records %} + + + + + + + + + + + + {% for record in records %} + + + + + + + + {% endfor %} + +
{% trans "Level" %}{% trans "Time" %}{% trans "Channel" %}{% trans "Message" %}{% trans "Location" %}
{{ record.level }}{{ record.time|date:"h:i:s m/d/Y" }}{{ record.channel|default:"-" }}{{ record.message|linebreaksbr }}{{ record.file }}:{{ record.line }}
+{% else %} +

{% trans "No messages logged" %}.

+{% endif %} + diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/profiling.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/profiling.html new file mode 100644 index 0000000..93f7daa --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/profiling.html @@ -0,0 +1,36 @@ +{% load i18n %}{% load static %} + + + + + + + + + + + + + {% for call in func_list %} + + + + + + + + + {% endfor %} + +
{% trans "Call" %}{% trans "CumTime" %}{% trans "Per" %}{% trans "TotTime" %}{% trans "Per" %}{% trans "Count" %}
+
+ {% if call.has_subfuncs %} + - + {% else %} + + {% endif %} + {{ call.func_std_string }} +
+
{{ call.cumtime|floatformat:3 }}{{ call.cumtime_per_call|floatformat:3 }}{{ call.tottime|floatformat:3 }}{{ call.tottime_per_call|floatformat:3 }}{{ call.count }}
+ + diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/request.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/request.html new file mode 100644 index 0000000..9d18d08 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/request.html @@ -0,0 +1,124 @@ +{% load i18n %} + +

{% trans "View information" %}

+ + + + + + + + + + + + + + + + + +
{% trans "View function" %}{% trans "Arguments" %}{% trans "Keyword arguments" %}{% trans "URL name" %}
{{ view_func }}{{ view_args|pprint }}{{ view_kwargs|pprint }}{{ view_urlname }}
+ +{% if cookies %} +

{% trans "Cookies" %}

+ + + + + + + + + + + + + {% for key, value in cookies %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No cookies" %}

+{% endif %} + +{% if session %} +

{% trans "Session data" %}

+ + + + + + + + + + + + + {% for key, value in session %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No session data" %}

+{% endif %} + +{% if get %} +

{% trans "GET data" %}

+ + + + + + + + + + + + + {% for key, value in get %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No GET data" %}

+{% endif %} + +{% if post %} +

{% trans "POST data" %}

+ + + + + + + + + + + + {% for key, value in post %} + + + + + {% endfor %} + +
{% trans "Variable" %}{% trans "Value" %}
{{ key|pprint }}{{ value|pprint }}
+{% else %} +

{% trans "No POST data" %}

+{% endif %} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/settings.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/settings.html new file mode 100644 index 0000000..f6b5afe --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/settings.html @@ -0,0 +1,17 @@ +{% load i18n %} + + + + + + + + + {% for name, value in settings.items %} + + + + + {% endfor %} + +
{% trans "Setting" %}{% trans "Value" %}
{{ name }}{{ value|pprint }}
diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/signals.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/signals.html new file mode 100644 index 0000000..ac32f37 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/signals.html @@ -0,0 +1,19 @@ +{% load i18n %} + + + + + + + + + + {% for name, signal, receivers in signals %} + + + + + + {% endfor %} + +
{% trans "Signal" %}{% trans "Providing" %}{% trans "Receivers" %}
{{ name|escape }}{{ signal.providing_args|join:", " }}{{ receivers|join:", " }}
diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql.html new file mode 100644 index 0000000..37074a4 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql.html @@ -0,0 +1,117 @@ +{% load i18n l10n %}{% load static %} +
+
    + {% for alias, info in databases %} +
  • +   {{ alias }} + {{ info.time_spent|floatformat:"2" }} ms ({% blocktrans count info.num_queries as num %}{{ num }} query{% plural %}{{ num }} queries{% endblocktrans %} + {% if info.similar_count %} + {% blocktrans with count=info.similar_count trimmed %} + including {{ count }} similar + {% endblocktrans %} + {% if info.duplicate_count %} + {% blocktrans with dupes=info.duplicate_count trimmed %} + and {{ dupes }} duplicates + {% endblocktrans %} + {% endif %} + {% endif %}) +
  • + {% endfor %} +
+
+ +{% if queries %} + + + + + + + + + + + + {% for query in queries %} + + + + + + + + + + + + + {% endfor %} + +
 {% trans "Query" %}{% trans "Timeline" %}{% trans "Time (ms)" %}{% trans "Action" %}
  + + + +
+
{{ query.sql|safe }}
+
+ {% if query.similar_count %} + +   + {% blocktrans with count=query.similar_count %}{{ count }} similar queries.{% endblocktrans %} + + {% endif %} + {% if query.duplicate_count %} + +   + {% blocktrans with dupes=query.duplicate_count %}Duplicated {{ dupes }} times.{% endblocktrans %} + + {% endif %} +
+
{{ query.width_ratio }}%
+
+ {{ query.duration|floatformat:"2" }} + + + {% if query.params %} + {% if query.is_select %} +
+ {{ query.form }} + + + + + {% if query.vendor == 'mysql' %} + + {% endif %} +
+ {% endif %} + {% endif %} +
+
+

{% trans "Connection:" %} {{ query.alias }}

+ {% if query.iso_level %} +

{% trans "Isolation level:" %} {{ query.iso_level }}

+ {% endif %} + {% if query.trans_status %} +

{% trans "Transaction status:" %} {{ query.trans_status }}

+ {% endif %} + {% if query.stacktrace %} +
{{ query.stacktrace }}
+ {% endif %} + {% if query.template_info %} + + {% for line in query.template_info.context %} + + + + + {% endfor %} +
{{ line.num }}{{ line.content }}
+

{{ query.template_info.name|default:_("(unknown)") }}

+ {% endif %} +
+
+{% else %} +

{% trans "No SQL queries were recorded during this request." %}

+{% endif %} + + diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html new file mode 100644 index 0000000..c7651e0 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_explain.html @@ -0,0 +1,37 @@ +{% load i18n %}{% load static %} +
+ +

{% trans "SQL explained" %}

+
+
+
+
+
{% trans "Executed SQL" %}
+
{{ sql|safe }}
+
{% trans "Time" %}
+
{{ duration }} ms
+
{% trans "Database" %}
+
{{ alias }}
+
+ + + + {% for h in headers %} + + {% endfor %} + + + + {% for row in result %} + + {% for column in row %} + + {% endfor %} + + {% endfor %} + +
{{ h|upper }}
{{ column|escape }}
+
+
+ + diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html new file mode 100644 index 0000000..5a07fee --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_profile.html @@ -0,0 +1,44 @@ +{% load i18n %}{% load static %} +
+ +

{% trans "SQL profiled" %}

+
+
+
+ {% if result %} +
+
{% trans "Executed SQL" %}
+
{{ sql|safe }}
+
{% trans "Time" %}
+
{{ duration }} ms
+
{% trans "Database" %}
+
{{ alias }}
+
+ + + + {% for h in headers %} + + {% endfor %} + + + + {% for row in result %} + + {% for column in row %} + + {% endfor %} + + {% endfor %} + +
{{ h|upper }}
{{ column|escape }}
+ {% else %} +
+
{% trans "Error" %}
+
{{ result_error }}
+
+ {% endif %} +
+
+ + diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_select.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_select.html new file mode 100644 index 0000000..75b1a84 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/sql_select.html @@ -0,0 +1,41 @@ +{% load i18n %}{% load static %} +
+ +

{% trans "SQL selected" %}

+
+
+
+
+
{% trans "Executed SQL" %}
+
{{ sql|safe }}
+
{% trans "Time" %}
+
{{ duration }} ms
+
{% trans "Database" %}
+
{{ alias }}
+
+ {% if result %} + + + + {% for h in headers %} + + {% endfor %} + + + + {% for row in result %} + + {% for column in row %} + + {% endfor %} + + {% endfor %} + +
{{ h|upper }}
{{ column|escape }}
+ {% else %} +

{% trans "Empty set" %}

+ {% endif %} +
+
+ + diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/staticfiles.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/staticfiles.html new file mode 100644 index 0000000..d9d8150 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/staticfiles.html @@ -0,0 +1,56 @@ +{% load i18n %} + +

{% blocktrans count staticfiles_dirs|length as dirs_count %}Static file path{% plural %}Static file paths{% endblocktrans %}

+{% if staticfiles_dirs %} +
    + {% for prefix, staticfiles_dir in staticfiles_dirs %} +
  1. {{ staticfiles_dir }}{% if prefix %} {% blocktrans %}(prefix {{ prefix }}){% endblocktrans %}{% endif %}
  2. + {% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count staticfiles_apps|length as apps_count %}Static file app{% plural %}Static file apps{% endblocktrans %}

+{% if staticfiles_apps %} +
    + {% for static_app in staticfiles_apps %} +
  1. {{ static_app }}
  2. + {% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count staticfiles|length as staticfiles_count %}Static file{% plural %}Static files{% endblocktrans %}

+{% if staticfiles %} +
+{% for staticfile in staticfiles %} +
{{ staticfile }}
+
{{ staticfile.real_path }}
+{% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + + +{% for finder, payload in staticfiles_finders.items %} +

{{ finder }} ({% blocktrans count payload|length as payload_count %}{{ payload_count }} file{% plural %}{{ payload_count }} files{% endblocktrans %})

+ + + + + + + + + {% for path, real_path in payload %} + + + + + {% endfor %} + +
{% trans 'Path' %}{% trans 'Location' %}
{{ path }}{{ real_path }}
+{% endfor %} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/template_source.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/template_source.html new file mode 100644 index 0000000..7914f2e --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/template_source.html @@ -0,0 +1,14 @@ +{% load i18n %} +
+ +

{% trans "Template source:" %} {{ template_name }}

+
+
+
+ {% if not source.pygmentized %} + {{ source }} + {% else %} + {{ source }} + {% endif %} +
+
diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/templates.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/templates.html new file mode 100644 index 0000000..fcfa2d6 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/templates.html @@ -0,0 +1,48 @@ +{% load i18n %}{% load static %} +

{% blocktrans count template_dirs|length as template_count %}Template path{% plural %}Template paths{% endblocktrans %}

+{% if template_dirs %} +
    + {% for template in template_dirs %} +
  1. {{ template }}
  2. + {% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count templates|length as template_count %}Template{% plural %}Templates{% endblocktrans %}

+{% if templates %} +
+{% for template in templates %} +
{{ template.template.name|addslashes }}
+
{{ template.template.origin_name|addslashes }}
+ {% if template.context %} +
+
+ {% trans "Toggle context" %} + {{ template.context }} +
+
+ {% endif %} +{% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} + +

{% blocktrans count context_processors|length as context_processors_count %}Context processor{% plural %}Context processors{% endblocktrans %}

+{% if context_processors %} +
+{% for key, value in context_processors.items %} +
{{ key|escape }}
+
+
+ {% trans "Toggle context" %} + {{ value|escape }} +
+
+{% endfor %} +
+{% else %} +

{% trans "None" %}

+{% endif %} diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/timer.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/timer.html new file mode 100644 index 0000000..2aa039a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/timer.html @@ -0,0 +1,44 @@ +{% load i18n %}{% load static %} +

{% trans "Resource usage" %}

+ + + + + + + + + + + + + {% for key, value in rows %} + + + + + {% endfor %} + +
{% trans "Resource" %}{% trans "Value" %}
{{ key|escape }}{{ value|escape }}
+ + +
+

{% trans "Browser timing" %}

+ + + + + + + + + + + + + + + +
{% trans "Timing attribute" %}{% trans "Timeline" %}{% trans "Milliseconds since navigation start (+length)" %}
+
+ diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/versions.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/versions.html new file mode 100644 index 0000000..dbc2061 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/panels/versions.html @@ -0,0 +1,24 @@ +{% load i18n %} + + + + + + + + + + + + + + + {% for package, name, version in versions %} + + + + + + {% endfor %} + +
{% trans "Package" %}{% trans "Name" %}{% trans "Version" %}
{{ package }}{{ name }}{{ version }}
diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/redirect.html b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/redirect.html new file mode 100644 index 0000000..365fb48 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templates/debug_toolbar/redirect.html @@ -0,0 +1,16 @@ +{% load i18n %} + + + + + +

{{ status_line }}

+

{% trans "Location:" %} {{ redirect_to }}

+

+ {% trans "The Django Debug Toolbar has intercepted a redirect to the above URL for debug viewing purposes. You can click the above link to continue with the redirect as normal." %} +

+ + + diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/templatetags/__init__.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/templatetags/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/toolbar.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/toolbar.py new file mode 100644 index 0000000..21415b5 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/toolbar.py @@ -0,0 +1,136 @@ +""" +The main DebugToolbar class that loads and renders the Toolbar. +""" + +from __future__ import absolute_import, unicode_literals + +import uuid +from collections import OrderedDict + +from django.apps import apps +from django.conf.urls import url +from django.core.exceptions import ImproperlyConfigured +from django.template import TemplateSyntaxError +from django.template.loader import render_to_string +from django.utils.module_loading import import_string + +from debug_toolbar import settings as dt_settings + + +class DebugToolbar(object): + + def __init__(self, request): + self.request = request + self.config = dt_settings.get_config().copy() + self._panels = OrderedDict() + for panel_class in self.get_panel_classes(): + panel_instance = panel_class(self) + self._panels[panel_instance.panel_id] = panel_instance + self.stats = {} + self.server_timing_stats = {} + self.store_id = None + + # Manage panels + + @property + def panels(self): + """ + Get a list of all available panels. + """ + return list(self._panels.values()) + + @property + def enabled_panels(self): + """ + Get a list of panels enabled for the current request. + """ + return [panel for panel in self._panels.values() if panel.enabled] + + def get_panel_by_id(self, panel_id): + """ + Get the panel with the given id, which is the class name by default. + """ + return self._panels[panel_id] + + # Handle rendering the toolbar in HTML + + def render_toolbar(self): + """ + Renders the overall Toolbar with panels inside. + """ + if not self.should_render_panels(): + self.store() + try: + context = {'toolbar': self} + return render_to_string('debug_toolbar/base.html', context) + except TemplateSyntaxError: + if not apps.is_installed('django.contrib.staticfiles'): + raise ImproperlyConfigured( + "The debug toolbar requires the staticfiles contrib app. " + "Add 'django.contrib.staticfiles' to INSTALLED_APPS and " + "define STATIC_URL in your settings.") + else: + raise + + # Handle storing toolbars in memory and fetching them later on + + _store = OrderedDict() + + def should_render_panels(self): + render_panels = self.config['RENDER_PANELS'] + if render_panels is None: + render_panels = self.request.META['wsgi.multiprocess'] + return render_panels + + def store(self): + self.store_id = uuid.uuid4().hex + cls = type(self) + cls._store[self.store_id] = self + for _ in range(len(cls._store) - self.config['RESULTS_CACHE_SIZE']): + try: + # collections.OrderedDict + cls._store.popitem(last=False) + except TypeError: + # django.utils.datastructures.SortedDict + del cls._store[cls._store.keyOrder[0]] + + @classmethod + def fetch(cls, store_id): + return cls._store.get(store_id) + + # Manually implement class-level caching of panel classes and url patterns + # because it's more obvious than going through an abstraction. + + _panel_classes = None + + @classmethod + def get_panel_classes(cls): + if cls._panel_classes is None: + # Load panels in a temporary variable for thread safety. + panel_classes = [ + import_string(panel_path) + for panel_path in dt_settings.get_panels() + ] + cls._panel_classes = panel_classes + return cls._panel_classes + + _urlpatterns = None + + @classmethod + def get_urls(cls): + if cls._urlpatterns is None: + from . import views + # Load URLs in a temporary variable for thread safety. + # Global URLs + urlpatterns = [ + url(r'^render_panel/$', views.render_panel, name='render_panel'), + ] + # Per-panel URLs + for panel_class in cls.get_panel_classes(): + urlpatterns += panel_class.get_urls() + cls._urlpatterns = urlpatterns + return cls._urlpatterns + + +app_name = 'djdt' +urlpatterns = DebugToolbar.get_urls() diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/utils.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/utils.py new file mode 100644 index 0000000..d311e9a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/utils.py @@ -0,0 +1,260 @@ +from __future__ import absolute_import, unicode_literals + +import inspect +import os.path +import re +import sys +from importlib import import_module +from itertools import chain + +import django +from django.core.exceptions import ImproperlyConfigured +from django.template import Node +from django.utils import six +from django.utils.encoding import force_text +from django.utils.html import escape +from django.utils.safestring import mark_safe + +from debug_toolbar import settings as dt_settings + +try: + import threading +except ImportError: + threading = None + + +# Figure out some paths +django_path = os.path.realpath(os.path.dirname(django.__file__)) + + +def get_module_path(module_name): + try: + module = import_module(module_name) + except ImportError as e: + raise ImproperlyConfigured( + 'Error importing HIDE_IN_STACKTRACES: %s' % (e,)) + else: + source_path = inspect.getsourcefile(module) + if source_path.endswith('__init__.py'): + source_path = os.path.dirname(source_path) + return os.path.realpath(source_path) + + +hidden_paths = [ + get_module_path(module_name) + for module_name in dt_settings.get_config()['HIDE_IN_STACKTRACES'] +] + + +def omit_path(path): + return any(path.startswith(hidden_path) for hidden_path in hidden_paths) + + +def tidy_stacktrace(stack): + """ + Clean up stacktrace and remove all entries that: + 1. Are part of Django (except contrib apps) + 2. Are part of socketserver (used by Django's dev server) + 3. Are the last entry (which is part of our stacktracing code) + + ``stack`` should be a list of frame tuples from ``inspect.stack()`` + """ + trace = [] + for frame, path, line_no, func_name, text in (f[:5] for f in stack): + if omit_path(os.path.realpath(path)): + continue + text = (''.join(force_text(t) for t in text)).strip() if text else '' + trace.append((path, line_no, func_name, text)) + return trace + + +def render_stacktrace(trace): + stacktrace = [] + for frame in trace: + params = (escape(v) for v in chain(frame[0].rsplit(os.path.sep, 1), frame[1:])) + params_dict = {six.text_type(idx): v for idx, v in enumerate(params)} + try: + stacktrace.append('%(0)s/' + '%(1)s' + ' in %(3)s' + '(%(2)s)\n' + ' %(4)s' + % params_dict) + except KeyError: + # This frame doesn't have the expected format, so skip it and move on to the next one + continue + return mark_safe('\n'.join(stacktrace)) + + +def get_template_info(): + template_info = None + cur_frame = sys._getframe().f_back + try: + while cur_frame is not None: + in_utils_module = cur_frame.f_code.co_filename.endswith( + "/debug_toolbar/utils.py" + ) + is_get_template_context = ( + cur_frame.f_code.co_name == get_template_context.__name__ + ) + if in_utils_module and is_get_template_context: + # If the method in the stack trace is this one + # then break from the loop as it's being check recursively. + break + elif cur_frame.f_code.co_name == 'render': + node = cur_frame.f_locals['self'] + context = cur_frame.f_locals['context'] + if isinstance(node, Node): + template_info = get_template_context(node, context) + break + cur_frame = cur_frame.f_back + except Exception: + pass + del cur_frame + return template_info + + +def get_template_context(node, context, context_lines=3): + line, source_lines, name = get_template_source_from_exception_info( + node, context) + debug_context = [] + start = max(1, line - context_lines) + end = line + 1 + context_lines + + for line_num, content in source_lines: + if start <= line_num <= end: + debug_context.append({ + 'num': line_num, + 'content': content, + 'highlight': (line_num == line), + }) + + return { + 'name': name, + 'context': debug_context, + } + + +def get_template_source_from_exception_info(node, context): + exception_info = context.template.get_exception_info( + Exception('DDT'), node.token) + line = exception_info['line'] + source_lines = exception_info['source_lines'] + name = exception_info['name'] + return line, source_lines, name + + +def get_name_from_obj(obj): + if hasattr(obj, '__name__'): + name = obj.__name__ + elif hasattr(obj, '__class__') and hasattr(obj.__class__, '__name__'): + name = obj.__class__.__name__ + else: + name = '' + + if hasattr(obj, '__module__'): + module = obj.__module__ + name = '%s.%s' % (module, name) + + return name + + +def getframeinfo(frame, context=1): + """ + Get information about a frame or traceback object. + + A tuple of five things is returned: the filename, the line number of + the current line, the function name, a list of lines of context from + the source code, and the index of the current line within that list. + The optional second argument specifies the number of lines of context + to return, which are centered around the current line. + + This originally comes from ``inspect`` but is modified to handle issues + with ``findsource()``. + """ + if inspect.istraceback(frame): + lineno = frame.tb_lineno + frame = frame.tb_frame + else: + lineno = frame.f_lineno + if not inspect.isframe(frame): + raise TypeError('arg is not a frame or traceback object') + + filename = inspect.getsourcefile(frame) or inspect.getfile(frame) + if context > 0: + start = lineno - 1 - context // 2 + try: + lines, lnum = inspect.findsource(frame) + except Exception: # findsource raises platform-dependant exceptions + first_lines = lines = index = None + else: + start = max(start, 1) + start = max(0, min(start, len(lines) - context)) + first_lines = lines[:2] + lines = lines[start:(start + context)] + index = lineno - 1 - start + else: + first_lines = lines = index = None + + # Code taken from Django's ExceptionReporter._get_lines_from_file + if first_lines and isinstance(first_lines[0], bytes): + encoding = 'ascii' + for line in first_lines[:2]: + # File coding may be specified. Match pattern from PEP-263 + # (https://www.python.org/dev/peps/pep-0263/) + match = re.search(br'coding[:=]\s*([-\w.]+)', line) + if match: + encoding = match.group(1).decode('ascii') + break + lines = [line.decode(encoding, 'replace') for line in lines] + + if hasattr(inspect, 'Traceback'): + return inspect.Traceback(filename, lineno, frame.f_code.co_name, lines, index) + else: + return (filename, lineno, frame.f_code.co_name, lines, index) + + +def get_stack(context=1): + """ + Get a list of records for a frame and all higher (calling) frames. + + Each record contains a frame object, filename, line number, function + name, a list of lines of context, and index within the context. + + Modified version of ``inspect.stack()`` which calls our own ``getframeinfo()`` + """ + frame = sys._getframe(1) + framelist = [] + while frame: + framelist.append((frame,) + getframeinfo(frame, context)) + frame = frame.f_back + return framelist + + +class ThreadCollector(object): + def __init__(self): + if threading is None: + raise NotImplementedError( + "threading module is not available, " + "this panel cannot be used without it") + self.collections = {} # a dictionary that maps threads to collections + + def get_collection(self, thread=None): + """ + Returns a list of collected items for the provided thread, of if none + is provided, returns a list for the current thread. + """ + if thread is None: + thread = threading.currentThread() + if thread not in self.collections: + self.collections[thread] = [] + return self.collections[thread] + + def clear_collection(self, thread=None): + if thread is None: + thread = threading.currentThread() + if thread in self.collections: + del self.collections[thread] + + def collect(self, item, thread=None): + self.get_collection(thread).append(item) diff --git a/thesisenv/lib/python3.6/site-packages/debug_toolbar/views.py b/thesisenv/lib/python3.6/site-packages/debug_toolbar/views.py new file mode 100644 index 0000000..5ed99ba --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/debug_toolbar/views.py @@ -0,0 +1,22 @@ +from __future__ import absolute_import, unicode_literals + +from django.http import HttpResponse +from django.utils.html import escape +from django.utils.translation import ugettext as _ + +from debug_toolbar.decorators import require_show_toolbar +from debug_toolbar.toolbar import DebugToolbar + + +@require_show_toolbar +def render_panel(request): + """Render the contents of a panel""" + toolbar = DebugToolbar.fetch(request.GET['store_id']) + if toolbar is None: + content = _("Data for this panel isn't available anymore. " + "Please reload the page and retry.") + content = "

%s

" % escape(content) + else: + panel = toolbar.get_panel_by_id(request.GET['panel_id']) + content = panel.content + return HttpResponse(content) diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/DESCRIPTION.rst b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/DESCRIPTION.rst new file mode 100644 index 0000000..6f46325 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/DESCRIPTION.rst @@ -0,0 +1,47 @@ +==================== +Django Debug Toolbar +==================== + +.. image:: https://jazzband.co/static/img/badge.svg + :target: https://jazzband.co/ + :alt: Jazzband + +.. image:: https://travis-ci.org/jazzband/django-debug-toolbar.svg?branch=master + :target: https://travis-ci.org/jazzband/django-debug-toolbar + :alt: Build Status + +.. image:: https://codecov.io/gh/jazzband/django-debug-toolbar/branch/master/graph/badge.svg + :target: https://codecov.io/gh/jazzband/django-debug-toolbar + :alt: Test coverage status + +.. image:: https://requires.io/github/jazzband/django-debug-toolbar/requirements.svg?branch=master + :target: https://requires.io/github/jazzband/django-debug-toolbar/requirements/?branch=master + :alt: Requirements Status + +The Django Debug Toolbar is a configurable set of panels that display various +debug information about the current request/response and when clicked, display +more details about the panel's content. + +Here's a screenshot of the toolbar in action: + +.. image:: https://raw.github.com/jazzband/django-debug-toolbar/master/example/django-debug-toolbar.png + :width: 908 + :height: 557 + +In addition to the built-in panels, a number of third-party panels are +contributed by the community. + +The current version of the Debug Toolbar is 1.10.1. It works on Django ≥ 1.11. + +Documentation, including installation and configuration instructions, is +available at https://django-debug-toolbar.readthedocs.io/. + +The Django Debug Toolbar is released under the BSD license, like Django +itself. If you like it, please consider contributing! + +The Django Debug Toolbar was originally created by Rob Hudson +in August 2008 and was further developed by many contributors_. + +.. _contributors: https://github.com/jazzband/django-debug-toolbar/graphs/contributors + + diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/INSTALLER b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/LICENSE.txt b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/LICENSE.txt new file mode 100644 index 0000000..15d8309 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/LICENSE.txt @@ -0,0 +1,27 @@ +Copyright (c) Rob Hudson and individual contributors. +All rights reserved. + +Redistribution and use in source and binary forms, with or without modification, +are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + 3. Neither the name of Django nor the names of its contributors may be used + to endorse or promote products derived from this software without + specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND +ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED +WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE +DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; +LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON +ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS +SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/METADATA b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/METADATA new file mode 100644 index 0000000..0a0e4bf --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/METADATA @@ -0,0 +1,79 @@ +Metadata-Version: 2.0 +Name: django-debug-toolbar +Version: 1.10.1 +Summary: A configurable set of panels that display various debug information about the current request/response. +Home-page: https://github.com/jazzband/django-debug-toolbar +Author: Rob Hudson +Author-email: rob@cogit8.org +License: BSD +Download-URL: https://pypi.org/project/django-debug-toolbar/ +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Environment :: Web Environment +Classifier: Framework :: Django +Classifier: Framework :: Django :: 1.11 +Classifier: Framework :: Django :: 2.0 +Classifier: Framework :: Django :: 2.1 +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: 3.7 +Classifier: Topic :: Software Development :: Libraries :: Python Modules +Requires-Python: >=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.* +Requires-Dist: Django (>=1.11) +Requires-Dist: sqlparse (>=0.2.0) + +==================== +Django Debug Toolbar +==================== + +.. image:: https://jazzband.co/static/img/badge.svg + :target: https://jazzband.co/ + :alt: Jazzband + +.. image:: https://travis-ci.org/jazzband/django-debug-toolbar.svg?branch=master + :target: https://travis-ci.org/jazzband/django-debug-toolbar + :alt: Build Status + +.. image:: https://codecov.io/gh/jazzband/django-debug-toolbar/branch/master/graph/badge.svg + :target: https://codecov.io/gh/jazzband/django-debug-toolbar + :alt: Test coverage status + +.. image:: https://requires.io/github/jazzband/django-debug-toolbar/requirements.svg?branch=master + :target: https://requires.io/github/jazzband/django-debug-toolbar/requirements/?branch=master + :alt: Requirements Status + +The Django Debug Toolbar is a configurable set of panels that display various +debug information about the current request/response and when clicked, display +more details about the panel's content. + +Here's a screenshot of the toolbar in action: + +.. image:: https://raw.github.com/jazzband/django-debug-toolbar/master/example/django-debug-toolbar.png + :width: 908 + :height: 557 + +In addition to the built-in panels, a number of third-party panels are +contributed by the community. + +The current version of the Debug Toolbar is 1.10.1. It works on Django ≥ 1.11. + +Documentation, including installation and configuration instructions, is +available at https://django-debug-toolbar.readthedocs.io/. + +The Django Debug Toolbar is released under the BSD license, like Django +itself. If you like it, please consider contributing! + +The Django Debug Toolbar was originally created by Rob Hudson +in August 2008 and was further developed by many contributors_. + +.. _contributors: https://github.com/jazzband/django-debug-toolbar/graphs/contributors + + diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/RECORD b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/RECORD new file mode 100644 index 0000000..1345c07 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/RECORD @@ -0,0 +1,149 @@ +debug_toolbar/__init__.py,sha256=vOnYLMe6e3yu4SGUh1ZVUzidbNQ4UK751-DIpUSp1Hc,413 +debug_toolbar/apps.py,sha256=8TgxUBWYoiM0P0eO577SWFHZkZ6m4lgYUmhpLcS09fw,2834 +debug_toolbar/compat.py,sha256=odqmpXDVdnw1ax81L51Eg0LR0EAgS8wBEOIbvlyb8xw,327 +debug_toolbar/decorators.py,sha256=mWaoIMQnz9baDPCyn2EQzgsWU9OQ4l-bFxU09IaPK2s,385 +debug_toolbar/middleware.py,sha256=cUikyJGJ3D6FcgYT0Llbg7djZQkyjs5EEY60693ycEU,5671 +debug_toolbar/settings.py,sha256=F3GqKX9ywfDErGb9tHUrBR-m9vqRHITNGTawZg1v69M,6352 +debug_toolbar/toolbar.py,sha256=DIoBE-Q3w-cN4jMNeomiZ0lN-HCFgsKnsKz8l8KBiDU,4296 +debug_toolbar/utils.py,sha256=9LvKnygCZ6zf-FMMy604ebs88dRPN7bYlX3wlHej1O8,8800 +debug_toolbar/views.py,sha256=iuG3wHpKppGNO4GpIF2rSTghWWAdBHawYHdPhV8GXj4,776 +debug_toolbar/locale/ca/LC_MESSAGES/django.mo,sha256=MbYqZllKjQJ6TuyHJA34_HnF9MPBMtXOK_KWxRsxk94,2916 +debug_toolbar/locale/ca/LC_MESSAGES/django.po,sha256=4ClqaoIoBrZyo4iASfQyUVhSfGULGRkk-dXQIaF8D60,14622 +debug_toolbar/locale/cs/LC_MESSAGES/django.mo,sha256=1z_v135xnAb3497lmvfo3YRk_J0NUF1isWsldlpoZnA,9567 +debug_toolbar/locale/cs/LC_MESSAGES/django.po,sha256=4mSEcrbTFxA6LFUuTmsRUIDfa3DKqEEefiPoUWN7qWc,17591 +debug_toolbar/locale/de/LC_MESSAGES/django.mo,sha256=tSvdkQEptM_vU4FJwt0Sp2GSTNg5_48ygm9TPcwA9Pw,8899 +debug_toolbar/locale/de/LC_MESSAGES/django.po,sha256=_-aftrOtsE_WHDGtw5kyWCXHszhiXB1cgGAJ9cwFp_c,16841 +debug_toolbar/locale/en/LC_MESSAGES/django.mo,sha256=8XRRw8vhQCeq_nU_n6B4vm5BK2HC0utZykBsJKQ3FE0,382 +debug_toolbar/locale/en/LC_MESSAGES/django.po,sha256=gytnFbk2alYnO7MXgZpjP7nBr_EhwMOJt_tIqmzWKNg,14390 +debug_toolbar/locale/es/LC_MESSAGES/django.mo,sha256=AOBL5y8dqnVapAkMViw0w9DoFqXr1Rwz3FTjR8DVWkg,9294 +debug_toolbar/locale/es/LC_MESSAGES/django.po,sha256=F-xuoFAzy6jgV3nDoWM5PeULk-0oXAP59Z84iLVhWWw,17333 +debug_toolbar/locale/fi/LC_MESSAGES/django.mo,sha256=nEcWY3L7WmSSMKanRJzK9mkAUPxmx04yQh-BiWV4uMc,4700 +debug_toolbar/locale/fi/LC_MESSAGES/django.po,sha256=3P44Ecn4rZOJwB80dkSJx7UncOJ4x-pEUc4W0Mro0Rk,15322 +debug_toolbar/locale/fr/LC_MESSAGES/django.mo,sha256=pIYPNsBf8QGwrn4slRTEy-xghYshPGeLfr7_XWBcyi8,8951 +debug_toolbar/locale/fr/LC_MESSAGES/django.po,sha256=OuXFlWSFqRwsKBJPnu6dmHpY6m-AYPNOCm87-dPGhF4,17164 +debug_toolbar/locale/he/LC_MESSAGES/django.mo,sha256=nRp4D3JE6y85l2Kh15iBQFxpOcCNtlgvCBBTRZPPjdA,1603 +debug_toolbar/locale/he/LC_MESSAGES/django.po,sha256=-eGHFV54TkNCiu7_2fgqCN7Sk8pWDsGuhdwSUAl1KMk,14360 +debug_toolbar/locale/id/LC_MESSAGES/django.mo,sha256=bB4Y-o7Prd2x7bddxkLRH0efWmfe9GDsaC6y8c-4xRk,2989 +debug_toolbar/locale/id/LC_MESSAGES/django.po,sha256=gydZQDWHRsfSHw5J5haUk9FVl_LfRffoIwHglABWeo8,14490 +debug_toolbar/locale/it/LC_MESSAGES/django.mo,sha256=xxlFU2m50969IiWW-lDlYQOYEshveRhDZqVkoMaMoXk,8772 +debug_toolbar/locale/it/LC_MESSAGES/django.po,sha256=TflPIxm0rKNaB_TVw-_oB0stONdt63jkhksbPrNAxbo,16878 +debug_toolbar/locale/nl/LC_MESSAGES/django.mo,sha256=4XJM1C5cTz6lr2l5vLZHxYQV0tdDVcv5G4t-Jk5RSyk,4315 +debug_toolbar/locale/nl/LC_MESSAGES/django.po,sha256=DJeRie6qGY6pNHwNId3ozghjJphecOfknNH6EZgzt6U,15145 +debug_toolbar/locale/pl/LC_MESSAGES/django.mo,sha256=zhWQhhfzsA-gmMLfUGJ71EQnY4DoRWoyhXLB_DlCi5I,4851 +debug_toolbar/locale/pl/LC_MESSAGES/django.po,sha256=LltUQLmapOO8Y0pOypiXpI-WzHzXcksXM0RliV9x9BA,15795 +debug_toolbar/locale/pt/LC_MESSAGES/django.mo,sha256=xX3BgNJX8Mm-Sp0Auw09da514GJYGllA68wTCb6C0fw,3071 +debug_toolbar/locale/pt/LC_MESSAGES/django.po,sha256=OSZFpE2yTWaSfbaBfwkpjhMyDCyLWZ43FoHk8S7G6CM,14823 +debug_toolbar/locale/pt_BR/LC_MESSAGES/django.mo,sha256=CQoXOMZr1kiwDo_rhvtzpPCxwMfqyLiXhXre654zfCQ,9059 +debug_toolbar/locale/pt_BR/LC_MESSAGES/django.po,sha256=ULCeruQV5sQdjAvqUNkUhY1n3YXrQSCNGDFpB7JQMr0,17061 +debug_toolbar/locale/ru/LC_MESSAGES/django.mo,sha256=N-A7wVU3iwbXdHBb_Hjrn-JZ2v_tVjDUTLEa0_je8vE,11667 +debug_toolbar/locale/ru/LC_MESSAGES/django.po,sha256=KHSruIOA4UeLjsu2Swvomo27pnQcIxDD_PRTaaNdAIg,19821 +debug_toolbar/locale/sk/LC_MESSAGES/django.mo,sha256=8ndFb3gV91CAgZBCn2zExjoDtaxjhGfTGRs-YxfFF7I,9378 +debug_toolbar/locale/sk/LC_MESSAGES/django.po,sha256=GqVBBcuuwd8QvLoDtAY4Qir48R5_tFmolEwUyKG5WxQ,17597 +debug_toolbar/locale/sv_SE/LC_MESSAGES/django.mo,sha256=nlmocwI2oLIQQNHwqPlumGodWx-rNoAY94ol61BJm-c,2403 +debug_toolbar/locale/sv_SE/LC_MESSAGES/django.po,sha256=uF7-IX940ykN-mnwnOCeFelSs9UiJWirmV83ggci1NI,14569 +debug_toolbar/locale/uk/LC_MESSAGES/django.mo,sha256=O8CfZhZpW0Nt2Nbt58rJ3rQGNYcB4B-qJMIKzPD2E7U,2042 +debug_toolbar/locale/uk/LC_MESSAGES/django.po,sha256=L85wWklh8Dxls6VWp6vc0ft_Wegyr7UpNofgX-SUMSQ,14833 +debug_toolbar/locale/zh_CN/LC_MESSAGES/django.mo,sha256=CnS2DhVLrGnwZHRaaEu4IJEXw6nOFeOqPZ2CzqZMv48,8579 +debug_toolbar/locale/zh_CN/LC_MESSAGES/django.po,sha256=AiemiO2Fpap6bzfgoUmUnWmgKRvyUwXG_o0Fs3p9aoQ,16284 +debug_toolbar/management/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +debug_toolbar/management/commands/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +debug_toolbar/management/commands/debugsqlshell.py,sha256=BSMA69r7CrLdQSV1zim-DIYHDuv1S4vNhguZnwFaeJY,849 +debug_toolbar/panels/__init__.py,sha256=ztFfazDANHwaW2D3L5F6hRdKaBeKFh4ggWcxBZy6Abo,7248 +debug_toolbar/panels/cache.py,sha256=XB0DJOOg5YVgUywUKYhKEPnFmfAa7deF1qatMc_RyOQ,7295 +debug_toolbar/panels/headers.py,sha256=r8dcvujRGluYX807uCD-I3KzcL3tMn6Z8dKmWt0eA2w,1926 +debug_toolbar/panels/logging.py,sha256=C-1FEkwknvNZxqpjqeP7mVYHna8iGchO4HMTdeSudrs,2515 +debug_toolbar/panels/profiling.py,sha256=zTV_61BLUEOZakIgMbvKdhogEXyDM17k4TWdj8bxMH8,5913 +debug_toolbar/panels/redirects.py,sha256=TASckRVQCNnG8AzWwRu4OpZQHJOIco5eUZBJh6J1N5M,1082 +debug_toolbar/panels/request.py,sha256=qePFLOriiBLwbcGxQJgTO3YplBGHHjdDSCV7rqYphF4,1933 +debug_toolbar/panels/settings.py,sha256=nBTUsryTubumIm4TY63NP7kHKH9jeAObBIaCRdL2jEA,788 +debug_toolbar/panels/signals.py,sha256=gj4KYAxe5OfQzuJ7t27YHRSSVnKMOZaVl6KVAT14GQs,3500 +debug_toolbar/panels/staticfiles.py,sha256=2ejZZ3q8i9m6k9M7tHbaIKUho-Rat5bdfgJ6533LHgk,5647 +debug_toolbar/panels/timer.py,sha256=Q0QHtxg4VplkF3s4h4DLwQtIcqga2Wk_bbI-5ONrURs,3869 +debug_toolbar/panels/versions.py,sha256=-tKkqOHLGr4rOmwaYrGUZISTVHs8CBUp5RiN_CGuxsc,2030 +debug_toolbar/panels/sql/__init__.py,sha256=YB8iUa79xNqE5OjU2NyWJ6v1rz7vBnKzH--W00k3sJs,60 +debug_toolbar/panels/sql/forms.py,sha256=QLfijq-XJUlKsij4Y4dxWTwVDeaT8pDkr4gHMH_UBM4,2728 +debug_toolbar/panels/sql/panel.py,sha256=RiW2cVqY3dm79zPIucMPA6nyvqZ-QFdMOZ4RY_Z6uXA,10724 +debug_toolbar/panels/sql/tracking.py,sha256=gGO2gf9mTsXVok49ZhnIupm6XB4J5hPX1KmjEaobkhA,6287 +debug_toolbar/panels/sql/utils.py,sha256=hX6nHtGMmuq_O8MrORXvbEo9bs5j2G7u53HKJ0IyjjM,1971 +debug_toolbar/panels/sql/views.py,sha256=Ln3OkL68VcT87mOkRFRbQ7wOBDNR1h956Um1MgZ9gXY,4384 +debug_toolbar/panels/templates/__init__.py,sha256=QA2yOxdpt7ogE6LoE7ESBOh-tTKc2LrpEr2QsAIvhpA,72 +debug_toolbar/panels/templates/panel.py,sha256=oZXyYUKrZ7UcFrw5O7ZMGRxWymXTLww5uLdIkacK46Y,9759 +debug_toolbar/panels/templates/views.py,sha256=GjrPqqowKX3rhG3Qe5Lb7i3GLnyzFV4wO8Ma8lftkQ4,2309 +debug_toolbar/static/debug_toolbar/css/print.css,sha256=yZSlBDcX5q-8fpHLBpyieobBS44_xSvsTH9K3yelUgo,41 +debug_toolbar/static/debug_toolbar/css/toolbar.css,sha256=pY12eONObaY1TcofljaeDFOm3vqcRGLorEZ7bXZGCRc,19977 +debug_toolbar/static/debug_toolbar/img/ajax-loader.gif,sha256=_Ul7Plo9mlnhPfWA6TU99Afud-o-DbuELY9z7nqp4-I,404 +debug_toolbar/static/debug_toolbar/img/back.png,sha256=ImnZ7XTZuap_r1m1grte49sRHerH9yDYX_8OG4jhprs,574 +debug_toolbar/static/debug_toolbar/img/back_hover.png,sha256=4u-iZc6y83HLWPDs2uzeldPJnLDNkthUHwVoiec8OSA,613 +debug_toolbar/static/debug_toolbar/img/close.png,sha256=mvSZ3Vuf8_sygUM7sQCMelNe8OZM616PKUARq6Ni-pI,498 +debug_toolbar/static/debug_toolbar/img/close_hover.png,sha256=svSDYytDbF9FstMdE_tPqL5BFI_PexmUzKZ0DYMijFM,706 +debug_toolbar/static/debug_toolbar/img/djdt_vertical.png,sha256=PJI-cSFpnaUmuYk3JRUEPvG0JzfzO_IL0PiDjlAC294,882 +debug_toolbar/static/debug_toolbar/img/indicator.png,sha256=Q1foz86JZohEvPjLM-GceoXtbxW3R1ctZy0G4VfIjk4,436 +debug_toolbar/static/debug_toolbar/js/jquery_existing.js,sha256=__-qXhN-JBI6bdndtxGf1aYoEL9zoN8BvqPPhSGyQ_o,29 +debug_toolbar/static/debug_toolbar/js/jquery_post.js,sha256=OD_ZXskKkXpJlIPXxc1X1zSsgCxB9xEBhOElwy0G-zQ,118 +debug_toolbar/static/debug_toolbar/js/jquery_pre.js,sha256=8NDKhO20LLCPEnm4SVPkxtgU5TgTtOwL-05SoL4HKVY,136 +debug_toolbar/static/debug_toolbar/js/toolbar.js,sha256=pMGjjaKgXihC42z7riV3vWT3k2tbBxSLFaFIn3cRdzU,13188 +debug_toolbar/static/debug_toolbar/js/toolbar.profiling.js,sha256=BWH_iavVClpaXjb0K7cs9aNR9MC3U6Kd_SVQgehKcmc,58 +debug_toolbar/static/debug_toolbar/js/toolbar.sql.js,sha256=mi_BRdAZ96vEO7vieRq1zGo3V4wEs-1xUoZhava9AKA,121 +debug_toolbar/static/debug_toolbar/js/toolbar.template.js,sha256=VZGjfTVL2TaRsDWW4RIrQ2e-ZOANRyBPjnJNo4gRkOw,362 +debug_toolbar/static/debug_toolbar/js/toolbar.timer.js,sha256=-eyvZq73FBPwI9hlF4PPa7lpl6NrE4eAiaUDNgZb3bw,2754 +debug_toolbar/templates/debug_toolbar/base.html,sha256=f57MAm3Ol0TDe9JEHJm5pZbR_RQVxnTHe1PWVNOzgZE,2568 +debug_toolbar/templates/debug_toolbar/redirect.html,sha256=Wz3ptkRWC4HotYMspxg4e2VTHawynhdu8DWvWuM54QU,504 +debug_toolbar/templates/debug_toolbar/panels/cache.html,sha256=33i60wp8Oa7BquwvvlY_jGUgB7PKsr9ZTfeSnuPtMxE,1709 +debug_toolbar/templates/debug_toolbar/panels/headers.html,sha256=WY4tAf65RSmCgagbFy1R9yU2ULgHGML8IGZEA91Q8vM,1220 +debug_toolbar/templates/debug_toolbar/panels/logging.html,sha256=wj26RceqioC4eYfuUUo1AJyic03V6ZPSEsqm_OHgDrg,690 +debug_toolbar/templates/debug_toolbar/panels/profiling.html,sha256=zbqf-BDvnU_Y_16uykUbnMV-wGuPtZyMGPWJJgk0mCw,1253 +debug_toolbar/templates/debug_toolbar/panels/request.html,sha256=WcAJbrP_tYyigbt-pz8HOkVvq2-VitYzUPDXfLIuNRE,2594 +debug_toolbar/templates/debug_toolbar/panels/settings.html,sha256=WvntaxUnuZMkvBJP6iC96zqMje8fS86roeCo7gM0abQ,342 +debug_toolbar/templates/debug_toolbar/panels/signals.html,sha256=S9VrPJ8LQSoW_uQhWNGzHMV4UwCdb0rlZQofOJMlcqw,438 +debug_toolbar/templates/debug_toolbar/panels/sql.html,sha256=HZVriSsOtoplhGQtFqb6IRAt9EhkhaczgBL7s3VqKnM,5188 +debug_toolbar/templates/debug_toolbar/panels/sql_explain.html,sha256=G-OF1-aAGd9hOnAZ1qJYuV4APjNYAgYMt-fvHWwKUCE,889 +debug_toolbar/templates/debug_toolbar/panels/sql_profile.html,sha256=aRYEZztj-prMzE55x-9ybrhEIJiVI1EEJsHFE5hscmY,1041 +debug_toolbar/templates/debug_toolbar/panels/sql_select.html,sha256=7q8ZNChtKE1Esg6wrN6DutCaH-_A-zDGntUBxAtWEDc,966 +debug_toolbar/templates/debug_toolbar/panels/staticfiles.html,sha256=ENVJCYr5ro_hSm8uVMq6dsppY5fIQFE2l4WzUwp5hAQ,1784 +debug_toolbar/templates/debug_toolbar/panels/template_source.html,sha256=8Rf6MljU3rYK8zk1W0-B2vB0a7oZYF8gUHM795w-uQM,361 +debug_toolbar/templates/debug_toolbar/panels/templates.html,sha256=Xr44C4HT5ANhNvpVC_pVzKev2iiw-p4wRj8LQpyAL5c,1569 +debug_toolbar/templates/debug_toolbar/panels/timer.html,sha256=nz8x73bhCvY6Ar2DGBazDuxMEBcyEvqqSZ8UAKn9hHo,1121 +debug_toolbar/templates/debug_toolbar/panels/versions.html,sha256=SGLEaiGYhRLWEdjR1jZczHz_B7IDYOP8hcz0qlQJcvA,495 +debug_toolbar/templatetags/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0 +django_debug_toolbar-1.10.1.dist-info/DESCRIPTION.rst,sha256=wOIwc5aghj_gpkwMGt6IBEqPlDr6Ksr6VFbwkw-TDsI,1812 +django_debug_toolbar-1.10.1.dist-info/LICENSE.txt,sha256=POJDLyHOgE_zUE4FHPlUtp9iPRvML6keKW5gBp5ojJc,1542 +django_debug_toolbar-1.10.1.dist-info/METADATA,sha256=QFPJfrVXt6qyr-Eo8Rj1RX1jjpZ0139s6u8w6Bc0kiU,3168 +django_debug_toolbar-1.10.1.dist-info/RECORD,, +django_debug_toolbar-1.10.1.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110 +django_debug_toolbar-1.10.1.dist-info/metadata.json,sha256=1mD-xV_aNQWQdp5_oS9Elq0pSdsbeMvYdly_f9iRlxo,1457 +django_debug_toolbar-1.10.1.dist-info/top_level.txt,sha256=zTIu80Y2-czJ-UPk-SajY0EWSrmjiBYqOa_gxdDW4dU,14 +django_debug_toolbar-1.10.1.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +debug_toolbar/templatetags/__pycache__/__init__.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/logging.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/signals.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/request.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/headers.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/redirects.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/staticfiles.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/timer.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/settings.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/cache.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/profiling.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/__init__.cpython-36.pyc,, +debug_toolbar/panels/__pycache__/versions.cpython-36.pyc,, +debug_toolbar/panels/templates/__pycache__/panel.cpython-36.pyc,, +debug_toolbar/panels/templates/__pycache__/views.cpython-36.pyc,, +debug_toolbar/panels/templates/__pycache__/__init__.cpython-36.pyc,, +debug_toolbar/panels/sql/__pycache__/forms.cpython-36.pyc,, +debug_toolbar/panels/sql/__pycache__/panel.cpython-36.pyc,, +debug_toolbar/panels/sql/__pycache__/views.cpython-36.pyc,, +debug_toolbar/panels/sql/__pycache__/tracking.cpython-36.pyc,, +debug_toolbar/panels/sql/__pycache__/utils.cpython-36.pyc,, +debug_toolbar/panels/sql/__pycache__/__init__.cpython-36.pyc,, +debug_toolbar/management/__pycache__/__init__.cpython-36.pyc,, +debug_toolbar/management/commands/__pycache__/__init__.cpython-36.pyc,, +debug_toolbar/management/commands/__pycache__/debugsqlshell.cpython-36.pyc,, +debug_toolbar/__pycache__/views.cpython-36.pyc,, +debug_toolbar/__pycache__/compat.cpython-36.pyc,, +debug_toolbar/__pycache__/middleware.cpython-36.pyc,, +debug_toolbar/__pycache__/settings.cpython-36.pyc,, +debug_toolbar/__pycache__/apps.cpython-36.pyc,, +debug_toolbar/__pycache__/utils.cpython-36.pyc,, +debug_toolbar/__pycache__/__init__.cpython-36.pyc,, +debug_toolbar/__pycache__/decorators.cpython-36.pyc,, +debug_toolbar/__pycache__/toolbar.cpython-36.pyc,, diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/WHEEL b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/WHEEL new file mode 100644 index 0000000..8b6dd1b --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.29.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/metadata.json b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/metadata.json new file mode 100644 index 0000000..fe006a3 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/metadata.json @@ -0,0 +1 @@ +{"classifiers": ["Development Status :: 5 - Production/Stable", "Environment :: Web Environment", "Framework :: Django", "Framework :: Django :: 1.11", "Framework :: Django :: 2.0", "Framework :: Django :: 2.1", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7", "Topic :: Software Development :: Libraries :: Python Modules"], "download_url": "https://pypi.org/project/django-debug-toolbar/", "extensions": {"python.details": {"contacts": [{"email": "rob@cogit8.org", "name": "Rob Hudson", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst", "license": "LICENSE.txt"}, "project_urls": {"Home": "https://github.com/jazzband/django-debug-toolbar"}}}, "extras": [], "generator": "bdist_wheel (0.29.0)", "license": "BSD", "metadata_version": "2.0", "name": "django-debug-toolbar", "requires_python": ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*", "run_requires": [{"requires": ["Django (>=1.11)", "sqlparse (>=0.2.0)"]}], "summary": "A configurable set of panels that display various debug information about the current request/response.", "version": "1.10.1"} \ No newline at end of file diff --git a/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/top_level.txt b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/top_level.txt new file mode 100644 index 0000000..c988723 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/django_debug_toolbar-1.10.1.dist-info/top_level.txt @@ -0,0 +1 @@ +debug_toolbar diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/DESCRIPTION.rst b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/DESCRIPTION.rst new file mode 100644 index 0000000..ea55b42 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/DESCRIPTION.rst @@ -0,0 +1,50 @@ +``sqlparse`` is a non-validating SQL parser module. +It provides support for parsing, splitting and formatting SQL statements. + +Visit the `project page `_ for +additional information and documentation. + +**Example Usage** + + +Splitting SQL statements:: + + >>> import sqlparse + >>> sqlparse.split('select * from foo; select * from bar;') + [u'select * from foo; ', u'select * from bar;'] + + +Formatting statemtents:: + + >>> sql = 'select * from foo where id in (select id from bar);' + >>> print sqlparse.format(sql, reindent=True, keyword_case='upper') + SELECT * + FROM foo + WHERE id IN + (SELECT id + FROM bar); + + +Parsing:: + + >>> sql = 'select * from someschema.mytable where id = 1' + >>> res = sqlparse.parse(sql) + >>> res + (,) + >>> stmt = res[0] + >>> str(stmt) # converting it back to unicode + 'select * from someschema.mytable where id = 1' + >>> # This is how the internal representation looks like: + >>> stmt.tokens + (, + , + , + , + , + , + , + , + ) + + + diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/INSTALLER b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/INSTALLER new file mode 100644 index 0000000..a1b589e --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/INSTALLER @@ -0,0 +1 @@ +pip diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/METADATA b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/METADATA new file mode 100644 index 0000000..f0cc5ed --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/METADATA @@ -0,0 +1,74 @@ +Metadata-Version: 2.0 +Name: sqlparse +Version: 0.2.4 +Summary: Non-validating SQL parser +Home-page: https://github.com/andialbrecht/sqlparse +Author: Andi Albrecht +Author-email: albrecht.andi@gmail.com +License: BSD +Platform: UNKNOWN +Classifier: Development Status :: 4 - Beta +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: BSD License +Classifier: Operating System :: OS Independent +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Topic :: Database +Classifier: Topic :: Software Development + +``sqlparse`` is a non-validating SQL parser module. +It provides support for parsing, splitting and formatting SQL statements. + +Visit the `project page `_ for +additional information and documentation. + +**Example Usage** + + +Splitting SQL statements:: + + >>> import sqlparse + >>> sqlparse.split('select * from foo; select * from bar;') + [u'select * from foo; ', u'select * from bar;'] + + +Formatting statemtents:: + + >>> sql = 'select * from foo where id in (select id from bar);' + >>> print sqlparse.format(sql, reindent=True, keyword_case='upper') + SELECT * + FROM foo + WHERE id IN + (SELECT id + FROM bar); + + +Parsing:: + + >>> sql = 'select * from someschema.mytable where id = 1' + >>> res = sqlparse.parse(sql) + >>> res + (,) + >>> stmt = res[0] + >>> str(stmt) # converting it back to unicode + 'select * from someschema.mytable where id = 1' + >>> # This is how the internal representation looks like: + >>> stmt.tokens + (, + , + , + , + , + , + , + , + ) + + + diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/RECORD b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/RECORD new file mode 100644 index 0000000..9d7f606 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/RECORD @@ -0,0 +1,53 @@ +sqlparse/__init__.py,sha256=ajh6cAPxajZn_GSH0a0cUY0p1HIkRdWwcQJyJ48WfgU,2224 +sqlparse/__main__.py,sha256=25CKuFddBqNfRDXQOsJC5N6qQ1xkyBcPjDLMppoiNtc,609 +sqlparse/cli.py,sha256=J3gtHygxEve1njid58P2Ct4eV2IPyrdOtbfkaVStJ0c,5379 +sqlparse/compat.py,sha256=8fmZfN3hJDm_geql68_dAbboViSO-2YLD3gn6hXrPR8,1140 +sqlparse/exceptions.py,sha256=2H6Eq4GO7GqATEMGVKHJXA3mKDSHdI_keoSvy7XRK7U,341 +sqlparse/formatter.py,sha256=8uXJo-eROOSsjm2TQu0wVnseMRG6nAnhQHQYDZrFtII,6836 +sqlparse/keywords.py,sha256=8uDNSh-toWnQjql6TWOKhATXGwih8_La8O6irivgW8w,24861 +sqlparse/lexer.py,sha256=zqYb-aQhYvDsz0SfLL7An0XMRE9NsfA7srXSle4piV8,2506 +sqlparse/sql.py,sha256=ceQLDAx5bJt_C4B220AoqsZ0x1akhU9LCnJ9y1QM-hM,19492 +sqlparse/tokens.py,sha256=6dj7bgEXC17mHFly8umed1NreYc3qYqIc6WwqrkoznA,1657 +sqlparse/utils.py,sha256=x24_nvnVFAzUiobI-4zz4lbxop4dAQxfyj01f685nhM,3484 +sqlparse/engine/__init__.py,sha256=l4qPN6SZuGlQiKCKA02RgQiy8rGcyatS1cxuI5hPVKM,446 +sqlparse/engine/filter_stack.py,sha256=RFKtJum9yAz-3GYtneF_9SExfPmB0RTzfjlnptS6MVc,1200 +sqlparse/engine/grouping.py,sha256=h1Ci0fNl1GIN73VSkYeAIAcPmfnyzrHq3s9P3Jd_j_Q,11428 +sqlparse/engine/statement_splitter.py,sha256=9rVwIMyDi6pLV12beTgniYmPz0BoAytgKXB_oAGfawk,3648 +sqlparse/filters/__init__.py,sha256=210gDlKEXqkm0i5JKd0mnLxrgbI8tKcVlkw06MPE_cA,1241 +sqlparse/filters/aligned_indent.py,sha256=ieWiMSO0zev8QqsJDEKayDoQ5l3RArFCOaBVrWJ5gBQ,4932 +sqlparse/filters/others.py,sha256=p7C5g2qs9-YE2nfwDn0MwwAy32vWjmszLgL9mTsjOt8,4350 +sqlparse/filters/output.py,sha256=S9sakYxe1FNH0DiyMyLMSn3AFMm842m2n7sNUBp47LU,4051 +sqlparse/filters/reindent.py,sha256=2Mu7UeQnWy0zdcSGKQhK5tBpPfWTi3W_2K75sJuhOKQ,6985 +sqlparse/filters/right_margin.py,sha256=JvN9fEzlUC4gJmsqPNA86FV6aRZdd76zyyjXv8_RhJQ,1595 +sqlparse/filters/tokens.py,sha256=R0eqZ7MOVjEGA9dZEI6hFhkFzFAA66lcq3jpV6pUEj8,1612 +sqlparse-0.2.4.dist-info/DESCRIPTION.rst,sha256=hTPnv4Qw5GhiENkYNi295N1ZCCWqpcITVovuRplK27A,1353 +sqlparse-0.2.4.dist-info/METADATA,sha256=Fc5aieueSauuNTCdqCJ8DLdEHSBBm47KWM--R5Uo-zQ,2230 +sqlparse-0.2.4.dist-info/RECORD,, +sqlparse-0.2.4.dist-info/WHEEL,sha256=o2k-Qa-RMNIJmUdIc7KU6VWR_ErNRbWNlxDIpl7lm34,110 +sqlparse-0.2.4.dist-info/entry_points.txt,sha256=S2WxhPln7zXybKRE73ekBicXHh7_BX-KYGFZZaGGqp8,54 +sqlparse-0.2.4.dist-info/metadata.json,sha256=2J-H8kxvx2I3m4AHyiMWR2xFQ2t_IFQ3JTFxe572GZI,1112 +sqlparse-0.2.4.dist-info/top_level.txt,sha256=eRYisOR7d8EtLKXuWUUAAMOhODItOqrkpxkAGD8CISo,9 +../../../bin/sqlformat,sha256=aQnHcYophHuvuy0D2Lvp2E27qwIFTbSayuKstj7TJyE,248 +sqlparse-0.2.4.dist-info/INSTALLER,sha256=zuuue4knoyJ-UwPPXg8fezS7VCrXJQrAP7zeNuwvFQg,4 +sqlparse/filters/__pycache__/output.cpython-36.pyc,, +sqlparse/filters/__pycache__/aligned_indent.cpython-36.pyc,, +sqlparse/filters/__pycache__/tokens.cpython-36.pyc,, +sqlparse/filters/__pycache__/right_margin.cpython-36.pyc,, +sqlparse/filters/__pycache__/__init__.cpython-36.pyc,, +sqlparse/filters/__pycache__/reindent.cpython-36.pyc,, +sqlparse/filters/__pycache__/others.cpython-36.pyc,, +sqlparse/__pycache__/lexer.cpython-36.pyc,, +sqlparse/__pycache__/formatter.cpython-36.pyc,, +sqlparse/__pycache__/exceptions.cpython-36.pyc,, +sqlparse/__pycache__/cli.cpython-36.pyc,, +sqlparse/__pycache__/keywords.cpython-36.pyc,, +sqlparse/__pycache__/sql.cpython-36.pyc,, +sqlparse/__pycache__/tokens.cpython-36.pyc,, +sqlparse/__pycache__/__main__.cpython-36.pyc,, +sqlparse/__pycache__/compat.cpython-36.pyc,, +sqlparse/__pycache__/utils.cpython-36.pyc,, +sqlparse/__pycache__/__init__.cpython-36.pyc,, +sqlparse/engine/__pycache__/statement_splitter.cpython-36.pyc,, +sqlparse/engine/__pycache__/grouping.cpython-36.pyc,, +sqlparse/engine/__pycache__/filter_stack.cpython-36.pyc,, +sqlparse/engine/__pycache__/__init__.cpython-36.pyc,, diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/WHEEL b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/WHEEL new file mode 100644 index 0000000..8b6dd1b --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/WHEEL @@ -0,0 +1,6 @@ +Wheel-Version: 1.0 +Generator: bdist_wheel (0.29.0) +Root-Is-Purelib: true +Tag: py2-none-any +Tag: py3-none-any + diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/entry_points.txt b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/entry_points.txt new file mode 100644 index 0000000..09d1990 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/entry_points.txt @@ -0,0 +1,3 @@ +[console_scripts] +sqlformat = sqlparse.__main__:main + diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/metadata.json b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/metadata.json new file mode 100644 index 0000000..bac9797 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/metadata.json @@ -0,0 +1 @@ +{"classifiers": ["Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Database", "Topic :: Software Development"], "extensions": {"python.commands": {"wrap_console": {"sqlformat": "sqlparse.__main__:main"}}, "python.details": {"contacts": [{"email": "albrecht.andi@gmail.com", "name": "Andi Albrecht", "role": "author"}], "document_names": {"description": "DESCRIPTION.rst"}, "project_urls": {"Home": "https://github.com/andialbrecht/sqlparse"}}, "python.exports": {"console_scripts": {"sqlformat": "sqlparse.__main__:main"}}}, "generator": "bdist_wheel (0.29.0)", "license": "BSD", "metadata_version": "2.0", "name": "sqlparse", "summary": "Non-validating SQL parser", "version": "0.2.4"} \ No newline at end of file diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/top_level.txt b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/top_level.txt new file mode 100644 index 0000000..dbd4a47 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse-0.2.4.dist-info/top_level.txt @@ -0,0 +1 @@ +sqlparse diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/__init__.py b/thesisenv/lib/python3.6/site-packages/sqlparse/__init__.py new file mode 100644 index 0000000..237e303 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/__init__.py @@ -0,0 +1,71 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""Parse SQL statements.""" + +# Setup namespace +from sqlparse import sql +from sqlparse import cli +from sqlparse import engine +from sqlparse import tokens +from sqlparse import filters +from sqlparse import formatter + +from sqlparse.compat import text_type + +__version__ = '0.2.4' +__all__ = ['engine', 'filters', 'formatter', 'sql', 'tokens', 'cli'] + + +def parse(sql, encoding=None): + """Parse sql and return a list of statements. + + :param sql: A string containing one or more SQL statements. + :param encoding: The encoding of the statement (optional). + :returns: A tuple of :class:`~sqlparse.sql.Statement` instances. + """ + return tuple(parsestream(sql, encoding)) + + +def parsestream(stream, encoding=None): + """Parses sql statements from file-like object. + + :param stream: A file-like object. + :param encoding: The encoding of the stream contents (optional). + :returns: A generator of :class:`~sqlparse.sql.Statement` instances. + """ + stack = engine.FilterStack() + stack.enable_grouping() + return stack.run(stream, encoding) + + +def format(sql, encoding=None, **options): + """Format *sql* according to *options*. + + Available options are documented in :ref:`formatting`. + + In addition to the formatting options this function accepts the + keyword "encoding" which determines the encoding of the statement. + + :returns: The formatted SQL statement as string. + """ + stack = engine.FilterStack() + options = formatter.validate_options(options) + stack = formatter.build_filter_stack(stack, options) + stack.postprocess.append(filters.SerializerUnicode()) + return u''.join(stack.run(sql, encoding)) + + +def split(sql, encoding=None): + """Split *sql* into single statements. + + :param sql: A string containing one or more SQL statements. + :param encoding: The encoding of the statement (optional). + :returns: A list of strings. + """ + stack = engine.FilterStack() + return [text_type(stmt).strip() for stmt in stack.run(sql, encoding)] diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/__main__.py b/thesisenv/lib/python3.6/site-packages/sqlparse/__main__.py new file mode 100644 index 0000000..af612b3 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/__main__.py @@ -0,0 +1,22 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""Entrypoint module for `python -m sqlparse`. + +Why does this file exist, and why __main__? For more info, read: +- https://www.python.org/dev/peps/pep-0338/ +- https://docs.python.org/2/using/cmdline.html#cmdoption-m +- https://docs.python.org/3/using/cmdline.html#cmdoption-m +""" + +import sys + +from sqlparse.cli import main + +if __name__ == '__main__': + sys.exit(main()) diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/cli.py b/thesisenv/lib/python3.6/site-packages/sqlparse/cli.py new file mode 100644 index 0000000..ad6bc7a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/cli.py @@ -0,0 +1,184 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""Module that contains the command line app. + +Why does this file exist, and why not put this in __main__? + You might be tempted to import things from __main__ later, but that will + cause problems: the code will get executed twice: + - When you run `python -m sqlparse` python will execute + ``__main__.py`` as a script. That means there won't be any + ``sqlparse.__main__`` in ``sys.modules``. + - When you import __main__ it will get executed again (as a module) because + there's no ``sqlparse.__main__`` in ``sys.modules``. + Also see (1) from http://click.pocoo.org/5/setuptools/#setuptools-integration +""" + +import argparse +import sys +from io import TextIOWrapper +from codecs import open, getreader + +import sqlparse +from sqlparse.compat import PY2 +from sqlparse.exceptions import SQLParseError + + +# TODO: Add CLI Tests +# TODO: Simplify formatter by using argparse `type` arguments +def create_parser(): + _CASE_CHOICES = ['upper', 'lower', 'capitalize'] + + parser = argparse.ArgumentParser( + prog='sqlformat', + description='Format FILE according to OPTIONS. Use "-" as FILE ' + 'to read from stdin.', + usage='%(prog)s [OPTIONS] FILE, ...', + ) + + parser.add_argument('filename') + + parser.add_argument( + '-o', '--outfile', + dest='outfile', + metavar='FILE', + help='write output to FILE (defaults to stdout)') + + parser.add_argument( + '--version', + action='version', + version=sqlparse.__version__) + + group = parser.add_argument_group('Formatting Options') + + group.add_argument( + '-k', '--keywords', + metavar='CHOICE', + dest='keyword_case', + choices=_CASE_CHOICES, + help='change case of keywords, CHOICE is one of {0}'.format( + ', '.join('"{0}"'.format(x) for x in _CASE_CHOICES))) + + group.add_argument( + '-i', '--identifiers', + metavar='CHOICE', + dest='identifier_case', + choices=_CASE_CHOICES, + help='change case of identifiers, CHOICE is one of {0}'.format( + ', '.join('"{0}"'.format(x) for x in _CASE_CHOICES))) + + group.add_argument( + '-l', '--language', + metavar='LANG', + dest='output_format', + choices=['python', 'php'], + help='output a snippet in programming language LANG, ' + 'choices are "python", "php"') + + group.add_argument( + '--strip-comments', + dest='strip_comments', + action='store_true', + default=False, + help='remove comments') + + group.add_argument( + '-r', '--reindent', + dest='reindent', + action='store_true', + default=False, + help='reindent statements') + + group.add_argument( + '--indent_width', + dest='indent_width', + default=2, + type=int, + help='indentation width (defaults to 2 spaces)') + + group.add_argument( + '-a', '--reindent_aligned', + action='store_true', + default=False, + help='reindent statements to aligned format') + + group.add_argument( + '-s', '--use_space_around_operators', + action='store_true', + default=False, + help='place spaces around mathematical operators') + + group.add_argument( + '--wrap_after', + dest='wrap_after', + default=0, + type=int, + help='Column after which lists should be wrapped') + + group.add_argument( + '--comma_first', + dest='comma_first', + default=False, + type=bool, + help='Insert linebreak before comma (default False)') + + group.add_argument( + '--encoding', + dest='encoding', + default='utf-8', + help='Specify the input encoding (default utf-8)') + + return parser + + +def _error(msg): + """Print msg and optionally exit with return code exit_.""" + sys.stderr.write(u'[ERROR] {0}\n'.format(msg)) + return 1 + + +def main(args=None): + parser = create_parser() + args = parser.parse_args(args) + + if args.filename == '-': # read from stdin + if PY2: + data = getreader(args.encoding)(sys.stdin).read() + else: + data = TextIOWrapper( + sys.stdin.buffer, encoding=args.encoding).read() + else: + try: + with open(args.filename, 'r', args.encoding) as f: + data = ''.join(f.readlines()) + except IOError as e: + return _error( + u'Failed to read {0}: {1}'.format(args.filename, e)) + + close_stream = False + if args.outfile: + try: + stream = open(args.outfile, 'w', args.encoding) + close_stream = True + except IOError as e: + return _error(u'Failed to open {0}: {1}'.format(args.outfile, e)) + else: + stream = sys.stdout + + formatter_opts = vars(args) + try: + formatter_opts = sqlparse.formatter.validate_options(formatter_opts) + except SQLParseError as e: + return _error(u'Invalid options: {0}'.format(e)) + + s = sqlparse.format(data, **formatter_opts) + stream.write(s) + stream.flush() + if close_stream: + stream.close() + return 0 diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/compat.py b/thesisenv/lib/python3.6/site-packages/sqlparse/compat.py new file mode 100644 index 0000000..15bf0bf --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/compat.py @@ -0,0 +1,47 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""Python 2/3 compatibility. + +This module only exists to avoid a dependency on six +for very trivial stuff. We only need to take care of +string types, buffers and metaclasses. + +Parts of the code is copied directly from six: +https://bitbucket.org/gutworth/six +""" + +import sys +from io import TextIOBase + +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 + + +if PY3: + def unicode_compatible(cls): + return cls + + bytes_type = bytes + text_type = str + string_types = (str,) + from io import StringIO + file_types = (StringIO, TextIOBase) + + +elif PY2: + def unicode_compatible(cls): + cls.__unicode__ = cls.__str__ + cls.__str__ = lambda x: x.__unicode__().encode('utf-8') + return cls + + bytes_type = str + text_type = unicode + string_types = (str, unicode,) + from StringIO import StringIO + file_types = (file, StringIO, TextIOBase) + from StringIO import StringIO diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/engine/__init__.py b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/__init__.py new file mode 100644 index 0000000..af27dee --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/__init__.py @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse.engine import grouping +from sqlparse.engine.filter_stack import FilterStack +from sqlparse.engine.statement_splitter import StatementSplitter + +__all__ = [ + 'grouping', + 'FilterStack', + 'StatementSplitter', +] diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/engine/filter_stack.py b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/filter_stack.py new file mode 100644 index 0000000..02cd901 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/filter_stack.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""filter""" + +from sqlparse import lexer +from sqlparse.engine import grouping +from sqlparse.engine.statement_splitter import StatementSplitter + + +class FilterStack(object): + def __init__(self): + self.preprocess = [] + self.stmtprocess = [] + self.postprocess = [] + self._grouping = False + + def enable_grouping(self): + self._grouping = True + + def run(self, sql, encoding=None): + stream = lexer.tokenize(sql, encoding) + # Process token stream + for filter_ in self.preprocess: + stream = filter_.process(stream) + + stream = StatementSplitter().process(stream) + + # Output: Stream processed Statements + for stmt in stream: + if self._grouping: + stmt = grouping.group(stmt) + + for filter_ in self.stmtprocess: + filter_.process(stmt) + + for filter_ in self.postprocess: + stmt = filter_.process(stmt) + + yield stmt diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/engine/grouping.py b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/grouping.py new file mode 100644 index 0000000..fa87c9f --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/grouping.py @@ -0,0 +1,391 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse import sql +from sqlparse import tokens as T +from sqlparse.utils import recurse, imt + +T_NUMERICAL = (T.Number, T.Number.Integer, T.Number.Float) +T_STRING = (T.String, T.String.Single, T.String.Symbol) +T_NAME = (T.Name, T.Name.Placeholder) + + +def _group_matching(tlist, cls): + """Groups Tokens that have beginning and end.""" + opens = [] + tidx_offset = 0 + for idx, token in enumerate(list(tlist)): + tidx = idx - tidx_offset + + if token.is_whitespace: + # ~50% of tokens will be whitespace. Will checking early + # for them avoid 3 comparisons, but then add 1 more comparison + # for the other ~50% of tokens... + continue + + if token.is_group and not isinstance(token, cls): + # Check inside previously grouped (ie. parenthesis) if group + # of differnt type is inside (ie, case). though ideally should + # should check for all open/close tokens at once to avoid recursion + _group_matching(token, cls) + continue + + if token.match(*cls.M_OPEN): + opens.append(tidx) + + elif token.match(*cls.M_CLOSE): + try: + open_idx = opens.pop() + except IndexError: + # this indicates invalid sql and unbalanced tokens. + # instead of break, continue in case other "valid" groups exist + continue + close_idx = tidx + tlist.group_tokens(cls, open_idx, close_idx) + tidx_offset += close_idx - open_idx + + +def group_brackets(tlist): + _group_matching(tlist, sql.SquareBrackets) + + +def group_parenthesis(tlist): + _group_matching(tlist, sql.Parenthesis) + + +def group_case(tlist): + _group_matching(tlist, sql.Case) + + +def group_if(tlist): + _group_matching(tlist, sql.If) + + +def group_for(tlist): + _group_matching(tlist, sql.For) + + +def group_begin(tlist): + _group_matching(tlist, sql.Begin) + + +def group_typecasts(tlist): + def match(token): + return token.match(T.Punctuation, '::') + + def valid(token): + return token is not None + + def post(tlist, pidx, tidx, nidx): + return pidx, nidx + + valid_prev = valid_next = valid + _group(tlist, sql.Identifier, match, valid_prev, valid_next, post) + + +def group_period(tlist): + def match(token): + return token.match(T.Punctuation, '.') + + def valid_prev(token): + sqlcls = sql.SquareBrackets, sql.Identifier + ttypes = T.Name, T.String.Symbol + return imt(token, i=sqlcls, t=ttypes) + + def valid_next(token): + # issue261, allow invalid next token + return True + + def post(tlist, pidx, tidx, nidx): + # next_ validation is being performed here. issue261 + sqlcls = sql.SquareBrackets, sql.Function + ttypes = T.Name, T.String.Symbol, T.Wildcard + next_ = tlist[nidx] if nidx is not None else None + valid_next = imt(next_, i=sqlcls, t=ttypes) + + return (pidx, nidx) if valid_next else (pidx, tidx) + + _group(tlist, sql.Identifier, match, valid_prev, valid_next, post) + + +def group_as(tlist): + def match(token): + return token.is_keyword and token.normalized == 'AS' + + def valid_prev(token): + return token.normalized == 'NULL' or not token.is_keyword + + def valid_next(token): + ttypes = T.DML, T.DDL + return not imt(token, t=ttypes) and token is not None + + def post(tlist, pidx, tidx, nidx): + return pidx, nidx + + _group(tlist, sql.Identifier, match, valid_prev, valid_next, post) + + +def group_assignment(tlist): + def match(token): + return token.match(T.Assignment, ':=') + + def valid(token): + return token is not None and token.ttype not in (T.Keyword) + + def post(tlist, pidx, tidx, nidx): + m_semicolon = T.Punctuation, ';' + snidx, _ = tlist.token_next_by(m=m_semicolon, idx=nidx) + nidx = snidx or nidx + return pidx, nidx + + valid_prev = valid_next = valid + _group(tlist, sql.Assignment, match, valid_prev, valid_next, post) + + +def group_comparison(tlist): + sqlcls = (sql.Parenthesis, sql.Function, sql.Identifier, + sql.Operation) + ttypes = T_NUMERICAL + T_STRING + T_NAME + + def match(token): + return token.ttype == T.Operator.Comparison + + def valid(token): + if imt(token, t=ttypes, i=sqlcls): + return True + elif token and token.is_keyword and token.normalized == 'NULL': + return True + else: + return False + + def post(tlist, pidx, tidx, nidx): + return pidx, nidx + + valid_prev = valid_next = valid + _group(tlist, sql.Comparison, match, + valid_prev, valid_next, post, extend=False) + + +@recurse(sql.Identifier) +def group_identifier(tlist): + ttypes = (T.String.Symbol, T.Name) + + tidx, token = tlist.token_next_by(t=ttypes) + while token: + tlist.group_tokens(sql.Identifier, tidx, tidx) + tidx, token = tlist.token_next_by(t=ttypes, idx=tidx) + + +def group_arrays(tlist): + sqlcls = sql.SquareBrackets, sql.Identifier, sql.Function + ttypes = T.Name, T.String.Symbol + + def match(token): + return isinstance(token, sql.SquareBrackets) + + def valid_prev(token): + return imt(token, i=sqlcls, t=ttypes) + + def valid_next(token): + return True + + def post(tlist, pidx, tidx, nidx): + return pidx, tidx + + _group(tlist, sql.Identifier, match, + valid_prev, valid_next, post, extend=True, recurse=False) + + +def group_operator(tlist): + ttypes = T_NUMERICAL + T_STRING + T_NAME + sqlcls = (sql.SquareBrackets, sql.Parenthesis, sql.Function, + sql.Identifier, sql.Operation) + + def match(token): + return imt(token, t=(T.Operator, T.Wildcard)) + + def valid(token): + return imt(token, i=sqlcls, t=ttypes) + + def post(tlist, pidx, tidx, nidx): + tlist[tidx].ttype = T.Operator + return pidx, nidx + + valid_prev = valid_next = valid + _group(tlist, sql.Operation, match, + valid_prev, valid_next, post, extend=False) + + +def group_identifier_list(tlist): + m_role = T.Keyword, ('null', 'role') + sqlcls = (sql.Function, sql.Case, sql.Identifier, sql.Comparison, + sql.IdentifierList, sql.Operation) + ttypes = (T_NUMERICAL + T_STRING + T_NAME + + (T.Keyword, T.Comment, T.Wildcard)) + + def match(token): + return token.match(T.Punctuation, ',') + + def valid(token): + return imt(token, i=sqlcls, m=m_role, t=ttypes) + + def post(tlist, pidx, tidx, nidx): + return pidx, nidx + + valid_prev = valid_next = valid + _group(tlist, sql.IdentifierList, match, + valid_prev, valid_next, post, extend=True) + + +@recurse(sql.Comment) +def group_comments(tlist): + tidx, token = tlist.token_next_by(t=T.Comment) + while token: + eidx, end = tlist.token_not_matching( + lambda tk: imt(tk, t=T.Comment) or tk.is_whitespace, idx=tidx) + if end is not None: + eidx, end = tlist.token_prev(eidx, skip_ws=False) + tlist.group_tokens(sql.Comment, tidx, eidx) + + tidx, token = tlist.token_next_by(t=T.Comment, idx=tidx) + + +@recurse(sql.Where) +def group_where(tlist): + tidx, token = tlist.token_next_by(m=sql.Where.M_OPEN) + while token: + eidx, end = tlist.token_next_by(m=sql.Where.M_CLOSE, idx=tidx) + + if end is None: + end = tlist._groupable_tokens[-1] + else: + end = tlist.tokens[eidx - 1] + # TODO: convert this to eidx instead of end token. + # i think above values are len(tlist) and eidx-1 + eidx = tlist.token_index(end) + tlist.group_tokens(sql.Where, tidx, eidx) + tidx, token = tlist.token_next_by(m=sql.Where.M_OPEN, idx=tidx) + + +@recurse() +def group_aliased(tlist): + I_ALIAS = (sql.Parenthesis, sql.Function, sql.Case, sql.Identifier, + sql.Operation, sql.Comparison) + + tidx, token = tlist.token_next_by(i=I_ALIAS, t=T.Number) + while token: + nidx, next_ = tlist.token_next(tidx) + if isinstance(next_, sql.Identifier): + tlist.group_tokens(sql.Identifier, tidx, nidx, extend=True) + tidx, token = tlist.token_next_by(i=I_ALIAS, t=T.Number, idx=tidx) + + +@recurse(sql.Function) +def group_functions(tlist): + has_create = False + has_table = False + for tmp_token in tlist.tokens: + if tmp_token.value == 'CREATE': + has_create = True + if tmp_token.value == 'TABLE': + has_table = True + if has_create and has_table: + return + + tidx, token = tlist.token_next_by(t=T.Name) + while token: + nidx, next_ = tlist.token_next(tidx) + if isinstance(next_, sql.Parenthesis): + tlist.group_tokens(sql.Function, tidx, nidx) + tidx, token = tlist.token_next_by(t=T.Name, idx=tidx) + + +def group_order(tlist): + """Group together Identifier and Asc/Desc token""" + tidx, token = tlist.token_next_by(t=T.Keyword.Order) + while token: + pidx, prev_ = tlist.token_prev(tidx) + if imt(prev_, i=sql.Identifier, t=T.Number): + tlist.group_tokens(sql.Identifier, pidx, tidx) + tidx = pidx + tidx, token = tlist.token_next_by(t=T.Keyword.Order, idx=tidx) + + +@recurse() +def align_comments(tlist): + tidx, token = tlist.token_next_by(i=sql.Comment) + while token: + pidx, prev_ = tlist.token_prev(tidx) + if isinstance(prev_, sql.TokenList): + tlist.group_tokens(sql.TokenList, pidx, tidx, extend=True) + tidx = pidx + tidx, token = tlist.token_next_by(i=sql.Comment, idx=tidx) + + +def group(stmt): + for func in [ + group_comments, + + # _group_matching + group_brackets, + group_parenthesis, + group_case, + group_if, + group_for, + group_begin, + + group_functions, + group_where, + group_period, + group_arrays, + group_identifier, + group_order, + group_typecasts, + group_operator, + group_comparison, + group_as, + group_aliased, + group_assignment, + + align_comments, + group_identifier_list, + ]: + func(stmt) + return stmt + + +def _group(tlist, cls, match, + valid_prev=lambda t: True, + valid_next=lambda t: True, + post=None, + extend=True, + recurse=True + ): + """Groups together tokens that are joined by a middle token. ie. x < y""" + + tidx_offset = 0 + pidx, prev_ = None, None + for idx, token in enumerate(list(tlist)): + tidx = idx - tidx_offset + + if token.is_whitespace: + continue + + if recurse and token.is_group and not isinstance(token, cls): + _group(token, cls, match, valid_prev, valid_next, post, extend) + + if match(token): + nidx, next_ = tlist.token_next(tidx) + if prev_ and valid_prev(prev_) and valid_next(next_): + from_idx, to_idx = post(tlist, pidx, tidx, nidx) + grp = tlist.group_tokens(cls, from_idx, to_idx, extend=extend) + + tidx_offset += to_idx - from_idx + pidx, prev_ = from_idx, grp + continue + + pidx, prev_ = tidx, token diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/engine/statement_splitter.py b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/statement_splitter.py new file mode 100644 index 0000000..6c5b599 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/engine/statement_splitter.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse import sql, tokens as T + + +class StatementSplitter(object): + """Filter that split stream at individual statements""" + + def __init__(self): + self._reset() + + def _reset(self): + """Set the filter attributes to its default values""" + self._in_declare = False + self._is_create = False + self._begin_depth = 0 + + self.consume_ws = False + self.tokens = [] + self.level = 0 + + def _change_splitlevel(self, ttype, value): + """Get the new split level (increase, decrease or remain equal)""" + # ANSI + # if normal token return + # wouldn't parenthesis increase/decrease a level? + # no, inside a paranthesis can't start new statement + if ttype not in T.Keyword: + return 0 + + # Everything after here is ttype = T.Keyword + # Also to note, once entered an If statement you are done and basically + # returning + unified = value.upper() + + # three keywords begin with CREATE, but only one of them is DDL + # DDL Create though can contain more words such as "or replace" + if ttype is T.Keyword.DDL and unified.startswith('CREATE'): + self._is_create = True + return 0 + + # can have nested declare inside of being... + if unified == 'DECLARE' and self._is_create and self._begin_depth == 0: + self._in_declare = True + return 1 + + if unified == 'BEGIN': + self._begin_depth += 1 + if self._is_create: + # FIXME(andi): This makes no sense. + return 1 + return 0 + + # Should this respect a preceeding BEGIN? + # In CASE ... WHEN ... END this results in a split level -1. + # Would having multiple CASE WHEN END and a Assigment Operator + # cause the statement to cut off prematurely? + if unified == 'END': + self._begin_depth = max(0, self._begin_depth - 1) + return -1 + + if (unified in ('IF', 'FOR', 'WHILE') and + self._is_create and self._begin_depth > 0): + return 1 + + if unified in ('END IF', 'END FOR', 'END WHILE'): + return -1 + + # Default + return 0 + + def process(self, stream): + """Process the stream""" + EOS_TTYPE = T.Whitespace, T.Comment.Single + + # Run over all stream tokens + for ttype, value in stream: + # Yield token if we finished a statement and there's no whitespaces + # It will count newline token as a non whitespace. In this context + # whitespace ignores newlines. + # why don't multi line comments also count? + if self.consume_ws and ttype not in EOS_TTYPE: + yield sql.Statement(self.tokens) + + # Reset filter and prepare to process next statement + self._reset() + + # Change current split level (increase, decrease or remain equal) + self.level += self._change_splitlevel(ttype, value) + + # Append the token to the current statement + self.tokens.append(sql.Token(ttype, value)) + + # Check if we get the end of a statement + if self.level <= 0 and ttype is T.Punctuation and value == ';': + self.consume_ws = True + + # Yield pending statement (if any) + if self.tokens: + yield sql.Statement(self.tokens) diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/exceptions.py b/thesisenv/lib/python3.6/site-packages/sqlparse/exceptions.py new file mode 100644 index 0000000..87b5c00 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/exceptions.py @@ -0,0 +1,12 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""Exceptions used in this package.""" + + +class SQLParseError(Exception): + """Base class for exceptions in this module.""" diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/filters/__init__.py b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/__init__.py new file mode 100644 index 0000000..9eb301a --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/__init__.py @@ -0,0 +1,40 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse.filters.others import SerializerUnicode +from sqlparse.filters.others import StripCommentsFilter +from sqlparse.filters.others import StripWhitespaceFilter +from sqlparse.filters.others import SpacesAroundOperatorsFilter + +from sqlparse.filters.output import OutputPHPFilter +from sqlparse.filters.output import OutputPythonFilter + +from sqlparse.filters.tokens import KeywordCaseFilter +from sqlparse.filters.tokens import IdentifierCaseFilter +from sqlparse.filters.tokens import TruncateStringFilter + +from sqlparse.filters.reindent import ReindentFilter +from sqlparse.filters.right_margin import RightMarginFilter +from sqlparse.filters.aligned_indent import AlignedIndentFilter + +__all__ = [ + 'SerializerUnicode', + 'StripCommentsFilter', + 'StripWhitespaceFilter', + 'SpacesAroundOperatorsFilter', + + 'OutputPHPFilter', + 'OutputPythonFilter', + + 'KeywordCaseFilter', + 'IdentifierCaseFilter', + 'TruncateStringFilter', + + 'ReindentFilter', + 'RightMarginFilter', + 'AlignedIndentFilter', +] diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/filters/aligned_indent.py b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/aligned_indent.py new file mode 100644 index 0000000..c04d06d --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/aligned_indent.py @@ -0,0 +1,129 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse import sql, tokens as T +from sqlparse.compat import text_type +from sqlparse.utils import offset, indent + + +class AlignedIndentFilter(object): + join_words = (r'((LEFT\s+|RIGHT\s+|FULL\s+)?' + r'(INNER\s+|OUTER\s+|STRAIGHT\s+)?|' + r'(CROSS\s+|NATURAL\s+)?)?JOIN\b') + split_words = ('FROM', + join_words, 'ON', + 'WHERE', 'AND', 'OR', + 'GROUP', 'HAVING', 'LIMIT', + 'ORDER', 'UNION', 'VALUES', + 'SET', 'BETWEEN', 'EXCEPT') + + def __init__(self, char=' ', n='\n'): + self.n = n + self.offset = 0 + self.indent = 0 + self.char = char + self._max_kwd_len = len('select') + + def nl(self, offset=1): + # offset = 1 represent a single space after SELECT + offset = -len(offset) if not isinstance(offset, int) else offset + # add two for the space and parens + indent = self.indent * (2 + self._max_kwd_len) + + return sql.Token(T.Whitespace, self.n + self.char * ( + self._max_kwd_len + offset + indent + self.offset)) + + def _process_statement(self, tlist): + if tlist.tokens[0].is_whitespace and self.indent == 0: + tlist.tokens.pop(0) + + # process the main query body + self._process(sql.TokenList(tlist.tokens)) + + def _process_parenthesis(self, tlist): + # if this isn't a subquery, don't re-indent + _, token = tlist.token_next_by(m=(T.DML, 'SELECT')) + if token is not None: + with indent(self): + tlist.insert_after(tlist[0], self.nl('SELECT')) + # process the inside of the parantheses + self._process_default(tlist) + + # de-indent last parenthesis + tlist.insert_before(tlist[-1], self.nl()) + + def _process_identifierlist(self, tlist): + # columns being selected + identifiers = list(tlist.get_identifiers()) + identifiers.pop(0) + [tlist.insert_before(token, self.nl()) for token in identifiers] + self._process_default(tlist) + + def _process_case(self, tlist): + offset_ = len('case ') + len('when ') + cases = tlist.get_cases(skip_ws=True) + # align the end as well + end_token = tlist.token_next_by(m=(T.Keyword, 'END'))[1] + cases.append((None, [end_token])) + + condition_width = [len(' '.join(map(text_type, cond))) if cond else 0 + for cond, _ in cases] + max_cond_width = max(condition_width) + + for i, (cond, value) in enumerate(cases): + # cond is None when 'else or end' + stmt = cond[0] if cond else value[0] + + if i > 0: + tlist.insert_before(stmt, self.nl( + offset_ - len(text_type(stmt)))) + if cond: + ws = sql.Token(T.Whitespace, self.char * ( + max_cond_width - condition_width[i])) + tlist.insert_after(cond[-1], ws) + + def _next_token(self, tlist, idx=-1): + split_words = T.Keyword, self.split_words, True + tidx, token = tlist.token_next_by(m=split_words, idx=idx) + # treat "BETWEEN x and y" as a single statement + if token and token.normalized == 'BETWEEN': + tidx, token = self._next_token(tlist, tidx) + if token and token.normalized == 'AND': + tidx, token = self._next_token(tlist, tidx) + return tidx, token + + def _split_kwds(self, tlist): + tidx, token = self._next_token(tlist) + while token: + # joins are special case. only consider the first word as aligner + if token.match(T.Keyword, self.join_words, regex=True): + token_indent = token.value.split()[0] + else: + token_indent = text_type(token) + tlist.insert_before(token, self.nl(token_indent)) + tidx += 1 + tidx, token = self._next_token(tlist, tidx) + + def _process_default(self, tlist): + self._split_kwds(tlist) + # process any sub-sub statements + for sgroup in tlist.get_sublists(): + idx = tlist.token_index(sgroup) + pidx, prev_ = tlist.token_prev(idx) + # HACK: make "group/order by" work. Longer than max_len. + offset_ = 3 if (prev_ and prev_.match(T.Keyword, 'BY')) else 0 + with offset(self, offset_): + self._process(sgroup) + + def _process(self, tlist): + func_name = '_process_{cls}'.format(cls=type(tlist).__name__) + func = getattr(self, func_name.lower(), self._process_default) + func(tlist) + + def process(self, stmt): + self._process(stmt) + return stmt diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/filters/others.py b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/others.py new file mode 100644 index 0000000..3f0e537 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/others.py @@ -0,0 +1,117 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse import sql, tokens as T +from sqlparse.utils import split_unquoted_newlines + + +class StripCommentsFilter(object): + @staticmethod + def _process(tlist): + def get_next_comment(): + # TODO(andi) Comment types should be unified, see related issue38 + return tlist.token_next_by(i=sql.Comment, t=T.Comment) + + tidx, token = get_next_comment() + while token: + pidx, prev_ = tlist.token_prev(tidx, skip_ws=False) + nidx, next_ = tlist.token_next(tidx, skip_ws=False) + # Replace by whitespace if prev and next exist and if they're not + # whitespaces. This doesn't apply if prev or next is a paranthesis. + if (prev_ is None or next_ is None or + prev_.is_whitespace or prev_.match(T.Punctuation, '(') or + next_.is_whitespace or next_.match(T.Punctuation, ')')): + tlist.tokens.remove(token) + else: + tlist.tokens[tidx] = sql.Token(T.Whitespace, ' ') + + tidx, token = get_next_comment() + + def process(self, stmt): + [self.process(sgroup) for sgroup in stmt.get_sublists()] + StripCommentsFilter._process(stmt) + return stmt + + +class StripWhitespaceFilter(object): + def _stripws(self, tlist): + func_name = '_stripws_{cls}'.format(cls=type(tlist).__name__) + func = getattr(self, func_name.lower(), self._stripws_default) + func(tlist) + + @staticmethod + def _stripws_default(tlist): + last_was_ws = False + is_first_char = True + for token in tlist.tokens: + if token.is_whitespace: + token.value = '' if last_was_ws or is_first_char else ' ' + last_was_ws = token.is_whitespace + is_first_char = False + + def _stripws_identifierlist(self, tlist): + # Removes newlines before commas, see issue140 + last_nl = None + for token in list(tlist.tokens): + if last_nl and token.ttype is T.Punctuation and token.value == ',': + tlist.tokens.remove(last_nl) + last_nl = token if token.is_whitespace else None + + # next_ = tlist.token_next(token, skip_ws=False) + # if (next_ and not next_.is_whitespace and + # token.ttype is T.Punctuation and token.value == ','): + # tlist.insert_after(token, sql.Token(T.Whitespace, ' ')) + return self._stripws_default(tlist) + + def _stripws_parenthesis(self, tlist): + if tlist.tokens[1].is_whitespace: + tlist.tokens.pop(1) + if tlist.tokens[-2].is_whitespace: + tlist.tokens.pop(-2) + self._stripws_default(tlist) + + def process(self, stmt, depth=0): + [self.process(sgroup, depth + 1) for sgroup in stmt.get_sublists()] + self._stripws(stmt) + if depth == 0 and stmt.tokens and stmt.tokens[-1].is_whitespace: + stmt.tokens.pop(-1) + return stmt + + +class SpacesAroundOperatorsFilter(object): + @staticmethod + def _process(tlist): + + ttypes = (T.Operator, T.Comparison) + tidx, token = tlist.token_next_by(t=ttypes) + while token: + nidx, next_ = tlist.token_next(tidx, skip_ws=False) + if next_ and next_.ttype != T.Whitespace: + tlist.insert_after(tidx, sql.Token(T.Whitespace, ' ')) + + pidx, prev_ = tlist.token_prev(tidx, skip_ws=False) + if prev_ and prev_.ttype != T.Whitespace: + tlist.insert_before(tidx, sql.Token(T.Whitespace, ' ')) + tidx += 1 # has to shift since token inserted before it + + # assert tlist.token_index(token) == tidx + tidx, token = tlist.token_next_by(t=ttypes, idx=tidx) + + def process(self, stmt): + [self.process(sgroup) for sgroup in stmt.get_sublists()] + SpacesAroundOperatorsFilter._process(stmt) + return stmt + + +# --------------------------- +# postprocess + +class SerializerUnicode(object): + @staticmethod + def process(stmt): + lines = split_unquoted_newlines(stmt) + return '\n'.join(line.rstrip() for line in lines) diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/filters/output.py b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/output.py new file mode 100644 index 0000000..c3425df --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/output.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse import sql, tokens as T +from sqlparse.compat import text_type + + +class OutputFilter(object): + varname_prefix = '' + + def __init__(self, varname='sql'): + self.varname = self.varname_prefix + varname + self.count = 0 + + def _process(self, stream, varname, has_nl): + raise NotImplementedError + + def process(self, stmt): + self.count += 1 + if self.count > 1: + varname = u'{f.varname}{f.count}'.format(f=self) + else: + varname = self.varname + + has_nl = len(text_type(stmt).strip().splitlines()) > 1 + stmt.tokens = self._process(stmt.tokens, varname, has_nl) + return stmt + + +class OutputPythonFilter(OutputFilter): + def _process(self, stream, varname, has_nl): + # SQL query asignation to varname + if self.count > 1: + yield sql.Token(T.Whitespace, '\n') + yield sql.Token(T.Name, varname) + yield sql.Token(T.Whitespace, ' ') + yield sql.Token(T.Operator, '=') + yield sql.Token(T.Whitespace, ' ') + if has_nl: + yield sql.Token(T.Operator, '(') + yield sql.Token(T.Text, "'") + + # Print the tokens on the quote + for token in stream: + # Token is a new line separator + if token.is_whitespace and '\n' in token.value: + # Close quote and add a new line + yield sql.Token(T.Text, " '") + yield sql.Token(T.Whitespace, '\n') + + # Quote header on secondary lines + yield sql.Token(T.Whitespace, ' ' * (len(varname) + 4)) + yield sql.Token(T.Text, "'") + + # Indentation + after_lb = token.value.split('\n', 1)[1] + if after_lb: + yield sql.Token(T.Whitespace, after_lb) + continue + + # Token has escape chars + elif "'" in token.value: + token.value = token.value.replace("'", "\\'") + + # Put the token + yield sql.Token(T.Text, token.value) + + # Close quote + yield sql.Token(T.Text, "'") + if has_nl: + yield sql.Token(T.Operator, ')') + + +class OutputPHPFilter(OutputFilter): + varname_prefix = '$' + + def _process(self, stream, varname, has_nl): + # SQL query asignation to varname (quote header) + if self.count > 1: + yield sql.Token(T.Whitespace, '\n') + yield sql.Token(T.Name, varname) + yield sql.Token(T.Whitespace, ' ') + if has_nl: + yield sql.Token(T.Whitespace, ' ') + yield sql.Token(T.Operator, '=') + yield sql.Token(T.Whitespace, ' ') + yield sql.Token(T.Text, '"') + + # Print the tokens on the quote + for token in stream: + # Token is a new line separator + if token.is_whitespace and '\n' in token.value: + # Close quote and add a new line + yield sql.Token(T.Text, ' ";') + yield sql.Token(T.Whitespace, '\n') + + # Quote header on secondary lines + yield sql.Token(T.Name, varname) + yield sql.Token(T.Whitespace, ' ') + yield sql.Token(T.Operator, '.=') + yield sql.Token(T.Whitespace, ' ') + yield sql.Token(T.Text, '"') + + # Indentation + after_lb = token.value.split('\n', 1)[1] + if after_lb: + yield sql.Token(T.Whitespace, after_lb) + continue + + # Token has escape chars + elif '"' in token.value: + token.value = token.value.replace('"', '\\"') + + # Put the token + yield sql.Token(T.Text, token.value) + + # Close quote + yield sql.Token(T.Text, '"') + yield sql.Token(T.Punctuation, ';') diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/filters/reindent.py b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/reindent.py new file mode 100644 index 0000000..f077849 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/reindent.py @@ -0,0 +1,183 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse import sql, tokens as T +from sqlparse.compat import text_type +from sqlparse.utils import offset, indent + + +class ReindentFilter(object): + def __init__(self, width=2, char=' ', wrap_after=0, n='\n', + comma_first=False): + self.n = n + self.width = width + self.char = char + self.indent = 0 + self.offset = 0 + self.wrap_after = wrap_after + self.comma_first = comma_first + self._curr_stmt = None + self._last_stmt = None + + def _flatten_up_to_token(self, token): + """Yields all tokens up to token but excluding current.""" + if token.is_group: + token = next(token.flatten()) + + for t in self._curr_stmt.flatten(): + if t == token: + break + yield t + + @property + def leading_ws(self): + return self.offset + self.indent * self.width + + def _get_offset(self, token): + raw = u''.join(map(text_type, self._flatten_up_to_token(token))) + line = (raw or '\n').splitlines()[-1] + # Now take current offset into account and return relative offset. + return len(line) - len(self.char * self.leading_ws) + + def nl(self, offset=0): + return sql.Token( + T.Whitespace, + self.n + self.char * max(0, self.leading_ws + offset)) + + def _next_token(self, tlist, idx=-1): + split_words = ('FROM', 'STRAIGHT_JOIN$', 'JOIN$', 'AND', 'OR', + 'GROUP', 'ORDER', 'UNION', 'VALUES', + 'SET', 'BETWEEN', 'EXCEPT', 'HAVING', 'LIMIT') + m_split = T.Keyword, split_words, True + tidx, token = tlist.token_next_by(m=m_split, idx=idx) + + if token and token.normalized == 'BETWEEN': + tidx, token = self._next_token(tlist, tidx) + + if token and token.normalized == 'AND': + tidx, token = self._next_token(tlist, tidx) + + return tidx, token + + def _split_kwds(self, tlist): + tidx, token = self._next_token(tlist) + while token: + pidx, prev_ = tlist.token_prev(tidx, skip_ws=False) + uprev = text_type(prev_) + + if prev_ and prev_.is_whitespace: + del tlist.tokens[pidx] + tidx -= 1 + + if not (uprev.endswith('\n') or uprev.endswith('\r')): + tlist.insert_before(tidx, self.nl()) + tidx += 1 + + tidx, token = self._next_token(tlist, tidx) + + def _split_statements(self, tlist): + ttypes = T.Keyword.DML, T.Keyword.DDL + tidx, token = tlist.token_next_by(t=ttypes) + while token: + pidx, prev_ = tlist.token_prev(tidx, skip_ws=False) + if prev_ and prev_.is_whitespace: + del tlist.tokens[pidx] + tidx -= 1 + # only break if it's not the first token + if prev_: + tlist.insert_before(tidx, self.nl()) + tidx += 1 + tidx, token = tlist.token_next_by(t=ttypes, idx=tidx) + + def _process(self, tlist): + func_name = '_process_{cls}'.format(cls=type(tlist).__name__) + func = getattr(self, func_name.lower(), self._process_default) + func(tlist) + + def _process_where(self, tlist): + tidx, token = tlist.token_next_by(m=(T.Keyword, 'WHERE')) + # issue121, errors in statement fixed?? + tlist.insert_before(tidx, self.nl()) + + with indent(self): + self._process_default(tlist) + + def _process_parenthesis(self, tlist): + ttypes = T.Keyword.DML, T.Keyword.DDL + _, is_dml_dll = tlist.token_next_by(t=ttypes) + fidx, first = tlist.token_next_by(m=sql.Parenthesis.M_OPEN) + + with indent(self, 1 if is_dml_dll else 0): + tlist.tokens.insert(0, self.nl()) if is_dml_dll else None + with offset(self, self._get_offset(first) + 1): + self._process_default(tlist, not is_dml_dll) + + def _process_identifierlist(self, tlist): + identifiers = list(tlist.get_identifiers()) + first = next(identifiers.pop(0).flatten()) + num_offset = 1 if self.char == '\t' else self._get_offset(first) + if not tlist.within(sql.Function): + with offset(self, num_offset): + position = 0 + for token in identifiers: + # Add 1 for the "," separator + position += len(token.value) + 1 + if position > (self.wrap_after - self.offset): + adjust = 0 + if self.comma_first: + adjust = -2 + _, comma = tlist.token_prev( + tlist.token_index(token)) + if comma is None: + continue + token = comma + tlist.insert_before(token, self.nl(offset=adjust)) + if self.comma_first: + _, ws = tlist.token_next( + tlist.token_index(token), skip_ws=False) + if (ws is not None + and ws.ttype is not T.Text.Whitespace): + tlist.insert_after( + token, sql.Token(T.Whitespace, ' ')) + position = 0 + self._process_default(tlist) + + def _process_case(self, tlist): + iterable = iter(tlist.get_cases()) + cond, _ = next(iterable) + first = next(cond[0].flatten()) + + with offset(self, self._get_offset(tlist[0])): + with offset(self, self._get_offset(first)): + for cond, value in iterable: + token = value[0] if cond is None else cond[0] + tlist.insert_before(token, self.nl()) + + # Line breaks on group level are done. let's add an offset of + # len "when ", "then ", "else " + with offset(self, len("WHEN ")): + self._process_default(tlist) + end_idx, end = tlist.token_next_by(m=sql.Case.M_CLOSE) + if end_idx is not None: + tlist.insert_before(end_idx, self.nl()) + + def _process_default(self, tlist, stmts=True): + self._split_statements(tlist) if stmts else None + self._split_kwds(tlist) + for sgroup in tlist.get_sublists(): + self._process(sgroup) + + def process(self, stmt): + self._curr_stmt = stmt + self._process(stmt) + + if self._last_stmt is not None: + nl = '\n' if text_type(self._last_stmt).endswith('\n') else '\n\n' + stmt.tokens.insert(0, sql.Token(T.Whitespace, nl)) + + self._last_stmt = stmt + return stmt diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/filters/right_margin.py b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/right_margin.py new file mode 100644 index 0000000..c6608c9 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/right_margin.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +import re + +from sqlparse import sql, tokens as T +from sqlparse.compat import text_type + + +# FIXME: Doesn't work +class RightMarginFilter(object): + keep_together = ( + # sql.TypeCast, sql.Identifier, sql.Alias, + ) + + def __init__(self, width=79): + self.width = width + self.line = '' + + def _process(self, group, stream): + for token in stream: + if token.is_whitespace and '\n' in token.value: + if token.value.endswith('\n'): + self.line = '' + else: + self.line = token.value.splitlines()[-1] + elif token.is_group and type(token) not in self.keep_together: + token.tokens = self._process(token, token.tokens) + else: + val = text_type(token) + if len(self.line) + len(val) > self.width: + match = re.search(r'^ +', self.line) + if match is not None: + indent = match.group() + else: + indent = '' + yield sql.Token(T.Whitespace, '\n{0}'.format(indent)) + self.line = indent + self.line += val + yield token + + def process(self, group): + # return + # group.tokens = self._process(group, group.tokens) + raise NotImplementedError diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/filters/tokens.py b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/tokens.py new file mode 100644 index 0000000..a1d4b05 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/filters/tokens.py @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +from sqlparse import tokens as T +from sqlparse.compat import text_type + + +class _CaseFilter(object): + ttype = None + + def __init__(self, case=None): + case = case or 'upper' + self.convert = getattr(text_type, case) + + def process(self, stream): + for ttype, value in stream: + if ttype in self.ttype: + value = self.convert(value) + yield ttype, value + + +class KeywordCaseFilter(_CaseFilter): + ttype = T.Keyword + + +class IdentifierCaseFilter(_CaseFilter): + ttype = T.Name, T.String.Symbol + + def process(self, stream): + for ttype, value in stream: + if ttype in self.ttype and value.strip()[0] != '"': + value = self.convert(value) + yield ttype, value + + +class TruncateStringFilter(object): + def __init__(self, width, char): + self.width = width + self.char = char + + def process(self, stream): + for ttype, value in stream: + if ttype != T.Literal.String.Single: + yield ttype, value + continue + + if value[:2] == "''": + inner = value[2:-2] + quote = "''" + else: + inner = value[1:-1] + quote = "'" + + if len(inner) > self.width: + value = ''.join((quote, inner[:self.width], self.char, quote)) + yield ttype, value diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/formatter.py b/thesisenv/lib/python3.6/site-packages/sqlparse/formatter.py new file mode 100644 index 0000000..a58d5af --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/formatter.py @@ -0,0 +1,181 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""SQL formatter""" + +from sqlparse import filters +from sqlparse.exceptions import SQLParseError + + +def validate_options(options): + """Validates options.""" + kwcase = options.get('keyword_case') + if kwcase not in [None, 'upper', 'lower', 'capitalize']: + raise SQLParseError('Invalid value for keyword_case: ' + '{0!r}'.format(kwcase)) + + idcase = options.get('identifier_case') + if idcase not in [None, 'upper', 'lower', 'capitalize']: + raise SQLParseError('Invalid value for identifier_case: ' + '{0!r}'.format(idcase)) + + ofrmt = options.get('output_format') + if ofrmt not in [None, 'sql', 'python', 'php']: + raise SQLParseError('Unknown output format: ' + '{0!r}'.format(ofrmt)) + + strip_comments = options.get('strip_comments', False) + if strip_comments not in [True, False]: + raise SQLParseError('Invalid value for strip_comments: ' + '{0!r}'.format(strip_comments)) + + space_around_operators = options.get('use_space_around_operators', False) + if space_around_operators not in [True, False]: + raise SQLParseError('Invalid value for use_space_around_operators: ' + '{0!r}'.format(space_around_operators)) + + strip_ws = options.get('strip_whitespace', False) + if strip_ws not in [True, False]: + raise SQLParseError('Invalid value for strip_whitespace: ' + '{0!r}'.format(strip_ws)) + + truncate_strings = options.get('truncate_strings') + if truncate_strings is not None: + try: + truncate_strings = int(truncate_strings) + except (ValueError, TypeError): + raise SQLParseError('Invalid value for truncate_strings: ' + '{0!r}'.format(truncate_strings)) + if truncate_strings <= 1: + raise SQLParseError('Invalid value for truncate_strings: ' + '{0!r}'.format(truncate_strings)) + options['truncate_strings'] = truncate_strings + options['truncate_char'] = options.get('truncate_char', '[...]') + + reindent = options.get('reindent', False) + if reindent not in [True, False]: + raise SQLParseError('Invalid value for reindent: ' + '{0!r}'.format(reindent)) + elif reindent: + options['strip_whitespace'] = True + + reindent_aligned = options.get('reindent_aligned', False) + if reindent_aligned not in [True, False]: + raise SQLParseError('Invalid value for reindent_aligned: ' + '{0!r}'.format(reindent)) + elif reindent_aligned: + options['strip_whitespace'] = True + + indent_tabs = options.get('indent_tabs', False) + if indent_tabs not in [True, False]: + raise SQLParseError('Invalid value for indent_tabs: ' + '{0!r}'.format(indent_tabs)) + elif indent_tabs: + options['indent_char'] = '\t' + else: + options['indent_char'] = ' ' + + indent_width = options.get('indent_width', 2) + try: + indent_width = int(indent_width) + except (TypeError, ValueError): + raise SQLParseError('indent_width requires an integer') + if indent_width < 1: + raise SQLParseError('indent_width requires a positive integer') + options['indent_width'] = indent_width + + wrap_after = options.get('wrap_after', 0) + try: + wrap_after = int(wrap_after) + except (TypeError, ValueError): + raise SQLParseError('wrap_after requires an integer') + if wrap_after < 0: + raise SQLParseError('wrap_after requires a positive integer') + options['wrap_after'] = wrap_after + + comma_first = options.get('comma_first', False) + if comma_first not in [True, False]: + raise SQLParseError('comma_first requires a boolean value') + options['comma_first'] = comma_first + + right_margin = options.get('right_margin') + if right_margin is not None: + try: + right_margin = int(right_margin) + except (TypeError, ValueError): + raise SQLParseError('right_margin requires an integer') + if right_margin < 10: + raise SQLParseError('right_margin requires an integer > 10') + options['right_margin'] = right_margin + + return options + + +def build_filter_stack(stack, options): + """Setup and return a filter stack. + + Args: + stack: :class:`~sqlparse.filters.FilterStack` instance + options: Dictionary with options validated by validate_options. + """ + # Token filter + if options.get('keyword_case'): + stack.preprocess.append( + filters.KeywordCaseFilter(options['keyword_case'])) + + if options.get('identifier_case'): + stack.preprocess.append( + filters.IdentifierCaseFilter(options['identifier_case'])) + + if options.get('truncate_strings'): + stack.preprocess.append(filters.TruncateStringFilter( + width=options['truncate_strings'], char=options['truncate_char'])) + + if options.get('use_space_around_operators', False): + stack.enable_grouping() + stack.stmtprocess.append(filters.SpacesAroundOperatorsFilter()) + + # After grouping + if options.get('strip_comments'): + stack.enable_grouping() + stack.stmtprocess.append(filters.StripCommentsFilter()) + + if options.get('strip_whitespace') or options.get('reindent'): + stack.enable_grouping() + stack.stmtprocess.append(filters.StripWhitespaceFilter()) + + if options.get('reindent'): + stack.enable_grouping() + stack.stmtprocess.append( + filters.ReindentFilter(char=options['indent_char'], + width=options['indent_width'], + wrap_after=options['wrap_after'], + comma_first=options['comma_first'])) + + if options.get('reindent_aligned', False): + stack.enable_grouping() + stack.stmtprocess.append( + filters.AlignedIndentFilter(char=options['indent_char'])) + + if options.get('right_margin'): + stack.enable_grouping() + stack.stmtprocess.append( + filters.RightMarginFilter(width=options['right_margin'])) + + # Serializer + if options.get('output_format'): + frmt = options['output_format'] + if frmt.lower() == 'php': + fltr = filters.OutputPHPFilter() + elif frmt.lower() == 'python': + fltr = filters.OutputPythonFilter() + else: + fltr = None + if fltr is not None: + stack.postprocess.append(fltr) + + return stack diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/keywords.py b/thesisenv/lib/python3.6/site-packages/sqlparse/keywords.py new file mode 100644 index 0000000..a1242ab --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/keywords.py @@ -0,0 +1,817 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +import re + +from sqlparse import tokens + + +def is_keyword(value): + val = value.upper() + return (KEYWORDS_COMMON.get(val) or + KEYWORDS_ORACLE.get(val) or + KEYWORDS_PLPGSQL.get(val) or + KEYWORDS.get(val, tokens.Name)), value + + +SQL_REGEX = { + 'root': [ + (r'(--|# )\+.*?(\r\n|\r|\n|$)', tokens.Comment.Single.Hint), + (r'/\*\+[\s\S]*?\*/', tokens.Comment.Multiline.Hint), + + (r'(--|# ).*?(\r\n|\r|\n|$)', tokens.Comment.Single), + (r'/\*[\s\S]*?\*/', tokens.Comment.Multiline), + + (r'(\r\n|\r|\n)', tokens.Newline), + (r'\s+', tokens.Whitespace), + + (r':=', tokens.Assignment), + (r'::', tokens.Punctuation), + + (r'\*', tokens.Wildcard), + + (r"`(``|[^`])*`", tokens.Name), + (r"´(´´|[^´])*´", tokens.Name), + (r'(\$(?:[_A-ZÀ-Ü]\w*)?\$)[\s\S]*?\1', tokens.Literal), + + (r'\?', tokens.Name.Placeholder), + (r'%(\(\w+\))?s', tokens.Name.Placeholder), + (r'(?=~!]+', tokens.Operator.Comparison), + (r'[+/@#%^&|`?^-]+', tokens.Operator), + ]} + +FLAGS = re.IGNORECASE | re.UNICODE +SQL_REGEX = [(re.compile(rx, FLAGS).match, tt) for rx, tt in SQL_REGEX['root']] + +KEYWORDS = { + 'ABORT': tokens.Keyword, + 'ABS': tokens.Keyword, + 'ABSOLUTE': tokens.Keyword, + 'ACCESS': tokens.Keyword, + 'ADA': tokens.Keyword, + 'ADD': tokens.Keyword, + 'ADMIN': tokens.Keyword, + 'AFTER': tokens.Keyword, + 'AGGREGATE': tokens.Keyword, + 'ALIAS': tokens.Keyword, + 'ALL': tokens.Keyword, + 'ALLOCATE': tokens.Keyword, + 'ANALYSE': tokens.Keyword, + 'ANALYZE': tokens.Keyword, + 'ANY': tokens.Keyword, + 'ARRAYLEN': tokens.Keyword, + 'ARE': tokens.Keyword, + 'ASC': tokens.Keyword.Order, + 'ASENSITIVE': tokens.Keyword, + 'ASSERTION': tokens.Keyword, + 'ASSIGNMENT': tokens.Keyword, + 'ASYMMETRIC': tokens.Keyword, + 'AT': tokens.Keyword, + 'ATOMIC': tokens.Keyword, + 'AUDIT': tokens.Keyword, + 'AUTHORIZATION': tokens.Keyword, + 'AUTO_INCREMENT': tokens.Keyword, + 'AVG': tokens.Keyword, + + 'BACKWARD': tokens.Keyword, + 'BEFORE': tokens.Keyword, + 'BEGIN': tokens.Keyword, + 'BETWEEN': tokens.Keyword, + 'BITVAR': tokens.Keyword, + 'BIT_LENGTH': tokens.Keyword, + 'BOTH': tokens.Keyword, + 'BREADTH': tokens.Keyword, + + # 'C': tokens.Keyword, # most likely this is an alias + 'CACHE': tokens.Keyword, + 'CALL': tokens.Keyword, + 'CALLED': tokens.Keyword, + 'CARDINALITY': tokens.Keyword, + 'CASCADE': tokens.Keyword, + 'CASCADED': tokens.Keyword, + 'CAST': tokens.Keyword, + 'CATALOG': tokens.Keyword, + 'CATALOG_NAME': tokens.Keyword, + 'CHAIN': tokens.Keyword, + 'CHARACTERISTICS': tokens.Keyword, + 'CHARACTER_LENGTH': tokens.Keyword, + 'CHARACTER_SET_CATALOG': tokens.Keyword, + 'CHARACTER_SET_NAME': tokens.Keyword, + 'CHARACTER_SET_SCHEMA': tokens.Keyword, + 'CHAR_LENGTH': tokens.Keyword, + 'CHARSET': tokens.Keyword, + 'CHECK': tokens.Keyword, + 'CHECKED': tokens.Keyword, + 'CHECKPOINT': tokens.Keyword, + 'CLASS': tokens.Keyword, + 'CLASS_ORIGIN': tokens.Keyword, + 'CLOB': tokens.Keyword, + 'CLOSE': tokens.Keyword, + 'CLUSTER': tokens.Keyword, + 'COALESCE': tokens.Keyword, + 'COBOL': tokens.Keyword, + 'COLLATE': tokens.Keyword, + 'COLLATION': tokens.Keyword, + 'COLLATION_CATALOG': tokens.Keyword, + 'COLLATION_NAME': tokens.Keyword, + 'COLLATION_SCHEMA': tokens.Keyword, + 'COLLECT': tokens.Keyword, + 'COLUMN': tokens.Keyword, + 'COLUMN_NAME': tokens.Keyword, + 'COMPRESS': tokens.Keyword, + 'COMMAND_FUNCTION': tokens.Keyword, + 'COMMAND_FUNCTION_CODE': tokens.Keyword, + 'COMMENT': tokens.Keyword, + 'COMMIT': tokens.Keyword.DML, + 'COMMITTED': tokens.Keyword, + 'COMPLETION': tokens.Keyword, + 'CONCURRENTLY': tokens.Keyword, + 'CONDITION_NUMBER': tokens.Keyword, + 'CONNECT': tokens.Keyword, + 'CONNECTION': tokens.Keyword, + 'CONNECTION_NAME': tokens.Keyword, + 'CONSTRAINT': tokens.Keyword, + 'CONSTRAINTS': tokens.Keyword, + 'CONSTRAINT_CATALOG': tokens.Keyword, + 'CONSTRAINT_NAME': tokens.Keyword, + 'CONSTRAINT_SCHEMA': tokens.Keyword, + 'CONSTRUCTOR': tokens.Keyword, + 'CONTAINS': tokens.Keyword, + 'CONTINUE': tokens.Keyword, + 'CONVERSION': tokens.Keyword, + 'CONVERT': tokens.Keyword, + 'COPY': tokens.Keyword, + 'CORRESPONTING': tokens.Keyword, + 'COUNT': tokens.Keyword, + 'CREATEDB': tokens.Keyword, + 'CREATEUSER': tokens.Keyword, + 'CROSS': tokens.Keyword, + 'CUBE': tokens.Keyword, + 'CURRENT': tokens.Keyword, + 'CURRENT_DATE': tokens.Keyword, + 'CURRENT_PATH': tokens.Keyword, + 'CURRENT_ROLE': tokens.Keyword, + 'CURRENT_TIME': tokens.Keyword, + 'CURRENT_TIMESTAMP': tokens.Keyword, + 'CURRENT_USER': tokens.Keyword, + 'CURSOR': tokens.Keyword, + 'CURSOR_NAME': tokens.Keyword, + 'CYCLE': tokens.Keyword, + + 'DATA': tokens.Keyword, + 'DATABASE': tokens.Keyword, + 'DATETIME_INTERVAL_CODE': tokens.Keyword, + 'DATETIME_INTERVAL_PRECISION': tokens.Keyword, + 'DAY': tokens.Keyword, + 'DEALLOCATE': tokens.Keyword, + 'DECLARE': tokens.Keyword, + 'DEFAULT': tokens.Keyword, + 'DEFAULTS': tokens.Keyword, + 'DEFERRABLE': tokens.Keyword, + 'DEFERRED': tokens.Keyword, + 'DEFINED': tokens.Keyword, + 'DEFINER': tokens.Keyword, + 'DELIMITER': tokens.Keyword, + 'DELIMITERS': tokens.Keyword, + 'DEREF': tokens.Keyword, + 'DESC': tokens.Keyword.Order, + 'DESCRIBE': tokens.Keyword, + 'DESCRIPTOR': tokens.Keyword, + 'DESTROY': tokens.Keyword, + 'DESTRUCTOR': tokens.Keyword, + 'DETERMINISTIC': tokens.Keyword, + 'DIAGNOSTICS': tokens.Keyword, + 'DICTIONARY': tokens.Keyword, + 'DISABLE': tokens.Keyword, + 'DISCONNECT': tokens.Keyword, + 'DISPATCH': tokens.Keyword, + 'DO': tokens.Keyword, + 'DOMAIN': tokens.Keyword, + 'DYNAMIC': tokens.Keyword, + 'DYNAMIC_FUNCTION': tokens.Keyword, + 'DYNAMIC_FUNCTION_CODE': tokens.Keyword, + + 'EACH': tokens.Keyword, + 'ENABLE': tokens.Keyword, + 'ENCODING': tokens.Keyword, + 'ENCRYPTED': tokens.Keyword, + 'END-EXEC': tokens.Keyword, + 'ENGINE': tokens.Keyword, + 'EQUALS': tokens.Keyword, + 'ESCAPE': tokens.Keyword, + 'EVERY': tokens.Keyword, + 'EXCEPT': tokens.Keyword, + 'EXCEPTION': tokens.Keyword, + 'EXCLUDING': tokens.Keyword, + 'EXCLUSIVE': tokens.Keyword, + 'EXEC': tokens.Keyword, + 'EXECUTE': tokens.Keyword, + 'EXISTING': tokens.Keyword, + 'EXISTS': tokens.Keyword, + 'EXTERNAL': tokens.Keyword, + 'EXTRACT': tokens.Keyword, + + 'FALSE': tokens.Keyword, + 'FETCH': tokens.Keyword, + 'FILE': tokens.Keyword, + 'FINAL': tokens.Keyword, + 'FIRST': tokens.Keyword, + 'FORCE': tokens.Keyword, + 'FOREACH': tokens.Keyword, + 'FOREIGN': tokens.Keyword, + 'FORTRAN': tokens.Keyword, + 'FORWARD': tokens.Keyword, + 'FOUND': tokens.Keyword, + 'FREE': tokens.Keyword, + 'FREEZE': tokens.Keyword, + 'FULL': tokens.Keyword, + 'FUNCTION': tokens.Keyword, + + # 'G': tokens.Keyword, + 'GENERAL': tokens.Keyword, + 'GENERATED': tokens.Keyword, + 'GET': tokens.Keyword, + 'GLOBAL': tokens.Keyword, + 'GO': tokens.Keyword, + 'GOTO': tokens.Keyword, + 'GRANT': tokens.Keyword, + 'GRANTED': tokens.Keyword, + 'GROUPING': tokens.Keyword, + + 'HANDLER': tokens.Keyword, + 'HAVING': tokens.Keyword, + 'HIERARCHY': tokens.Keyword, + 'HOLD': tokens.Keyword, + 'HOST': tokens.Keyword, + + 'IDENTIFIED': tokens.Keyword, + 'IDENTITY': tokens.Keyword, + 'IGNORE': tokens.Keyword, + 'ILIKE': tokens.Keyword, + 'IMMEDIATE': tokens.Keyword, + 'IMMUTABLE': tokens.Keyword, + + 'IMPLEMENTATION': tokens.Keyword, + 'IMPLICIT': tokens.Keyword, + 'INCLUDING': tokens.Keyword, + 'INCREMENT': tokens.Keyword, + 'INDEX': tokens.Keyword, + + 'INDITCATOR': tokens.Keyword, + 'INFIX': tokens.Keyword, + 'INHERITS': tokens.Keyword, + 'INITIAL': tokens.Keyword, + 'INITIALIZE': tokens.Keyword, + 'INITIALLY': tokens.Keyword, + 'INOUT': tokens.Keyword, + 'INPUT': tokens.Keyword, + 'INSENSITIVE': tokens.Keyword, + 'INSTANTIABLE': tokens.Keyword, + 'INSTEAD': tokens.Keyword, + 'INTERSECT': tokens.Keyword, + 'INTO': tokens.Keyword, + 'INVOKER': tokens.Keyword, + 'IS': tokens.Keyword, + 'ISNULL': tokens.Keyword, + 'ISOLATION': tokens.Keyword, + 'ITERATE': tokens.Keyword, + + # 'K': tokens.Keyword, + 'KEY': tokens.Keyword, + 'KEY_MEMBER': tokens.Keyword, + 'KEY_TYPE': tokens.Keyword, + + 'LANCOMPILER': tokens.Keyword, + 'LANGUAGE': tokens.Keyword, + 'LARGE': tokens.Keyword, + 'LAST': tokens.Keyword, + 'LATERAL': tokens.Keyword, + 'LEADING': tokens.Keyword, + 'LENGTH': tokens.Keyword, + 'LESS': tokens.Keyword, + 'LEVEL': tokens.Keyword, + 'LIMIT': tokens.Keyword, + 'LISTEN': tokens.Keyword, + 'LOAD': tokens.Keyword, + 'LOCAL': tokens.Keyword, + 'LOCALTIME': tokens.Keyword, + 'LOCALTIMESTAMP': tokens.Keyword, + 'LOCATION': tokens.Keyword, + 'LOCATOR': tokens.Keyword, + 'LOCK': tokens.Keyword, + 'LOWER': tokens.Keyword, + + # 'M': tokens.Keyword, + 'MAP': tokens.Keyword, + 'MATCH': tokens.Keyword, + 'MAXEXTENTS': tokens.Keyword, + 'MAXVALUE': tokens.Keyword, + 'MESSAGE_LENGTH': tokens.Keyword, + 'MESSAGE_OCTET_LENGTH': tokens.Keyword, + 'MESSAGE_TEXT': tokens.Keyword, + 'METHOD': tokens.Keyword, + 'MINUTE': tokens.Keyword, + 'MINUS': tokens.Keyword, + 'MINVALUE': tokens.Keyword, + 'MOD': tokens.Keyword, + 'MODE': tokens.Keyword, + 'MODIFIES': tokens.Keyword, + 'MODIFY': tokens.Keyword, + 'MONTH': tokens.Keyword, + 'MORE': tokens.Keyword, + 'MOVE': tokens.Keyword, + 'MUMPS': tokens.Keyword, + + 'NAMES': tokens.Keyword, + 'NATIONAL': tokens.Keyword, + 'NATURAL': tokens.Keyword, + 'NCHAR': tokens.Keyword, + 'NCLOB': tokens.Keyword, + 'NEW': tokens.Keyword, + 'NEXT': tokens.Keyword, + 'NO': tokens.Keyword, + 'NOAUDIT': tokens.Keyword, + 'NOCOMPRESS': tokens.Keyword, + 'NOCREATEDB': tokens.Keyword, + 'NOCREATEUSER': tokens.Keyword, + 'NONE': tokens.Keyword, + 'NOT': tokens.Keyword, + 'NOTFOUND': tokens.Keyword, + 'NOTHING': tokens.Keyword, + 'NOTIFY': tokens.Keyword, + 'NOTNULL': tokens.Keyword, + 'NOWAIT': tokens.Keyword, + 'NULL': tokens.Keyword, + 'NULLABLE': tokens.Keyword, + 'NULLIF': tokens.Keyword, + + 'OBJECT': tokens.Keyword, + 'OCTET_LENGTH': tokens.Keyword, + 'OF': tokens.Keyword, + 'OFF': tokens.Keyword, + 'OFFLINE': tokens.Keyword, + 'OFFSET': tokens.Keyword, + 'OIDS': tokens.Keyword, + 'OLD': tokens.Keyword, + 'ONLINE': tokens.Keyword, + 'ONLY': tokens.Keyword, + 'OPEN': tokens.Keyword, + 'OPERATION': tokens.Keyword, + 'OPERATOR': tokens.Keyword, + 'OPTION': tokens.Keyword, + 'OPTIONS': tokens.Keyword, + 'ORDINALITY': tokens.Keyword, + 'OUT': tokens.Keyword, + 'OUTPUT': tokens.Keyword, + 'OVERLAPS': tokens.Keyword, + 'OVERLAY': tokens.Keyword, + 'OVERRIDING': tokens.Keyword, + 'OWNER': tokens.Keyword, + + 'PAD': tokens.Keyword, + 'PARAMETER': tokens.Keyword, + 'PARAMETERS': tokens.Keyword, + 'PARAMETER_MODE': tokens.Keyword, + 'PARAMATER_NAME': tokens.Keyword, + 'PARAMATER_ORDINAL_POSITION': tokens.Keyword, + 'PARAMETER_SPECIFIC_CATALOG': tokens.Keyword, + 'PARAMETER_SPECIFIC_NAME': tokens.Keyword, + 'PARAMATER_SPECIFIC_SCHEMA': tokens.Keyword, + 'PARTIAL': tokens.Keyword, + 'PASCAL': tokens.Keyword, + 'PCTFREE': tokens.Keyword, + 'PENDANT': tokens.Keyword, + 'PLACING': tokens.Keyword, + 'PLI': tokens.Keyword, + 'POSITION': tokens.Keyword, + 'POSTFIX': tokens.Keyword, + 'PRECISION': tokens.Keyword, + 'PREFIX': tokens.Keyword, + 'PREORDER': tokens.Keyword, + 'PREPARE': tokens.Keyword, + 'PRESERVE': tokens.Keyword, + 'PRIMARY': tokens.Keyword, + 'PRIOR': tokens.Keyword, + 'PRIVILEGES': tokens.Keyword, + 'PROCEDURAL': tokens.Keyword, + 'PROCEDURE': tokens.Keyword, + 'PUBLIC': tokens.Keyword, + + 'RAISE': tokens.Keyword, + 'RAW': tokens.Keyword, + 'READ': tokens.Keyword, + 'READS': tokens.Keyword, + 'RECHECK': tokens.Keyword, + 'RECURSIVE': tokens.Keyword, + 'REF': tokens.Keyword, + 'REFERENCES': tokens.Keyword, + 'REFERENCING': tokens.Keyword, + 'REINDEX': tokens.Keyword, + 'RELATIVE': tokens.Keyword, + 'RENAME': tokens.Keyword, + 'REPEATABLE': tokens.Keyword, + 'RESET': tokens.Keyword, + 'RESOURCE': tokens.Keyword, + 'RESTART': tokens.Keyword, + 'RESTRICT': tokens.Keyword, + 'RESULT': tokens.Keyword, + 'RETURN': tokens.Keyword, + 'RETURNED_LENGTH': tokens.Keyword, + 'RETURNED_OCTET_LENGTH': tokens.Keyword, + 'RETURNED_SQLSTATE': tokens.Keyword, + 'RETURNING': tokens.Keyword, + 'RETURNS': tokens.Keyword, + 'REVOKE': tokens.Keyword, + 'RIGHT': tokens.Keyword, + 'ROLE': tokens.Keyword, + 'ROLLBACK': tokens.Keyword.DML, + 'ROLLUP': tokens.Keyword, + 'ROUTINE': tokens.Keyword, + 'ROUTINE_CATALOG': tokens.Keyword, + 'ROUTINE_NAME': tokens.Keyword, + 'ROUTINE_SCHEMA': tokens.Keyword, + 'ROW': tokens.Keyword, + 'ROWS': tokens.Keyword, + 'ROW_COUNT': tokens.Keyword, + 'RULE': tokens.Keyword, + + 'SAVE_POINT': tokens.Keyword, + 'SCALE': tokens.Keyword, + 'SCHEMA': tokens.Keyword, + 'SCHEMA_NAME': tokens.Keyword, + 'SCOPE': tokens.Keyword, + 'SCROLL': tokens.Keyword, + 'SEARCH': tokens.Keyword, + 'SECOND': tokens.Keyword, + 'SECURITY': tokens.Keyword, + 'SELF': tokens.Keyword, + 'SENSITIVE': tokens.Keyword, + 'SEQUENCE': tokens.Keyword, + 'SERIALIZABLE': tokens.Keyword, + 'SERVER_NAME': tokens.Keyword, + 'SESSION': tokens.Keyword, + 'SESSION_USER': tokens.Keyword, + 'SETOF': tokens.Keyword, + 'SETS': tokens.Keyword, + 'SHARE': tokens.Keyword, + 'SHOW': tokens.Keyword, + 'SIMILAR': tokens.Keyword, + 'SIMPLE': tokens.Keyword, + 'SIZE': tokens.Keyword, + 'SOME': tokens.Keyword, + 'SOURCE': tokens.Keyword, + 'SPACE': tokens.Keyword, + 'SPECIFIC': tokens.Keyword, + 'SPECIFICTYPE': tokens.Keyword, + 'SPECIFIC_NAME': tokens.Keyword, + 'SQL': tokens.Keyword, + 'SQLBUF': tokens.Keyword, + 'SQLCODE': tokens.Keyword, + 'SQLERROR': tokens.Keyword, + 'SQLEXCEPTION': tokens.Keyword, + 'SQLSTATE': tokens.Keyword, + 'SQLWARNING': tokens.Keyword, + 'STABLE': tokens.Keyword, + 'START': tokens.Keyword.DML, + # 'STATE': tokens.Keyword, + 'STATEMENT': tokens.Keyword, + 'STATIC': tokens.Keyword, + 'STATISTICS': tokens.Keyword, + 'STDIN': tokens.Keyword, + 'STDOUT': tokens.Keyword, + 'STORAGE': tokens.Keyword, + 'STRICT': tokens.Keyword, + 'STRUCTURE': tokens.Keyword, + 'STYPE': tokens.Keyword, + 'SUBCLASS_ORIGIN': tokens.Keyword, + 'SUBLIST': tokens.Keyword, + 'SUBSTRING': tokens.Keyword, + 'SUCCESSFUL': tokens.Keyword, + 'SUM': tokens.Keyword, + 'SYMMETRIC': tokens.Keyword, + 'SYNONYM': tokens.Keyword, + 'SYSID': tokens.Keyword, + 'SYSTEM': tokens.Keyword, + 'SYSTEM_USER': tokens.Keyword, + + 'TABLE': tokens.Keyword, + 'TABLE_NAME': tokens.Keyword, + 'TEMP': tokens.Keyword, + 'TEMPLATE': tokens.Keyword, + 'TEMPORARY': tokens.Keyword, + 'TERMINATE': tokens.Keyword, + 'THAN': tokens.Keyword, + 'TIMESTAMP': tokens.Keyword, + 'TIMEZONE_HOUR': tokens.Keyword, + 'TIMEZONE_MINUTE': tokens.Keyword, + 'TO': tokens.Keyword, + 'TOAST': tokens.Keyword, + 'TRAILING': tokens.Keyword, + 'TRANSATION': tokens.Keyword, + 'TRANSACTIONS_COMMITTED': tokens.Keyword, + 'TRANSACTIONS_ROLLED_BACK': tokens.Keyword, + 'TRANSATION_ACTIVE': tokens.Keyword, + 'TRANSFORM': tokens.Keyword, + 'TRANSFORMS': tokens.Keyword, + 'TRANSLATE': tokens.Keyword, + 'TRANSLATION': tokens.Keyword, + 'TREAT': tokens.Keyword, + 'TRIGGER': tokens.Keyword, + 'TRIGGER_CATALOG': tokens.Keyword, + 'TRIGGER_NAME': tokens.Keyword, + 'TRIGGER_SCHEMA': tokens.Keyword, + 'TRIM': tokens.Keyword, + 'TRUE': tokens.Keyword, + 'TRUNCATE': tokens.Keyword, + 'TRUSTED': tokens.Keyword, + 'TYPE': tokens.Keyword, + + 'UID': tokens.Keyword, + 'UNCOMMITTED': tokens.Keyword, + 'UNDER': tokens.Keyword, + 'UNENCRYPTED': tokens.Keyword, + 'UNION': tokens.Keyword, + 'UNIQUE': tokens.Keyword, + 'UNKNOWN': tokens.Keyword, + 'UNLISTEN': tokens.Keyword, + 'UNNAMED': tokens.Keyword, + 'UNNEST': tokens.Keyword, + 'UNTIL': tokens.Keyword, + 'UPPER': tokens.Keyword, + 'USAGE': tokens.Keyword, + 'USE': tokens.Keyword, + 'USER': tokens.Keyword, + 'USER_DEFINED_TYPE_CATALOG': tokens.Keyword, + 'USER_DEFINED_TYPE_NAME': tokens.Keyword, + 'USER_DEFINED_TYPE_SCHEMA': tokens.Keyword, + 'USING': tokens.Keyword, + + 'VACUUM': tokens.Keyword, + 'VALID': tokens.Keyword, + 'VALIDATE': tokens.Keyword, + 'VALIDATOR': tokens.Keyword, + 'VALUES': tokens.Keyword, + 'VARIABLE': tokens.Keyword, + 'VERBOSE': tokens.Keyword, + 'VERSION': tokens.Keyword, + 'VIEW': tokens.Keyword, + 'VOLATILE': tokens.Keyword, + + 'WHENEVER': tokens.Keyword, + 'WITH': tokens.Keyword.CTE, + 'WITHOUT': tokens.Keyword, + 'WORK': tokens.Keyword, + 'WRITE': tokens.Keyword, + + 'YEAR': tokens.Keyword, + + 'ZONE': tokens.Keyword, + + # Name.Builtin + 'ARRAY': tokens.Name.Builtin, + 'BIGINT': tokens.Name.Builtin, + 'BINARY': tokens.Name.Builtin, + 'BIT': tokens.Name.Builtin, + 'BLOB': tokens.Name.Builtin, + 'BOOLEAN': tokens.Name.Builtin, + 'CHAR': tokens.Name.Builtin, + 'CHARACTER': tokens.Name.Builtin, + 'DATE': tokens.Name.Builtin, + 'DEC': tokens.Name.Builtin, + 'DECIMAL': tokens.Name.Builtin, + 'FLOAT': tokens.Name.Builtin, + 'INT': tokens.Name.Builtin, + 'INT8': tokens.Name.Builtin, + 'INTEGER': tokens.Name.Builtin, + 'INTERVAL': tokens.Name.Builtin, + 'LONG': tokens.Name.Builtin, + 'NUMBER': tokens.Name.Builtin, + 'NUMERIC': tokens.Name.Builtin, + 'REAL': tokens.Name.Builtin, + 'ROWID': tokens.Name.Builtin, + 'ROWLABEL': tokens.Name.Builtin, + 'ROWNUM': tokens.Name.Builtin, + 'SERIAL': tokens.Name.Builtin, + 'SERIAL8': tokens.Name.Builtin, + 'SIGNED': tokens.Name.Builtin, + 'SMALLINT': tokens.Name.Builtin, + 'SYSDATE': tokens.Name, + 'TEXT': tokens.Name.Builtin, + 'TINYINT': tokens.Name.Builtin, + 'UNSIGNED': tokens.Name.Builtin, + 'VARCHAR': tokens.Name.Builtin, + 'VARCHAR2': tokens.Name.Builtin, + 'VARYING': tokens.Name.Builtin, +} + +KEYWORDS_COMMON = { + 'SELECT': tokens.Keyword.DML, + 'INSERT': tokens.Keyword.DML, + 'DELETE': tokens.Keyword.DML, + 'UPDATE': tokens.Keyword.DML, + 'REPLACE': tokens.Keyword.DML, + 'MERGE': tokens.Keyword.DML, + 'DROP': tokens.Keyword.DDL, + 'CREATE': tokens.Keyword.DDL, + 'ALTER': tokens.Keyword.DDL, + + 'WHERE': tokens.Keyword, + 'FROM': tokens.Keyword, + 'INNER': tokens.Keyword, + 'JOIN': tokens.Keyword, + 'STRAIGHT_JOIN': tokens.Keyword, + 'AND': tokens.Keyword, + 'OR': tokens.Keyword, + 'LIKE': tokens.Keyword, + 'ON': tokens.Keyword, + 'IN': tokens.Keyword, + 'SET': tokens.Keyword, + + 'BY': tokens.Keyword, + 'GROUP': tokens.Keyword, + 'ORDER': tokens.Keyword, + 'LEFT': tokens.Keyword, + 'OUTER': tokens.Keyword, + 'FULL': tokens.Keyword, + + 'IF': tokens.Keyword, + 'END': tokens.Keyword, + 'THEN': tokens.Keyword, + 'LOOP': tokens.Keyword, + 'AS': tokens.Keyword, + 'ELSE': tokens.Keyword, + 'FOR': tokens.Keyword, + 'WHILE': tokens.Keyword, + + 'CASE': tokens.Keyword, + 'WHEN': tokens.Keyword, + 'MIN': tokens.Keyword, + 'MAX': tokens.Keyword, + 'DISTINCT': tokens.Keyword, +} + +KEYWORDS_ORACLE = { + 'ARCHIVE': tokens.Keyword, + 'ARCHIVELOG': tokens.Keyword, + + 'BACKUP': tokens.Keyword, + 'BECOME': tokens.Keyword, + 'BLOCK': tokens.Keyword, + 'BODY': tokens.Keyword, + + 'CANCEL': tokens.Keyword, + 'CHANGE': tokens.Keyword, + 'COMPILE': tokens.Keyword, + 'CONTENTS': tokens.Keyword, + 'CONTROLFILE': tokens.Keyword, + + 'DATAFILE': tokens.Keyword, + 'DBA': tokens.Keyword, + 'DISMOUNT': tokens.Keyword, + 'DOUBLE': tokens.Keyword, + 'DUMP': tokens.Keyword, + + 'EVENTS': tokens.Keyword, + 'EXCEPTIONS': tokens.Keyword, + 'EXPLAIN': tokens.Keyword, + 'EXTENT': tokens.Keyword, + 'EXTERNALLY': tokens.Keyword, + + 'FLUSH': tokens.Keyword, + 'FREELIST': tokens.Keyword, + 'FREELISTS': tokens.Keyword, + + # groups seems too common as table name + # 'GROUPS': tokens.Keyword, + + 'INDICATOR': tokens.Keyword, + 'INITRANS': tokens.Keyword, + 'INSTANCE': tokens.Keyword, + + 'LAYER': tokens.Keyword, + 'LINK': tokens.Keyword, + 'LISTS': tokens.Keyword, + 'LOGFILE': tokens.Keyword, + + 'MANAGE': tokens.Keyword, + 'MANUAL': tokens.Keyword, + 'MAXDATAFILES': tokens.Keyword, + 'MAXINSTANCES': tokens.Keyword, + 'MAXLOGFILES': tokens.Keyword, + 'MAXLOGHISTORY': tokens.Keyword, + 'MAXLOGMEMBERS': tokens.Keyword, + 'MAXTRANS': tokens.Keyword, + 'MINEXTENTS': tokens.Keyword, + 'MODULE': tokens.Keyword, + 'MOUNT': tokens.Keyword, + + 'NOARCHIVELOG': tokens.Keyword, + 'NOCACHE': tokens.Keyword, + 'NOCYCLE': tokens.Keyword, + 'NOMAXVALUE': tokens.Keyword, + 'NOMINVALUE': tokens.Keyword, + 'NOORDER': tokens.Keyword, + 'NORESETLOGS': tokens.Keyword, + 'NORMAL': tokens.Keyword, + 'NOSORT': tokens.Keyword, + + 'OPTIMAL': tokens.Keyword, + 'OWN': tokens.Keyword, + + 'PACKAGE': tokens.Keyword, + 'PARALLEL': tokens.Keyword, + 'PCTINCREASE': tokens.Keyword, + 'PCTUSED': tokens.Keyword, + 'PLAN': tokens.Keyword, + 'PRIVATE': tokens.Keyword, + 'PROFILE': tokens.Keyword, + + 'QUOTA': tokens.Keyword, + + 'RECOVER': tokens.Keyword, + 'RESETLOGS': tokens.Keyword, + 'RESTRICTED': tokens.Keyword, + 'REUSE': tokens.Keyword, + 'ROLES': tokens.Keyword, + + 'SAVEPOINT': tokens.Keyword, + 'SCN': tokens.Keyword, + 'SECTION': tokens.Keyword, + 'SEGMENT': tokens.Keyword, + 'SHARED': tokens.Keyword, + 'SNAPSHOT': tokens.Keyword, + 'SORT': tokens.Keyword, + 'STATEMENT_ID': tokens.Keyword, + 'STOP': tokens.Keyword, + 'SWITCH': tokens.Keyword, + + 'TABLES': tokens.Keyword, + 'TABLESPACE': tokens.Keyword, + 'THREAD': tokens.Keyword, + 'TIME': tokens.Keyword, + 'TRACING': tokens.Keyword, + 'TRANSACTION': tokens.Keyword, + 'TRIGGERS': tokens.Keyword, + + 'UNLIMITED': tokens.Keyword, + 'UNLOCK': tokens.Keyword, +} + +# PostgreSQL Syntax +KEYWORDS_PLPGSQL = { + 'PARTITION': tokens.Keyword, + 'OVER': tokens.Keyword, + 'PERFORM': tokens.Keyword, + 'NOTICE': tokens.Keyword, + 'PLPGSQL': tokens.Keyword, + 'INHERIT': tokens.Keyword, + 'INDEXES': tokens.Keyword, + + 'FOR': tokens.Keyword, + 'IN': tokens.Keyword, + 'LOOP': tokens.Keyword, +} diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/lexer.py b/thesisenv/lib/python3.6/site-packages/sqlparse/lexer.py new file mode 100644 index 0000000..60e43da --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/lexer.py @@ -0,0 +1,81 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""SQL Lexer""" + +# This code is based on the SqlLexer in pygments. +# http://pygments.org/ +# It's separated from the rest of pygments to increase performance +# and to allow some customizations. + +from sqlparse import tokens +from sqlparse.keywords import SQL_REGEX +from sqlparse.compat import bytes_type, text_type, file_types +from sqlparse.utils import consume + + +class Lexer(object): + """Lexer + Empty class. Leaving for backwards-compatibility + """ + + @staticmethod + def get_tokens(text, encoding=None): + """ + Return an iterable of (tokentype, value) pairs generated from + `text`. If `unfiltered` is set to `True`, the filtering mechanism + is bypassed even if filters are defined. + + Also preprocess the text, i.e. expand tabs and strip it if + wanted and applies registered filters. + + Split ``text`` into (tokentype, text) pairs. + + ``stack`` is the inital stack (default: ``['root']``) + """ + if isinstance(text, file_types): + text = text.read() + + if isinstance(text, text_type): + pass + elif isinstance(text, bytes_type): + if encoding: + text = text.decode(encoding) + else: + try: + text = text.decode('utf-8') + except UnicodeDecodeError: + text = text.decode('unicode-escape') + else: + raise TypeError(u"Expected text or file-like object, got {!r}". + format(type(text))) + + iterable = enumerate(text) + for pos, char in iterable: + for rexmatch, action in SQL_REGEX: + m = rexmatch(text, pos) + + if not m: + continue + elif isinstance(action, tokens._TokenType): + yield action, m.group() + elif callable(action): + yield action(m.group()) + + consume(iterable, m.end() - pos - 1) + break + else: + yield tokens.Error, char + + +def tokenize(sql, encoding=None): + """Tokenize sql. + + Tokenize *sql* using the :class:`Lexer` and return a 2-tuple stream + of ``(token type, value)`` items. + """ + return Lexer().get_tokens(sql, encoding) diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/sql.py b/thesisenv/lib/python3.6/site-packages/sqlparse/sql.py new file mode 100644 index 0000000..f698782 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/sql.py @@ -0,0 +1,608 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +"""This module contains classes representing syntactical elements of SQL.""" +from __future__ import print_function + +import re + +from sqlparse import tokens as T +from sqlparse.compat import string_types, text_type, unicode_compatible +from sqlparse.utils import imt, remove_quotes + + +@unicode_compatible +class Token(object): + """Base class for all other classes in this module. + + It represents a single token and has two instance attributes: + ``value`` is the unchange value of the token and ``ttype`` is + the type of the token. + """ + + __slots__ = ('value', 'ttype', 'parent', 'normalized', 'is_keyword', + 'is_group', 'is_whitespace') + + def __init__(self, ttype, value): + value = text_type(value) + self.value = value + self.ttype = ttype + self.parent = None + self.is_group = False + self.is_keyword = ttype in T.Keyword + self.is_whitespace = self.ttype in T.Whitespace + self.normalized = value.upper() if self.is_keyword else value + + def __str__(self): + return self.value + + # Pending tokenlist __len__ bug fix + # def __len__(self): + # return len(self.value) + + def __repr__(self): + cls = self._get_repr_name() + value = self._get_repr_value() + + q = u'"' if value.startswith("'") and value.endswith("'") else u"'" + return u"<{cls} {q}{value}{q} at 0x{id:2X}>".format( + id=id(self), **locals()) + + def _get_repr_name(self): + return str(self.ttype).split('.')[-1] + + def _get_repr_value(self): + raw = text_type(self) + if len(raw) > 7: + raw = raw[:6] + '...' + return re.sub(r'\s+', ' ', raw) + + def flatten(self): + """Resolve subgroups.""" + yield self + + def match(self, ttype, values, regex=False): + """Checks whether the token matches the given arguments. + + *ttype* is a token type. If this token doesn't match the given token + type. + *values* is a list of possible values for this token. The values + are OR'ed together so if only one of the values matches ``True`` + is returned. Except for keyword tokens the comparison is + case-sensitive. For convenience it's ok to pass in a single string. + If *regex* is ``True`` (default is ``False``) the given values are + treated as regular expressions. + """ + type_matched = self.ttype is ttype + if not type_matched or values is None: + return type_matched + + if isinstance(values, string_types): + values = (values,) + + if regex: + # TODO: Add test for regex with is_keyboard = false + flag = re.IGNORECASE if self.is_keyword else 0 + values = (re.compile(v, flag) for v in values) + + for pattern in values: + if pattern.search(self.normalized): + return True + return False + + if self.is_keyword: + values = (v.upper() for v in values) + + return self.normalized in values + + def within(self, group_cls): + """Returns ``True`` if this token is within *group_cls*. + + Use this method for example to check if an identifier is within + a function: ``t.within(sql.Function)``. + """ + parent = self.parent + while parent: + if isinstance(parent, group_cls): + return True + parent = parent.parent + return False + + def is_child_of(self, other): + """Returns ``True`` if this token is a direct child of *other*.""" + return self.parent == other + + def has_ancestor(self, other): + """Returns ``True`` if *other* is in this tokens ancestry.""" + parent = self.parent + while parent: + if parent == other: + return True + parent = parent.parent + return False + + +@unicode_compatible +class TokenList(Token): + """A group of tokens. + + It has an additional instance attribute ``tokens`` which holds a + list of child-tokens. + """ + + __slots__ = 'tokens' + + def __init__(self, tokens=None): + self.tokens = tokens or [] + [setattr(token, 'parent', self) for token in tokens] + super(TokenList, self).__init__(None, text_type(self)) + self.is_group = True + + def __str__(self): + return u''.join(token.value for token in self.flatten()) + + # weird bug + # def __len__(self): + # return len(self.tokens) + + def __iter__(self): + return iter(self.tokens) + + def __getitem__(self, item): + return self.tokens[item] + + def _get_repr_name(self): + return type(self).__name__ + + def _pprint_tree(self, max_depth=None, depth=0, f=None): + """Pretty-print the object tree.""" + indent = u' | ' * depth + for idx, token in enumerate(self.tokens): + cls = token._get_repr_name() + value = token._get_repr_value() + + q = u'"' if value.startswith("'") and value.endswith("'") else u"'" + print(u"{indent}{idx:2d} {cls} {q}{value}{q}" + .format(**locals()), file=f) + + if token.is_group and (max_depth is None or depth < max_depth): + token._pprint_tree(max_depth, depth + 1, f) + + def get_token_at_offset(self, offset): + """Returns the token that is on position offset.""" + idx = 0 + for token in self.flatten(): + end = idx + len(token.value) + if idx <= offset < end: + return token + idx = end + + def flatten(self): + """Generator yielding ungrouped tokens. + + This method is recursively called for all child tokens. + """ + for token in self.tokens: + if token.is_group: + for item in token.flatten(): + yield item + else: + yield token + + def get_sublists(self): + for token in self.tokens: + if token.is_group: + yield token + + @property + def _groupable_tokens(self): + return self.tokens + + def _token_matching(self, funcs, start=0, end=None, reverse=False): + """next token that match functions""" + if start is None: + return None + + if not isinstance(funcs, (list, tuple)): + funcs = (funcs,) + + if reverse: + assert end is None + for idx in range(start - 2, -1, -1): + token = self.tokens[idx] + for func in funcs: + if func(token): + return idx, token + else: + for idx, token in enumerate(self.tokens[start:end], start=start): + for func in funcs: + if func(token): + return idx, token + return None, None + + def token_first(self, skip_ws=True, skip_cm=False): + """Returns the first child token. + + If *skip_ws* is ``True`` (the default), whitespace + tokens are ignored. + + if *skip_cm* is ``True`` (default: ``False``), comments are + ignored too. + """ + # this on is inconsistent, using Comment instead of T.Comment... + funcs = lambda tk: not ((skip_ws and tk.is_whitespace) or + (skip_cm and imt(tk, t=T.Comment, i=Comment))) + return self._token_matching(funcs)[1] + + def token_next_by(self, i=None, m=None, t=None, idx=-1, end=None): + funcs = lambda tk: imt(tk, i, m, t) + idx += 1 + return self._token_matching(funcs, idx, end) + + def token_not_matching(self, funcs, idx): + funcs = (funcs,) if not isinstance(funcs, (list, tuple)) else funcs + funcs = [lambda tk: not func(tk) for func in funcs] + return self._token_matching(funcs, idx) + + def token_matching(self, funcs, idx): + return self._token_matching(funcs, idx)[1] + + def token_prev(self, idx, skip_ws=True, skip_cm=False): + """Returns the previous token relative to *idx*. + + If *skip_ws* is ``True`` (the default) whitespace tokens are ignored. + If *skip_cm* is ``True`` comments are ignored. + ``None`` is returned if there's no previous token. + """ + return self.token_next(idx, skip_ws, skip_cm, _reverse=True) + + # TODO: May need to re-add default value to idx + def token_next(self, idx, skip_ws=True, skip_cm=False, _reverse=False): + """Returns the next token relative to *idx*. + + If *skip_ws* is ``True`` (the default) whitespace tokens are ignored. + If *skip_cm* is ``True`` comments are ignored. + ``None`` is returned if there's no next token. + """ + if idx is None: + return None, None + idx += 1 # alot of code usage current pre-compensates for this + funcs = lambda tk: not ((skip_ws and tk.is_whitespace) or + (skip_cm and imt(tk, t=T.Comment, i=Comment))) + return self._token_matching(funcs, idx, reverse=_reverse) + + def token_index(self, token, start=0): + """Return list index of token.""" + start = start if isinstance(start, int) else self.token_index(start) + return start + self.tokens[start:].index(token) + + def group_tokens(self, grp_cls, start, end, include_end=True, + extend=False): + """Replace tokens by an instance of *grp_cls*.""" + start_idx = start + start = self.tokens[start_idx] + + end_idx = end + include_end + + # will be needed later for new group_clauses + # while skip_ws and tokens and tokens[-1].is_whitespace: + # tokens = tokens[:-1] + + if extend and isinstance(start, grp_cls): + subtokens = self.tokens[start_idx + 1:end_idx] + + grp = start + grp.tokens.extend(subtokens) + del self.tokens[start_idx + 1:end_idx] + grp.value = text_type(start) + else: + subtokens = self.tokens[start_idx:end_idx] + grp = grp_cls(subtokens) + self.tokens[start_idx:end_idx] = [grp] + grp.parent = self + + for token in subtokens: + token.parent = grp + + return grp + + def insert_before(self, where, token): + """Inserts *token* before *where*.""" + if not isinstance(where, int): + where = self.token_index(where) + token.parent = self + self.tokens.insert(where, token) + + def insert_after(self, where, token, skip_ws=True): + """Inserts *token* after *where*.""" + if not isinstance(where, int): + where = self.token_index(where) + nidx, next_ = self.token_next(where, skip_ws=skip_ws) + token.parent = self + if next_ is None: + self.tokens.append(token) + else: + self.tokens.insert(nidx, token) + + def has_alias(self): + """Returns ``True`` if an alias is present.""" + return self.get_alias() is not None + + def get_alias(self): + """Returns the alias for this identifier or ``None``.""" + + # "name AS alias" + kw_idx, kw = self.token_next_by(m=(T.Keyword, 'AS')) + if kw is not None: + return self._get_first_name(kw_idx + 1, keywords=True) + + # "name alias" or "complicated column expression alias" + _, ws = self.token_next_by(t=T.Whitespace) + if len(self.tokens) > 2 and ws is not None: + return self._get_first_name(reverse=True) + + def get_name(self): + """Returns the name of this identifier. + + This is either it's alias or it's real name. The returned valued can + be considered as the name under which the object corresponding to + this identifier is known within the current statement. + """ + return self.get_alias() or self.get_real_name() + + def get_real_name(self): + """Returns the real name (object name) of this identifier.""" + # a.b + dot_idx, _ = self.token_next_by(m=(T.Punctuation, '.')) + return self._get_first_name(dot_idx) + + def get_parent_name(self): + """Return name of the parent object if any. + + A parent object is identified by the first occuring dot. + """ + dot_idx, _ = self.token_next_by(m=(T.Punctuation, '.')) + _, prev_ = self.token_prev(dot_idx) + return remove_quotes(prev_.value) if prev_ is not None else None + + def _get_first_name(self, idx=None, reverse=False, keywords=False): + """Returns the name of the first token with a name""" + + tokens = self.tokens[idx:] if idx else self.tokens + tokens = reversed(tokens) if reverse else tokens + types = [T.Name, T.Wildcard, T.String.Symbol] + + if keywords: + types.append(T.Keyword) + + for token in tokens: + if token.ttype in types: + return remove_quotes(token.value) + elif isinstance(token, (Identifier, Function)): + return token.get_name() + + +class Statement(TokenList): + """Represents a SQL statement.""" + + def get_type(self): + """Returns the type of a statement. + + The returned value is a string holding an upper-cased reprint of + the first DML or DDL keyword. If the first token in this group + isn't a DML or DDL keyword "UNKNOWN" is returned. + + Whitespaces and comments at the beginning of the statement + are ignored. + """ + first_token = self.token_first(skip_cm=True) + if first_token is None: + # An "empty" statement that either has not tokens at all + # or only whitespace tokens. + return 'UNKNOWN' + + elif first_token.ttype in (T.Keyword.DML, T.Keyword.DDL): + return first_token.normalized + + elif first_token.ttype == T.Keyword.CTE: + # The WITH keyword should be followed by either an Identifier or + # an IdentifierList containing the CTE definitions; the actual + # DML keyword (e.g. SELECT, INSERT) will follow next. + fidx = self.token_index(first_token) + tidx, token = self.token_next(fidx, skip_ws=True) + if isinstance(token, (Identifier, IdentifierList)): + _, dml_keyword = self.token_next(tidx, skip_ws=True) + + if dml_keyword.ttype == T.Keyword.DML: + return dml_keyword.normalized + + # Hmm, probably invalid syntax, so return unknown. + return 'UNKNOWN' + + +class Identifier(TokenList): + """Represents an identifier. + + Identifiers may have aliases or typecasts. + """ + + def is_wildcard(self): + """Return ``True`` if this identifier contains a wildcard.""" + _, token = self.token_next_by(t=T.Wildcard) + return token is not None + + def get_typecast(self): + """Returns the typecast or ``None`` of this object as a string.""" + midx, marker = self.token_next_by(m=(T.Punctuation, '::')) + nidx, next_ = self.token_next(midx, skip_ws=False) + return next_.value if next_ else None + + def get_ordering(self): + """Returns the ordering or ``None`` as uppercase string.""" + _, ordering = self.token_next_by(t=T.Keyword.Order) + return ordering.normalized if ordering else None + + def get_array_indices(self): + """Returns an iterator of index token lists""" + + for token in self.tokens: + if isinstance(token, SquareBrackets): + # Use [1:-1] index to discard the square brackets + yield token.tokens[1:-1] + + +class IdentifierList(TokenList): + """A list of :class:`~sqlparse.sql.Identifier`\'s.""" + + def get_identifiers(self): + """Returns the identifiers. + + Whitespaces and punctuations are not included in this generator. + """ + for token in self.tokens: + if not (token.is_whitespace or token.match(T.Punctuation, ',')): + yield token + + +class Parenthesis(TokenList): + """Tokens between parenthesis.""" + M_OPEN = T.Punctuation, '(' + M_CLOSE = T.Punctuation, ')' + + @property + def _groupable_tokens(self): + return self.tokens[1:-1] + + +class SquareBrackets(TokenList): + """Tokens between square brackets""" + M_OPEN = T.Punctuation, '[' + M_CLOSE = T.Punctuation, ']' + + @property + def _groupable_tokens(self): + return self.tokens[1:-1] + + +class Assignment(TokenList): + """An assignment like 'var := val;'""" + + +class If(TokenList): + """An 'if' clause with possible 'else if' or 'else' parts.""" + M_OPEN = T.Keyword, 'IF' + M_CLOSE = T.Keyword, 'END IF' + + +class For(TokenList): + """A 'FOR' loop.""" + M_OPEN = T.Keyword, ('FOR', 'FOREACH') + M_CLOSE = T.Keyword, 'END LOOP' + + +class Comparison(TokenList): + """A comparison used for example in WHERE clauses.""" + + @property + def left(self): + return self.tokens[0] + + @property + def right(self): + return self.tokens[-1] + + +class Comment(TokenList): + """A comment.""" + + def is_multiline(self): + return self.tokens and self.tokens[0].ttype == T.Comment.Multiline + + +class Where(TokenList): + """A WHERE clause.""" + M_OPEN = T.Keyword, 'WHERE' + M_CLOSE = T.Keyword, ( + 'ORDER', 'GROUP', 'LIMIT', 'UNION', 'UNION ALL', 'EXCEPT', + 'HAVING', 'RETURNING', 'INTO') + + +class Case(TokenList): + """A CASE statement with one or more WHEN and possibly an ELSE part.""" + M_OPEN = T.Keyword, 'CASE' + M_CLOSE = T.Keyword, 'END' + + def get_cases(self, skip_ws=False): + """Returns a list of 2-tuples (condition, value). + + If an ELSE exists condition is None. + """ + CONDITION = 1 + VALUE = 2 + + ret = [] + mode = CONDITION + + for token in self.tokens: + # Set mode from the current statement + if token.match(T.Keyword, 'CASE'): + continue + + elif skip_ws and token.ttype in T.Whitespace: + continue + + elif token.match(T.Keyword, 'WHEN'): + ret.append(([], [])) + mode = CONDITION + + elif token.match(T.Keyword, 'THEN'): + mode = VALUE + + elif token.match(T.Keyword, 'ELSE'): + ret.append((None, [])) + mode = VALUE + + elif token.match(T.Keyword, 'END'): + mode = None + + # First condition without preceding WHEN + if mode and not ret: + ret.append(([], [])) + + # Append token depending of the current mode + if mode == CONDITION: + ret[-1][0].append(token) + + elif mode == VALUE: + ret[-1][1].append(token) + + # Return cases list + return ret + + +class Function(TokenList): + """A function or procedure call.""" + + def get_parameters(self): + """Return a list of parameters.""" + parenthesis = self.tokens[-1] + for token in parenthesis.tokens: + if isinstance(token, IdentifierList): + return token.get_identifiers() + elif imt(token, i=(Function, Identifier), t=T.Literal): + return [token, ] + return [] + + +class Begin(TokenList): + """A BEGIN/END block.""" + M_OPEN = T.Keyword, 'BEGIN' + M_CLOSE = T.Keyword, 'END' + + +class Operation(TokenList): + """Grouping of operations""" diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/tokens.py b/thesisenv/lib/python3.6/site-packages/sqlparse/tokens.py new file mode 100644 index 0000000..6864f69 --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/tokens.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause +# +# The Token implementation is based on pygment's token system written +# by Georg Brandl. +# http://pygments.org/ + +"""Tokens""" + + +class _TokenType(tuple): + parent = None + + def __contains__(self, item): + return item is not None and (self is item or item[:len(self)] == self) + + def __getattr__(self, name): + new = _TokenType(self + (name,)) + setattr(self, name, new) + new.parent = self + return new + + def __repr__(self): + # self can be False only if its the `root` ie. Token itself + return 'Token' + ('.' if self else '') + '.'.join(self) + + +Token = _TokenType() + +# Special token types +Text = Token.Text +Whitespace = Text.Whitespace +Newline = Whitespace.Newline +Error = Token.Error +# Text that doesn't belong to this lexer (e.g. HTML in PHP) +Other = Token.Other + +# Common token types for source code +Keyword = Token.Keyword +Name = Token.Name +Literal = Token.Literal +String = Literal.String +Number = Literal.Number +Punctuation = Token.Punctuation +Operator = Token.Operator +Comparison = Operator.Comparison +Wildcard = Token.Wildcard +Comment = Token.Comment +Assignment = Token.Assignment + +# Generic types for non-source code +Generic = Token.Generic + +# String and some others are not direct childs of Token. +# alias them: +Token.Token = Token +Token.String = String +Token.Number = Number + +# SQL specific tokens +DML = Keyword.DML +DDL = Keyword.DDL +CTE = Keyword.CTE +Command = Keyword.Command diff --git a/thesisenv/lib/python3.6/site-packages/sqlparse/utils.py b/thesisenv/lib/python3.6/site-packages/sqlparse/utils.py new file mode 100644 index 0000000..ffa029b --- /dev/null +++ b/thesisenv/lib/python3.6/site-packages/sqlparse/utils.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2016 Andi Albrecht, albrecht.andi@gmail.com +# +# This module is part of python-sqlparse and is released under +# the BSD License: https://opensource.org/licenses/BSD-3-Clause + +import itertools +import re +from collections import deque +from contextlib import contextmanager +from sqlparse.compat import text_type + +# This regular expression replaces the home-cooked parser that was here before. +# It is much faster, but requires an extra post-processing step to get the +# desired results (that are compatible with what you would expect from the +# str.splitlines() method). +# +# It matches groups of characters: newlines, quoted strings, or unquoted text, +# and splits on that basis. The post-processing step puts those back together +# into the actual lines of SQL. +SPLIT_REGEX = re.compile(r""" +( + (?: # Start of non-capturing group + (?:\r\n|\r|\n) | # Match any single newline, or + [^\r\n'"]+ | # Match any character series without quotes or + # newlines, or + "(?:[^"\\]|\\.)*" | # Match double-quoted strings, or + '(?:[^'\\]|\\.)*' # Match single quoted strings + ) +) +""", re.VERBOSE) + +LINE_MATCH = re.compile(r'(\r\n|\r|\n)') + + +def split_unquoted_newlines(stmt): + """Split a string on all unquoted newlines. + + Unlike str.splitlines(), this will ignore CR/LF/CR+LF if the requisite + character is inside of a string.""" + text = text_type(stmt) + lines = SPLIT_REGEX.split(text) + outputlines = [''] + for line in lines: + if not line: + continue + elif LINE_MATCH.match(line): + outputlines.append('') + else: + outputlines[-1] += line + return outputlines + + +def remove_quotes(val): + """Helper that removes surrounding quotes from strings.""" + if val is None: + return + if val[0] in ('"', "'") and val[0] == val[-1]: + val = val[1:-1] + return val + + +def recurse(*cls): + """Function decorator to help with recursion + + :param cls: Classes to not recurse over + :return: function + """ + def wrap(f): + def wrapped_f(tlist): + for sgroup in tlist.get_sublists(): + if not isinstance(sgroup, cls): + wrapped_f(sgroup) + f(tlist) + + return wrapped_f + + return wrap + + +def imt(token, i=None, m=None, t=None): + """Helper function to simplify comparisons Instance, Match and TokenType + :param token: + :param i: Class or Tuple/List of Classes + :param m: Tuple of TokenType & Value. Can be list of Tuple for multiple + :param t: TokenType or Tuple/List of TokenTypes + :return: bool + """ + clss = i + types = [t, ] if t and not isinstance(t, list) else t + mpatterns = [m, ] if m and not isinstance(m, list) else m + + if token is None: + return False + elif clss and isinstance(token, clss): + return True + elif mpatterns and any(token.match(*pattern) for pattern in mpatterns): + return True + elif types and any(token.ttype in ttype for ttype in types): + return True + else: + return False + + +def consume(iterator, n): + """Advance the iterator n-steps ahead. If n is none, consume entirely.""" + deque(itertools.islice(iterator, n), maxlen=0) + + +@contextmanager +def offset(filter_, n=0): + filter_.offset += n + yield + filter_.offset -= n + + +@contextmanager +def indent(filter_, n=1): + filter_.indent += n + yield + filter_.indent -= n