Skip to main content

Cosquin Tales (provider)

A provider skill for ovos-common-reading-pipeline-plugin, delivering Emmanuel Cosquin's collection of Lorraine (French regional) folk tales.

A genuinely different register than ovos-skill-perrault-tales-style literary fairy tales: these are folk-collected, with the collector's own comparative scholarly notes ("Remarques") on how each tale relates to variants told elsewhere in France and abroad (excluded from what's read aloud - see below).

Tests PyPI version

This skill has no standalone voice interface. It registers no intents and never speaks. It only answers ovos.common_reading.* bus messages, so you also need ovos-common-reading-pipeline-plugin installed and added to your pipeline config for it to be useful at all.

French only, no translation. Same situation as ovos-skill-andrew-lang-tales/ovos-skill-bechstein-tales, just for French. It answers searches made in French (fr-*) and stays silent for every other language, whatever the device's own language is (see "Languages" below).

Install

pip install ovos-skill-cosquin-tales ovos-common-reading-pipeline-plugin

Story index

The story index (title, anchor per story) is bundled with this package (locale/fr-fr/index.json), not scraped live - browsing/ matching needs no internet at all. Only fetching a specific story's actual text (once chosen) needs a live request to Project Gutenberg.

30 stories from volume 1 of Cosquin's "Contes populaires de Lorraine" (Project Gutenberg ebook #57892). The index was built via scripts/build_index.py, which scans for <h2 id="ROMAN_NUMERAL"> headings (the book's own per-story anchoring) and excludes non-story sections (front matter, appendices) by requiring the id to actually look like a Roman numeral.

Known gap: volume 2 not included. Volume 2 (ebook #50838) uses a different, page-number-based anchor scheme (<a id="Page_N"> nested inside an unlabelled <h2>, rather than the h2 itself carrying a roman-numeral id) - the same class of problem that excluded the Olive Fairy Book from ovos-skill-andrew-lang-tales. Not handled yet; a follow-up could add volume 2's ~30 additional stories with a second anchor-extraction path.

Story extraction stops each tale at the following <h3>REMARQUES</h3> - the scholarly comparative commentary that follows every story here is deliberately excluded from what gets read aloud, not just the next story's heading.

Languages

The provider always loads, and decides per search whether to answer: a search made in French gets an answer, any other language gets none. The language of a search is the pipeline plugin's lang field, else the language of the session the search came from, else (an older plugin sends neither) the device's own language. That matters on a HiveMind hub, where one ovos-core serves many users at once, each session in its own language: a French session must get these stories on a hub whose own language is English, and an English session must not get French ones. A ping that names a language (the same way) only gets a pong when that is French. Fetching a story is never gated on language - it is addressed to this provider directly.

Title matching

The book prints every title in capitals (LA BICHE BLANCHE). Titles match regardless of case, accents, punctuation, & (read as "et") and a leading article, so "la biche blanche", "biche blanche" and "l'oiseau de verite" all find their story at full confidence; the part before a title's first comma counts too, slightly below the whole title ("la bourse"). The title that gets spoken is in ordinary case - La Biche Blanche, Le Roi d'Angleterre et son Filleul - since a TTS engine may spell capitals out letter by letter; content_id stays the index's own capitalised title. A search that names no title at all ("raconte-moi une histoire") gets one random story at confidence 0.9, or 1.0 when it named this collection.

Collection hints

Responds to collection_hint values like "cosquin", "lorraine", "lorraine tales", "contes de lorraine", "emmanuel cosquin", matched fuzzily (see COLLECTION_ALIASES in __init__.py).

Content type

Identifies as content_type: "story" or "tale". A search with a content_type hint for anything else gets no response from this provider.

Credits

Content sourced from Project Gutenberg. Scraping/extraction/caching logic ported from ovos-skill-andrew-lang-tales and ovos-skill-bechstein-tales.

Category

Entertainment

Tags

#stories #fairytales #folklore #cosquin #lorraine #french #provider

Metadata

Release files for ovos-skill-cosquin-tales 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovos-skill-cosquin-tales 0.1.3
File Size Uploaded
ovos_skill_cosquin_tales-0.1.3.tar.gz 31.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovos-skill-cosquin-tales 0.1.3
File Interpreter ABI Platform
ovos_skill_cosquin_tales-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 57.0 kB

Release files / ovos_skill_cosquin_tales-0.1.3.tar.gz

Download URL ovos_skill_cosquin_tales-0.1.3.tar.gz
Size 31.6 kB
Tags Source
SHA-256 checksum
How to use checksums
5b171232c6ad84a8210b374cc43a88a0de7bfceadba3bd1c0c088fe82d3a3a80
BLAKE2b-256 checksum
How to use checksums
b8958b751bd8609751d409c911091e5cdf9ce9110983116cff470e9f15357407
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release files / ovos_skill_cosquin_tales-0.1.3-py3-none-any.whl

Download URL ovos_skill_cosquin_tales-0.1.3-py3-none-any.whl
Size 25.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
87367782c47799a0c4892523aea1f251a9d0cc6b46ed2178411b691b3716ae69
BLAKE2b-256 checksum
How to use checksums
883d93d974eb3ecb3c1b92946422139cff7242572d2cb1aec623dc6001642e8e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 26, 2026.

Transparency log

Release history Release notifications | RSS feed

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page