示例#1
0
    def parseGraphParams(params):
        """
        Parse params string into parts: key - value. Key may contain a dot.
        Sample params:
            param1
            Параметр2.subparam = 111
            Параметр3 = " bla bla bla"
            param4.sub.param2 = "111"
            param5 =' 222 '
            param7 = " sample 'bla bla bla' example"
            param8 = ' test "bla-bla-bla" test '
        """
        pattern = r"""((?P<name>[\w.]+)
   (\s*=\s*(?P<param>([-_\w.]+)|((?P<quote>["']).*?(?P=quote)) ) )?\s*)"""

        result = {}

        regex = re.compile(
            pattern,
            re.IGNORECASE | re.MULTILINE | re.DOTALL | re.VERBOSE
        )
        matches = regex.finditer(params)

        for match in matches:
            name = match.group("name")
            param = match.group("param")
            if param is None:
                param = u""

            result[name] = Command.removeQuotes(param)

        return result
示例#2
0
    def parseGraphParams(params):
        """
        Parse params string into parts: key - value. Key may contain a dot.
        Sample params:
            param1 Параметр2.subparam = 111 Параметр3 = " bla bla bla" param4.sub.param2 = "111" param5 =' 222 ' param7 = " sample 'bla bla bla' example" param8 = ' test "bla-bla-bla" test '
        """
        pattern = ur"""((?P<name>[\w.]+)
    (\s*=\s*(?P<param>([-_\w.]+)|((?P<quote>["']).*?(?P=quote)) ) )?\s*)"""

        result = {}

        regex = re.compile(
            pattern,
            re.IGNORECASE | re.MULTILINE | re.DOTALL | re.VERBOSE | re.UNICODE)
        matches = regex.finditer(params)

        for match in matches:
            name = match.group("name")
            param = match.group("param")
            if param is None:
                param = u""

            result[name] = Command.removeQuotes(param)

        return result