Metadata-Version: 2.1
Name: oelint_parser
Version: 2.0.0
Summary: Alternative parser for bitbake recipes
Home-page: https://github.com/priv-kweihmann/oelint-parser
Author: Konrad Weihmann
Author-email: kweihmann@outlook.com
License: UNKNOWN
Description: oelint-parser
        =============
        
        ![Build
        status](https://github.com/priv-kweihmann/oelint-parser/workflows/Python%20package/badge.svg)
        [![PyPI
        version](https://badge.fury.io/py/oelint-parser.svg)](https://badge.fury.io/py/oelint-parser)
        [![Python
        version](https://img.shields.io/pypi/pyversions/oelint-parser)](https://img.shields.io/pypi/pyversions/oelint-parser)
        [![Downloads](https://img.shields.io/pypi/dm/oelint-parser)](https://img.shields.io/pypi/dm/oelint-parser)
        
        alternative parser for bitbake recipes
        
        API documentation
        -----------------
        
        Find the full API docs [here](docs/api-documentation.md)
        
        Examples
        --------
        
        ``` {.python}
        from oelint_parser.cls_stash import Stash
        
        # create an stash object
        _stash = Stash()
        
        # add any bitbake like file
        _stash.AddFile("/some/file")
        
        # Resolves proper cross file dependencies
        _stash.Finalize()
        
        # Use _stash.GetItemsFor() method to filter the stash
        ```
        
        ### Get variables from the files
        
        To get variables from the stash object do
        
        ``` {.python}
        from oelint_parser.cls_item import Variable
        
        # get all variables of the name PV from all files
        for x in _stash.GetItemsFor(attribute=Variable.ATTR_VAR, attributeValue="PV"):
            print(x)
        ```
        
        this returns the raw object representation
        
        ### Expand raw variables
        
        ``` {.python}
        from oelint_parser.cls_item import Variable
        from oelint_parser.helper_files import expand_term
        
        # get all variables of the name PV from all files
        for x in _stash.GetItemsFor(attribute=Variable.ATTR_VAR, attributeValue="PV"):
            # raw unexpanded variable
            print(x.VarValue)
            # raw unexpanded variable without quotes
            print(x.VarValueStripped)
            # expanded variable
            print(expand_term(stash, "/some/file", x.VarValueStripped))
            # single items from a list
            print(x.get_items())
            # expanded single items from a list
            print([expand_term(stash, "/some/file", y) for y in x.get_items()])
        ```
        
        Working with constants
        ----------------------
        
        For this library a few basic sets of constant information, such as basic
        package definitions, known machines and functions are needed. Those can
        be easily modified, in case you have additional information to
        add/remove/modify.
        
        The actual database is not accessible by the user, but a few methods in
        the `oelint_parse.constants.CONSTANT` class do exist. Each of the method
        accepts a dictionary with the same key mapping as listed below
        (multilevel paths are displayed a JSON pointer)
        
          ---------------------------------------------------------------------------------------------------------------------------
          key                          type   description                getter for information
          ---------------------------- ------ -------------------------- ------------------------------------------------------------
          functions/known              list   known functions            `oelint_parse.constants.CONSTANT.FunctionsKnown`
        
          functions/order              list   preferred order of core    `oelint_parse.constants.CONSTANT.FunctionsOrder`
                                              functions                  
        
          images/known-classes         list   bbclasses to be known to   `oelint_parse.constants.CONSTANT.ImagesClasses`
                                              be used in images          
        
          images/known-variables       list   variables known to be used `oelint_parse.constants.CONSTANT.ImagesVariables`
                                              in images                  
        
          replacements/machines        list   known machine overrides    `oelint_parse.constants.CONSTANT.MachinesKnown`
        
          replacements/mirrors         dict   known mirrors              `oelint_parse.constants.CONSTANT.MirrorsKnown`
        
          variables/known              list   known variables            `oelint_parse.constants.CONSTANT.VariablesKnown`
        
          variables/mandatory          list   variables mandatory to a   `oelint_parse.constants.CONSTANT.VariablesMandatory`
                                              recipe                     
        
          variables/order              list   preferred order of         `oelint_parse.constants.CONSTANT.VariablesOrder`
                                              variables                  
        
          variables/protected          list   variables not to be used   `oelint_parse.constants.CONSTANT.VariablesProtected`
                                              in recipes                 
        
          variables/protected-append   list   variables not to be used   `oelint_parse.constants.CONSTANT.VariablesProtectedAppend`
                                              in bbappends               
        
          variables/suggested          list   suggested variable in a    `oelint_parse.constants.CONSTANT.VariablesSuggested`
                                              recipe                     
        
          sets/base                    dict   base set of variables      `oelint_parse.constants.CONSTANT.SetsBase`
                                              always used for value      
                                              expansion                  
          ---------------------------------------------------------------------------------------------------------------------------
        
        ### Backward compatibility with rule/constant file
        
        Originally offered support for **rule** or **constant** files is offered
        by the two new methods
        
        -   `oelint_parse.constants.CONSTANT.AddFromRuleFile`
        -   `oelint_parse.constants.CONSTANT.AddFromConstantFile`
        
        **NOTE** these interfaces are considered *legacy* interfaces and will be
        removed at some point in the future
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Provides-Extra: dev
