semvec/pypi-packages huggingface dataset:
canaille 0.0.33
Minimalistic identity provider
License: MIT
Requires Python: >=3.8,<4.0
Keywords: oidc,oauth,oauth2,openid,identity

<div align="center">
    <img src="canaille/static/img/canaille-full.png" height="200" alt="Canaille" />
</div>

**Canaille** is a French word meaning *rascal*. It is roughly pronounced **Can I?**,
as in *Can I access your data?* Canaille is a simple account manager and an OpenID Connect provider based upon a LDAP database.

It aims to be very light, simple to install and simple to maintain. Its main features are :
- User profile and groups management;
- Authentication, registration, email confirmation, "I forgot my password" emails;
- OpenID Connect identity provider;
- LDAP first-class citizenship;
- Customizable, themable;
- The code is easy to read and easy to edit!

# Screenshots

<div align="center">
    <img src="doc/_static/login.png" width="225" alt="Canaille login page" />
    <img src="doc/_static/profile.png" width="225" alt="Canaille profile page" />
    <img src="doc/_static/consent.png" width="225" alt="Canaille consent page" />
</div>

# Try it!

```bash
cd demo
# Either run the demo locally
./run.sh
# or run the demo in docker
docker compose up
```

or try our [online demo](https://demo.canaille.yaal.coop)!

You have access to:
- a canaille server at [https://demo.canaille.yaal.coop](https://demo.canaille.yaal.coop)
- a dummy client at [https://demo.client1.yaal.coop](https://demo.client1.yaal.coop)
- another dummy client at [https://demo.client2.yaal.coop](https://demo.client2.yaal.coop)

The canaille server has some default users:
- A regular user which login and password are **user**
- A moderator user which login and password are **moderator**
- An admin user which login and password are **admin**

Online demo data are reset every night at 02:00 CEST.

# Documentation

⚠ Canaille is under heavy development and may not fit a production environment yet. However, [contributions](CONTRIBUTING.rst) are welcome! ⚠

- Please have a look on our [documentation](https://canaille.readthedocs.io);
- To **install** canaille, just follow the [installation guide](https://canaille.readthedocs.io/en/latest/install.html);
- To **contribute** to canaille, please read the [contribution guide](https://canaille.readthedocs.io/en/latest/contributing.html).

## Translation status

[![Translation status for each language](https://hosted.weblate.org/widgets/canaille/-/canaille/multi-blue.svg)](https://hosted.weblate.org/engage/canaille/?utm_source=widget)
soma-songs 1.0.3
Save song data from somafm.com as JSON
License: MIT
Requires Python: >=3.8
Keywords: music scraper json somafm

# Soma Songs

[![pdm-managed](https://img.shields.io/badge/pdm-managed-blueviolet)](https://pdm.fming.dev)
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)
![PyPI: Python Version](https://img.shields.io/pypi/pyversions/soma-songs)

Save songs from <https://somafm.com> as JSON.


## How does it work?

Most somafm radiostations publish their tracklist. F.e. the police `scanner`-channel doesn't, while [def con radio](https://somafm.com/defcon/songhistory.html) does. But this overview only includes the last hour(s) and is not easily machine-readable.

So why not archive this for all the channels, all the time, clean up the data a little bit and make it more useable?

- results are stored in a `tinydb`, well, two, actually, these are just JSON files
- the timestamp also includes a date and has a timezone annotation. Btw., if you want to get into the details: <https://somafm.com> is based in San Francisco, the IANA time zone identifier is America/Los_Angeles. Currently they use PDT (Pacific Daylight Time), which is UTC-7. PST (Pacific Standard Time) would be UTC-8.
- the somafm amazon links are not relative anymore and are also included to support <https://somafm.com>


# How do you use/run this?

Well, you don't have to :) because I already created inktrap/somafm-json which contains the output.

But you can, by:

```
pipx install somafm-songs
```

If you call `somafm-songs` you'll see that `~/somafm-json/meta.json` contains the channel meta data and `~/somafm-json/music.json` contains tracks/songs.

If you want to keep your results in git and push them to a remote you have to turn that directory into a git repository with a remote and create a cron-job which does (and is allowed to do) the git commit/push spiel. I haven't tested this yet, but a cronjob like this could work:

```
30 * * * * /path/to/soma-songs -q && cd ~/somafm-json && git commit -am $(date) && git push
```

Thanks to somafm and to all the amazing DJ(ane)s :)


# What can you do with this?

You get a nice archive of great radio channels, what else do you want? Well, you could:

- train your own music recommendation tool for each channel, just for fun <https://github.com/mattmurray/music_recommender>
- match albums/artists with musicbrainz-identifiers to find more info
- look for overlap/similarity of channels
- create your own rankings (per channel/artist/genre/year/…)
- you could check for each channel how many artists/albums/songs are in your `beets` library (maybe adjust for popularity?!)