<gh_stars>1-10
# -------------------------------------------------------------------
# Copyright 2021 Virtex authors. All Rights Reserved.
#
# 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.
# -------------------------------------------------------------------

import numpy as np

from virtex.serial.pickle import encode_pickle, decode_pickle

__all__ = ['encode_numpy', 'decode_numpy']


def encode_numpy(obj:np.array) -> str:
    """
    Encode a numpy array as a bytestring.

    Parameters
    ----------
    obj : ``np.array``
        Object to be encoded

    Returns
    -------
    bytestr : ``str``
        bytestring representation of passed object
    """
    return encode_pickle(obj)


def decode_numpy(bytestr:str) -> np.array:
    """
    Decode a bytestring into a numpy array.

    Parameters
    ----------
    bytestr : ``str``
        bytestring to be decoded

    Returns
    -------
    object : ``np.array``
        Original python object
    """
    return decode_pickle(bytestr)

# -------------------------------------------------------------------
# Copyright 2021 Virtex authors. All Rights Reserved.
#
# 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.
# -------------------------------------------------------------------

import numpy as np

from virtex.serial.pickle import encode_pickle, decode_pickle

__all__ = ['encode_numpy', 'decode_numpy']


def encode_numpy(obj:np.array) -> str:
    """
    Encode a numpy array as a bytestring.

    Parameters
    ----------
    obj : ``np.array``
        Object to be encoded

    Returns
    -------
    bytestr : ``str``
        bytestring representation of passed object
    """
    return encode_pickle(obj)


def decode_numpy(bytestr:str) -> np.array:
    """
    Decode a bytestring into a numpy array.

    Parameters
    ----------
    bytestr : ``str``
        bytestring to be decoded

    Returns
    -------
    object : ``np.array``
        Original python object
    """
    return decode_pickle(bytestr)
# ------------------------------------------------------------------- # Copyright 2021 Virtex authors. All Rights Reserved. # # 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. # ------------------------------------------------------------------- Encode a numpy array as a bytestring.      Parameters     ----------     obj : ``np.array``         Object to be encoded      Returns     -------     bytestr : ``str``         bytestring representation of passed object Decode a bytestring into a numpy array.      Parameters     ----------     bytestr : ``str``         bytestring to be decoded      Returns     -------     object : ``np.array``         Original python object