File: codec.py

package info (click to toggle)
pytango 10.0.2-3
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 10,216 kB
  • sloc: python: 28,206; cpp: 16,380; sql: 255; sh: 82; makefile: 43
file content (42 lines) | stat: -rw-r--r-- 1,044 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# SPDX-FileCopyrightText: All Contributors to the PyTango project
# SPDX-License-Identifier: LGPL-3.0-or-later

try:
    from warnings import deprecated
except ImportError:
    from typing_extensions import deprecated

__all__ = ("loads", "dumps")


@deprecated(
    "loads function was an experimental API - scheduled for removal in PyTango 11.0.0"
)
def loads(fmt, data):
    if fmt.startswith("pickle"):
        import pickle

        loads = pickle.loads
    elif fmt.startswith("json"):
        import json

        loads = json.loads
    else:
        raise TypeError(f"Format '{fmt}' not supported")
    return loads(data)


@deprecated(
    "dumps function was an experimental API - scheduled for removal in PyTango 11.0.0"
)
def dumps(fmt, obj):
    if fmt.startswith("pickle"):
        import pickle

        ret = fmt, pickle.dumps(obj, protocol=pickle.HIGHEST_PROTOCOL)
        return ret
    elif fmt.startswith("json"):
        import json

        return fmt, json.dumps(obj)
    raise TypeError(f"Format '{fmt}' not supported")