semvec/pypi-packages huggingface dataset:
devpytools 0.1.0.dev8
Various dev tools.
License: MIT
Keywords: tools,cache,dev

# devpytools
Tools for development.

## Installation
```
$ pip install devpytools
```

## Usage
### Cacher
Get and use default inmemory cacher
```python
from devpytools import getCacher
c = getCacher()
@c.cache()
def a(b):
    ...
```

Create the cacher that saves a pickled data on disk and can be used between runs
```python
from devpytools import Cacher
c = Cacher(name='dev', tmpDirPath='./tmp')
```

Get previously configured cacher in other file and use
```python
from devpytools import getCacher
c = getCacher("dev")
@c.cache
def a(b):
    ...
```

Example
```python
from devpytools import Cacher
from devpytools.cacher import extensions
IS_DEV = os.getenv("IS_DEV", "") == "true"

devCacher = Cacher(
    name="dev",
    tmpDirPath="./tmp",
    isEnable=IS_DEV,  # work only if run in dev environment
    isExpired=extensions.expireAfterHours(1),  # recache if cached data older than 1 hour
    isSavable=lambda result: bool(result),  # only cache positive function call results
)

@devCacher.cache
def a(b):
    ...

# works with the same params as devCacher but saves caches to ./tmp1 folder
@devCacher.cache(tmpDirPath="./tmp1")
def a1(b):
    ...

# currently disable cache for that func
@devCacher.cache(isEnable=False)
def a2(b):
    ...

# cache only those calls that return more than 0 elements
@devCacher.cache(isSavable=lambda result: result['count'] > 0)
def a3(b):
    ...

# use only a and b arguments to determine unique key of the function call
@devCacher.cache(uniqueKey=lambda args: args['a'] + args['b'])
def a4(a: str, b: str, c: str):
    ...
```
```python
c = getCacher()
# to determine the uniqueness of a function call use only a and b arguments
@c.cache(uniqueKey=("a", "b"))
def a(a, b, c):
    ...
```

### Other
- replaceFunc
```python
from devpytools import replaceFunc
IS_DEV = os.getenv("IS_DEV", "") == "true"

def devFunc():
    # predefined results for development
    ...
# replace only if IS_DEV is True
@replaceFunc(devFunc, isEnabled=IS_DEV)
def prodFunc():
    # time consuming function
    ...
```
pig-manager 1.0.5
Pretty prints Apache Pig outputs
License: MIT

# Pig Manager
A simple pretty printer for Pig Latin scripts because it looks really bad!

## Installation
To install Pig Pretty Printer, simply use pip:
```bash
pip install pig-manager
```

## Usage
After installation, you can run pig-manager from the command line:
```
pig-manager -f <file> [options]
```

## Options
```
-f, --file_path: Path to the Pig script file.
-dl, --dump_log: Flag to dump error output.
-do, --dump_out: Flag to dump standard output.
-l, --dump_loc: Location to dump output and error files.
```

## Example
A sample of how pig-manager works:
```
pig_pretty_printer -f ./example_script.pig -dl -do -l ./logs
```

+-----------------+--------+
| Category        | Count  |
+=================+========+
| Furniture       | 517447 |
+-----------------+--------+
| Technology      | 807396 |
+-----------------+--------+
| Office Supplies | 588687 |
+-----------------+--------+
|                 |        |
+-----------------+--------+

```

## License
This project is licensed under the MIT License.