Guido van Rossum [Fri, 10 Mar 2000 22:55:40 +0000 (22:55 +0000)]
Marc-AAndre Lemburg: add new unicode files
Guido van Rossum [Fri, 10 Mar 2000 22:55:18 +0000 (22:55 +0000)]
Many changes for Unicode, by Marc-Andre Lemburg.
Guido van Rossum [Fri, 10 Mar 2000 22:53:23 +0000 (22:53 +0000)]
Unicode implementation by Marc-Andre Lemburg based on original code by
Fredrik Lundh.
Guido van Rossum [Fri, 10 Mar 2000 22:52:46 +0000 (22:52 +0000)]
Unicode character type helpers, written by Marc-Andre Lemburg.
Guido van Rossum [Fri, 10 Mar 2000 22:36:57 +0000 (22:36 +0000)]
Marc-Andre Lemburg: added
gencodec.py - Create Python codecs from Unicode mapping files
Guido van Rossum [Fri, 10 Mar 2000 22:35:06 +0000 (22:35 +0000)]
Marc-Andre Lemburg: added declarations for PyObject_AsCharBuffer,
PyObject_AsReadBuffer, PyObject_AsWriteBuffer.
Guido van Rossum [Fri, 10 Mar 2000 22:34:00 +0000 (22:34 +0000)]
Marc-Andre Lemburg: include unicodeobject.h and codecs.h
Guido van Rossum [Fri, 10 Mar 2000 22:33:32 +0000 (22:33 +0000)]
Marc-Andre Lemburg: add PyExc_UnicodeError
Guido van Rossum [Fri, 10 Mar 2000 22:33:05 +0000 (22:33 +0000)]
Unicode implementation by Marc-Andre Lemburg based on original code by Fredrik Lundh.
Guido van Rossum [Fri, 10 Mar 2000 22:32:23 +0000 (22:32 +0000)]
Python Codec Registry and support functions, by Marc-Andre Lemburg.
Guido van Rossum [Fri, 10 Mar 2000 22:30:29 +0000 (22:30 +0000)]
Part of the Unicode checkin for Marc-Andre Lemburg.
Some new configuration tests and a new option, --with-wctype-functions.
Greg Ward [Fri, 10 Mar 2000 02:02:44 +0000 (02:02 +0000)]
Catch up with change to CCompiler API: call 'create_static_lib()', not
'link_static_lib()'.
Greg Ward [Fri, 10 Mar 2000 01:57:51 +0000 (01:57 +0000)]
[from 2000-02-25] Second attempt at describing an installation scheme; this is
the simplified scheme that Guido proposed. Also already-obsolete,
and saved only for posterity.
Greg Ward [Fri, 10 Mar 2000 01:56:58 +0000 (01:56 +0000)]
[from 2000-02-23] Description of the baroque and already-obsolete
installation scheme that Fred Drake and I cooked up. Only saved for
posterity.
Greg Ward [Fri, 10 Mar 2000 01:49:26 +0000 (01:49 +0000)]
Renamed 'link_static_lib() to 'create_static_lib()', and rewrote it create
a static library (using lib.exe as found by '__init__()', hopefully through
registry entries pointing to DevStudio).
Greg Ward [Fri, 10 Mar 2000 01:48:32 +0000 (01:48 +0000)]
Renamed 'link_static_lib() to 'create_static_lib()'.
Jeremy Hylton [Thu, 9 Mar 2000 19:56:50 +0000 (19:56 +0000)]
a simple client-server framework for executing code in a different
process
not yet connected with IDLE
Fred Drake [Thu, 9 Mar 2000 15:54:52 +0000 (15:54 +0000)]
There are a few places which can raise DistutilsPlatformError; make
sure it's imported! ;)
Re-wrap the docstrings on get_python_inc() and get_python_lib() to be
closer to the "normal" Python style. See GvR's "style guide" on the
essays page (http://www.python.org/doc/essays/).
There should never be a space between a function name and the '(' that
opens the argument list (see the style guide again).
Greg Ward [Thu, 9 Mar 2000 03:16:05 +0000 (03:16 +0000)]
Added Joe Van Andel's 'get_python_inc()', adapted by me to supply
the platform-neutral include dir by default and with Mac support.
Added 'get_python_lib()', inspired by 'get_python_inc()'.
Rewrote 'get_config_h_filename()' and 'get_makefile_filename()'
in terms of 'get_python_inc()' and 'get_python_lib()'.
Changed '_init_nt()' and '_init_mac()' to use 'get_python_inc()' and
'get_python_lib()' for directory names.
Jack Jansen [Wed, 8 Mar 2000 16:58:15 +0000 (16:58 +0000)]
Handles were never disposed. Added an AutoDispose(onoff) method to control this.
Also added a Handle() function which is like Resource() but has auto-dispose on by default.
Barry Warsaw [Wed, 8 Mar 2000 15:18:35 +0000 (15:18 +0000)]
A bunch of changes, primarily to command line argument parsing
(inspired by Detlef Lannert). Specifically,
-k/--keyword no longer takes an optional argument to clear the
default keywords. Instead, use -K/--no-default-keywords to clear
them.
-n/--add-location also no longer takes an optional argument to set
the comment style. Instead, use -S/--style to set the comment
style to GNU or Solaris.
-o/--output can take `-' as the filename, meaning write to
standard output.
The inputfile name can also be `-' meaning read from standard in.
A few other changes include
Kludge to mark the file docstring as translatable. Since the
marking is to place _() around the docstring, and because we
actually have to define the _() function before we use it, this
means that we have to manually assign to __doc__ the output of
_(). This doesn't seem too bad because you'll only use this idiom
when translating a script's docstring (you really don't need to
translate most module docstrings).
Convert everything to string methods and do not import the string
module.
Bump the version number to 1.1
Jack Jansen [Tue, 7 Mar 2000 23:40:13 +0000 (23:40 +0000)]
Fixed multi-arg appends.
Guido van Rossum [Tue, 7 Mar 2000 18:51:49 +0000 (18:51 +0000)]
Override the Undo delegator to forbid any changes before the I/O mark.
It beeps if you try to insert or delete before the "iomark" mark.
This makes the shell less confusing for newbies.
Jeremy Hylton [Tue, 7 Mar 2000 17:56:47 +0000 (17:56 +0000)]
replace : with =
Jeremy Hylton [Tue, 7 Mar 2000 17:56:27 +0000 (17:56 +0000)]
rename the global IdleConfParser object from IdleConf to idleconf
standard usage is now from IdleConf import idleconf
Jeremy Hylton [Tue, 7 Mar 2000 17:55:32 +0000 (17:55 +0000)]
rename the global IdleConfParser object from IdleConf to idleconf
standard usage is now from IdleConf import idleconf
replace : with = in config.txt
Guido van Rossum [Tue, 7 Mar 2000 16:25:11 +0000 (16:25 +0000)]
Tweak the goto file/line command (in the right button menu in PyShell
and output windows) so that it if it doesn't succeed with the line
at the cursor, it tries the line before that. This is handy with
tracebacks, where my natural tendency is to click in the displayed
source line rather than in the file/line indicator just above it.
Now I can indulge this tendency.
I factored out a helper and changed the error handling so that a
non-existing file is treated as if the line didn't match -- this is
handy because some function calls (e.g. "foo.bar(1)") match the grep
pattern.
Guido van Rossum [Tue, 7 Mar 2000 15:54:45 +0000 (15:54 +0000)]
Patch by Moshe Zadka: remove the string special case in
PySequence_Contains() now that string objects have this code in their
tp_contains.
Guido van Rossum [Tue, 7 Mar 2000 15:53:43 +0000 (15:53 +0000)]
Patch by Moshe Zadka: move the string special case from abstract.c
here.
[Patch modified by GvR to keep the original exception.]
Guido van Rossum [Tue, 7 Mar 2000 15:52:01 +0000 (15:52 +0000)]
Add tests for char in string -- including required exceptions for
non-char in string.
Guido van Rossum [Tue, 7 Mar 2000 15:19:31 +0000 (15:19 +0000)]
Sjoerd Mullender:
The (relatively) new chunk module uses seek, not setpos. One instance
of the call still needed to be fixed.
Guido van Rossum [Tue, 7 Mar 2000 15:17:53 +0000 (15:17 +0000)]
Added a bunch of TODO items that recently came up in the idle-dev list.
Also removed a bunch of items
Guido van Rossum [Tue, 7 Mar 2000 15:05:50 +0000 (15:05 +0000)]
If we're in the current input and there's only whitespace beyond the
cursor, erase that whitespace first. This avoids a particularly
confusing case where hitting Return at the end of the command didn't
do what it was expected to do -- because it wasn't considered to be at
the end of the command. Now it is.
Fred Drake [Tue, 7 Mar 2000 14:05:16 +0000 (14:05 +0000)]
Fixed inet_ntoa() docstring.
Greg Ward [Tue, 7 Mar 2000 03:34:16 +0000 (03:34 +0000)]
Patch from Corran Webster <cwebster@nevada.edu> (tweaked for style by me):
changed 'copy_file()' to use the native Mac file copy routine.
Greg Ward [Tue, 7 Mar 2000 03:30:09 +0000 (03:30 +0000)]
Patch from Corran Webster <cwebster@nevada.edu>: add '_init_mac()'.
Greg Ward [Tue, 7 Mar 2000 03:27:08 +0000 (03:27 +0000)]
Added 'native_path()' for use on pathnames from the setup script: split on
slashes, and put back together again using the local directory separator.
Greg Ward [Tue, 7 Mar 2000 03:25:20 +0000 (03:25 +0000)]
Added '_nt_quote_args()' to deal with whitespace in command-line arguments
in a rather half-assed, but probably effective, way.
Guido van Rossum [Mon, 6 Mar 2000 21:08:08 +0000 (21:08 +0000)]
test_contains output
Guido van Rossum [Mon, 6 Mar 2000 21:00:29 +0000 (21:00 +0000)]
Test cases for __contains__ code, by Moshe Zadka.
Guido van Rossum [Mon, 6 Mar 2000 20:39:59 +0000 (20:39 +0000)]
Sjoerd Mullender:
When you set a breakpoint on a function with a multi-line argument
list, the breakpoint is actually set on the second line of the
arguments instead of the first line of the body. This patch fixes
that.
Jeremy Hylton [Mon, 6 Mar 2000 19:13:21 +0000 (19:13 +0000)]
compiler command-line interface moved here from compiler.pycodegen
Jeremy Hylton [Mon, 6 Mar 2000 19:12:33 +0000 (19:12 +0000)]
import compile function form pycodegen
Jeremy Hylton [Mon, 6 Mar 2000 19:10:54 +0000 (19:10 +0000)]
rename compile.py to pycodegen.py
fix imports
remove parse functions and visitor code
track name change: Classdef to Class
add some comments and tweak order of visitXXX methods
get rid of if __name__ == "__main__ section
Jeremy Hylton [Mon, 6 Mar 2000 19:04:14 +0000 (19:04 +0000)]
add a doc string
import some useful functions from contained modules
Jeremy Hylton [Mon, 6 Mar 2000 18:54:30 +0000 (18:54 +0000)]
fix import to refer to compiler package
Jeremy Hylton [Mon, 6 Mar 2000 18:53:14 +0000 (18:53 +0000)]
revise arguments for addCode method on lnotab. take several numbers
that are internally converted to chars, rather than taking a string.
Jeremy Hylton [Mon, 6 Mar 2000 18:50:48 +0000 (18:50 +0000)]
change node Classdef to Class
add doc string to transformer module
add two helper functions:
parse(buf) -> AST
parseFile(path) -> AST
Jeremy Hylton [Mon, 6 Mar 2000 18:49:31 +0000 (18:49 +0000)]
factor out the tree walking/visitor code that was in compile.py
Guido van Rossum [Mon, 6 Mar 2000 17:16:05 +0000 (17:16 +0000)]
Defer all the work to idle.py, which has recently become too
complicated to copy in-line here.
Jack Jansen [Mon, 6 Mar 2000 16:34:49 +0000 (16:34 +0000)]
Allow None as TimeBase value in TimeValue records (becomes NULL in C structure,
used for delta-t values by quicktime).
Barry Warsaw [Mon, 6 Mar 2000 14:52:18 +0000 (14:52 +0000)]
string_join(): Fix memory leaks discovered by Charles Waldman (and a
few other paths through the function that leaked).
Guido van Rossum [Mon, 6 Mar 2000 14:43:20 +0000 (14:43 +0000)]
In getdef(), don't die when the section doesn't exist.
Guido van Rossum [Mon, 6 Mar 2000 14:16:41 +0000 (14:16 +0000)]
Don't use 1.6-isms (s.startswith()) -- we want to distribute this
before 1.6 is out so it has to be compatible with 1.5.2.
Greg Ward [Mon, 6 Mar 2000 03:44:32 +0000 (03:44 +0000)]
Rewrote 'newer_pairwise(): more natural (and incompatible) interface,
simpler implementation.
Greg Ward [Mon, 6 Mar 2000 03:40:29 +0000 (03:40 +0000)]
Serious overhaul of the C compiler interface and the two classes that
implement it (so far):
* moved filename generation methods into CCompiler base class,
driven by data supplied by implementation classes
* moved a bunch of common code from UnixCCompiler to convenience
methods in CCompiler
* overhauled MSVCCompiler's compile/link methods to look and act
as much as possible like UnixCCompiler's, in order to regularize
both interface and behaviour (especially by using those new
convenience methods)
Greg Ward [Mon, 6 Mar 2000 03:37:45 +0000 (03:37 +0000)]
Don't pass 'keep_dir' to 'compile()' method of CCompiler -- no longer used.
Greg Ward [Mon, 6 Mar 2000 03:36:50 +0000 (03:36 +0000)]
Don't pass 'keep_dir' to 'compile()' method of CCompiler -- no longer used.
Don't assume that the 'libraries' and 'library_dirs' elements of the
build info dict are always lists.
Jeremy Hylton [Fri, 3 Mar 2000 23:08:09 +0000 (23:08 +0000)]
superceded by IdleConf/config.txt
Jeremy Hylton [Fri, 3 Mar 2000 23:06:45 +0000 (23:06 +0000)]
migrate to use of IdleConf and config files to set options
idle.py:
Load the config files before anything else happens
XXX Need to define standard way to get files relative to the
IDLE install dir
PyShell.py:
ColorDelegator.py:
Get color defns out of IdleConf instead of IdlePrefs
EditorWindow.py:
Replace hard-coded font & window size with config options
Get extension names via IdleConf.getextensions
extend.py:
Obsolete. Extensions defined in config file.
ParenMatch.py:
Use config file for extension options.
Revise comment about parser requirements.
Simplify logic on find returning None.
Jeremy Hylton [Fri, 3 Mar 2000 23:00:41 +0000 (23:00 +0000)]
default to cwd if os.environ['HOME'] does not exist
Jeremy Hylton [Fri, 3 Mar 2000 22:57:42 +0000 (22:57 +0000)]
a ConfigParser for idle and three configuration files
Jeremy Hylton [Fri, 3 Mar 2000 20:43:57 +0000 (20:43 +0000)]
allow comments beginning with ; in key: value as well as key = value
Jack Jansen [Fri, 3 Mar 2000 17:06:13 +0000 (17:06 +0000)]
Fixed parameters to a few time and timebase calls: InOut parameters were
inadvertantly seen as out-only.
Jack Jansen [Fri, 3 Mar 2000 16:03:06 +0000 (16:03 +0000)]
Added PutPixMapBytes() and GetPixMapBytes() functions that allow getting at
pixmap data.
Added an as_GrafPort() method to be able to use a GWorld as argument to
routines that expect a GrafPort.
Jack Jansen [Fri, 3 Mar 2000 16:01:11 +0000 (16:01 +0000)]
Added methods getdata() and putdata() to obtain the data in a bitmap.
Guido van Rossum [Fri, 3 Mar 2000 14:51:11 +0000 (14:51 +0000)]
Patch by Tim Peters:
Changes the one regexp in PyParse capable of making the re module blow the C
stack when passed unreasonable <0.9 wink> program text. Jeremy Hylton
provoked this with a program of the form:
x = (1,
2,
... # 9997 lines deleted here
10000,
)
Programs "like this" will no longer (no matter how many lines they contain)
trigger re death. OTOH, you can now make another class of unreasonable
program that will take much longer to parse.
Greg Ward [Fri, 3 Mar 2000 03:00:27 +0000 (03:00 +0000)]
Typo fix.
Greg Ward [Fri, 3 Mar 2000 03:00:02 +0000 (03:00 +0000)]
Fixed 'mkpath()' to accept empty string silently (it's just the current dir).
Fixed all DistutilsFileError messages to wrap file/dir names in quotes.
Jeremy Hylton [Thu, 2 Mar 2000 19:06:57 +0000 (19:06 +0000)]
paren matching extension. warning: in current version of IDLE, can
not run this extension and CallTips extension at the same time.
Jack Jansen [Thu, 2 Mar 2000 16:11:36 +0000 (16:11 +0000)]
A module to parse/generate MediaDescription handles as used by QuickTime. Only
generic, video and audio implemented for now.
Guido van Rossum [Thu, 2 Mar 2000 13:55:01 +0000 (13:55 +0000)]
Mark discovered a bug in his patch: he didn't *use* PyExc_WindowsError
in PyErr_SetFromWindowsErrWithFilename() like he intended to... :-)
Greg Ward [Thu, 2 Mar 2000 01:57:12 +0000 (01:57 +0000)]
Renamed 'build_lib' command to 'build_clib':
* replaced build_lib.py with build_clib.py
* renamed the class in build_clib.py
* changed all references to 'build_lib' command in other command classes
Greg Ward [Thu, 2 Mar 2000 01:49:45 +0000 (01:49 +0000)]
Changed '__rcsid__' to '__revision__'.
Greg Ward [Thu, 2 Mar 2000 01:32:21 +0000 (01:32 +0000)]
If the "build_lib" command built any C libraries, link with them all
when building extensions (uses build_lib's 'get_library_names()' method).
Ensure that the relative structure of source filenames is preserved in
the temporary build tree, eg. foo/bar.c compiles to
build/temp.<plat>/foo/bar.o.
Greg Ward [Thu, 2 Mar 2000 01:27:36 +0000 (01:27 +0000)]
Added command description.
Added 'build_clib' and 'build_temp' options (where to put C libraries
and where to put temporary compiler by-products, ie. object files).
Moved the call to 'check_library_list()' from 'run()' to 'finalize_options()'
-- that way, if we're going to crash we do so earlier, and we guarantee
that the library list is valid before we do anything (not just run).
Disallow directory separators in library names -- the compiled library
always goes right in 'build_clib'.
Added 'get_library_names()', so the "build_ext" command knows what
libraries to link every extension with.
Greg Ward [Thu, 2 Mar 2000 01:21:54 +0000 (01:21 +0000)]
In the 'compile()' method: preserve the directory portion of source
filenames when constructing object filenames, even if output_dir given --
eg. "foo/bar.c" will compile to "foo/bar.o" without an output_dir, and to
"temp/foo/bar.o" if output_dir is "temp".
Greg Ward [Wed, 1 Mar 2000 21:51:56 +0000 (21:51 +0000)]
Second attempt to fix the ctermid_r/tmpnam_r warnings: define USE_CTERMID_R
and USE_TMPNAM_R at the top of the file and refer to them later; this
catches a second reference to 'tmpnam_r' that I didn't spot first time around.
Greg Ward [Wed, 1 Mar 2000 18:59:47 +0000 (18:59 +0000)]
Fix compiler warning: only use "_r" form of 'ctermid()' and 'tmpnam()' when
building a threaded Python.
Guido van Rossum [Wed, 1 Mar 2000 15:06:53 +0000 (15:06 +0000)]
Got rid of silly "
123456789-..." lines in comments.
Greg Ward [Wed, 1 Mar 2000 14:43:49 +0000 (14:43 +0000)]
In compile/link methods: ensure that the directory we expect to be writing to
exists before calling the compiler/linker.
Greg Ward [Wed, 1 Mar 2000 14:43:12 +0000 (14:43 +0000)]
Added 'mkpath()' method: convenience wrapper around 'util.mkpath()' that adds
the compiler objects 'verbose' and 'dry_run' flags.
Greg Ward [Wed, 1 Mar 2000 14:42:07 +0000 (14:42 +0000)]
Added call to 'ensure_ready()' on the command object in
'Distribution.find_command_obj()'.
Greg Ward [Wed, 1 Mar 2000 14:40:15 +0000 (14:40 +0000)]
Added 'get_platform()' to construct a string that identifies the current
platform, using 'os.uname()' or 'sys.platform'.
Greg Ward [Wed, 1 Mar 2000 01:43:28 +0000 (01:43 +0000)]
Build reorg:
* 'build_dir' -> 'build_lib', which by default takes its value
straight from 'build_lib' in the 'build' command
* added 'build_temp' and 'inplace' options
* change 'build_extensions()' to put object files (compiler turds) in
'build_temp' dir
* complicated the name-of-extension-file shenanigans in
'build_extensions()' to support "in-place" extension building, i.e.
put the extension right into the source tree (handy for developers)
* added 'get_ext_fullname()', renamed 'extension_filename()' to
'get_ext_filename()', and tweaked the latter a bit -- all to support
the new filename shenanigans
Greg Ward [Wed, 1 Mar 2000 01:26:45 +0000 (01:26 +0000)]
Build reorg:
* 'build_lib' -> 'build_purelib'
* new 'build_lib' and 'build_temp' options
* use 'get_platform()' to initialize 'build_platlib' and 'build_temp'
Greg Ward [Wed, 1 Mar 2000 01:19:37 +0000 (01:19 +0000)]
Build reorg: change 'build_dir' option to 'build_lib'.
Guido van Rossum [Tue, 29 Feb 2000 15:52:40 +0000 (15:52 +0000)]
Patch by Fred Gansevles (the module's original author).
This patch fixes 3 small problems.
1) If a map is used which is generated with 'makedbm -a',
the trailing '\0' is now handled correctely.
2) The nis.maps() function skipped the first map in the output list.
3) The library '-lnsl' is added in Setup.in (needed on Linux glibc2 and
Solaris systems. Maybe on other systems too?)
[I note that this still doesn't work when you are using NIS+ --GvR]
Guido van Rossum [Tue, 29 Feb 2000 13:59:29 +0000 (13:59 +0000)]
Massive patch by Skip Montanaro to add ":name" to as many
PyArg_ParseTuple() format string arguments as possible.
Guido van Rossum [Tue, 29 Feb 2000 13:31:16 +0000 (13:31 +0000)]
Remove some redundant logic from walk() -- there's no need to check
for "." and "..", since listdir() no longer returns those.
Guido van Rossum [Tue, 29 Feb 2000 13:08:44 +0000 (13:08 +0000)]
Correct type error in getopt.error handling code.
Guido van Rossum [Tue, 29 Feb 2000 13:05:49 +0000 (13:05 +0000)]
Script by Tim Peters to discover illegal append() calls.
Guido van Rossum [Tue, 29 Feb 2000 13:00:16 +0000 (13:00 +0000)]
Fix multi-arg append().
Fred Drake [Tue, 29 Feb 2000 05:19:38 +0000 (05:19 +0000)]
Update portability information for the spawn*() functions and related
constants. Someone will need to fill in information on the spawn*()
functions that aren't listed.
Andrew M. Kuchling [Tue, 29 Feb 2000 00:10:24 +0000 (00:10 +0000)]
Fix a typo in a comment
Fred Drake [Mon, 28 Feb 2000 23:23:55 +0000 (23:23 +0000)]
Fix comments relating to the specific regexs used to parse section and
option names; errors noted by Greg Stein <gstein@lyra.org>.
Guido van Rossum [Mon, 28 Feb 2000 22:37:30 +0000 (22:37 +0000)]
Patch by Piers Lauder, who writes:
This patch is re: Lucas.Dejonge@awtpl.com.au: [Python-bugs-list] imaplib -
not complying with RFC (PR#218)
Lucas de Jonge reported that the code in imaplib that detects a read-write
to read-only change doesn't comply with RFC 2060.
Fred Drake [Mon, 28 Feb 2000 20:59:03 +0000 (20:59 +0000)]
(Finally!) Changes related to the ConfigParser/INI-file topics
discussed on c.l.py last January. Specifically:
- more characters allowed in section & option names
- if '=' is used to separate the option & value, the value can be
followed by a comment of the form '\s;'
Guido van Rossum [Mon, 28 Feb 2000 19:52:53 +0000 (19:52 +0000)]
Drop the support level for stdwin a notch -- the contents of
lib-stdwin is no longer installed.
Increase the support level for other obsolete modules a bit: install
lib-old by default. It still isn't in the path by default, but at
least it's easier to add to your $PYTHONPATH this way. (This makes
sense because in 1.6 we're much more aggressive with declaring modules
obsolete.)
Andrew M. Kuchling [Mon, 28 Feb 2000 17:25:14 +0000 (17:25 +0000)]
Fix use of list.append() with multiple arguments