Metadata-Version: 2.4
Name: jinjamator
Version: 0.140.1
Summary: Boilerplate-free scripting and IT automation for python programmers
Home-page: https://github.com/jinjamator/jinjamator
Author: Wilhelm Putz
Author-email: jinjamator@aci.guru
License: ASL V2
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python :: 3.13
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: System :: Installation/Setup
Classifier: Topic :: System :: Systems Administration
Classifier: Topic :: Utilities
Requires-Python: >=3.7
Description-Content-Type: text/x-rst
License-File: LICENSE
Requires-Dist: amqp==5.3.1
Requires-Dist: aniso8601==10.0.1
Requires-Dist: annotated-types==0.7.0
Requires-Dist: ansible-runner==2.4.2
Requires-Dist: anyio==4.12.1
Requires-Dist: argon2-cffi==25.1.0
Requires-Dist: argon2-cffi-bindings==25.1.0
Requires-Dist: attrs==25.4.0
Requires-Dist: authlib==1.6.9
Requires-Dist: bcrypt==5.0.0
Requires-Dist: billiard==4.2.4
Requires-Dist: blinker==1.9.0
Requires-Dist: celery==5.5.3
Requires-Dist: certifi==2026.1.4
Requires-Dist: cffi==2.0.0
Requires-Dist: charset-normalizer==3.4.4
Requires-Dist: ciscoconfparse==1.9.52
Requires-Dist: click==8.3.1
Requires-Dist: click-didyoumean==0.3.1
Requires-Dist: click-plugins==1.1.1.2
Requires-Dist: click-repl==0.3.0
Requires-Dist: colorama==0.4.6
Requires-Dist: coloredlogs==15.0.1
Requires-Dist: ConfigArgParse==1.7.1
Requires-Dist: cryptography==46.0.7
Requires-Dist: deepdiff==8.6.2
Requires-Dist: deepmerge==2.0
Requires-Dist: Deprecated==1.3.1
Requires-Dist: dictdiffer==0.9.0
Requires-Dist: distro==1.9.0
Requires-Dist: dnspython==2.8.0
Requires-Dist: docker==7.1.0
Requires-Dist: docutils==0.22.4
Requires-Dist: et_xmlfile==2.0.0
Requires-Dist: Flask==3.1.3
Requires-Dist: Flask-AutoIndex==0.6.6
Requires-Dist: flask-restx==1.3.2
Requires-Dist: Flask-Silk==0.2
Requires-Dist: Flask-SQLAlchemy==3.1.1
Requires-Dist: flatten-json==0.1.7
Requires-Dist: future==1.0.0
Requires-Dist: greenlet==3.3.1
Requires-Dist: h11==0.16.0
Requires-Dist: hier-config==2.2.3
Requires-Dist: httpcore==1.0.9
Requires-Dist: httpx==0.28.1
Requires-Dist: humanfriendly==10.0
Requires-Dist: idna==3.11
Requires-Dist: importlib_resources==6.5.2
Requires-Dist: invoke==2.2.1
Requires-Dist: ipcalc==1.99.0
Requires-Dist: itsdangerous==2.2.0
Requires-Dist: Jinja2==3.1.6
Requires-Dist: jiter==0.13.0
Requires-Dist: JSON-log-formatter==1.1.1
Requires-Dist: jsonpickle==4.1.1
Requires-Dist: jsonschema==4.26.0
Requires-Dist: jsonschema-specifications==2025.9.1
Requires-Dist: kombu==5.5.4
Requires-Dist: ldap3-dev==2.10.5
Requires-Dist: lockfile==0.12.2
Requires-Dist: loguru==0.7.2
Requires-Dist: markdown-it-py==4.0.0
Requires-Dist: MarkupSafe==3.0.3
Requires-Dist: mdurl==0.1.2
Requires-Dist: natsort==8.4.0
Requires-Dist: netaddr==1.3.0
Requires-Dist: netmiko==4.6.0
Requires-Dist: netmiko-multihop==0.3.6.1
Requires-Dist: ntc_templates==8.1.0
Requires-Dist: openai==1.55.1
Requires-Dist: openpyxl==3.0.10
Requires-Dist: orderly-set==5.5.0
Requires-Dist: packaging==26.0
Requires-Dist: paramiko==4.0.0
Requires-Dist: passlib==1.7.4
Requires-Dist: pbr==7.0.3
Requires-Dist: pexpect==4.9.0
Requires-Dist: pika==1.3.2
Requires-Dist: prompt_toolkit==3.0.52
Requires-Dist: ptyprocess==0.7.0
Requires-Dist: py-zabbix==1.1.7
Requires-Dist: pyasn1==0.6.3
Requires-Dist: pycparser==3.0
Requires-Dist: pycryptodomex==3.23.0
Requires-Dist: pydantic==2.12.5
Requires-Dist: pydantic_core==2.41.5
Requires-Dist: pyflakes==3.4.0
Requires-Dist: Pygments==2.20.0
Requires-Dist: PyJWT==2.12.0
Requires-Dist: PyNaCl==1.6.2
Requires-Dist: pyOpenSSL==26.0.0
Requires-Dist: pyserial==3.5
Requires-Dist: python-daemon==3.1.2
Requires-Dist: python-dateutil==2.9.0.post0
Requires-Dist: python-magic==0.4.27
Requires-Dist: python-status==1.0.1
Requires-Dist: pytz==2025.2
Requires-Dist: pyvmomi==8.0.2.0.1
Requires-Dist: PyYAML==6.0.3
Requires-Dist: referencing==0.37.0
Requires-Dist: regex==2026.1.15
Requires-Dist: requests==2.32.5
Requires-Dist: rich==14.3.2
Requires-Dist: rpds-py==0.30.0
Requires-Dist: ruamel.yaml==0.19.1
Requires-Dist: scp==0.15.0
Requires-Dist: setuptools==82.0.0
Requires-Dist: setuptools-git-version==1.0.3
Requires-Dist: setuptools-git-versioning==3.0.1
Requires-Dist: simplejson==3.20.2
Requires-Dist: six==1.17.0
Requires-Dist: sniffio==1.3.1
Requires-Dist: SQLAlchemy==2.0.46
Requires-Dist: SQLAlchemy-serializer==1.4.1
Requires-Dist: str2bool3==1.3.0
Requires-Dist: testresources==2.0.2
Requires-Dist: textfsm==2.1.0
Requires-Dist: textfsmplus==0.2.1
Requires-Dist: toml==0.10.2
Requires-Dist: tqdm==4.67.3
Requires-Dist: typing-inspection==0.4.2
Requires-Dist: typing_extensions==4.15.0
Requires-Dist: tzdata==2025.3
Requires-Dist: urllib3==2.6.3
Requires-Dist: vine==5.1.0
Requires-Dist: wcwidth==0.6.0
Requires-Dist: websocket-client==1.9.0
Requires-Dist: Werkzeug==3.1.6
Requires-Dist: wrapt==2.1.1
Requires-Dist: XML2Dict==0.2.2
Requires-Dist: xmltodict==1.0.3
Requires-Dist: xxhash==3.6.0
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary

Introduction
==================


Jinjamator is an automation framework built to make complex automation tasks as easy and boilerplate free as possible.

Features
-----------------

Jinjamator currently has following features:

    - run tasks written in python3
    - run tasks written in jinja2
    - register functions via content plugin system for python3 and jinja2 tasks, to have the same functionality.
    - run standalone as CLI application
    - run as REST API daemon, exporting tasks via REST API
    - gathering of required user inputs, determined by code inspection
    - validation of user inputs
    - log everthing to a database (daemon mode only, CLI is on roadmap)
    - support of different (customer) environments
    - distributed operation (daemon mode only)
    - output plugin system to further process data generated by tasks (e.g.: generate excel files from everthing)
    - includes a simple single-page javascript webapp for running tasks (automatically generates wizards from the task code)
    - aaa for the API, including LDAP, local users and OpenID-Connect


Content Plugins
-----------------

    For a list of content plugins see the `Content Plugins <https://jinjamator.readthedocs.io/en/latest/plugins/content/index.html>`_ section.


Output Plugins
-----------------

    - console (print data to stdout)
    - excel (create a xlsx from task data)
    - apic (push data to cisco ACI)
    - zabbix (stream data to zabbix)
    - textfile (write return value into a textfile)
    - json (generate formatted, optionally syntax highlighted json)
    - ssh (send output via ssh to device)
    - null (supress output)

Installation
------------

Install jinjamator by running:

.. code:: shell
    
    pip3 install pipx && pipx install jinjamator


After successfull installation you should run following commands to initialize aaa

.. code:: shell

    export JINJAMATOR_AAA_LOCAL_ADMIN_USERNAME=admin
    export JINJAMATOR_AAA_LOCAL_ADMIN_PASSWORD=SomeSecurePassword
    jinjamator -t `pipx runpip jinjamator show jinjamator | grep Location | cut -d ' ' -f 2`/jinjamator/tasks/.internal/init_aaa


Contribute
----------

- Issue Tracker: https://github.com/jinjamator/jinjamator/issues
- Source Code: https://github.com/jinjamator/jinjamator

Roadmap
-----------------

Selected Roadmap items:
    - create more documentation
    - refactor frontend webapp

For documentation please refer to https://jinjamator.readthedocs.io/en/latest/

License
-----------------

This project is licensed under the Apache License Version 2.0
