Metadata-Version: 2.1
Name: yaml-walker
Version: 1.0.20
Summary: Data walker (in dot notation style) & filter (Xpath analog) for yaml look data structure
Home-page: https://github.com/doguz2509/YamlWalker
Author: Dmitry Oguz
Author-email: doguz2509@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Description-Content-Type: text/markdown
Requires-Dist: PyYAML

YamlWalker introduction
-----------------------
Provide comfortable interface for operate yaml data

Containing 2 main features:
* `YQuery`
* `YDict`

**YQuery**

Allow querying of Yaml file in `Xpath/XQuery` look alike style
Comfortable when path sub elements not pre-defined

**YDict**

Allow operate yaml data with dot notation style with extension 
to Ypath list items by property value
Suitable when path to desired sub element are static or well known

**Installation**

*From PIP*

[Link to PYPI] (https://pypi.org/project/yaml_walker/)

~~~
pip.exe install YamlWalker
~~~

*From GitHub*

[Lint to GiHub] (https://github.com/doguz2509/YamlWalker)

## Usage
```
file.yaml
---
node:
  nd_1:
    data:
      - id: 0
        name: node1
        type: str
        value: any value
      - id: 2
        name: node2
        type: str
        value: any str
        sub_data:
          item: any
          value: four
```
```
python

import yaml
from yaml_walker import api

with open(file.yaml) as fr:
    yaml_data = yaml.load(fr)

# YDict example
yaml_dict = api.YDict(yaml_data)
yaml_result = yaml_dict.node.hd_1.data['id>0']

# YQuery example
y_query = api.YQuery('yaml_data.node.hd_1.data[id>0]')
yaml_result = y_query(yaml_data)
```
```
shell script

python -m yaml_walker 'yaml_data.node.hd_1.data[id>0]' file.yaml

```
```
Result in all cases: 
    {
        id: 2
        name: node2
        type: str
        value: any str
        sub_data:
          item: any
          value: four
    }
```

