
			LOG of Changes of PypeR


Changes between version PypeR-1.0.4 to PypeR-1.1.0:

	on Mon Sep 13 14:22:47 PDT 2010

	1. Removed the module "pipeio.py" (the modification to the subprocess
		package by Josiah Carlson). Therefore, the package "pywin32" is no
		longer need on Windows.

	2. Comparing to PypeR-1.0.X, which can only run with Python-2.X.X (>= 2.4),
		now PypeR runs with Python 2.X.X (>= 2.3), Python 3.X.X, Jython, and
		IronPython.

	3. The parameters "wait0" and "wait" have been cancelled for the "R" class
		and the "runR" function. Now R can be initialized a little faster.


Changes between version PypeR-1.0.3 to PypeR-1.0.4:

	on Thu Sep  9 09:53:05 PDT 2010

	1. Fixed the bug in parsing R command with backslash or space in the PATH -
		now the following code works:

		>>> r = R(RCMD="C:\\Program Files\\R\\R-2.X.X\\bin\\R")


Changes between version PypeR-1.0.2 to PypeR-1.0.3:

	on Fri Sep  3 16:30:12 PDT 2010:

	1. Fixed the bug in passing R values to Python which happens on Windows
		aftersome library (e.g. "fastICA") change newline from '\r\n' to '\n'.

	2. Fixed the bug in passing R values with the backslash character ('\') to
		Python.

	3. Fixed the bug on Windows in parsing user library for R.

	4. change the default value for parameter "use_dict". Now "use_dict" can be
		one of the three values: None, True, False. None is the default value,
		which allows a Python dictionary returned for R named list without
		replicated name, or a Python list if replicated names exist. Here is
		some examples:

		>>> from pyper import *
		>>> r = R() # the default value for use_dict is None
		>>> r('a <- list(aa=3, bb=4, cc=5, aa=6)') # with replicated name "aa"
		'try({a <- list(aa=3, bb=4, cc=5, aa=6)})\r\n'
		>>> r.a
		[('aa', 3), ('bb', 4), ('cc', 5), ('aa', 6)]
		>>> r.get('a', use_dict=False)
		[('aa', 3), ('bb', 4), ('cc', 5), ('aa', 6)]
		>>> r.get('a', use_dict=True)
		{'aa': 6, 'cc': 5, 'bb': 4}
		>>> r.use_dict = True # change the default value from None to True
		>>> r.a
		{'aa': 6, 'cc': 5, 'bb': 4}
		>>> r.get('a')
		{'aa': 6, 'cc': 5, 'bb': 4}
		>>> r.get('a', use_dict=False)
		[('aa', 3), ('bb', 4), ('cc', 5), ('aa', 6)]
		>>> r.get('a', use_dict=None) # "None" here means that r.use_dict should be used!
		{'aa': 6, 'cc': 5, 'bb': 4}
		>>> r.use_dict = None # recover the default value
		>>> r.a
		[('aa', 3), ('bb', 4), ('cc', 5), ('aa', 6)]


Changes between version PypeR-1.0.1 to PypeR-1.0.2:

	on Fri Sep 3 2010:

	1. Fix bugs in converting logical data in R to Python

	2. R Objects other than factor, NULL, vector, matrix, data.frame, or list,
		will be converted to character using the function as.character
	
	3. add the optional parameter "use_dict" for the R class and for the "get"
		method of the R class.


Changes between version PypeR-1.0 to PypeR-1.0.1:

	1. Redict stderr to stdout for R. This can be disabled by setting
		"return_err=False" when initialize a R instance, e.g., 
		"r = R(return_err=False)"

	2. In order that user settings can be used by R, R is launched with
		arguments "--quiet --no-save --no-restore" instead of "--vanilla",
		which equal to "--no-save --no-restore --no-site-file --no-init-file
		--no-environ".

	3. A version variable is added for the module: __version__ = 1.01

	4. Suppressed the popup terminal window on Windows.

	5. Added the user-specific library PATH in IDLE on Windows.
