diff options
author | Hubert Chathi <hubert@uhoreg.ca> | 2018-10-19 11:34:11 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-10-19 11:34:11 -0400 |
commit | 1d880f9711e0f1b084e63221899f7da2e1087e28 (patch) | |
tree | 69ccb82241fa1c007b621c1bb687788138484d2c /python/olm/_compat.py | |
parent | 6e6facba3b4e2beb4e708271f0f23c7bf3840835 (diff) | |
parent | 0ec6a658583ae4d8b8463b20a640a0769b2ac630 (diff) |
Merge pull request #68 from matrix-org/poljar-python
Poljar's improved python bindings
Diffstat (limited to 'python/olm/_compat.py')
-rw-r--r-- | python/olm/_compat.py | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/python/olm/_compat.py b/python/olm/_compat.py new file mode 100644 index 0000000..91e4d1b --- /dev/null +++ b/python/olm/_compat.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- +# libolm python bindings +# Copyright © 2015-2017 OpenMarket Ltd +# Copyright © 2018 Damir Jelić <poljar@termina.org.uk> +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from builtins import bytes, str +from typing import AnyStr + +try: + import secrets + URANDOM = secrets.token_bytes # pragma: no cover +except ImportError: # pragma: no cover + from os import urandom + URANDOM = urandom # type: ignore + + +def to_bytearray(string): + # type: (AnyStr) -> bytes + if isinstance(string, bytes): + return bytearray(string) + elif isinstance(string, str): + return bytearray(string, "utf-8") + + raise TypeError("Invalid type {}".format(type(string))) + + +def to_bytes(string): + # type: (AnyStr) -> bytes + if isinstance(string, bytes): + return string + elif isinstance(string, str): + return bytes(string, "utf-8") + + raise TypeError("Invalid type {}".format(type(string))) |