Mercurial > kallithea
view kallithea/lib/compat.py @ 7789:75b128508fa8
compat: use collections.OrderedDict - we only support Python 2.7 and no longer need our own implementation
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Sun, 21 Jul 2019 19:12:20 +0200 |
parents | 7691290837d2 |
children | a7d7157eca8e |
line wrap: on
line source
# -*- 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 This file was forked by the Kallithea project in July 2014. Original author and date, and relevant copyright and licensing information is below: :created_on: Oct 7, 2011 :author: marcink :copyright: (c) 2013 RhodeCode GmbH, and others. :license: GPLv3, see LICENSE.md for more details. """ import sys import os import functools #============================================================================== # json #============================================================================== from kallithea.lib.ext_json import json # alias for formatted json formatted_json = functools.partial(json.dumps, indent=4, sort_keys=True) #============================================================================== # unittest #============================================================================== if sys.version_info >= (2, 7): import unittest else: import unittest2 as unittest #============================================================================== # OrderedSet #============================================================================== from sqlalchemy.util import OrderedSet #============================================================================== # Hybrid property/method #============================================================================== from sqlalchemy.ext.hybrid import hybrid_property #============================================================================== # kill #============================================================================== if os.name == 'nt': # Windows 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