compat.py
64 lines
| 2.2 KiB
| text/x-python
|
PythonLexer
Bradley M. Kuhn
|
r4187 | # -*- coding: utf-8 -*- | ||
# 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, see <http://www.gnu.org/licenses/>. | ||||
""" | ||||
kallithea.lib.compat | ||||
~~~~~~~~~~~~~~~~~~~~ | ||||
Python backward compatibility functions and common libs | ||||
Bradley M. Kuhn
|
r4211 | This file was forked by the Kallithea project in July 2014. | ||
Original author and date, and relevant copyright and licensing information is below: | ||||
Bradley M. Kuhn
|
r4187 | :created_on: Oct 7, 2011 | ||
:author: marcink | ||||
Bradley M. Kuhn
|
r4211 | :copyright: (c) 2013 RhodeCode GmbH, and others. | ||
Bradley M. Kuhn
|
r4208 | :license: GPLv3, see LICENSE.md for more details. | ||
Bradley M. Kuhn
|
r4187 | """ | ||
Mads Kiilerich
|
r7718 | import functools | ||
Bradley M. Kuhn
|
r4187 | import os | ||
Mads Kiilerich
|
r7718 | |||
#============================================================================== | ||||
# Hybrid property/method | ||||
#============================================================================== | ||||
from sqlalchemy.ext.hybrid import hybrid_property | ||||
#============================================================================== | ||||
# OrderedSet | ||||
#============================================================================== | ||||
from sqlalchemy.util import OrderedSet | ||||
Bradley M. Kuhn
|
r4187 | |||
#============================================================================== | ||||
# json | ||||
#============================================================================== | ||||
Mads Kiilerich
|
r7987 | from kallithea.lib import ext_json | ||
Bradley M. Kuhn
|
r4187 | |||
Mads Kiilerich
|
r7718 | |||
Mads Kiilerich
|
r7987 | formatted_json = functools.partial(ext_json.dumps, indent=4, sort_keys=True) | ||
Bradley M. Kuhn
|
r4187 | |||
#============================================================================== | ||||
Mads Kiilerich
|
r6171 | # kill | ||
Bradley M. Kuhn
|
r4187 | #============================================================================== | ||
Mads Kiilerich
|
r6171 | if os.name == 'nt': # Windows | ||
Bradley M. Kuhn
|
r4187 | import ctypes | ||
def kill(pid, sig): | ||||
"""kill function for Win32""" | ||||
kernel32 = ctypes.windll.kernel32 | ||||
handle = kernel32.OpenProcess(1, 0, pid) | ||||
return (0 != kernel32.TerminateProcess(handle, 0)) | ||||
else: | ||||
kill = os.kill | ||||