semvec/pypi-packages huggingface dataset:
web_cache 1.1.0
Simple persistent cache storage, with different cache eviction strategies, and optional compression
Keywords: cache,sqlite3,key-value,persistent

Web cache
=========

[![Latest version](https://img.shields.io/pypi/v/web_cache.svg?style=flat)](https://pypi.python.org/pypi/web_cache/)
[![Tests status](https://img.shields.io/travis/desbma/web_cache/master.svg?label=tests&style=flat)](https://travis-ci.org/desbma/web_cache)
[![Coverage](https://img.shields.io/coveralls/desbma/web_cache/master.svg?style=flat)](https://coveralls.io/github/desbma/web_cache?branch=master)
[![Supported Python versions](https://img.shields.io/pypi/pyversions/web_cache.svg?style=flat)](https://pypi.python.org/pypi/web_cache/)
[![License](https://img.shields.io/github/license/desbma/web_cache.svg?style=flat)](https://github.com/desbma/web_cache/blob/master/LICENSE)

Python module for simple key-value storage backed up by sqlite3 database.
The typical use case is a URL to HTTP data cache, but it can also be used fo non web ressources.


## Features

* Simple `dict` interface allows natural usage (`if key in cache`, `value = cache[key]`, etc.)
* Optional Zlib, BZIP2 or LZMA compression
* FIFO or LRU cache eviction strategies
* Optional thread safe interface to work around Python Sqlite3 'same thread' limitation
* Provides cache hit rate statistics


## Installation (from PyPI, with PIP)

web_cache requires [Python](https://www.python.org/downloads/) >= 3.4.

1. If you don't already have it, [install pip](https://pip.pypa.io/en/stable/installing/) for Python 3
2. Install web_cache: `pip3 install web_cache`


## License

[LGPLv2](https://www.gnu.org/licenses/old-licenses/lgpl-2.1-standalone.html)
pyboolean 0.1.post4
Parse infix boolean expressions to RPN, evaluate and generate truth tables.

# pyboolean
Parse infix boolean expressions to postfix (RPN), evaluate and generate truth tables.

Compatibilities
------------

* *Python 3.x*
* *Any Operating System*

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

pyboolean is published on **PyPi**, so you only need to run the following command:

    $ pip install pyboolean

Usage
------------

Creating a new boolean expression:

```python
from pyboolean import BoolExpr

bool_expr = BoolExpr('1 or 0')
```

Printing the formatted version of the expression:

```python
print(bool_expr)
# Output: "1 + 0"
```
Evaluating our boolean expression:

```python
print(bool_expr.eval())
# Output: "1"
```

A boolean expression can also include variables:

```python
bool_expr = BoolExpr('1 . m + ( 0 + ! n ) . m')
```

In order to evaluate an expression with variables, the eval() function can take arguments to replace them:

```python
print(bool_expr.eval(1, 0))
# Output: "1"
```

For expressions with variables, one can generate a truth table like so:

```python
print(bool_expr.truthtable())
# Output:
#╔════════════╗
#║  m  n  ┃ O ║
#║━━━━━━━━╋━━━║
#║  0  0  ┃ 0 ║
#║────────╂───║
#║  0  1  ┃ 0 ║
#║────────╂───║
#║  1  0  ┃ 1 ║
#║────────╂───║
#║  1  1  ┃ 1 ║
#╚════════════╝
```

Or if you need to manipulate the raw truth table data, generate a dictionary:

```python
print(bool_expr.truthdict())
# Output: "{('0', '0'): '0', ('0', '1'): '0', ('1', '0'): '1', ('1', '1'): '1'}"
```

Finally, a note on formatting. When creating an expression, all spaces are ignored and many different versions of the operator symbols are accepted, so one can be very 'creative' with the input and not need to worry:

```python
bool_expr = BoolExpr('p+1and   ¬m.(1∧p ) ∨notxand~0')
print(bool_expr)
# Output: "p + 1 . ! m . ( 1 . p ) + ! x . ! 0"
```

Full list of accepted operator symbols:

**AND:**

and . & ∧

**OR:**

or + | ∨

**NOT:**

not ! ~ ¬