Metadata-Version: 2.1
Name: textfield_parser
Version: 0.0.10
Summary: Parsing Textfields
Home-page: https://github.com/thhapke/textfield_parser
Author: Thorsten Hapke
Author-email: thorsten.hapke@sap.com
License: UNKNOWN
Description: # textfield_parser
        Getting a string from a textfield and returns the parsed content.  
        
        ## read_list
        Reads a comma separated list and returns either the items or the remainder of the additional list when a text contains the modifier 'Not'. 
        
        def read_list(text,value_list=None,sep = ',', modifier_list = None)`
        
        
        ### Arguments 
        
        * **text** -string- from textfield that will be parsed
        * **value_list** -list- list from which the parsed text elements will be removed when there is a modifier *'NOT'*. 
        * **sep** -char- element separator in string
        * **modifier_list** -list- List of modifier for excluding the listed items from value_list
        Default: ['!', '~', 'not', 'Not', 'NOT']
        
        ### Return
        * List of parsed parameters
        
        
        ### Examples
        
        **Simple list: **
        
        * text = "'Hello', 'a list', separated by , me "  
        
        -> ['Hello', 'a list', 'separated by', 'me']
        
        **Not list**
        
        * text = "Not Mercedes, Renault, Citroen, Peugeaut, 'Rolls Royce'" 
        * value_list = ['Mercedes', 'Audi', 'VW', 'Skoda', 'Renault', 'Citroen', 'Peugeot', 'Rolls Royce']
        
        -> `['Audi', 'VW', 'Skoda', 'Peugeot'] `
         
        ## read_value_lists
        Reads a 'outer_sep'-separated list of a mapping with 'inner-sep' separated list and returns a dictionary with the 
        map as key and a list as value. 
        
        def read_value_lists(text,value_list=None,inner_sep = ',',outer_sep = ';',map_sep=':')`
        
        ### Arguments 
        
        * **text** -string- from textfield that will be parsed
        * **inner_sep** -char- element separator of value list 
        * **outer_sep** -char- list separator for the lists
        * **map_sep** -char- separates map from list
        
        ### Return
        * Dictionary of the keys and lists.
        
        ### Example
        text = "'Mercedes':expensive, German, respectable; Audi:'sportive, German, technology-advanced'; \
                            VW : 'people', 'solid', No1; Citroen:cool, Fantomas, CV2, elastic ; 'Rolls Rocye': royal,  \
                            British, 'very expensive', black"
        -> `{'Mercedes': ['expensive', 'German', 'respectable'], 'Audi': ['sportive', 'German', 'technology-advanced'], 
        'VW': ['people', 'solid', 'No1'], 'Citroen': ['cool', 'Fantomas', 'CV2', 'elastic'], 'Rolls Rocye': ['royal', 'British', 'very expensive', 'black']}
        Map :{'Mercedes': 'expensive', 'Audi': 'sportive', 'VW': 'people', 'Citroen': 'cool', 'Rolls Rocye': 'royal'}`
        
        
        ## read_map
        Reads a comma separated list of mappings and returns a dictionary. 
        
        `def read_map(text, sep=',')`
        
        ### Arguments
        * **text** -string- from textfield that will be parsed
        * **sep** -char- element separator in string
        
        ### Return
        * dictionary of parsed parameters
        
        ### Example
        text = "'Mercedes':expensive, Audi:'sportiv', VW : 'people', Citroen:cool, 'Rolls Rocye': royal"
        
        -> {'Mercedes': 'expensive', 'Audi': 'sportiv', 'VW': 'people', 'Citroen': 'cool', 'Rolls Rocye': 'royal'}`
        
        ## read_json
        Reads a json formatted string and return a dictionary 
        
        ### Arguments
        * **text** -string- json-string
        
        ### Return
        * dictionary of json
        
        ### Example
        json_text = "{\"Luxury Class\": {\"Mercedes\":\"expensive\",\"Rolls Rocye\": \"royal\"}, \"High Middle Class\":{\"Audi\":\"sportiv\"}, \"Middle Class\" : {\"Citroen\":\"cool\",\"VW\" : \"people\" }}"
        
        -> `{'Luxury Class': {'Mercedes': 'expensive', 'Rolls Rocye': 'royal'}, 'High Middle Class': {'Audi': 'sportiv'}, 'Middle Class': {'Citroen': 'cool', 'VW': 'people'}} 
        
        ## read_comparisons
        Parses a list of comparisons and returns a list of lists with 3 items: (left, comparison-operator, right). There is an internal mapping of comparison characters: {'!=':'!','==':'=','>=':'≥','=>':'≥','<=':'≤','=<':'≤'} 
        
        `def read_comparisons(text,sep = ',',formula_map = None)`
        
        ### Arguments
        * **text** -string- Textfield string
        * **sep** -char- element separator in string
        * **modifier_map** -dictionary- mapping of comparison strings to 1-char comparison. 
        Default: {'!=': '!', '==': '=', '>=': '≥', '=>': '≥', '<=': '≤', '=<': '≤'}
        `
        
        ### Return
        * List of 3 element lists
        
        ### Examples
        
        ' anna > 1.70, norbert != 900, cindy <= 1.65' 
        
        -> [['anna', '>', 1.7], ['norbert', '!', 900.0], ['cindy', '≤', 1.65]]`
        
        
        
        
Keywords: textfield parsing
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Description-Content-Type: text/markdown
