semvec/pypi-packages huggingface dataset:
django-login-default 0.1.2
Django middleware that makes login required by default
Requires Python: >=3.10

# django-login-default

A Django middleware that makes login required the default. Instead of decorating
every view with `@login_required`, you add one middleware and then mark the
exceptions — the views that should be public.

Requires Django 4.2+ and Python 3.10+.

## Installation

```bash
pip install django-login-default
```

## Usage

### 1. Add the middleware

In your `settings.py`, add `LoginRequiredMiddleware` **after**
`AuthenticationMiddleware`:

```python
INSTALLED_APPS = [
    ...
    "django_login_default",
]

MIDDLEWARE = [
    ...
    "django.contrib.auth.middleware.AuthenticationMiddleware",
    "django_login_default.middleware.LoginRequiredMiddleware",
    ...
]

LOGIN_URL = "/accounts/login/"
```

That's it — every view now requires an authenticated user. Unauthenticated
requests get redirected to `LOGIN_URL` with a `?next=` parameter.

### 2. Mark public views

For views that should be accessible without login, use the decorator (FBV) or
the mixin (CBV):

```python
# Function-based view
from django_login_default.decorators import no_login_required

@no_login_required
def landing_page(request):
    ...
```

```python
# Class-based view
from django_login_default.mixins import NoLoginRequiredMixin

class LandingPage(NoLoginRequiredMixin, TemplateView):
    template_name = "landing.html"
```

### How it works

The middleware runs on every request. If the user is not authenticated, it
resolves the URL and checks the view for a `no_login_required` attribute. If
the attribute is present (set by the decorator or mixin), the request passes
through. Otherwise, it redirects to the login page.

---

## Development

### Setup

```bash
git clone https://github.com/mbaer/django-login-default.git
cd django-login-default
python -m venv .venv
source .venv/bin/activate
pip install -e .
```

### Sample project

There's a small Django project in `sample_project/` that demonstrates the
middleware. It has a protected page, a public page, and a login form.

```bash
cd sample_project
python manage.py migrate
python manage.py createsuperuser
python manage.py runserver
```

### Running tests

```bash
# With coverage
PYTHONPATH=sample_project:$PYTHONPATH \
  coverage run --source=django_login_default -m django test django_login_default \
  --settings=sample_project.settings
coverage report

# Across multiple Python/Django versions
pip install tox
tox
```

### Project structure

```
django_login_default/
├── middleware.py      # LoginRequiredMiddleware
├── decorators.py      # @no_login_required
├── mixins.py          # NoLoginRequiredMixin
├── views.py           # Demo views used by the sample project
└── tests/
    └── test_middleware.py
```

## License

MIT
tandoor-client 2.5.3
Auto-generated Python client for the Tandoor Recipes API
Requires Python: >=3.12
Keywords: tandoor, recipes, api, client, openapi

# tandoor-client v2.5.3

Auto-generated Python client for the [Tandoor Recipes](https://tandoor.dev) API.

## Installation

```bash
pip install tandoor-client
```

## Usage

Most endpoints require authentication. Use `AuthenticatedClient` with an API token
from your Tandoor instance (Settings > API Browser > Tokens).

```python
from tandoor_client import AuthenticatedClient

client = AuthenticatedClient(
    base_url="https://your-tandoor-instance.com",
    token="your-api-token",
)
```

### Example: List Recipes

```python
from tandoor_client.api.recipe import recipe_list

response = recipe_list.sync(client=client)
```

See the [pipeline repository](https://github.com/featurecreep-cron/tandoor-api) for full documentation.
numcodecs-wasm 0.2.4
numcodecs compression for codecs compiled to WebAssembly
Requires Python: >=3.10

[![CI Status]][workflow] [![PyPi Release]][pypi] [![Read the Docs]][rtdocs]

[CI Status]: https://img.shields.io/github/actions/workflow/status/juntyr/numcodecs-rs/ci.yml?branch=main
[workflow]: https://github.com/juntyr/numcodecs-rs/actions/workflows/ci.yml?query=branch%3Amain

[PyPi Release]: https://img.shields.io/pypi/v/numcodecs-wasm.svg
[pypi]: https://pypi.python.org/pypi/numcodecs-wasm

[Read the Docs]: https://img.shields.io/readthedocs/numcodecs-wasm?label=readthedocs
[rtdocs]: https://numcodecs-wasm.readthedocs.io/en/stable/api/numcodecs_wasm/

# numcodecs-wasm

[`numcodecs`] compression for codecs compiled to WebAssembly.

`numcodecs-wasm` provides the `WasmCodecMeta` meta class to load a codec from a WebAssembly component into a fresh Python class.

[`numcodecs`]: https://numcodecs.readthedocs.io/en/stable/

## License

Licensed under the Mozilla Public License, Version 2.0 ([LICENSE](LICENSE) or https://www.mozilla.org/en-US/MPL/2.0/).

## Funding

The `numcodecs-wasm` package has been developed as part of [ESiWACE3](https://www.esiwace.eu), the third phase of the Centre of Excellence in Simulation of Weather and Climate in Europe.

Funded by the European Union. This work has received funding from the European High Performance Computing Joint Undertaking (JU) under grant agreement No 101093054.
answering-machine 0.0.5
A machine that answers questions.
Requires Python: >=3.10
Keywords: answering-machine

# Answering Machine
A machine that answers questions coming through a pipe.
```bash
  echo '[{"role": "user", "content": "I have a question...?"}]' \
    | uvx answering-machine \
        --PROVIDER_API_KEY=sk-ant-api... \
        --GITHUB_TOKEN=ghp_... \
        --mode=single
```
Or:
```bash
  pip install answering-machine
```
Then:
```Python
  # Python
  import answering_machine
```
dungeondice-matrix 1.1.0
Tools to roll some virtual dice
Requires Python: >=3.13

# Dungeondice-matrix

This is a quick re-make of [my discord dice-rolling bot](https://github.com/jwizzle/dungeondice).
For now quite barebones. It rolls dice. The code has been hastily copy/pasted.
Might make it prettier later.

## Features

- Roll dice in a matrix channel
- Roll multiple sets in one go `2x2d20`
- Add hints to your dice `d10(piercing)+d8(poison)`
- Add hints to your complete roll `d8(poison) For damage`
- Create complex rolls like `2x2d20(poison)+d8(piercing)-4` to get two total results

```
---------------------------------
2d20(poison)+d8(piercing)-4
Total: 35
Details: [[16, 17]33poison, [6]6piercing, [4]4]
---------------------------------
---------------------------------
2d20(poison)+d8(piercing)-4
Total: 19
Details: [[10, 11]21poison, [2]2piercing, [4]4]
---------------------------------
```

## Usage

```
MATRIX_HOST="https://your.host" BOT_USERNAME="@diceparser:your.host" BOT_PASSWORD="secret" uv run main.py
```