tensorflow python2_TensorFlow定义Python2与3兼容性的函数

#版权所有2015 TensorFlow作者.版权所有.

#根据Apache许可证版本2.0(“许可证”)许可;

#除非符合许可证,否则您不得使用此文件.

#您可以获得许可证的副本

#http      ://www.apache.org/licenses/LICENSE-2.0

#除非适用法律要求或书面同意软件

根据许可证分发的#分发在“按原样”基础上,

#无明示或暗示的任何种类的保证或条件.

#查看有关权限的特定语言的许可证

#许可证下的限制.

# =============================================== =============================

"" Python 2与3兼容性的函数.""

## Conversion routines

In addition to the functions below, `as_str` converts an object to a `str`.

@@as_bytes

@@as_text

@@as_str_any

## Types

The compatibility module also provides the following types:

* `bytes_or_text_types`

* `complex_types`

* `integral_types`

* `real_types`

"""

from __future__ import absolute_import

from __future__ import division

from __future__ import print_function

import numbers as _numbers

import numpy as _np

import six as _six

from tensorflow.python.util.all_util import remove_undocumented

def as_bytes(bytes_or_text, encoding='utf-8'):

"""Converts either bytes or unicode to `bytes`, using utf-8 encoding for text.

Args:

bytes_or_text: A `bytes`, `str`, or `unicode` object.

encoding: A string indicating the charset for encoding unicode.

Returns:

A `bytes` object.

Raises:

TypeError: If `bytes_or_text` is not a binary or unicode string.

"""

if isinstance(bytes_or_text, _six.text_type):

return bytes_or_text.encode(encoding)

elif isinstance(bytes_or_text, bytes):

return bytes_or_text

else:

raise TypeError('Expected binary or unicode string, got %r' %

(bytes_or_text,))

def as_text(bytes_or_text, encoding='utf-8'):

"""Returns the given argument as a unicode string.

Args:

bytes_or_text: A `bytes`, `str, or `unicode` object.

encoding: A string indicating the charset for decoding unicode.

Returns:

A `unicode` (Python 2) or `str` (Python 3) object.

Raises:

TypeError: If `bytes_or_text` is not a binary or unicode string.

"""

if isinstance(bytes_or_text, _six.text_type):

return bytes_or_text

elif isinstance(bytes_or_text, bytes):

return bytes_or_text.decode(encoding)

else:

raise TypeError('Expected binary or unicode string, got %r' % bytes_or_text)

# Convert an object to a `str` in both Python 2 and 3.

if _six.PY2:

as_str = as_bytes

else:

as_str = as_text

def as_str_any(value):

"""Converts to `str` as `str(value)`, but use `as_str` for `bytes`.

Args:

value: A object that can be converted to `str`.

Returns:

A `str` object.

"""

if isinstance(value, bytes):

return as_str(value)

else:

return str(value)

# Numpy 1.8 scalars don't inherit from numbers.Integral in Python 3, so we

# need to check them specifically.  The same goes from Real and Complex.

integral_types = (_numbers.Integral, _np.integer)

real_types = (_numbers.Real, _np.integer, _np.floating)

complex_types = (_numbers.Complex, _np.number)

# Either bytes or text.

bytes_or_text_types = (bytes, _six.text_type)

_allowed_symbols = [

'as_str',

'bytes_or_text_types',

'complex_types',

'integral_types',

'real_types',

]

remove_undocumented(__name__, _allowed_symbols)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值