##// END OF EJS Templates
deps: bumped tzdata==2024.2
deps: bumped tzdata==2024.2

File last commit:

r5096:a0018795 default
r5594:6a656df9 default
Show More
request.py
107 lines | 3.2 KiB | text/x-python | PythonLexer
copyrights: updated for 2023
r5088 # Copyright (C) 2017-2023 RhodeCode GmbH
debug: add new custom logging to track unique requests across systems.
r2794 #
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License, version 3
# (only), as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# This program is dual-licensed. If you wish to learn more about the
# RhodeCode Enterprise Edition, including its added features, Support services,
# and proprietary license terms, please see https://rhodecode.com/licenses/
from uuid import uuid4
requests: cleaned / unified way of handling requests generation from non-web scope....
r4873 import pyramid.testing
debug: add new custom logging to track unique requests across systems.
r2794 from pyramid.decorator import reify
from pyramid.request import Request as _Request
lib-request: ported to python3
r5077 from rhodecode.lib.type_utils import StrictAttributeDict
requests: cleaned / unified way of handling requests generation from non-web scope....
r4873
class TemplateArgs(StrictAttributeDict):
pass
debug: add new custom logging to track unique requests across systems.
r2794
requests: cleaned / unified way of handling requests generation from non-web scope....
r4873 # Base Class with DummyMethods, testing / CLI scripts
class RequestBase(object):
debugging: expose logs/exception when debug log is enabled.
r4768 _req_id_bucket = list()
requests: cleaned / unified way of handling requests generation from non-web scope....
r4873 _call_context = TemplateArgs()
_call_context.visual = TemplateArgs()
_call_context.visual.show_sha_length = 12
_call_context.visual.show_revision_number = True
debugging: expose logs/exception when debug log is enabled.
r4768
debug: add new custom logging to track unique requests across systems.
r2794 @reify
def req_id(self):
return str(uuid4())
debugging: expose logs/exception when debug log is enabled.
r4768
@property
def req_id_bucket(self):
return self._req_id_bucket
def req_id_records_init(self):
self._req_id_bucket = list()
translations: moved methods from new request subscriber to actual methods of custom class....
r4842
requests: cleaned / unified way of handling requests generation from non-web scope....
r4873 def translate(self, *args, **kwargs):
raise NotImplementedError()
def plularize(self, *args, **kwargs):
raise NotImplementedError()
def get_partial_renderer(self, tmpl_name):
raise NotImplementedError()
@property
def call_context(self):
return self._call_context
def set_call_context(self, new_context):
self._call_context = new_context
# for thin non-web/cli etc
class ThinRequest(RequestBase, pyramid.testing.DummyRequest):
def translate(self, msg):
return msg
def plularize(self, singular, plural, n):
return singular
def get_partial_renderer(self, tmpl_name):
from rhodecode.lib.partial_renderer import get_partial_renderer
return get_partial_renderer(request=self, tmpl_name=tmpl_name)
# for real-web-based
class RealRequest(RequestBase, _Request):
def get_partial_renderer(self, tmpl_name):
from rhodecode.lib.partial_renderer import get_partial_renderer
return get_partial_renderer(request=self, tmpl_name=tmpl_name)
def request_count(self):
from rhodecode.lib.request_counter import get_request_counter
return get_request_counter()
translations: moved methods from new request subscriber to actual methods of custom class....
r4842 def plularize(self, *args, **kwargs):
return self.localizer.pluralize(*args, **kwargs)
def translate(self, *args, **kwargs):
localizer = self.localizer
lib-request: ported to python3
r5077 from rhodecode.translation import _ as tsf
translations: moved methods from new request subscriber to actual methods of custom class....
r4842
def auto_translate(*_args, **_kwargs):
return localizer.translate(tsf(*_args, **_kwargs))
return auto_translate(*args, **kwargs)
requests: cleaned / unified way of handling requests generation from non-web scope....
r4873
class Request(RealRequest):
"""
This is the main request object used in web-context
"""
pass