"""Utilities for defining models
"""
# The following comment should be removed at some point in the future.
# mypy: disallow-untyped-defs=False
import operator
class KeyBasedCompareMixin(object):
"""Provides comparison capabilities that is based on a key
"""
__slots__ = ['_compare_key', '_defining_class']
def __init__(self, key, defining_class):
self._compare_key = key
self._defining_class = defining_class
def __hash__(self):
return hash(self._compare_key)
def __lt__(self, other):
return self._compare(other, operator.__lt__)
def __le__(self, other):
return self._compare(other, operator.__le__)
def __gt__(self, other):
return self._compare(other, operator.__gt__)
def __ge__(self, other):
return self._compare(other, operator.__ge__)
def __eq__(self, other):
return self._compare(other, operator.__eq__)
def __ne__(self, other):
return self._compare(other, operator.__ne__)
def _compare(self, other, method):
if not isinstance(other, self._defining_class):
return NotImplemented
return method(self._compare_key, other._compare_key)
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| __pycache__ | Folder | 0755 |
|
|
| __init__.py | File | 0 B | 0644 |
|
| appdirs.py | File | 1.32 KB | 0644 |
|
| compat.py | File | 9.27 KB | 0644 |
|
| compatibility_tags.py | File | 5.31 KB | 0644 |
|
| datetime.py | File | 295 B | 0644 |
|
| deprecation.py | File | 3.24 KB | 0644 |
|
| direct_url_helpers.py | File | 4.26 KB | 0644 |
|
| distutils_args.py | File | 1.32 KB | 0644 |
|
| encoding.py | File | 1.25 KB | 0644 |
|
| entrypoints.py | File | 1.19 KB | 0644 |
|
| filesystem.py | File | 6.78 KB | 0644 |
|
| filetypes.py | File | 571 B | 0644 |
|
| glibc.py | File | 3.22 KB | 0644 |
|
| hashes.py | File | 4.57 KB | 0644 |
|
| inject_securetransport.py | File | 810 B | 0644 |
|
| logging.py | File | 12.79 KB | 0644 |
|
| misc.py | File | 27.67 KB | 0644 |
|
| models.py | File | 1.17 KB | 0644 |
|
| packaging.py | File | 2.96 KB | 0644 |
|
| parallel.py | File | 3.32 KB | 0644 |
|
| pkg_resources.py | File | 1.22 KB | 0644 |
|
| setuptools_build.py | File | 4.94 KB | 0644 |
|
| subprocess.py | File | 9.69 KB | 0644 |
|
| temp_dir.py | File | 8.18 KB | 0644 |
|
| typing.py | File | 1.37 KB | 0644 |
|
| unpacking.py | File | 9.27 KB | 0644 |
|
| urls.py | File | 1.49 KB | 0644 |
|
| virtualenv.py | File | 3.62 KB | 0644 |
|
| wheel.py | File | 7.13 KB | 0644 |
|