Skip to main content

Cat-sound lorem ipsum generator: meow, meeeow, meeeoooow.

Project description

Meowsum

Cat-sound lorem ipsum generator. Produces text composed of “meow” variants like: meow, meeeow, meeooow, meeeoooow, etc.

Key properties:

  • Word shape: m + e* + o* + w
  • Hard cap: each word length ≤ 10 characters
  • Distribution: plain “meow” appears more often than any variant (default bias ~70%)
  • Punctuation: sometimes includes ., ..., !, ?, , and quotes " or ' in phrases/sentences
  • Deterministic mode via seed()

Install

pip install meowsum

Local dev:

pip install -e .

Quickstart

Python:

from meowsum import meow

print(meow.words(5))             # e.g., "meow meow meeoow meow meow"
print(meow.sentence(words=8))    # one phrase of exactly 8 words
print("\n\n".join(meow.paragraphs(2)))  # two paragraphs

CLI:

# Exactly N phrases of M words
meowsum --phrases 2 --words 6

# N sentences (word count sampled in [min, max])
meowsum --sentences 3 --min-words 5 --max-words 10

# N paragraphs, optionally HTML-wrapped
meowsum --paragraphs 2 --html

# Make output deterministic
meowsum --phrases 2 --words 5 --seed 42

Examples:

$ meowsum --phrases 1 --words 6
Meeoow meow meow meow, meow meeeow.
$ meowsum --paragraphs 1 --html
<p>Meeoow meow meow meow? Meeoow meow meow meow meow meow. Meow meow meow...</p>

API

The public API mirrors common lorem-ipsum ergonomics but strictly outputs cat sounds.

  • meow.seed(value: int | None) -> None
    Seed the internal RNG for reproducible output.

  • meow.word(e_range=(1, 5), o_range=(1, 7), max_len=10, capitalize=False, meow_bias=0.7) -> str
    Generate one word obeying:

    • shape m + e* + o* + w
    • length ≤ max_len (default 10)
    • “meow” appears more often than variants (controlled by meow_bias)
  • meow.words(n=1, as_list=False, sep=" ") -> str | list[str]
    Generate n words (joined by sep unless as_list=True).

  • meow.phrase(words_count: int, punctuation=True) -> str
    Exactly words_count words, capitalize first token, sometimes include commas, always end with [., !, ?, ...], and occasionally wrap in quotes.

  • meow.phrases(n: int, words_count: int, as_list=False, punctuation=True) -> str | list[str]
    Generate n phrases, each with words_count words. Joined by newline unless as_list=True.

  • meow.sentence(words: int | None = None, word_range=(4, 12), punctuation=True) -> str
    Convenience alias for a single phrase. If words is None, samples uniformly from word_range.

  • meow.sentences(n=1, words: int | None = None, word_range=(4, 12), as_list=False, punctuation=True) -> str | list[str]
    Multiple sentences. Joined by space unless as_list=True.

  • meow.paragraph(sentence_range=(3, 7)) -> str
    Paragraph with a sampled number of sentences.

  • meow.paragraphs(n=1, sentence_range=(3, 7), as_list=False) -> str | list[str]
    Multiple paragraphs (double-newline separated unless as_list=True).

  • meow.text(paragraphs_count=3, sentence_range=(3, 7), html=False) -> str
    Produce multiple paragraphs; html=True wraps each as

    ...

    .

CLI

Console script: meowsum

  • Selection

    • --phrases N --words M Generate N phrases, each with exactly M words
    • --sentences N Generate N sentences (pair with --words or use --min-words/--max-words)
    • --paragraphs N Generate N paragraphs (pair with --html optionally)
    • --words M Generate exactly M words (standalone)
  • Ranges

    • --min-words X --max-words Y
    • --min-sentences A --max-sentences B
  • Formatting

    • --html Wrap paragraphs in

      ...

      (only with --paragraphs)
    • --no-punct Disable punctuation for phrases/sentences
  • Reproducibility / tuning

    • --seed INT
    • --meow-bias FLOAT Probability a word is exactly “meow” (default 0.7)

Notes:

  • Default: Running meowsum with no options prints a single paragraph of 500 words.
  • When both --phrases and --words are given, you get N phrases with exactly M words each (as requested).
  • Each word never exceeds 10 characters; samplers honor this cap.
  • Punctuation can appear mid-sentence (commas, !, ?, ...), and sentences end with one of ., !, ?, .... Occasionally an entire phrase is wrapped in quotes, and a pair of parentheses may span 1–10 words.

Rationale and behavior

  • Word shape strictly enforced as “m + multiple e + multiple o + w”.
  • Bias: “meow” dominates to keep content readable and compact; variants are sprinkled in.
  • Length cap ensures consistent visual width and avoids extreme stretched variants.

Development

Build:

python -m pip install -U build
python -m build

Run tests (if pytest is available):

pytest -q

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

meowsum-0.1.0.tar.gz (9.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

meowsum-0.1.0-py3-none-any.whl (10.0 kB view details)

Uploaded Python 3

File details

Details for the file meowsum-0.1.0.tar.gz.

File metadata

  • Download URL: meowsum-0.1.0.tar.gz
  • Upload date:
  • Size: 9.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for meowsum-0.1.0.tar.gz
Algorithm Hash digest
SHA256 96c6202e01cc5756fdbfc70431e8e1943ea4bf376ec9417e1a384c96abee703b
MD5 1163fb514d0029dbc36e408c4040edf7
BLAKE2b-256 b78db2f42bf891da15773abb6eff9e1c54552d3542cb9ddac2d798e1abf77047

See more details on using hashes here.

File details

Details for the file meowsum-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: meowsum-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 10.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.1

File hashes

Hashes for meowsum-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3ec0c5385ad37ce4dffea9bae6b9101015088eed0605a127692ff52555eb13a0
MD5 2fb0000e9ab0b348bd65f61f7f471794
BLAKE2b-256 b95b47bb2f2da51d3961a425c7989bf7618968e51de375ffc5fbfb5282e5da61

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page