##// END OF EJS Templates
git: make sure we don't break streaming in case of empty pull messages....
git: make sure we don't break streaming in case of empty pull messages. This allows much efficient streaming of data. Most cases don't have post message and we shouldn't extract date from iterator in such cases.

File last commit:

r180:bb8ad7ab default
r277:90be8c49 stable
Show More
utils.py
50 lines | 1.8 KiB | text/x-python | PythonLexer
# RhodeCode VCSServer provides access to different vcs backends via network.
# Copyright (C) 2014-2017 RodeCode GmbH
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# 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 General Public License
# along with this program; if not, write to the Free Software Foundation,
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
import copy
from functools import wraps
def get_cython_compat_decorator(wrapper, func):
"""
Creates a cython compatible decorator. The previously used
decorator.decorator() function seems to be incompatible with cython.
:param wrapper: __wrapper method of the decorator class
:param func: decorated function
"""
@wraps(func)
def local_wrapper(*args, **kwds):
return wrapper(func, *args, **kwds)
local_wrapper.__wrapped__ = func
return local_wrapper
def safe_result(result):
"""clean result for better representation in logs"""
clean_copy = copy.deepcopy(result)
try:
if 'objects' in clean_copy:
for oid_data in clean_copy['objects']:
if 'actions' in oid_data:
for action_name, data in oid_data['actions'].items():
if 'header' in data:
data['header'] = {'Authorization': '*****'}
except Exception:
return result
return clean_copy