semvec/pypi-packages huggingface dataset:
injinja 1.1.0
Injinja: Injectable Jinja Configuration tool. Insanely configurable... config system.
Requires Python: >=3.12

# injinja 🥷

<p align="center">
    <!-- TODO: Catchy Logo, 450px wide -->
    <a href="https://github.com/neozenith/injinja/releases"><img src="https://img.shields.io/github/release/neozenith/injinja" alt="Latest Release"></a>
    <a href="https://github.com/neozenith/injinja/actions/workflows/publish.yml"><img src="https://github.com/neozenith/injinja/actions/workflows/publish.yml/badge.svg" alt="Build Status"></a>
    <!-- coverage-badge -->
    <img src="https://img.shields.io/badge/coverage-89%25-yellow.svg" alt="Coverage">
    <!-- coverage-badge -->
</p>

<p align="center">Injinja: <b>Inj</b>ectable <b>Jinja</b> Configuration tool.</p>
<p align="center"><i>Insanely configurable... config system.</i></p>

<!-- TODO: Animated GIF demoing features. 800px wide -->

## Features

- **Recursive Deep Merge:** Sick of scrolling giant mega config files? Would you rather have organised folders of smaller configs that act like they are part of the same big config? We recursively deep merge your config.
- **Powerful:** Any of your config files are now empowered with the full programming capabilities of [`Jinja`](https://jinja.palletsprojects.com/en/stable/) templating engine for better parametrising the one set of config files.
- **Flexible:** You design your configuration schema yourself in any of JSON, YAML or TOML.
- **Enabling:** Separate your project config out to allow _"Drive By Contributors"_. Even non-technical colleagues can edit a text file in a browser to raise a PR.
- **Nothing Implicit:** By design nothing is implicit and every input is explicit. We prefer powerful tools rather than "magic" tools.

----

## Quickstart

```sh
uvx injinja -e home_dir="$HOME" -c 'samples/config/*' -t sql/ddl/warehouse__roles.sql.j2
# OR
uv run injinja.py -e home_dir="$HOME" -c 'samples/config/*' -t sql/ddl/warehouse__roles.sql.j2
```

Two step templating configuration system:

- Runtime `DYNAMIC` configuration (`-e` or `--env`)
- Can template the `STATIC` configuration (`-c` or `--config`)
- To allow deep and rich config to populate your `TEMPLATE` file (`-t` or `--template`).

----

## Simplified Architecture

![Overview Diagram](https://github.com/neozenith/injinja/blob/main/diagrams/overview.png?raw=true)

1. **Dynamic Configuration**: Environment variables and CLI flags provide runtime values
2. **Static Configuration**: YAML/JSON/TOML files that can themselves be Jinja templates
3. **Schema Validation**: Validate merged configuration against schemas before templating
4. **Template Rendering**: Apply the validated configuration to your target template

----

## Documentation

Please read our [User Guide Documentation](https://neozenith.github.io/injinja)

## Roadmap and TODO list

[Open Issues that are raised by `neozenith`](https://github.com/neozenith/injinja/issues?q=is%3Aissue%20state%3Aopen%20author%3Aneozenith)
godirect 1.2.1
Library to interface with GoDirect devices via USB and BLE
Requires Python: >=3.7
Keywords: godirect, vernier, usb, ble, bluetooth, sensors

# godirect

A Python module for reading from [Vernier Go Direct® Sensors](https://www.vernier.com/products/sensors/go-direct-sensors/)<sup>1</sup> connected to USB or your system's on-board bluetooth radio. The module has been tested on Windows 10, macOS, and various Linux distros.

Take a look at the [godirect-examples repository](https://github.com/VernierST/godirect-examples/tree/main/python) for ideas and a number of helpful examples.

## Requirements

The following Python modules are required for `godirect`. They will be installed automatically as dependencies when installing `godirect` via pip.

* bleak (native Bluetooth Low Energy stack for Mac, Windows and Linux)
* hidapi (USB HID device support)

## Installation

Automatically install all the dependencies for both USB and native BLE.
```bash
pip install godirect
```

## Installation and Usage

Go to our [Getting Started with Vernier Go Direct Sensors and Python document](https://github.com/VernierST/godirect-examples/blob/main/python/readme.md) for detailed information regarding installation and usage of the godirect module.

## Legacy Support for Bluegiga Dongle

Prior to version 1.1.0, some platforms required a Bluegiga BLE dongle to connect over BLE. While we recommend using the native BLE radio (through bleak), the old functionality has been left in the library. In order to use the Bluegiga BLE dongle, vernierpygatt must be installed. This is a fork of the pygatt project with a fix for the BGAPI on Windows. See [the vernierpygatt PyPi page](https://pypi.org/project/vernierpygatt/) for details.

## Local builds

In order to explore and contribute to this module, you can modify this module, build and install it locally.

_# Uninstall any installed version_
```bash
pip uninstall godirect
```

_# Install the build tool (if you have not already)_
```bash
pip install build
```

_# Build the module_
```bash
python -m build
```

_# Install the module_
```bash
pip install .
```

## License

GNU General Public License v3 (GPLv3)

Vernier products are designed for educational use. Our products are not designed nor are they recommended for any industrial, medical, or commercial process such as life support, patient diagnosis, control of a manufacturing process, or industrial testing of any kind.

<sup>1</sup> Go Direct spectrometers are not supported.