コード例 #1
0
def strsplitv(*args): ###splits the first arguments
    """
    .. function:: strsplitv(str[,formatting options]) -> [C1]

    Splits in rows *str* according to *formatting options*, default behavior is to split on space.
    It is a multiset operator that returns one column but many rows. :ref:`Formatting options<formattingopts>` are like in :func:`strsplit` function.

    .. seealso::

        * :ref:`tutmultiset` functions


    >>> sql("select strsplitv('First,Second,Third','dialect:csv')")
    C1
    ------
    First
    Second
    Third
    >>> sql("select strsplitv('First Second Third')")
    C1
    ------
    First
    Second
    Third
    """
    if len(args)<1:
        raise functions.OperatorError("strsplitv","strsplit operator: no input")

    arg=args[0]
    args=args[1:]
    try:
        largs, kargs = argsparse.parse(args,csvargs.boolargs,csvargs.nonstringargs,csvargs.needsescape)
    except Exception,e:
        raise functions.MadisError(e)
コード例 #2
0
ファイル: wcache.py プロジェクト: sofiakarb/exareme
    def __init__(self, tblist, boolargs, nonstringargs, needsescape, *args,
                 **envars):  # envars tablename, auto  , OPTIONAL []
        self.delayedexception = None
        self.tblist = tblist
        self.auto = False
        self.first = True
        self.schema = "create table %s('Error')" % (envars['tablename'])
        self.tablename = envars['tablename']
        self.description = None
        self.consdict = {}
        self.coldata = []
        self.rowids = []
        self.kdindex = None
        self.lastcalculatedidx = None
        self.ordered = False
        self.envarsdb = envars['db']

        self.innerjoin = True

        self.query = None
        self.keepcursor = True

        largs, kargs = [], dict()
        try:
            largs, kargs = argsparse.parse(args, boolargs, nonstringargs,
                                           needsescape)
        except Exception, e:
            raise functions.MadisError(e)
コード例 #3
0
ファイル: kdwcache.py プロジェクト: XristosMallios/cache
    def __init__(
        self, tblist, boolargs, nonstringargs, needsescape, *args, **envars
    ):  # envars tablename, auto  , OPTIONAL []
        self.delayedexception = None
        self.tblist = tblist
        self.auto = False
        self.first = True
        self.schema = "create table %s('Error')" % (envars["tablename"])
        self.tablename = envars["tablename"]
        self.description = None
        self.consdict = {}
        self.coldata = []
        self.rowids = []
        self.kdindex = None
        self.lastcalculatedidx = None
        self.ordered = False
        self.envarsdb = envars["db"]

        self.innerjoin = True

        self.query = None
        self.keepcursor = True

        largs, kargs = [], dict()
        try:
            largs, kargs = argsparse.parse(args, boolargs, nonstringargs, needsescape)
        except Exception, e:
            raise functions.MadisError(e)
コード例 #4
0
ファイル: vtout.py プロジェクト: tasosgig/iis
def maincode(args, boolargs, nonstringargs, needsescape, notsplit, db, func,
             retalways, connectionhandler):
    autostring = 'automatic_vtable'
    try:
        largs, kargs = argsparse.parse(args, boolargs, nonstringargs,
                                       needsescape, notsplit)
    except Exception, e:
        raise functions.MadisError(e)
コード例 #5
0
 def full_parse(self,
                args,
                boolargs=None,
                nonstringargs=None,
                needsescape=None,
                notsplit=None):
     return argsparse.parse(args, boolargs, nonstringargs, needsescape,
                            notsplit)
 def __init__(self,vtable,tblist,boolargs,nonstringargs,needsescape,notsplit,staticschema,*args,**envars): # envars tablename, auto  , OPTIONAL []
     self.delayedexception=None
     self.tblist=tblist
     self.auto=False
     self.first=True
     self.staticschema=staticschema
     self.schema="create table %s('Error')" % (envars['tablename'])
     self.tablename=envars['tablename']
     self.envars=envars
     largs, kargs = [] ,dict()
     try:
         largs, kargs = argsparse.parse(args,boolargs,nonstringargs,needsescape,notsplit)
     except Exception,e:
         raise #functions.MadisError(e)
コード例 #7
0
 def __init__(self,vtable,tblist,boolargs,nonstringargs,needsescape,notsplit,staticschema,*args,**envars): # envars tablename, auto  , OPTIONAL []
     self.delayedexception=None
     self.tblist=tblist
     self.auto=False
     self.first=True
     self.staticschema=staticschema
     self.schema="create table %s('Error')" % (envars['tablename'])
     self.tablename=envars['tablename']
     self.envars=envars
     largs, kargs = [] ,dict()
     try:
         largs, kargs = argsparse.parse(args,boolargs,nonstringargs,needsescape,notsplit)
     except Exception,e:
         raise #functions.MadisError(e)
コード例 #8
0
def strjoin(*args):

    """
    .. function:: strjoin(value1,value2,....[,'params',formatting options])

    Returns a string with *value1,value2,....* formatted according to :ref:`formatting options<formattingopts>`.
    Literal parameter 'params' must precede *formating options*. Default formatting is comma separated values.

    Examples:

    >>> sql("select strjoin('First','Second','Third',100) as joinedvals")
    joinedvals
    -----------------------
    First,Second,Third,100
    >>> sql("select strjoin('First','Second','Third',100,'params','delimiter: ') as joinedvals")
    joinedvals
    -----------------------
    First Second Third 100
    >>> sql("select strjoin('lola',2,10,'llalallall','params','delimiter:%','quoting:QUOTE_ALL') as joinedvals")
    joinedvals
    -----------------------------
    "lola"%"2"%"10"%"llalallall"
    >>> sql("select strjoin('value, with delimiter ',2,10,'new','params','dialect:csv') as joinedvals")
    joinedvals
    ----------------------------------
    "value, with delimiter ",2,10,new
    """
    if None in args:
        return None
    sargs=[]
    params=False
    for i in xrange(len(args)):
        if args[i]=='params':
            args=args[(i+1):]
            params=True
            break
        else:
            sargs.append(args[i])
    try:
        if params:
            largs, kargs = argsparse.parse(args,csvargs.boolargs,csvargs.nonstringargs,csvargs.needsescape)
        else:
            largs=[]
            kargs=dict()
    except Exception,e:
        raise functions.MadisError(e)
コード例 #9
0
ファイル: vtout.py プロジェクト: LetschM/iis
def maincode(args,boolargs,nonstringargs,needsescape,notsplit,db,func,retalways,connectionhandler):
    autostring='automatic_vtable'
    try:
        largs, kargs = argsparse.parse(args,boolargs,nonstringargs,needsescape,notsplit)
    except Exception,e:
        raise functions.MadisError(e)
コード例 #10
0
ファイル: vtbase.py プロジェクト: HBPSP8Repo/madis
 def full_parse(self,args,boolargs=None,nonstringargs=None,needsescape=None, notsplit=None):
     return argsparse.parse(args,boolargs,nonstringargs,needsescape,notsplit)
コード例 #11
0
def strsplit(*args): ###splits the first arguments
    """
    
    .. function:: strsplit(str[,formatting options]) -> [C1,C2,....]

    Splits *str* according to *formatting options*, default behavior is to split on space.
    It is a multiset operator that returns one row.

    .. seealso::

        * :ref:`tutmultiset` functions

    .. _formattingopts:

    Formatting options:

    :dialect: *tsv/csv*

        Formats field as tab/comma separated values with minimal quoting

    :delimiter:

        A string used to separate fields. It defaults to ' '

    :doublequote: *t/f*

        Controls how instances of quotechar appearing inside a
        field should be themselves be quoted. When True, the
        character is doubled. When False, the escapechar is used as
        a prefix to the quotechar. It defaults to True.
        On output, if doublequote is False and no escapechar is set,
        Error is raised if a quotechar is found in a field

    :escapechar:

        A one-character string used by the writer to escape the delimiter
        if quoting is set to QUOTE_NONE and the quotechar if doublequote is False.
        On reading, the escapechar removes any special meaning from the following
        character. It defaults to None, which disables escaping.

    :quotechar:

        A one-character string used to quote fields containing special characters,
        such as the delimiter or quotechar, or which contain new-line characters.
        It defaults to '"'.

    :quoting:

        Controls when quotes should be generated by the writer and recognized by
        the reader. It can take on any of the QUOTE_* constants and defaults to
        QUOTE_MINIMAL. Possible values are QUOTE_ALL, QUOTE_NONE, QUOTE_MINIMAL, QUOTE_NONNUMERIC

    :skipinitialspace: *t/f*

        When True, whitespace immediately following the delimiter is ignored. The default is False

    :Returned multiset schema:
        - *C1,C2...*
            Text values produced from splitting.

    Examples:

    >>> sql("select strsplit('First,Second,Third', 'dialect:csv')")
    C1    | C2     | C3
    ----------------------
    First | Second | Third
    >>> sql("select strsplit('-First-%Second%-Third-','delimiter:%','quotechar:-')")
    C1    | C2     | C3
    ----------------------
    First | Second | Third

.. doctest::
    :hide:

    >>> sql("select strsplit('-First-%Second%-Third-','quotechar:-p')")  #doctest:+ELLIPSIS +NORMALIZE_WHITESPACE
    Traceback (most recent call last):
    ...
    MadisError: Madis SQLError:
    "quotechar" must be an 1-character string

    """    
    if len(args)<1:
        raise functions.OperatorError("strsplit"," no input")

    arg=args[0]
    args=args[1:]
    try:
        largs, kargs = argsparse.parse(args,csvargs.boolargs,csvargs.nonstringargs,csvargs.needsescape)
    except Exception,e:
        raise functions.MadisError(e)