twisted.python.compat
module documentationtwisted.python
View Source
Compatibility module to provide backwards compatibility for useful Python features.
This is mainly for use of internal Twisted code. We encourage you to use the latest version of Python directly from your code, if possible.
Variable | unicode | The type of Unicode strings, unicode on Python 2 and
str on Python 3. |
Variable | NativeStringIO | An in-memory file-like object that operates on the native string type (bytes in Python 2, unicode in Python 3). |
Variable | urllib_parse | a URL-parsing module (urlparse on Python 2, urllib.parse on Python 3) |
Function | currentframe | In Python 3, inspect.currentframe
does not take a stack-level argument. Restore that functionality from
Python 2 so we don't have to re-implement the f_back -walking
loop in places where it's called. |
Function | inet_pton | Emulator of socket.inet_pton . |
Function | inet_ntop | Undocumented |
Function | execfile | Execute a Python script in the given namespaces. |
Function | cmp | Compare two objects. |
Function | comparable | Class decorator that ensures support for the special
__cmp__ method. |
Function | ioType | Determine the type which will be returned from the given file object's read() and accepted by its write() method as an argument. |
Function | nativeString | Convert bytes or unicode to the native
str type, using ASCII encoding if conversion is necessary. |
Function | reraise | Undocumented |
Function | iterbytes 0 | Undocumented |
Function | intToBytes 0 | Undocumented |
Function | lazyByteSlice | Return a copy of the given bytes-like object. |
Function | networkString 0 | Undocumented |
Function | iterbytes | Undocumented |
Function | intToBytes | Undocumented |
Function | networkString | Undocumented |
Function | iteritems 0 | Undocumented |
Function | itervalues 0 | Undocumented |
Function | items 0 | Undocumented |
Function | iteritems | Undocumented |
Function | itervalues | Undocumented |
Function | items | Undocumented |
Function | bytesEnviron | Return a dict
of os.environ
where all text-strings are encoded into bytes . |
Function | _shouldEnableNewStyle | No summary |
Function | _matchingString | No summary |
Function | _keys | Return a list of the keys of d . |
Function | _constructMethod | Construct a bound method. |
Function | _bytesChr | Like chr
but always works on ASCII, returning bytes . |
Function | _coercedUnicode | Coerce ASCII-only byte strings into unicode for Python 2. |
Function | _bytesRepr | Provide a repr for a byte string that begins with 'b' on both Python 2 and 3. |
Function | _get_async_param | Provide a backwards-compatible way to get async param value that does not cause a syntax error under Python 3.7. |
Returns whether or not we should enable the new-style conversion of
old-style classes. It inspects the environment for
TWISTED_NEWSTYLE
, accepting an empty string, no
,
false
, False
, and 0
as falsey values
and everything else as a truthy value.
Returns | (type: bool ) |
In Python 3, inspect.currentframe
does not take a stack-level argument. Restore that functionality from
Python 2 so we don't have to re-implement the f_back
-walking
loop in places where it's called.
Parameters | n | The number of stack levels above the caller to walk. (type: int ) |
Returns | a frame, n levels up the stack from the caller. (type: types.FrameType ) |
Emulator of socket.inet_pton
.
Parameters | af | An address family to parse; socket.AF_INET or
socket.AF_INET6 . (type: int ) |
addr | An address. (type: native str ) | |
Returns | The binary packed version of the passed address. (type: bytes ) |
Execute a Python script in the given namespaces.
Similar to the execfile builtin, but a namespace is mandatory, partly because that's a sensible thing to require, and because otherwise we'd have to do some frame hacking.
This is a compatibility implementation for Python 3 porting, to avoid
the use of the deprecated builtin execfile
function.
Compare two objects.
Returns a negative number if a < b
, zero if they are
equal, and a positive number if a > b
.
Class decorator that ensures support for the special
__cmp__
method.
On Python 2 this does nothing.
On Python 3, __eq__
, __lt__
, etc. methods are
added to the class, relying on __cmp__
to implement their
comparisons.
Determine the type which will be returned from the given file object's read() and accepted by its write() method as an argument.
In other words, determine whether the given file is 'opened in text mode'.
Parameters | fileIshObject | Any object, but ideally one which resembles a file. (type: object ) |
default | A default value to return when the type of fileIshObject
cannot be determined. (type: type ) | |
Returns | There are 3 possible return values:
type ) |
Convert bytes
or unicode
to the native
str
type, using ASCII encoding if conversion is necessary.
Raises | UnicodeError | The input string is not ASCII encodable/decodable. |
TypeError | The input is neither bytes nor unicode . |
Some functions, such as os.path.join
, operate on string
arguments which may be bytes or text, and wish to return a value of the
same type. In those cases you may wish to have a string constant (in the
case of os.path.join
, that constant would be
os.path.sep
) involved in the parsing or processing, that must
be of a matching type in order to use string operations on it. _matchingString
will take a constant string (either bytes
or unicode
)
and convert it to the same type as the input string.
constantString
should contain only characters from ASCII; to
ensure this, it will be encoded or decoded regardless.
Parameters | constantString | A string literal used in processing. (type: unicode or bytes ) |
inputString | A byte string or text string provided by the user. (type: unicode or bytes ) | |
Returns | constantString converted into the same type as
inputString (type: the type of inputString ) |
Return a copy of the given bytes-like object.
If an offset is given, the copy starts at that offset. If a size is given, the copy will only be of that length.
Parameters | object | bytes to be copied. |
offset | int , starting index of copy. | |
size | Optional, if an int is given limit the length of copy to this
size. |
Return a dict
of os.environ
where all text-strings are encoded into bytes
.
This function is POSIX only; environment variables are always text strings on Windows.
Construct a bound method.
Parameters | cls | The class that the method should be bound to. (type: types.ClassType
or type .) |
name | The name of the method. (type: native str ) | |
self | The object that the method is bound to. (type: any object) | |
Returns | a bound method (type: types.MethodType ) |
Coerce ASCII-only byte strings into unicode for Python 2.
In Python 2 unicode(b'bytes')
returns a unicode string
'bytes'
. In Python 3, the equivalent
str(b'bytes')
will return "b'bytes'"
instead. This function mimics the behavior for Python 2. It will decode the
byte string as ASCII. In Python 3 it simply raises a TypeError
when passing a byte string. Unicode strings are returned as-is.
Parameters | s | The string to coerce. (type: bytes
or unicode ) |
Raises | UnicodeError | The input bytes
is not ASCII decodable. |
TypeError | The input is bytes
on Python 3. |
Provide a backwards-compatible way to get async param value that does not cause a syntax error under Python 3.7.
Parameters | isAsync | isAsync param value (should default to None) (type: bool ) |
kwargs | keyword arguments of the caller (only async is allowed) (type: dict ) | |
Returns | Final isAsync param value (type: bool ) | |
Raises | TypeError | Both isAsync and async specified. |