All Downloads are FREE. Search and download functionalities are using the official Maven repository.

kr.motd.maven.sphinx.dist.past.__init__$py.class Maven / Gradle / Ivy

There is a newer version: 2.10.0
Show newest version
????1?f$0R(Lorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;__doc__
?
past: compatibility with Python 2 from Python 3
===============================================

``past`` is a package to aid with Python 2/3 compatibility. Whereas ``future``
contains backports of Python 3 constructs to Python 2, ``past`` provides
implementations of some Python 2 constructs in Python 3 and tools to import and
run Python 2 code in Python 3. It is intended to be used sparingly, as a way of
running old Python 2 code from Python 3 until the code is ported properly.

Potential uses for libraries:

- as a step in porting a Python 2 codebase to Python 3 (e.g. with the ``futurize`` script)
- to provide Python 3 support for previously Python 2-only libraries with the
  same APIs as on Python 2 -- particularly with regard to 8-bit strings (the
  ``past.builtins.str`` type).
- to aid in providing minimal-effort Python 3 support for applications using
  libraries that do not yet wish to upgrade their code properly to Python 3, or
  wish to upgrade it gradually to Python 3 style.


Here are some code examples that run identically on Python 3 and 2::

    >>> from past.builtins import str as oldstr

    >>> philosopher = oldstr(u'\u5b54\u5b50'.encode('utf-8'))
    >>> # This now behaves like a Py2 byte-string on both Py2 and Py3.
    >>> # For example, indexing returns a Python 2-like string object, not
    >>> # an integer:
    >>> philosopher[0]
    'å'
    >>> type(philosopher[0])
    

    >>> # List-producing versions of range, reduce, map, filter
    >>> from past.builtins import range, reduce
    >>> range(10)
    [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
    >>> reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])
    15

    >>> # Other functions removed in Python 3 are resurrected ...
    >>> from past.builtins import execfile
    >>> execfile('myfile.py')

    >>> from past.builtins import raw_input
    >>> name = raw_input('What is your name? ')
    What is your name? [cursor]

    >>> from past.builtins import reload
    >>> reload(mymodule)   # equivalent to imp.reload(mymodule) in Python 3

    >>> from past.builtins import xrange
    >>> for i in xrange(10):
    ...     pass


It also provides import hooks so you can import and use Python 2 modules like
this::

    $ python3

    >>> from past import autotranslate
    >>> authotranslate('mypy2module')
    >>> import mypy2module

until the authors of the Python 2 modules have upgraded their code. Then, for
example::
    
    >>> mypy2module.func_taking_py2_string(oldstr(b'abcd'))


Credits
-------

:Author:  Ed Schofield
:Sponsor: Python Charmers Pty Ltd, Australia: http://pythoncharmers.com


Licensing
---------
Copyright 2013-2016 Python Charmers Pty Ltd, Australia.
The software is distributed under an MIT licence. See LICENSE.txt.
org/python/core/PyStringfromInterned.(Ljava/lang/String;)Lorg/python/core/PyString;	

org/python/core/PyFrame
	setglobal/(Ljava/lang/String;Lorg/python/core/PyObject;)V
setline(I)V
past.translationjava/lang/String
install_hooksorg/python/core/imp
importFrom\(Ljava/lang/String;[Ljava/lang/String;Lorg/python/core/PyFrame;I)[Lorg/python/core/PyObject; 
!
autotranslate#setlocal%
&future(__version__*
__copyright__,__license__.past0	__title__2Ed Schofield4
__author__6f_lastiI89	:org/python/core/Py<NoneLorg/python/core/PyObject;>?	=@(Ljava/lang/String;)Vorg/python/core/PyFunctionTableD()VBF
EGself	Lpast$py;past$pyKIJ	LMLorg/python/core/PyCode;PnewCode?(I[Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;IZZLorg/python/core/PyFunctionTable;I[Ljava/lang/String;[Ljava/lang/String;II)Lorg/python/core/PyCode;RS
=TO	LVgetMain()Lorg/python/core/PyCode;main([Ljava/lang/String;)VKBC
L]XY
L_org/python/core/CodeLoaderacreateSimpleBootstrap9(Lorg/python/core/PyCode;)Lorg/python/core/CodeBootstrap;cd
berunMain5(Lorg/python/core/CodeBootstrap;[Ljava/lang/String;)Vgh
=igetCodeBootstrap!()Lorg/python/core/CodeBootstrap;#org/python/core/PyRunnableBootstrapm)getFilenameConstructorReflectionBootstrap2(Ljava/lang/Class;)Lorg/python/core/CodeBootstrap;op
nq
call_functionS(ILorg/python/core/PyFrame;Lorg/python/core/ThreadState;)Lorg/python/core/PyObject;
Luorg/python/core/PyRunnablew Lorg/python/compiler/APIVersion;value%Lorg/python/compiler/MTime;`?fsXLorg/python/compiler/Filename;W/home/trustin/Workspaces/sphinx-maven-plugin/target/update-sphinx/dist/past/__init__.pyorg/python/core/ThreadState?CodeLineNumberTableStackMap
SourceFileRuntimeVisibleAnnotations!LExIJO???+??+U??W+X??N-S-+?"N-2:+$?':+Y?)?N-+S--S-/S-+?"N-2:++?':-2:+-?':-2:+/?':+[?1?N+3-?'N+\?5?N+7-?'N+?;?A??UXY[\BC?2
&*?H*?N?M,+Q?N?U?W?XY??W?	Z[? ?LY\?^?`?f*?j?	kl?L?r?st?d*,-??v???4L?L?L?L????yzI{|zJ}zs?




© 2015 - 2025 Weber Informatics LLC | Privacy Policy