#!/usr/bin/env python3
"""Week 8 Generator - Double Consonants
Phonics: Double Consonants (tt, pp, ss, mm, nn, ll, ff, dd, ck, ng)
Spelling: 12 words, all 6+ letters
Grammar: Compound Sentences -- joining two ideas with FANBOYS
"""
import os
import sys
sys.path.insert(0, os.path.join(os.path.dirname(__file__), ".."))
from monday import generate_monday
from tuesday import generate_tuesday
from wednesday import generate_wednesday
from thursday import generate_thursday
from friday import generate_friday
from teacher_guide import generate_teacher_guide
from validate import validate_week
WEEK = os.path.expanduser("~/Home_School/2nd_Grade/English_Language_Arts/Week_08")
# =====================================================================
# WORD LIST - 12 words, all 6+ letters, Double Consonants
# =====================================================================
WORDS = [
("butter", "tt = short u", "a yellow spread made from cream"),
("hopper", "pp = short o", "someone or something that jumps around"),
("fizzle", "zz = short i", "to fail or make a hissing sound and stop"),
("summer", "mm = short u", "the warmest season of the year"),
("tunnel", "nn = short u", "a passage that goes through or under something"),
("bitter", "tt = short i", "having a sharp, unpleasant taste"),
("ladder", "dd = short a", "something with steps that you climb up and down"),
("puddle", "dd = short u", "a small pool of rainwater on the ground"),
("cotton", "tt = short o", "a soft, white material from a plant used for clothes"),
("hugger", "gg = short u", "someone who gives warm hugs"),
("kitten", "tt = short i", "a very young cat"),
("bigger", "gg = short i", "more large; greater in size"),
]
WORD_NAMES = [w[0] for w in WORDS]
PHONICS_LABEL = "Double_Consonants"
# =====================================================================
# SHARED CONTENT DATA
# =====================================================================
LEARNING_TEXT = (
"When two of the same consonant sit together, they make the vowel BEFORE them SHORT!<br>"
"The double consonant team keeps the vowel short and snappy."
)
GRAMMAR_NOTE = (
"Grammar: <strong>Compound Sentences</strong> join two complete ideas with a FANBOYS word "
"(For, And, Nor, But, Or, Yet, So) and a comma. "
"Example: The kitten played, <em>and</em> the puppy slept."
)
GRAMMAR_DEEP = (
"A compound sentence joins TWO complete sentences with a comma + FANBOYS word.<br><br>"
"The FANBOYS are: <strong>For, And, Nor, But, Or, Yet, So</strong><br><br>"
"• The kitten played<sup>,</sup> <strong>and</strong> the puppy slept.<br>"
"• I wanted ice cream<sup>,</sup> <strong>but</strong> it was too cold.<br>"
"• She climbed the ladder<sup>,</sup> <strong>so</strong> she could see the view.<br><br>"
"Rule: Complete sentence + <strong>, FANBOYS</strong> + Complete sentence!"
)
VOWEL_EXAMPLES_MONDAY = [
'<strong>tt</strong> — <em>butter</em>, <em>bitter</em>, <em>cotton</em>, <em>kitten</em>',
'<strong>pp</strong> — <em>hopper</em>',
'<strong>zz</strong> — <em>fizzle</em>',
'<strong>mm</strong> — <em>summer</em>',
'<strong>nn</strong> — <em>tunnel</em>',
'<strong>dd</strong> — <em>ladder</em>, <em>puddle</em>',
'<strong>gg</strong> — <em>hugger</em>, <em>bigger</em>',
]
VOWEL_EXAMPLES_TUE = VOWEL_EXAMPLES_MONDAY
SORT_LABELS = ["tt", "pp", "zz", "mm", "nn", "dd", "gg"]
SORT_TITLE = "Double Consonant Sort"
LEARNING_SKILLS_WED = [
"<strong>Reading</strong> — understand vocabulary in context",
"<strong>Synonyms & Antonyms</strong> — words with similar and opposite meanings",
"<strong>Word Webs</strong> — connecting related vocabulary",
]
REMINDER_TEXT = (
"Double Consonant Rules:<br><br>"
"1. Two of the same consonant together = short vowel sound before them.<br>"
"2. <strong>tt</strong> — <em>butter</em>, <em>bitter</em>, <em>cotton</em>, <em>kitten</em><br>"
"3. <strong>pp</strong> — <em>hopper</em><br>"
"4. <strong>zz</strong> — <em>fizzle</em><br>"
"5. <strong>mm</strong> — <em>summer</em><br>"
"6. <strong>nn</strong> — <em>tunnel</em><br>"
"7. <strong>dd</strong> — <em>ladder</em>, <em>puddle</em><br>"
"8. <strong>gg</strong> — <em>hugger</em>, <em>bigger</em><br><br>"
"Remember: double consonants make the vowel SHORT!"
)
# =====================================================================
# MONDAY DATA - Garden adventure theme
# =====================================================================
MONDAY_STORY = (
'On a cold day in <strong>summer</strong>, Leo the <strong>kitten</strong> found a box of '
'<strong>cotton</strong> balls by the garden <strong>tunnel</strong>. '
'He wanted to build a <strong>bigger</strong> castle than last time. '
'"I need a <strong>ladder</strong> to climb up!" he purred. '
'His friend Pip the <strong>hopper</strong> frog jumped over to help. '
'The campfire started to <strong>fizzle</strong> as the rain came down. '
'Pip found a <strong>puddle</strong> full of floating leaves. '
'"Let us share the <strong>butter</strong> crackers," said Pip. '
'But the lemon ones tasted <strong>bitter</strong> and Pip made a face. '
'Then Leo gave Pip the warmest <strong>hugger</strong> squeeze ever. '
'They built the biggest castle together!'
)
MONDAY_GRAMMAR_PRACTICE = [
"the kitten played and the frog jumped",
"i wanted butter but it was bitter",
"she climbed the ladder so she could see",
]
MONDAY_FILL_DATA = [
("The kitten played in the soft ____.", "cotton"),
("The kitten jumped in the ____.", "puddle"),
("Pip the hopper jumped on the ____.", "ladder"),
("The campfire began to ____ in the rain.", "fizzle"),
]
MONDAY_OPPOSITE_WORDS = ["bigger", "bitter"]
MONDAY_SENTENCE_WORDS = WORD_NAMES[:4]
# =====================================================================
# TUESDAY DATA - Space adventure theme
# =====================================================================
TUESDAY_LEARNING = (
"Today we practice Double Consonant patterns. Read each word slowly "
"and listen for the short vowel sound the double consonants create."
)
TUESDAY_READING = (
'Captain Luna landed her ship in a <strong>tunnel</strong> under the moon. '
'She wore a <strong>cotton</strong> space suit painted with <strong>bigger</strong> stars. '
'A tiny alien <strong>hopper</strong> bounced toward her with a gift box. '
'Inside was a <strong>butter</strong> cookie from Earth! "Delicious!" she said. '
'Not <strong>bitter</strong> at all. The alien used a <strong>ladder</strong> to reach the sky dome. '
'Luna found a tiny <strong>puddle</strong> reflecting Earth far below. '
'Space plants floated nearby in the water. '
'The <strong>kitten</strong> aboard meowed and wanted a <strong>hugger</strong> hug. '
'The old engine began to <strong>fizzle</strong> but the robots kept working through <strong>summer</strong>. '
'Captain Luna said, "Every mission is a new adventure."'
)
TUESDAY_COMP_QUESTIONS = [
"What did Captain Luna find inside the gift box?",
"What did the alien use to reach the sky dome?",
"What was growing in the space puddle?",
]
TUESDAY_REMEMBER_1 = (
"Remember This!",
'<table style="width:100%;border-collapse:separate;border-spacing:4px;font-size:11px;"><tr>'
'<td style="vertical-align;top;width:50%;">'
'Double Consonant Sounds:<br>'
'- <strong>tt</strong> — <em>butter</em>, <em>bitter</em>, <em>cotton</em>, <em>kitten</em><br>'
'- <strong>pp</strong> — <em>hopper</em><br>'
'- <strong>zz</strong> — <em>fizzle</em><br>'
'- <strong>mm</strong> — <em>summer</em><br>'
'</td>'
'<td style="vertical-align;top;width:50%;">'
'- <strong>nn</strong> — <em>tunnel</em><br>'
'- <strong>dd</strong> — <em>ladder</em>, <em>puddle</em><br>'
'- <strong>gg</strong> — <em>hugger</em>, <em>bigger</em><br><br>'
'<strong>Try This:</strong> What double consonant is in <em>butter</em>? ___'
'</td>'
'</tr></table>'
)
TUESDAY_REMEMBER_2 = (
"Remember This!",
'<table style="width:100%;border-collapse:separate;border-spacing:4px;font-size:11px;"><tr>'
'<td style="vertical-align;top;width:50%;">'
'Compound Sentences use a comma + FANBOYS to join two ideas!<br><br>'
'<strong>The kitten played, and the frog jumped.</strong><br>'
'<strong>I wanted butter, but it was bitter.</strong><br>'
'<strong>She climbed up, so she could see.</strong>'
'</td>'
'<td style="vertical-align;top;width:50%;">'
'<strong>Try This:</strong> Join these: "The sun shone. We played outside."<br><br>___'
'</td>'
'</tr></table>'
)
TUESDAY_SWAP_DATA = [
("The kitten played in the soft cotton.", ("kitten", "hopper"), ("cotton", "tunnel")),
("The puddle began to fizzle in the rain.", ("puddle", "butter"), ("fizzle", "bitter")),
("The hugger climbed the ladder to the top.", ("hugger", "summer"), ("ladder", "bigger")),
]
TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about summer.", "summer"),
("Write a sentence about a tunnel.", "tunnel"),
("Write a sentence using a double consonant word.", "bigger"),
]
# =====================================================================
# WEDNESDAY DATA - Ocean exploration theme
# =====================================================================
WEDNESDAY_LEARNING = (
"Today we use our Double Consonant words in reading, writing, and thinking. "
"Each activity helps you understand how these words work in different contexts."
)
WEDNESDAY_READING = (
'Deep in the ocean, a <strong>kitten</strong>-faced seal named Bubbles swam through a coral <strong>tunnel</strong>. '
'Her best friend was a <strong>hopper</strong> crab who jumped from rock to rock. '
'"Let us find a <strong>bigger</strong> cave!" Bubbles said. '
'They swam past a <strong>ladder</strong> of seaweed reaching the surface. '\
'Bubbles stopped at a <strong>puddle</strong> of glowing jellyfish near the reef. '
'The old submarine engine began to <strong>fizzle</strong> and lose power. '
'Bubbles found <strong>cotton</strong>-soft coral in the <strong>summer</strong> warm current. '
'She tried some <strong>butter</strong>-yellow sea plant. "A little <strong>bitter</strong>!" she said. '
'The <strong>hugger</strong> octopus gave them both a warm squeeze. '
'The best underwater adventure ever!'
)
WEDNESDAY_VOCAB_Q = (
"In the sentence 'Bubbles stopped at a puddle of glowing jellyfish near the reef,' what does <strong>puddle</strong> mean?<br><br>"
"A) A large wave<br>"
"B) A small pool or collection of something<br>"
"C) A fast-swimming fish<br>"
"D) A fish that lives in caves"
)
WEDNESDAY_SYN_ANT = ["bigger", "bitter", "fizzle", "cotton", "butter", "hopper"]
WEDNESDAY_SORT_DATA = [
"The kitten played in the soft cotton on a summer day",
"The hopper frog jumped over the small puddle",
]
WEDNESDAY_CORRECT = [
"the kitten found a tunnel under the bridge.",
"my summer vacation was bigger than expected.",
"the hopper frog jumped over the puddle outside.",
]
WEDNESDAY_FILL = [
("The ____ climbed up the tall ladder.", "hopper"),
("We played outside all ____ long.", "summer"),
("The kitten slept in the cozy ____.", "tunnel"),
]
WEDNESDAY_CONTEXT = (
'Read this sentence: "The bigger house has more rooms than the small one."<br><br>'
"What does <strong>bigger</strong> mean?<br>"
"A) Smaller and cozier<br>"
"B) Greater in size<br>"
"C) Taller but narrower<br>"
"D) Older and newer"
)
WEDNESDAY_DICTATION = ["butter", "hopper", "fizzle", "summer", "tunnel", "bitter"]
# =====================================================================
# THURSDAY DATA - Magical forest theme
# =====================================================================
THURSDAY_LEARNING = (
"Today we use our Double Consonant words in stories and writing. "
"Use each word correctly in your sentences and stories."
)
THURSDAY_STORY = (
'In the enchanted forest, a <strong>kitten</strong> with <strong>cotton</strong>-fluff fur found a magic <strong>tunnel</strong>. '
'Inside lived a <strong>bigger</strong> version of herself! "Hi!" said the big kitten. '
'She had a <strong>ladder</strong> made of vines to climb the mushroom trees. '
'A <strong>hopper</strong> rabbit bounced by with a jar of <strong>butter</strong>. '
'"Try some," he said. The first taste was <strong>bitter</strong> but then sweet. '
'The magic spell began to <strong>fizzle</strong> as the fireflies faded. '
'In <strong>summer</strong>, the flowers grew food for every little bird. '
'The big kitten gave her a <strong>puddle</strong> of water to drink and a <strong>hugger</strong> welcome. '
'The best adventure in the whole forest!'
)
THURSDAY_COMP_QUESTIONS = [
"What did the kitten find in the enchanted forest?",
"What was the ladder made of?",
"How did the butter taste at first?",
]
THURSDAY_SORT_DATA = [
"The kitten found a magic tunnel in the forest",
"The big kitten climbed the vine ladder in summer",
]
THURSDAY_DETECTIVE = [
"buter", "hoper", "fizle", "sumer", "tnel", "biter",
"lader", "peddle", "cotn", "huger", "kiten", "biger"
]
THURSDAY_SWAP_DATA = [
("The kitten played in the soft cotton.", ("kitten", "hopper"), ("cotton", "tunnel")),
("The puddle began to fizzle all summer long.", ("puddle", "butter"), ("fizzle", "bitter")),
]
THURSDAY_PARA_PROMPTS = [
"Write a paragraph about a summer adventure.",
"Write a paragraph about an animal friend.",
]
# =====================================================================
# FRIDAY DATA - Review and celebration
# =====================================================================
FRIDAY_REVIEW_STORY = (
'On the last day of <strong>summer</strong> vacation, our class had a spelling party. '
'We decorated with <strong>cotton</strong> clouds and <strong>butter</strong> yellow streamers. '
'Jake brought a <strong>kitten</strong> puppet named <strong>Hopper</strong>. '
'Sarah built a paper <strong>tunnel</strong> on the <strong>ladder</strong> table. '
'I set up a craft station to paint <strong>puddle</strong> rocks. '
'The old firework began to <strong>fizzle</strong> but the party was still fun. '
'Our teacher said our work was <strong>bigger</strong> and <strong>better</strong> than ever. '
'Even the <strong>bitter</strong> lemonade tasted good at a party! '
'Ms. Chen gave each of us a <strong>hugger</strong> sticker. '
'What a wonderful week of Double Consonants!'
)
FRIDAY_STORY_QUESTIONS = [
"What did the class decorate with for the spelling party?",
"What was the name of Jake\'s kitten puppet?",
"What sticker did Ms. Chen give the students?",
]
FRIDAY_OPPOSITE_WORDS = ["bigger", "bitter", "summer"]
FRIDAY_BUILDER_WORDS = ["butter", "hopper", "fizzle", "tunnel"]
FRIDAY_JOURNAL_WORDS = ["cotton", "ladder", "puddle", "kitten"]
# =====================================================================
# TEACHER GUIDE DATA
# =====================================================================
TEACHER_MONDAY_PHONICS_EXPLANATION = (
"DOUBLE CONSONANTS happen when two of the same consonant letter sit together in a word. "
"The double team makes the vowel BEFORE them say its SHORT sound.<br><br>"
"• <strong>tt</strong> — <em>butter</em>, <em>bitter</em>, <em>cotton</em>, <em>kitten</em><br>"
"• <strong>pp</strong> — <em>hopper</em><br>"
"• <strong>zz</strong> — <em>fizzle</em><br>"
"• <strong>mm</strong> — <em>summer</em><br>"
"• <strong>nn</strong> — <em>tunnel</em><br>"
"• <strong>dd</strong> — <em>ladder</em>, <em>puddle</em><br>"
"• <strong>gg</strong> — <em>hugger</em>, <em>bigger</em><br><br>"
"Important: The vowel before the double consonant is ALWAYS short. "
"Compare 'hut' vs 'huts' (one t) with 'hugger' (double g = short u)."
)
TEACHER_MONDAY_GRAMMAR_FOCUS = "Compound Sentences -- Joining Two Ideas with FANBOYS"
TEACHER_MONDAY_GRAMMAR_EXPLANATION = (
"A compound sentence joins TWO complete sentences with a comma + FANBOYS word.<br><br>"
"The FANBOYS are: <strong>For, And, Nor, But, Or, Yet, So</strong><br><br>"
"Examples: The kitten played<sup>,</sup> <strong>and</strong> the frog jumped. "
"I wanted ice cream<sup>,</sup> <strong>but</strong> it was too cold.<br><br>"
"Rule: Complete sentence + <strong>, FANBOYS</strong> + Complete sentence."
)
TEACHER_MONDAY_SORT_LABELS = ["tt", "pp", "zz", "mm", "nn", "dd", "gg"]
TEACHER_MONDAY_SORT_ANSWERS = [
["butter", "bitter", "cotton", "kitten"],
["hopper"],
["fizzle"],
["summer"],
["tunnel"],
["ladder", "puddle"],
["hugger", "bigger"],
]
TEACHER_MONDAY_FILL_ANSWERS = ["cotton", "puddle", "ladder", "fizzle"]
TEACHER_MONDAY_OPPOSITE_ANSWERS = [
("bigger", "smaller"),
("bitter", "sweet"),
]
TEACHER_MONDAY_SENTENCE_WORDS = ["butter", "hopper", "fizzle", "summer"]
# Tuesday
TEACHER_TUESDAY_PHONICS_EXPLANATION = (
"Students continue building fluency with Double Consonants. "
"Today\'s focus shifts from identification to APPLICATION — finding double consonant words "
"in context (reading passage), discriminating them from other patterns (Pattern Hunt), "
"and using them in original sentences (Builder)."
)
TEACHER_TUESDAY_SCRAMBLE_ANSWERS = [
("buettr", "butter"),
("phoerp", "hopper"),
("zbzuy", "fizzle"),
("sueemmrr", "summer"),
("tneuln", "tunnel"),
("biettr", "bitter"),
("aldedr", "ladder"),
("peddler", "puddle"),
("cototn", "cotton"),
("huerug", "hugger"),
("kitnet", "kitten"),
("bieggr", "bigger"),
]
TEACHER_TUESDAY_COMP_QUESTIONS = [
"What did Captain Luna find inside the gift box?",
"What did the alien use to reach the sky dome?",
"What did Luna find reflecting Earth below?",
]
TEACHER_TUESDAY_COMP_ANSWERS = [
"A butter cookie from Earth.",
"A ladder.",
"A tiny puddle.",
]
TEACHER_TUESDAY_PATTERN_HUNT = {
"match": ["butter", "hopper", "fizzle", "summer", "tunnel", "bitter", "ladder", "puddle", "cotton", "hugger", "kitten", "bigger"],
"decoy": ["cat", "big", "stop", "pen", "house"],
}
TEACHER_TUESDAY_SWAP_ANSWERS = [
"hopper, tunnel",
"puddle, bitter",
"hugger, bigger",
]
TEACHER_TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about summer.", "summer"),
("Write a sentence about a tunnel.", "tunnel"),
("Write a sentence using a double consonant word.", "bigger"),
]
# Wednesday
TEACHER_WEDNESDAY_PHONICS_EXPLANATION = (
"Mid-week deepening. Students now move beyond recognition into ANALYSIS — "
"understanding word relationships (synonyms/antonyms), connecting vocabulary (word web), "
"and applying listening skills (dictation). This is where the Double Consonant "
"pattern knowledge becomes functional."
)
TEACHER_WEDNESDAY_VOCAB_Q_QUESTION = (
"In 'Bubbles stopped at a puddle of glowing jellyfish near the reef,' what does puddle mean?"
)
TEACHER_WEDNESDAY_VOCAB_Q_ANSWER = "B) A small pool or collection of something"
TEACHER_WEDNESDAY_SYN_ANT_WORDS = ["bigger", "bitter", "fizzle", "cotton", "butter", "hopper"]
TEACHER_WEDNESDAY_WORD_WEB_CENTER = "summer"
TEACHER_WEDNESDAY_WORD_WEB_SUGGESTIONS = [
"warm", "sun", "beach", "pool", "vacation", "ice cream", "camping", "outdoor", "play", "fun"
]
TEACHER_WEDNESDAY_SORT_ANSWERS = {
"sentences": [
"The kitten played in the soft cotton on a summer day",
"The hopper frog jumped over the small puddle",
],
"correct_order": [
"The kitten played in the soft cotton on a summer day.",
"The hopper frog jumped over the small puddle.",
],
}
TEACHER_WEDNESDAY_CORRECT_ANSWERS = [
("the kitten found a tunnel under the bridge.", "The kitten found a tunnel under the bridge."),
("my summer vacation was bigger than expected.", "My summer vacation was bigger than expected."),
("the hopper frog jumped over the puddle outside.", "The hopper frog jumped over the puddle outside."),
]
TEACHER_WEDNESDAY_FILL_ANSWERS = ["hopper", "summer", "tunnel"]
TEACHER_WEDNESDAY_CONTEXT_CLUE_QUESTION = (
"In 'The bigger house has more rooms than the small one,' what does bigger mean?"
)
TEACHER_WEDNESDAY_CONTEXT_CLUE_ANSWER = "B) Greater in size"
TEACHER_WEDNESDAY_DICTATION_WORDS = ["butter", "hopper", "fizzle", "summer", "tunnel", "bitter"]
# Thursday
TEACHER_THURSDAY_PHONICS_EXPLANATION = (
"Production day. Students have now seen and practiced Double Consonants for 3 days — "
"today they actively CREATE with them. Spelling Detective builds metacognition. "
"Spelling Maps teach word analysis. Paragraph writing brings it all together."
)
TEACHER_THURSDAY_COMP_QUESTIONS = [
"What did the kitten find in the enchanted forest?",
"What was the ladder made of?",
"How did the butter taste at first?",
]
TEACHER_THURSDAY_COMP_ANSWERS = [
"A magic tunnel.",
"Vines.",
"Bitter but then sweet.",
]
TEACHER_THURSDAY_SORT_ANSWERS = {
"sentences": [
"The kitten found a magic tunnel in the forest",
"The fuzzy fireflies lit up the summer night",
],
"correct_order": [
"The kitten found a magic tunnel in the forest.",
"The fuzzy fireflies lit up the summer night.",
],
}
TEACHER_THURSDAY_DETECTIVE_ANSWERS = [
("buter", "butter"),
("hoper", "hopper"),
("fizle", "fizzle"),
("sumer", "summer"),
("tnel", "tunnel"),
("biter", "bitter"),
("lader", "ladder"),
("peddle", "puddle"),
("cotn", "cotton"),
("huger", "hugger"),
("kiten", "kitten"),
("biger", "bigger")
]
TEACHER_THURSDAY_SWAP_ANSWERS = [
"hopper, tunnel",
"puddle, bitter",
]
TEACHER_THURSDAY_MAP_WORD = "butter"
TEACHER_THURSDAY_MAP_SUGGESTIONS = [
"A yellow spread made from cream",
"Double tt makes short u sound",
"We spread butter on warm toast.",
]
TEACHER_THURSDAY_PARA_PROMPTS = [
"Write a paragraph about a summer adventure.",
"Write a paragraph about an animal friend.",
]
# Friday
TEACHER_FRIDAY_PHONICS_EXPLANATION = (
"Review and assessment day. Students show what they learned about Double Consonants all week. "
"Keep the mood positive — even one more word correct than last week is a win!"
)
TEACHER_FRIDAY_TEST_ANSWERS = WORD_NAMES
TEACHER_FRIDAY_STORY_QUESTIONS = [
"What did the class decorate with for the spelling party?",
"What was the name of Jake\'s kitten puppet?",
"What sticker did Ms. Chen give the students?",
]
TEACHER_FRIDAY_STORY_ANSWERS = [
"Cotton clouds and butter yellow streamers.",
"Hopper.",
"A hugger sticker.",
]
TEACHER_FRIDAY_OPPOSITE_ANSWERS = [
("bigger", "smaller"),
("bitter", "sweet"),
("summer", "winter"),
]
TEACHER_FRIDAY_BUILDER_WORDS = ["butter", "hopper", "fizzle", "tunnel"]
TEACHER_FRIDAY_JOURNAL_WORDS = ["cotton", "ladder", "puddle", "kitten"]
# =====================================================================
# VALIDATION
# =====================================================================
fill_data = MONDAY_FILL_DATA
DETECTIVE_WORDS = THURSDAY_DETECTIVE
DETECTIVE_ANSWERS = ["butter", "hopper", "fizzle", "summer", "tunnel", "bitter",
"ladder", "puddle", "cotton", "hugger", "kitten", "bigger"]
detective_words = DETECTIVE_WORDS
detective_answers = DETECTIVE_ANSWERS
opposite_pairs = [
("bigger", "smaller"), ("bitter", "sweet"), ("summer", "winter"),
]
learning_examples = ["butter", "hopper", "fizzle", "summer", "tunnel", "bitter",
"ladder", "puddle", "cotton", "hugger", "kitten", "bigger"]
errors = validate_week(
words=WORDS,
word_names=WORD_NAMES,
fill_data=fill_data,
detective_words=detective_words,
detective_answers=detective_answers,
opposite_pairs=opposite_pairs,
learning_examples=learning_examples,
phonetic_check=False
)
if errors:
for e in errors:
print(f" {e}")
exit(1)
print("[ok] All validation passed")
# =====================================================================
# GENERATE ALL DAYS
# =====================================================================
print(f"\nGenerating Week 8: Double Consonants...")
generate_monday(
week_dir=WEEK, week_num=8, phonics_label=PHONICS_LABEL, words=WORDS,
learning_text=LEARNING_TEXT, vowel_examples=VOWEL_EXAMPLES_MONDAY,
grammar_note=GRAMMAR_NOTE, grammar_deep=GRAMMAR_DEEP,
grammar_practice=MONDAY_GRAMMAR_PRACTICE,
story_text=MONDAY_STORY,
sort_labels=SORT_LABELS, sort_title=SORT_TITLE,
fill_data=MONDAY_FILL_DATA,
opposite_words=MONDAY_OPPOSITE_WORDS,
sentence_words=MONDAY_SENTENCE_WORDS,
)
generate_tuesday(
week_dir=WEEK, week_num=8, phonics_label=PHONICS_LABEL, words=WORDS,
learning_text=TUESDAY_LEARNING, vowel_examples=VOWEL_EXAMPLES_TUE,
remember_boxes=[TUESDAY_REMEMBER_1, TUESDAY_REMEMBER_2],
reading_text=TUESDAY_READING,
comp_questions=TUESDAY_COMP_QUESTIONS,
swap_data=TUESDAY_SWAP_DATA,
builder_prompts=TUESDAY_BUILDER_PROMPTS,
pattern_hunt_title="Double Consonant Hunt",
pattern_hunt_instruction="Check each word that has a double consonant.",
)
generate_wednesday(
week_dir=WEEK, week_num=8, phonics_label=PHONICS_LABEL, words=WORDS,
learning_text=WEDNESDAY_LEARNING, learning_skills=LEARNING_SKILLS_WED,
reading_passage=WEDNESDAY_READING,
vocab_question=WEDNESDAY_VOCAB_Q,
syn_ant_words=WEDNESDAY_SYN_ANT,
word_web_center="summer",
sentence_sort_data=WEDNESDAY_SORT_DATA,
correct_sentences=WEDNESDAY_CORRECT,
fill_data=WEDNESDAY_FILL,
context_clue=WEDNESDAY_CONTEXT,
dictation_words=WEDNESDAY_DICTATION,
)
generate_thursday(
week_dir=WEEK, week_num=8, phonics_label=PHONICS_LABEL, words=WORDS,
learning_text=THURSDAY_LEARNING, remember_text=REMINDER_TEXT,
story_text=THURSDAY_STORY,
comp_questions=THURSDAY_COMP_QUESTIONS,
sentence_sort_data=THURSDAY_SORT_DATA,
detective_words=THURSDAY_DETECTIVE,
swap_data=THURSDAY_SWAP_DATA,
map_word=TEACHER_THURSDAY_MAP_WORD,
para_prompts=THURSDAY_PARA_PROMPTS,
)
generate_friday(
week_dir=WEEK, week_num=8, phonics_label=PHONICS_LABEL, words=WORDS,
review_story=FRIDAY_REVIEW_STORY,
story_questions=FRIDAY_STORY_QUESTIONS,
opposite_words=FRIDAY_OPPOSITE_WORDS,
builder_words=FRIDAY_BUILDER_WORDS,
journal_words=FRIDAY_JOURNAL_WORDS,
)
generate_teacher_guide(
week_dir=WEEK, week_num=8, phonics_label=PHONICS_LABEL, words=WORDS,
phonics_name="Double Consonants",
# Monday
monday_phonics_explanation=TEACHER_MONDAY_PHONICS_EXPLANATION,
monday_grammar_focus=TEACHER_MONDAY_GRAMMAR_FOCUS,
monday_grammar_explanation=TEACHER_MONDAY_GRAMMAR_EXPLANATION,
monday_story_text=MONDAY_STORY,
monday_sort_labels=TEACHER_MONDAY_SORT_LABELS,
monday_sort_answers=TEACHER_MONDAY_SORT_ANSWERS,
monday_fill_answers=TEACHER_MONDAY_FILL_ANSWERS,
monday_opposite_answers=TEACHER_MONDAY_OPPOSITE_ANSWERS,
monday_sentence_words=TEACHER_MONDAY_SENTENCE_WORDS,
# Tuesday
tuesday_phonics_explanation=TEACHER_TUESDAY_PHONICS_EXPLANATION,
tuesday_scramble_answers=TEACHER_TUESDAY_SCRAMBLE_ANSWERS,
tuesday_reading_text=TUESDAY_READING,
tuesday_comp_questions=TEACHER_TUESDAY_COMP_QUESTIONS,
tuesday_comp_answers=TEACHER_TUESDAY_COMP_ANSWERS,
tuesday_pattern_hunt_answers=TEACHER_TUESDAY_PATTERN_HUNT,
tuesday_swap_answers=TEACHER_TUESDAY_SWAP_ANSWERS,
tuesday_builder_prompts=TEACHER_TUESDAY_BUILDER_PROMPTS,
# Wednesday
wednesday_phonics_explanation=TEACHER_WEDNESDAY_PHONICS_EXPLANATION,
wednesday_reading_text=WEDNESDAY_READING,
wednesday_vocab_q_question=TEACHER_WEDNESDAY_VOCAB_Q_QUESTION,
wednesday_vocab_q_answer=TEACHER_WEDNESDAY_VOCAB_Q_ANSWER,
wednesday_syn_ant_words=TEACHER_WEDNESDAY_SYN_ANT_WORDS,
wednesday_word_web_center=TEACHER_WEDNESDAY_WORD_WEB_CENTER,
wednesday_word_web_suggestions=TEACHER_WEDNESDAY_WORD_WEB_SUGGESTIONS,
wednesday_sort_answers=TEACHER_WEDNESDAY_SORT_ANSWERS,
wednesday_correct_answers=TEACHER_WEDNESDAY_CORRECT_ANSWERS,
wednesday_fill_answers=TEACHER_WEDNESDAY_FILL_ANSWERS,
wednesday_context_clue_question=TEACHER_WEDNESDAY_CONTEXT_CLUE_QUESTION,
wednesday_context_clue_answer=TEACHER_WEDNESDAY_CONTEXT_CLUE_ANSWER,
wednesday_dictation_words=TEACHER_WEDNESDAY_DICTATION_WORDS,
# Thursday
thursday_phonics_explanation=TEACHER_THURSDAY_PHONICS_EXPLANATION,
thursday_story_text=THURSDAY_STORY,
thursday_comp_questions=TEACHER_THURSDAY_COMP_QUESTIONS,
thursday_comp_answers=TEACHER_THURSDAY_COMP_ANSWERS,
thursday_sort_answers=TEACHER_THURSDAY_SORT_ANSWERS,
thursday_detective_answers=TEACHER_THURSDAY_DETECTIVE_ANSWERS,
thursday_swap_answers=TEACHER_THURSDAY_SWAP_ANSWERS,
thursday_map_word=TEACHER_THURSDAY_MAP_WORD,
thursday_map_suggestions=TEACHER_THURSDAY_MAP_SUGGESTIONS,
thursday_para_prompts=TEACHER_THURSDAY_PARA_PROMPTS,
# Friday
friday_phonics_explanation=TEACHER_FRIDAY_PHONICS_EXPLANATION,
friday_test_answers=TEACHER_FRIDAY_TEST_ANSWERS,
friday_story_questions=TEACHER_FRIDAY_STORY_QUESTIONS,
friday_story_answers=TEACHER_FRIDAY_STORY_ANSWERS,
friday_opposite_answers=TEACHER_FRIDAY_OPPOSITE_ANSWERS,
friday_builder_words=TEACHER_FRIDAY_BUILDER_WORDS,
friday_journal_words=TEACHER_FRIDAY_JOURNAL_WORDS,
)
print("\nWeek 8 generation complete!")