Metadata-Version: 2.1
Name: teed
Version: 0.0.5
Summary: Telco engineering data library
Home-page: https://github.com/joaomg/teed
Author: joaomg
Author-email: joaomg@gmail.com
License: UNKNOWN
Keywords: telco data engineering,telco cm,telco pm,bulkcm,meas,mdc,ETSI,3gpp
Platform: UNKNOWN
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Telecommunications Industry
Classifier: License :: OSI Approved :: GNU Affero General Public License v3 or later (AGPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: Text Processing :: Markup :: XML
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: lxml (>=4.6.3)
Requires-Dist: pyyaml (>=5.4.1)
Requires-Dist: typer (>=0.3.2)
Provides-Extra: dev
Requires-Dist: black ; extra == 'dev'
Requires-Dist: pylama ; extra == 'dev'
Requires-Dist: pytest ; extra == 'dev'
Requires-Dist: pytest-cov ; extra == 'dev'

# teed
Telco engineering data library

Probe and transform raw telco files into CSV.

### A simple BulkCm file parsing

```shell
(env) joaomg@mypc:~/teed$ python -m teed bulkcm parse data/bulkcm.xml data
Parsing data/bulkcm.xml
Created data/ManagedElement.csv
Created data/ManagementNode.csv
Created data/SubNetwork.csv
Time: 0:00:00.000856
(env) joaomg@mypc:~/teed$
```

### Install from source
```shell
git clone https://github.com/joaomg/teed.git
cd teed
pip install -e .
```

### Probe a file

```shell
python -m teed bulkcm probe data/bulkcm_with_vsdatacontainer.xml
```

### Parse a file output it's content to CSV files

```shell
python -m teed bulkcm parse data/bulkcm_empty.xml data
python -m teed bulkcm parse data/bulkcm_with_header_footer.xml data
python -m teed bulkcm parse data/bulkcm_with_vsdatacontainer.xml data
```

### Usage

Beside command-line teed can be used as a library:
```python
from teed import bulkcm, meas

## bulkcm
stream = bulkcm.BulkCmParser.stream_to_csv("data")
bulkcm.parse("data/bulkcm.xml", "data", stream)

## meas 
meas.parse("data/mdc*xml", "data")
```

The bulkcm parser extracts content from a single file. 

While the meas parser, in a single run, can process any number of XML files using wildcards and directory recursion.

The bulkcm and meas parsers also differ on CSV file creation:

- bulkcm deletes previously existing CSV files

- meas appends to existing CSV files

Take notice of these differences when calling the parsers from shell. 

Or using them in data pipelines.

### Documentation

Probe, split and extract configuration content from [bulkcm](https://github.com/joaomg/teed/blob/main/teed/BULKCM.md) XML files.

Extract performance data from [meas](https://github.com/joaomg/teed/blob/main/teed/MEAS.md) XML files.

How to [build](https://github.com/joaomg/teed/blob/main/BUILD.md) teed.

### License 

The teed library is licensed under:

GNU Affero General Public License v3.0

### On ETSI references and usage rights

https://www.etsi.org/intellectual-property-rights

https://www.etsi.org/images/files/IPR/etsi-ipr-policy.pdf

