Welcome, guest | Sign In | My Account | Store | Cart
# compatibility2.py
#
# Backwards compatibility for text mode Python 1.4.0 to 3.2.2...
# Some simple lines that work for all these versions on the
# classic AMIGA, E-UAE, PCLinuxOS 2009, Debian 6.0.0, Windows XP and
# Vista and WinUAE. Note, classic AMIGAs and derivatives only reach
# Python version 2.4.6. AROS goes to version 2.5.2.
# Python versions checked against, 1.4.0, 2.0.1, 2.4.2, 2.5.2, 2.6.1
# 2.6.6, 2.7.2, 3.0.1, 3.1.3 and 3.2.2.
# These are to go along with these pointers...
# http://code.activestate.com/recipes/577836-raw_input-for-all-versions-of-python/?in=lang-python
# http://code.activestate.com/recipes/577868-backwards-compatibility/?in=lang-python
# ===================================================================
# Some more ASCII print statements that work for general usage...
# Remember this statement from the above pointer...
#
# "Regular expressions DO NOT work nor print statements/functions with
# variables inside."
#
# This does NOT work for example:-
# >>> work=123.456
# >>> print("This does NOT work... ",work," ...for all versions of Python!")
#
# Well this is NOT STRICTLY TRUE as there is always a way around such
# a problem.
#
# For example suppose you need to display a floating point number.
somefloat=123.456
somefloatstr=str(somefloat)
print("The floating point number is "+somefloatstr+" to 3 decimal places...")
# OR......
# ......using two text variables for the first and last parts...
textone="The floating point number is "
texttwo=" to 3 decimal places..."
print(textone+somefloatstr+texttwo)
# OR......
# ......using one of the text variables and a fixed string for the
# first and last parts.
print(textone+somefloatstr+" to 3 decimal places...")
print("\nEasy eh! ;o)\n")
# ===================================================================
# Three simple methods of displaying some random variable(s) for all
# Python versions. Therefore as long as EVERYTHING is of exactly the
# same "type()", in these cases literal strings, then they can be
# displayed in ANY text mode Python shell using the version 3.x.x
# "print()" function.
# ===================================================================
# Create a pure string from the above values.
text=textone+somefloatstr+texttwo
# So we have now proceeded to generate an ultra simple MS-DOS(TM)
# style ECHO function that works for all versions...
def echo(literalstringonly):
	# The line below does not work with 1.4.0 to 2.2.0 so ignored...
	# if isinstance(literalstringonly,str)==True: print(literalstringonly)
	# The next two lines make this function fully backwards compatible...
	checkforstring=str(type(literalstringonly))
	if checkforstring=="<type 'string'>" or checkforstring=="<type 'str'>" or checkforstring=="<class 'str'>":
		print(literalstringonly)
	else: print("Error in echo() function! Only a pure string is allowed...")
# This new echo() function now divorces itself from the print()
# function's ability to do anything but display pure strings.
# Use the new, verson independant, echo function... 
echo("This echo() function using double quotes.\r\n")
echo('This echo() function using single quotes.\r\n')
# Print the text string variable.
echo(text)
# Add a newline...
echo("")
# Adding to pure strings inside the echo() function...
text="(C)2011, B.Walker, G0LCU.\r\n"
echo(text+"Now issued as Public Domain...\r\n")
# Now test with a floating point number...
number=123.456
echo("The next line should present an error report on screen!")
echo(number)
echo("\nFinally things like echo(text[0]+text[1]+text[2]) still work, see code...")
echo(text[0]+text[1]+text[2])
# ===================================================================
# There will be more to come... ;o)
# Enjoy finding simple solutions to often very difficult problems. ;)

History