semvec/pypi-packages huggingface dataset:
django-rest-captcha 0.3.0
Lightweight version of django-simple-captcha for work with django-rest-framework
License: MIT
Requires Python: >=3.8,<4.0

# Django rest captcha

Lightweight version of `django-simple-captcha` for work with `django-rest-framework`.


## Features

- Speed: use `cache` instead of database
- Safety: union methods for generate key and image. (You can't generate many images for one key)
- Easy: only one rest api (for generate, refresh image).


## Usage
Add `RestCaptchaSerializer` to your protected request validator:
```
from rest_captcha serializer import RestCaptchaSerializer
class HumanOnlyDataSerializer(RestCaptchaSerializer):
    pass
```
This code add to your serializer two required fields (captcha_key, captcha_value)


For provide this fields client(js code) should generate key:
```
> curl -X POST http:localhost:8000/api/captcha/ | python -m json.tool
{
    'image_type': 'image/png',
    'image_decode': 'base64',
    'captcha_key': 'de67e7f3-72d9-42d8-9677-ea381610363d',
    'captcha_value': '... image encoded in base64'
}
```
`captcha_value` - is base64 encoded PNG image, client should decode and show this image to human for validation and send letters from captcha to protected api.
If human have mistake - client should re generate your image.

**Note:** See also [trottling](https://www.django-rest-framework.org/api-guide/throttling/) for protect public api


## Install
```
> pip install django-rest-captcha
```

### Add to your settings.py
Add to installed apps:
```
INSTALLED_APPS = (
    ...
    'rest_captcha',
)
```

Set rest_captcha settings (if you want), see defaults:
```
REST_CAPTCHA = {
    'CAPTCHA_CACHE': 'default',
    'CAPTCHA_TIMEOUT': 300,  # 5 minutes
    'CAPTCHA_LENGTH': 4,
    'CAPTCHA_FONT_SIZE': 22,
    'CAPTCHA_IMAGE_SIZE': (90, 40),
    'CAPTCHA_LETTER_ROTATION': (-35, 35),
    'CAPTCHA_FOREGROUND_COLOR': '#001100',
    'CAPTCHA_BACKGROUND_COLOR': '#ffffff',
    'CAPTCHA_FONT_PATH': FONT_PATH,
    'CAPTCHA_CACHE_KEY': 'rest_captcha_{key}.{version}',
    'FILTER_FUNCTION': 'rest_captcha.captcha.filter_default',
    'NOISE_FUNCTION': 'rest_captcha.captcha.noise_default'
}
```

We recommend using redis or local memory as cache with set parameter, with bigger value of MAX_ENTRIES:
```
CACHES={
    'default': {
        'BACKEND': 'django.core.cache.backends.locmem.LocMemCache',
        'LOCATION': 'rest-captcha',
        'MAX_ENTRIES': 10000,
    }
}
```

### Add hooks to your app router (urls.py):
```
urlpatterns = [
    ...
    url(r'api/captcha/', include('rest_captcha.urls')),
]
```
make-better 0.4.0
Easy lint and format you code
License: MIT
Requires Python: >=3.8.1,<4.0.0
Keywords: autoformat,flake8,lint

# make_better

make_better is a Python package designed to improve the quality of your code by providing preconfigured linters and a
code formatter. The package is built to make it easy for Python developers to maintain high standards in their code by
running a single command.

## Features

- Preconfigured linters to check your code for potential issues without being too annoying.
- A preconfigured code formatter to ensure your code is formatted according to best practices.
- Easy to use: simply run a single command to check and format your code.
- Saves time by removing the routine of having to check and format code manually.

## Installation

You can install make_better via pip:

```bash
pip install make_better
```

## Usage

To check and format your code, simply navigate to the directory containing your Python files and run the following
command:

```bash
make_better --autoformat
```

This will run the preconfigured linters and code formatter on your code. Any potential issues will be flagged, and your
code will be formatted according to best practices.

## Why line-length 90

We use a line length of 90, so that people on laptops with a diagonal of 16 do not have problems during the review
pycronscript 0.9.4
Schedule your Python scripts
License: MIT
Requires Python: >=3.7
Keywords: schedule,cron,python,scripts,tasks

# pycronscript
Schedule your Python scripts.

## Getting started
**Install package**

`pip install pycronscript`

**Create config file**

This is created with the first run of `pycronscript` and you can see the path where it is has been created.

**Register your scripts for the scheduled run in config file**

*Note: Scripts must have a '**run**' method!*
```
[custom_name]
path=/home/my_user/foo/bar/my_script.py
each={'minutes': 5} # datetime.timedelta args, but in dict format. Default=1h.
...
```

**Start**

Run again `pycronscript`

## Getting started with *Docker* (example)
**Files needed:**
```
pycronscript_with_docker
├── config.cfg
├── docker-compose.yml
├── Dockerfile
├── requirements.txt
└── test.py
```

**test.py**
```
def run():
    print('working!')
```

**config.cfg**
```
[test]
path=/usr/app/src/test.py
each={'minutes': 5}
```

**Dockerfile**
```
FROM python:3.11

WORKDIR /usr/app/src
RUN pip install pycronscript
RUN mkdir -p /root/.config/pycronscript
COPY config.cfg /root/.config/pycronscript/config.cfg

# Install your custom requirements
COPY requirements.txt ./
RUN pip install -r requirements.txt

# Copy scripts
COPY test.py ./
```

**docker-compose.yml**
```
version: '3.4'

services:
  pycronscript:
    build: .
    container_name: pycronscript
    entrypoint: 'pycronscript'
    restart: always
```

**Start**
```
docker-compose up -d
```