ArgParser (Jython API documentation)
Date: 2024-08-18

org.python.core

## Class ArgParser

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

-     public class ArgParser
      extends java.lang.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(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String p0)` Create an ArgParser for a one-argument function.
    `ArgParser(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String[] paramnames)` Create an ArgParser for a multi-argument function.
    `ArgParser(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String[] paramnames, int minargs)`
    `ArgParser(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String[] paramnames, int minargs, boolean takesZeroArgs)`
    `ArgParser(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String p0, java.lang.String p1)` Create an ArgParser for a two-argument function.
    `ArgParser(java.lang.String funcname, PyObject[] args, java.lang.String[] kws, java.lang.String p0, java.lang.String p1, java.lang.String p2)` Create an ArgParser for a three-argument function.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `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`.
    `java.lang.String` | `getString(int pos)` Return a required argument as a String.
    `java.lang.String` | `getString(int pos, java.lang.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(java.lang.String funcname,
                           PyObject[] args,
                           java.lang.String[] kws,
                           java.lang.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(java.lang.String funcname,
                           PyObject[] args,
                           java.lang.String[] kws,
                           java.lang.String p0,
                           java.lang.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(java.lang.String funcname,
                           PyObject[] args,
                           java.lang.String[] kws,
                           java.lang.String p0,
                           java.lang.String p1,
                           java.lang.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(java.lang.String funcname,
                           PyObject[] args,
                           java.lang.String[] kws,
                           java.lang.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(java.lang.String funcname,
                           PyObject[] args,
                           java.lang.String[] kws,
                           java.lang.String[] paramnames,
                           int minargs)

    - #### ArgParser

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

  - ### Method Detail

    - #### getString

          public java.lang.String getString(int pos)

      Return a required argument as a String.
      Parameters:
        `pos` - The position of the .. First argument is numbered 0.

    - #### getString

          public java.lang.String getString(int pos,
                                            java.lang.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.

Jython homepage