semvec/pypi-packages huggingface dataset:
termkit 0.2.13
Python command line application framework
License: MIT
Requires Python: <4.0,>=3.9

<p align="center">
    <img alt="" title="Termkit" src="docs/images/banner.png#gh-dark-mode-only" width="450">
    <img alt="" title="Termkit" src="https://raw.githubusercontent.com/thmahe/termkit/master/docs/images/banner_light.png#gh-light-mode-only" width="450">
</p>
<p></p>
<div align="center">
  <b><i>Command Line Tools with... ease.</i></b>
<hr>

</div>

## Introduction

Termkit is a Python framework designed for building command line interface applications using functions 
and type hints [[PEP 484]](https://peps.python.org/pep-0484/). 
**Solely written using [Python Standard Library](https://docs.python.org/3/library/)** and will always be to ensure
minimal dependency footprint within your project.

## Features

- Build CLI Tools from functional code
- Create fast prototypes using implicit arguments
- Compatible with [argcomplete](https://pypi.org/project/argcomplete/) for autocompletion

## Usage

To get started, follow these steps:

#### 1. Install Termkit using pip
```shell
$ pip install termkit
```
#### 2. Test it with given example

```python
# app.py
from termkit import Termkit

app = Termkit()

@app.command()
def greet(name, count=2):
    for _ in range(count):
        print(name)

if __name__ == "__main__":
    app()

```
```shell
$ python3 ./app.py "Hello Termkit" --count 3
Hello Termkit
Hello Termkit
Hello Termkit
```


## Work in Progress Disclaimer

🛠️ **Please Note: This documentation is a work in progress.** 🛠️

Termkit is constantly evolving, and we are actively working on expanding and improving this documentation. Some sections may be incomplete or subject to change. We appreciate your patience and understanding as we continue to enhance this resource.

If you have any questions or encounter any issues while using Termkit, please feel free to reach me at [contact@tmahe.dev](mailto:contact@tmahe.dev).

Thank you for being a part of Termkit journey! 🌟
pyomt 0.0.3
An Optimization Modulo Theory Solver.
License: MIT
Requires Python: >=3.6.0


# A library for OMT(BV) Solving


Optimization Modulo Theory (OMT) extends Satisfiability Modulo Theories (SMT)
by incorporating optimization objectives.

## The Engines

### Reduce to Quantified SMT

- Z3
- CVC5
- Yices-QS
- Bitwuzla

### Reduce to Weighted MaxSAT


- The OBV-BS algorithm
- The FM algorithm
- The RC2 algorithm
- Off-the-shelf MaxSAT solvers

~~~~
https://github.com/FlorentAvellaneda/EvalMaxSAT

~~~~

### SMT-based Iterative Search

- Linear search
- Binary search

## TBD

### Integration
Exiting OMT solvers?
- Z3 (to MaxSAT?)
- OptiMathSAT
- ...

### Optimizations

**Improvements to the OBV-BS algorithm**
- Variable Polarity Setting: prefer 1 over 0 during the search?

The relevant API (NOTE: some SAT solvers in pysat do not support this API)
~~~~
    def set_phases(self, literals=[]):
        """
            Sets polarities of a given list of variables.
        """
~~~~
TBD: to see how to use this API...

## References

- Sebastiani, R., & Tomasi, S. (2015). Optimization in SMT with LA(Q) cost functions. In International Conference on Principles and Practice of Constraint Programming (pp. 484-498). Springer, Cham.
- Bjørner, N., Phan, A. D., & Fleckenstein, L. (2015). νZ-an optimizing SMT solver. In International Conference on Tools and Algorithms for the Construction and Analysis of Systems (pp. 194-199). Springer, Berlin, Heidelberg.
- Martins, R., Manquinho, V. M., & Lynce, I. (2014). Open-WBO: A modular MaxSAT solver. In International Conference on Theory and Applications of Satisfiability Testing (pp. 438-445). Springer, Cham.