org.python.core

## Class ArgParser

- java.lang.Object
- - org.python.core.ArgParser

    public class ArgParser
    extends Object

A utility class for handling mixed positional and keyword arguments. Typical usage:

       public MatchObject search(PyObject[] args, String[] kws) {
           ArgParser ap = new ArgParser("search", args, kws,
                                        "pattern", "pos", "endpos");
           String string = ap.getString(0);
           int start     = ap.getInt(1, 0);
           int end       = ap.getInt(2, string.length());
           ...

### Constructor Summary

Constructors
Constructor and Description
`ArgParser(String funcname, PyObject[] args, String[] kws, String p0)` Create an ArgParser for a one-argument function.
`ArgParser(String funcname, PyObject[] args, String[] kws, String[] paramnames)` Create an ArgParser for a multi-argument function.
`ArgParser(String funcname, PyObject[] args, String[] kws, String[] paramnames, int minargs)`
`ArgParser(String funcname, PyObject[] args, String[] kws, String[] paramnames, int minargs, boolean takesZeroArgs)`
`ArgParser(String funcname, PyObject[] args, String[] kws, String p0, String p1)` Create an ArgParser for a two-argument function.
`ArgParser(String funcname, PyObject[] args, String[] kws, String p0, String p1, String p2)` Create an ArgParser for a three-argument function.

### Method Summary

Methods
`int` `getIndex(int pos)` Return an required argument as an index.
`int` `getIndex(int pos, int def)` Return an optional argument as an index.
`int` `getInt(int pos)` Return a required argument as an int.
`int` `getInt(int pos, int def)` Return an optional argument as an int.
`PyObject` `getList(int pos)` Return the remaining arguments as a tuple.
`PyObject` `getPyObject(int pos)` Return a required argument as a PyObject.
`PyObject` `getPyObject(int pos, PyObject def)` Return an optional argument as a PyObject.
`PyObject` `getPyObjectByType(int pos, PyType type)` Return a required argument as a PyObject, ensuring the object is of the specified type.
`PyObject` `getPyObjectByType(int pos, PyType type, PyObject def)` Return an optional argument as a PyObject, or return the default value provided, which may be `null`.
`String` `getString(int pos)` Return a required argument as a String.
`String` `getString(int pos, String def)` Return an optional argument as a String.
`void` `noKeywords()` Ensure no keyword arguments were passed, raising a TypeError if so.

### Methods inherited from class java.lang.Object

`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### ArgParser

    public ArgParser(String funcname,
             PyObject[] args,
             String[] kws,
             String p0)

Create an ArgParser for a one-argument function.

Parameters:
  `funcname` - Name of the function. Used in error messages.
  `args` - The actual call arguments supplied in the call.
  `kws` - The actual keyword names supplied in the call.
  `p0` - The expected argument in the function definition.

#### ArgParser

    public ArgParser(String funcname,
             PyObject[] args,
             String[] kws,
             String p0,
             String p1)

Create an ArgParser for a two-argument function.

Parameters:
  `funcname` - Name of the function. Used in error messages.
  `args` - The actual call arguments supplied in the call.
  `kws` - The actual keyword names supplied in the call.
  `p0` - The first expected argument in the function definition.
  `p1` - The second expected argument in the function definition.

#### ArgParser

    public ArgParser(String funcname,
             PyObject[] args,
             String[] kws,
             String p0,
             String p1,
             String p2)

Create an ArgParser for a three-argument function.

Parameters:
  `funcname` - Name of the function. Used in error messages.
  `args` - The actual call arguments supplied in the call.
  `kws` - The actual keyword names supplied in the call.
  `p0` - The first expected argument in the function definition.
  `p1` - The second expected argument in the function definition.
  `p2` - The third expected argument in the function definition.

#### ArgParser

    public ArgParser(String funcname,
             PyObject[] args,
             String[] kws,
             String[] paramnames)

Create an ArgParser for a multi-argument function.

Parameters:
  `funcname` - Name of the function. Used in error messages.
  `args` - The actual call arguments supplied in the call.
  `kws` - The actual keyword names supplied in the call.
  `paramnames` - The list of expected argument in the function definition.

#### ArgParser

    public ArgParser(String funcname,
             PyObject[] args,
             String[] kws,
             String[] paramnames,
             int minargs)

#### ArgParser

    public ArgParser(String funcname,
             PyObject[] args,
             String[] kws,
             String[] paramnames,
             int minargs,
             boolean takesZeroArgs)

### Method Detail

#### getString

    public String getString(int pos)

Return a required argument as a String.

Parameters:
  `pos` - The position of the .. First argument is numbered 0.

#### getString

    public String getString(int pos,
                   String def)

Return an optional argument as a String.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### getInt

    public int getInt(int pos)

Return a required argument as an int.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### getInt

    public int getInt(int pos,
             int def)

Return an optional argument as an int.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### getIndex

    public int getIndex(int pos)

Return an required argument as an index.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### getIndex

    public int getIndex(int pos,
               int def)

Return an optional argument as an index.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### getPyObject

    public PyObject getPyObject(int pos)

Return a required argument as a PyObject.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### getPyObject

    public PyObject getPyObject(int pos,
                       PyObject def)

Return an optional argument as a PyObject.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### getPyObjectByType

    public PyObject getPyObjectByType(int pos,
                             PyType type)

Return a required argument as a PyObject, ensuring the object is of the specified type.

Parameters:
  `pos` - the position of the argument. First argument is numbered 0
  `type` - the desired PyType of the argument
Returns:
  the PyObject of PyType type

#### getPyObjectByType

    public PyObject getPyObjectByType(int pos,
                             PyType type,
                             PyObject def)

Return an optional argument as a PyObject, or return the default value provided, which may be `null`. If the returned value is not `null`, it must be of the specified type.

Parameters:
  `pos` - the position of the argument. First argument is numbered 0
  `type` - the desired PyType of the argument
  `def` - to return if the argument at pos was not given (null allowed)
Returns:
  the PyObject of PyType type

#### getList

    public PyObject getList(int pos)

Return the remaining arguments as a tuple.

Parameters:
  `pos` - The position of the argument. First argument is numbered 0.

#### noKeywords

    public void noKeywords()

Ensure no keyword arguments were passed, raising a TypeError if so.