semvec/pypi-packages huggingface dataset:
laguardia 0.2.0
LaGuardia - Lightweight Policy-as-Code for Terraform/OpenTofu
Requires Python: >=3.9


# LaGuardia - Lightweight Policy‑as‑Code

Guardrails for Terraform/OpenTofu **plan JSON** with **simple YAML rules** and **Auto‑Fix**.

![LaguradiaLogo](assets/logo.png)  

## Install
```bash
pip install ./laguardia
```

Dev (editable) install for local changes:
```bash
python3 -m venv .venv && source .venv/bin/activate
python -m pip install -U pip
pip install -e .
```

## Usage
```bash
terraform init
terraform plan -out plan.out
terraform show -json plan.out > plan.json

laguardia scan --plan plan.json --rules examples/rules.yaml --out report.html --autofix fixes.json
# Exit code 1 if any 'error' findings
```

Alternative (one-liner) to produce plan.json:
```bash
terraform plan -out=plan.out && terraform show -json plan.out > plan.json && rm -f plan.out
```

Output semantics:
- Findings print as `[ERROR|WARNING] <rule> <type>.<name>: <message>`
- Final line prints `Run status: OK` or `Run status: FAIL`
- Control failing behavior via `--fail-on [error|warning|none]` (default: `error`)

## Rules (YAML)
See `examples/rules.yaml`. Supported kinds:
- `require_tags`: ensure tags/labels exist.
- `field_equals`: nested field equals a value.
- `forbid_cidr`: remove forbidden CIDR from list.

## Docker
```bash
docker build -t laguardia .
docker run --rm -v $(pwd):/data laguardia scan --plan /data/plan.json --rules /data/examples/rules.yaml --out /data/report.html --autofix /data/fixes.json
```

## Tests
```bash
pip install .
pip install pytest
pytest -q
```
## 🤝 Contributing
Maintained by [Senora.dev](https://senora.dev) - community contributions are welcome!
cmdhelper 0.4.0
Python utility for writing command line scripts with consistent look and feel.
Requires Python: >=3.6
Keywords: command line utility, scripts

# cmdhelper

cmdhelper is a Python utility for writing command line scripts with a
consistent style, default set of command line options, and common
approach to logging.

cmdhelper provides:

- Parsing of command line options using either argparse or optparse.
- Setup of logging with the possibility to copy stdout or stderr into the logfile.
- Possibility to e-mail log messages upon completion with an option to send the e-mail only if a log message with a severity at or above a trigger level was recorded.
- Definition of a set of default options, including options to set verbosity and logging options.
- A utility function to run external commands whose output can be logged and parsed for error messages.
- A utility function for asking the user to confirm actions.

## Example

A script that processes different commands with optional command
arguments might include:

```python
from cmdhelper import *

cmdHelper = CmdHelper('argparse', __version__)
cmdHelper.add_argument('cmd', help='command')
cmdHelper.add_argument('args', help='command arguments', nargs='*')
cmdHelper.add_option('-x', '--example', dest='value', default=None, help='sample option')
options = cmdHelper.parse()

try:
    # processing goes here
    pass

except Exception as e:
     handleError(e, options.debug)
```

Running the above code with `--help` will produce the following output:

```
usage: example.py [-h] [--version] [-i] [-v] [--debug] [--noscreen]
                  [--logfile LOGFILE] [--loglevel LOGLEVEL]
                  [--logseparator LOGSEPARATOR]
                  [--logtimestampfmt LOGTIMESTAMPFMT]  [--emailto EMAILTO]
                  [--emailsubject EMAILSUBJECT] [--emaillevel EMAILLEVEL]
                  [--emailtriglevel EMAILTRIGLEVEL] [-x VALUE]
                  cmd [args [args ...]]

positional arguments:
  cmd                   command
  args                  command arguments

optional arguments:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  -i, --interactive     enter interactive Python at completion
  -v, --verbose         verbose output
  --debug               debugging output
  --noscreen            disable logging output to screen
  --logfile LOGFILE     write logging information to this file (default: )
  --loglevel LOGLEVEL   logging level for logfile (default: INFO or DEBUG)
  --logseparator LOGSEPARATOR
                        message to write to logfile at beginning of new log
  --logtimestampfmt LOGTIMESTAMPFMT
                        timestamp format string (in logging formatter format)
  --emailto EMAILTO     email address receiving any log messages
  --emailsubject EMAILSUBJECT
                        subject for log e-mails
  --emaillevel EMAILLEVEL
                        logging level for e-mails (default: WARNING)
  --emailtriglevel EMAILTRIGLEVEL
                        trigger level for sending e-mails (default: None)
  -x VALUE, --example VALUE
                        sample option
```