Metadata-Version: 2.1
Name: nettowel
Version: 0.3.0
Summary: Network Automation Collection
Home-page: https://github.com/InfrastructureAsCode-ch/nettowel/tree
License: Apache 2.0
Author: ubaumann
Author-email: github@m.ubaumann.ch
Requires-Python: >=3.8,<4.0
Classifier: License :: OSI Approved :: Apache Software License
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Provides-Extra: full
Provides-Extra: jinja
Provides-Extra: napalm
Provides-Extra: netmiko
Provides-Extra: nornir
Provides-Extra: scrapli
Provides-Extra: textfsm
Provides-Extra: ttp
Requires-Dist: Jinja2 (>=3.0.3,<4.0.0); extra == "full" or extra == "jinja"
Requires-Dist: jinja2schema (>=0.1.4,<0.2.0); extra == "jinja"
Requires-Dist: napalm (>=3,<4); extra == "full" or extra == "napalm"
Requires-Dist: netmiko (>=4,<5); extra == "full" or extra == "netmiko"
Requires-Dist: nornir (>=3.2.0,<4.0.0); extra == "full" or extra == "nornir"
Requires-Dist: python-dotenv (>=0.20.0,<0.21.0)
Requires-Dist: qrcode (>=7.3.1,<8.0.0)
Requires-Dist: requests (>=2.27.1,<3.0.0)
Requires-Dist: rich (>=12.0.1,<13.0.0)
Requires-Dist: ruamel.yaml (>=0.17.21,<0.18.0)
Requires-Dist: scrapli (>=2022.1.30,<2023.0.0); extra == "full" or extra == "scrapli"
Requires-Dist: textfsm (>=1.1.2,<2.0.0); extra == "full" or extra == "textfsm"
Requires-Dist: ttp (>=0.8.4,<0.9.0); extra == "full" or extra == "ttp"
Requires-Dist: typer (>=0.4.1,<0.5.0)
Project-URL: Repository, https://github.com/InfrastructureAsCode-ch/nettowel/tree
Description-Content-Type: text/markdown

# nettowel
Collection of useful network automation functions 

> ⚠️ `nettowel` is under heavy construction and not production ready. Feedback is highly appreciated.


## Install

You can install `nettowel` directly from pypi

```bash
pip install nettowel
```

To reduce the dependencies the extra dependencies are grouped

The following groups are available (more details in the in the pyproject.toml):

- full
- jinja
- ttp
- textfsm
- napalm
- netmiko
- scrapli
- nornir

```bash
pip install nettowel[jinja]
pip install nettowel[full]
```

## Install from source

```
git clone ....
cd nettowel
poetry install
poetry run nettowel --help
```


## Help and shell auto completion

Thanks to the library [typer](https://typer.tiangolo.com/) `nettowel` comes with a nice help and autocompletion install

![help](imgs/help.png)


## Features

Many features are not implemented yet and many features will come.



### Jinja2

#### render

![jinja rendering 1](imgs/jinja-render-3.png)

![jinja rendering 2](imgs/jinja-render-1.png)

#### validate

![jinja validate](imgs/jinja-validate.png)

#### variables

![jinja variables](imgs/jinja-variables.png)


### TTP

#### render

![ttp render](imgs/ttp-render.png)

### Netmiko

#### cli

![netmiko cli](imgs/netmiko-cli.png)

#### autodetect

![netmiko autodetect](imgs/netmiko-autodetect.png)

#### device-types

![netmiko device types](imgs/netmiko-device-types.png)


### RESTCONF

#### get

![restconf get](imgs/restconf-get.png)

#### patch, delete

![restconf patch delete](imgs/restconf-patch-delete.png)

#### post, put

![restconf post put](imgs/restconf-post-put.png)

### ipaddress

#### ip-info

![ip info](imgs/ip-info.png)

#### network-info

![network info](imgs/network-info.png)


### Help

![Help QRcode](imgs/nettowel-help.png)


### Settings

A `dotenv` file can be used as a settings file. It also be provided an `dotenv` file with the option `--dotenv`.

![environment settings](imgs/env-settings.png)


### Piping

![piping](imgs/piping.png)



## Building CLI Docs

**At the moment `typer-cli` is not ready for typer 0.4.0**

```
typer nettowel/cli/main.py utils docs --name nettowel --output CLI.md
```

