#!/usr/bin/env python3
"""Week 5 Generator - Digraphs: SH, CH, TH, WH, PH, CK
Phonics: Two letters making one sound (sh, ch, th, wh, ph, ck)
Spelling: 12 words, all 6+ letters
Grammar: Question marks (?) and exclamation points (!)
"""
import os, 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_05")
# =====================================================================
# WORD LIST - 12 words, all 6+ letters, Digraphs
# =====================================================================
WORDS = [
("shelter", "sh sound (sh)", "a place that protects you from weather"),
("smooth", "th sound (th)", "even and flat, not rough"),
("blanket", "short a", "a soft cover used on a bed"),
("pocket", "ck sound (ck)", "a small bag sewn into clothing"),
("teacher", "ch sound (ch)", "someone who helps students learn"),
("stretch", "ch sound (ch)", "to make something longer or wider"),
("mother", "th sound (th)", "a female parent"),
("thunder", "th sound (th)", "the loud sound during a storm"),
("whether", "wh sound (wh)", "if, used when giving choices"),
("dolphin", "ph sound (ph)", "a smart ocean animal that jumps"),
("physics", "ph sound (ph)", "the science of how things move and work"),
("rocket", "ck sound (ck)", "a vehicle that flies into space"),
]
WORD_NAMES = [w[0] for w in WORDS]
PHONICS_LABEL = "Digraphs_SH_CH_TH_WH_PH_CK"
# =====================================================================
# SHARED CONTENT
# =====================================================================
LEARNING_TEXT = (
"A DIGRAPH is when TWO letters work together to make ONE new sound. "
"This week: <strong>sh</strong> (shhh!), <strong>ch</strong> (ch-ch!), "
"<strong>th</strong> (th-th!), <strong>wh</strong> (wh-wh!), "
"<strong>ph</strong> (f sound!), and <strong>ck</strong> (k sound!). "
"Two letters, one sound!"
)
GRAMMAR_NOTE = (
"Grammar: <strong>Question marks (?)</strong> end questions. "
"<strong>Exclamation points (!)</strong> show excitement or strong feelings. "
"Example: Are you ready? Wow, that was fast!"
)
GRAMMAR_DEEP = (
"Punctuation tells readers how to say a sentence.<br><br>"
"<strong>Question mark (?)</strong> = you're asking something: <br>"
" Do you like ice cream?<br>"
"<strong>Exclamation point (!)</strong> = excitement or surprise: <br>"
" That was amazing!<br>"
"<strong>Period (.)</strong> = calm statement: <br>"
" I like ice cream.<br><br>"
"Think about HOW you want the reader to feel!"
)
VOWEL_EXAMPLES_MONDAY = [
'<strong>th</strong> makes /th/ — <em>mother</em> (thhh! say it softly)',
'<strong>ch</strong> makes /ch/ — <em>teacher</em>, <em>stretch</em> (ch-ch! like a chair)',
'<strong>th</strong> makes /th/ — <em>mother</em>, <em>thunder</em> (put tongue between teeth)',
]
VOWEL_EXAMPLES_TUE = [
'<strong>th</strong> = thhh! — <em>bath</em>',
'<strong>ch</strong> = ch-ch! — <em>teacher</em>, <em>stretch</em>',
'<strong>th</strong> = th-th! — <em>mother</em>, <em>thunder</em>',
'<strong>wh</strong> = wh-wh! — <em>whether</em>',
'<strong>ph</strong> = f sound! — <em>dolphin</em>, <em>physics</em>',
'<strong>ck</strong> = k sound! — <em>neck</em>, <em>pocket</em>, <em>rocket</em>',
]
SORT_LABELS = ["SH Words", "CH Words", "TH Words", "CK Words", "WH/PH Words"]
SORT_TITLE = "Digraph Sort"
LEARNING_SKILLS_WED = [
"<strong>Reading</strong> — identify digraphs in context",
"<strong>Synonyms & Antonyms</strong> — words with similar and opposite meanings",
"<strong>Word Webs</strong> — connecting related vocabulary",
]
REMINDER_TEXT = (
"Digraph Rules:<br><br>"
"1. <strong>SH</strong> = shhh sound — <em>shelter</em><br>"
"2. <strong>CH</strong> = ch-ch sound — <em>teacher</em>, <em>stretch</em><br>"
"3. <strong>TH</strong> = th-th sound — <em>mother</em>, <em>thunder</em><br>"
"4. <strong>WH</strong> = wh-wh sound — <em>whether</em><br>"
"5. <strong>PH</strong> = f sound — <em>dolphin</em>, <em>physics</em><br>"
"6. <strong>CK</strong> = k sound — <em>blanket</em>, <em>pocket</em>, <em>rocket</em><br><br>"
"Two letters working together = ONE sound!"
)
# =====================================================================
# MONDAY
# =====================================================================
MONDAY_STORY = (
'Our <strong>teacher</strong> told us to build a project for the school science fair. '
'My <strong>mother</strong> and I spent all weekend making a model <strong>rocket</strong> from cardboard. '
'We stretched the <strong>blanket</strong> over a table to keep our workspace <strong>smooth</strong> and clean. '
'I kept all my tape and glue in my <strong>pocket</strong> while we worked. '
'On the day of the fair, our <strong>teacher</strong> asked each student to explain the <strong>physics</strong> behind their project. '
'I showed how a real <strong>rocket</strong> uses force to fly straight up into the sky. '
'After the judges left, a <strong>dolphin</strong>-shaped balloon floated down from the ceiling. '
'We wondered <strong>whether</strong> the storm <strong>thunder</strong> outside would cancel the awards. '
'It did not! Our rocket won second place and I built a tiny <strong>shelter</strong> for it on our hallway <strong>stretch</strong> of wall.'
)
MONDAY_GRAMMAR_PRACTICE = [
"the dolphin jumps high",
"my mother reads the book",
"the thunder sounds loud",
]
MONDAY_FILL_DATA = [
("The dolphin swam in the smooth water.", "dolphin"),
("My mother gave me a warm blanket.", "mother"),
("The rocket flew into the sky.", "rocket"),
("The teacher helped with physics homework.", "teacher"),
]
MONDAY_OPPOSITE_WORDS = ["smooth", "stretch"]
MONDAY_SENTENCE_WORDS = WORD_NAMES[:4]
# =====================================================================
# TUESDAY
# =====================================================================
TUESDAY_LEARNING = (
"Today we practice Digraph patterns. Read each word slowly "
"and listen for the special sound the digraph creates."
)
TUESDAY_READING = (
'The ocean water felt <strong>smooth</strong> and cool as I swam near the shore. '
'My <strong>mother</strong> spread our beach <strong>blanket</strong> on the sand while I dug deep <strong>whether</strong> it was hot or cold. '
'I found a shiny blue shell and tucked it in my <strong>pocket</strong> for good luck. '
'Out past the breakers, a <strong>dolphin</strong> jumped high into the air like a living <strong>rocket</strong>. '
'My <strong>teacher</strong> came with our whole class for a field trip about beach animals. '
'She said the <strong>physics</strong> of waves is what pulls us back toward shore every time we swim out. '
'When the sky turned dark and <strong>thunder</strong> rolled in, we ran to the car <strong>shelter</strong>. '
'We stretched out in the back seat for the long drive home and fell asleep fast.'
)
TUESDAY_COMP_QUESTIONS = [
"Where did they go during the thunder storm?",
"What did the mother ask about?",
"What did they watch on the physics screen?",
]
TUESDAY_REMEMBER_1 = (
"Remember This!",
"Digraphs = TWO letters, ONE sound:<br>"
"- <strong>SH</strong> = shhh! → <em>shelter</em><br>"
"- <strong>CH</strong> = ch-ch! → <em>teacher</em>, <em>stretch</em><br>"
"- <strong>TH</strong> = th-th! → <em>mother</em>, <em>thunder</em><br>"
"- <strong>CK</strong> = k! → <em>blanket</em>, <em>pocket</em>, <em>rocket</em><br><br>"
"<strong>Try This:</strong> What digraph is in <em>dolphin</em>? ___"
)
TUESDAY_REMEMBER_2 = (
"Remember This!",
"Punctuation matters!<br><br>"
"<strong>?</strong> = Question: Are you ready?<br>"
"<strong>!</strong> = Excitement: That is amazing!<br>"
"<strong>.</strong> = Statement: I like school.<br><br>"
"<strong>Try This:</strong> What punctuation goes here: I love dolphins ___"
)
TUESDAY_SWAP_DATA = [
("The dolphin swam in the smooth ocean.", ("dolphin", "rocket"), ("smooth", "rough")),
("The teacher helped us stretch our muscles.", ("teacher", "mother"), ("stretch", "check")),
("My mother checked whether we were safe.", ("mother", "teacher"), ("whether", "before")),
]
TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about a dolphin.", "dolphin"),
("Write a sentence about a rocket.", "rocket"),
("Write a question about thunder.", "thunder"),
]
# =====================================================================
# WEDNESDAY
# =====================================================================
WEDNESDAY_LEARNING = (
"Today we use our Digraph words in reading, writing, and thinking. "
"Each activity helps you understand how these words work in different contexts."
)
WEDNESDAY_READING = (
'We set up our tent on a <strong>smooth</strong> patch of ground near the campfire. '
'My <strong>mother</strong> told me to <strong>stretch</strong> the <strong>blanket</strong> under our sleeping bags for extra comfort. '
'I kept a flashlight and my favorite book in my <strong>pocket</strong> while we hiked the trail. '
'Halfway through the woods, we heard <strong>thunder</strong> in the distance and wondered <strong>whether</strong> we should hurry back. '
'We reached the <strong>shelter</strong> just as the rain started. '
'My <strong>teacher</strong> had taught us about the <strong>physics</strong> of weather that morning, so I explained why the thunder sounded the way it did. '
'When the storm passed, I imagined a <strong>dolphin</strong> jumping in the creek like a <strong>rocket</strong> shooting through the water.'
)
WEDNESDAY_VOCAB_Q = (
"In the sentence 'The thunder made the ocean look rough,' what does <strong>rough</strong> mean?<br><br>"
"A) Smooth and flat<br>"
"B) Not smooth, with waves and bumps<br>"
"C) Very quiet and still<br>"
"D) Warm and sunny"
)
WEDNESDAY_SYN_ANT = ["smooth", "stretch", "thunder", "teacher", "dolphin", "rocket"]
WEDNESDAY_SORT_DATA = [
"The dolphin swam in the smooth ocean water",
"The rocket flew above the shelter during thunder",
]
WEDNESDAY_CORRECT = [
"the dolphin jumps in the water.",
"my teacher reads smooth books.",
"the thunder sounds very loud.",
]
WEDNESDAY_FILL = [
("The dolphin swam in the ____ water.", "smooth"),
("My ____ asked whether we could leave.", "mother"),
("The ____ flew high into the sky.", "rocket"),
]
WEDNESDAY_CONTEXT = (
'Read this sentence: "The teacher helped the students stretch their knowledge."<br><br>'
"What does <strong>stretch</strong> mean?<br>"
"A) To shrink and become smaller<br>"
"B) To expand or extend further<br>"
"C) To break into pieces<br>"
"D) To hide from everyone"
)
WEDNESDAY_DICTATION = ["shelter", "smooth", "blanket", "teacher", "dolphin", "rocket"]
# =====================================================================
# THURSDAY
# =====================================================================
THURSDAY_LEARNING = (
"Today we use our Digraph words in stories and writing. "
"Use each word correctly in your sentences and stories."
)
THURSDAY_STORY = (
'Our class visited the space museum and my <strong>teacher</strong> led us through every exhibit. '
'A real <strong>rocket</strong> stood taller than the building itself! I stretched my neck all the way up to see the tip. '
'In the <strong>physics</strong> room, we tried a gravity experiment that made balls bounce in <strong>smooth</strong> slow circles. '
'My <strong>mother</strong> came with her camera and put all her tickets in her <strong>pocket</strong>. '
'At the ocean hall, a robotic <strong>dolphin</strong> swam in a giant tank and I wondered <strong>whether</strong> real dolphins could swim in space. '
'The planetarium show began with <strong>thunder</strong>-like sounds from a distant supernova. '
'We sat on a soft <strong>blanket</strong> of starlight projected on the dome ceiling. '
'After the show, the guide pointed to a model <strong>rocket</strong> <strong>shelter</strong> that kept old spacecraft safe from the weather.'
)
THURSDAY_COMP_QUESTIONS = [
"Where did the child sit during thunder?",
"What did the mother ask about?",
"What did they watch in physics class?",
]
THURSDAY_SORT_DATA = [
"The dolphin jumped in the smooth ocean water",
"The rocket flew above the shelter during thunder",
]
THURSDAY_DETECTIVE = ["sheter", "smoth", "blanet", "poct", "teacer", "strech", "moter", "thnnder", "wheter", "dolfin", "physcs", "roket"]
THURSDAY_SWAP_DATA = [
("The dolphin swam in the smooth ocean.", ("dolphin", "rocket"), ("smooth", "warm")),
("The teacher helped us stretch our arms.", ("teacher", "mother"), ("stretch", "check")),
]
THURSDAY_PARA_PROMPTS = [
"Write a paragraph about a thunder storm.",
"Write a paragraph about a day at the ocean.",
]
# =====================================================================
# FRIDAY
# =====================================================================
FRIDAY_REVIEW_STORY = (
'My cousin and I built a giant fort out of every <strong>blanket</strong> in the house. '
'We made it <strong>smooth</strong> inside with pillows and called our creation a <strong>shelter</strong>. '
'My <strong>mother</strong> asked <strong>whether</strong> we wanted popcorn for our late-night movie. '
'Outside, <strong>thunder</strong> rumbled but we did not care. '
'I showed my cousin the <strong>rocket</strong> toy in my <strong>pocket</strong> and we launched it across the living room. '
'He said the <strong>physics</strong> of flight was why it went so high. '
'Our movie featured a <strong>dolphin</strong> named Flip who lived in a space station! '
'In the morning, I thought about how much fun the weekend had been and wished my <strong>teacher</strong> could see our <strong>stretch</strong> of blanket forts from the window.'
)
FRIDAY_STORY_QUESTIONS = [
"What jumped from the smooth ocean?",
"What did they see in physics class?",
"What did the mother ask about?",
]
FRIDAY_OPPOSITE_WORDS = ["smooth", "stretch", "thunder"]
FRIDAY_BUILDER_WORDS = ["dolphin", "teacher", "rocket", "shelter"]
FRIDAY_JOURNAL_WORDS = ["blanket", "mother", "physics", "whether"]
# =====================================================================
# TEACHER GUIDE DATA — Answer keys, explanations, and teaching notes
# =====================================================================
# Monday
TEACHER_MONDAY_PHONICS_EXPLANATION = (
"A DIGRAPH is when TWO letters work together to make ONE completely new sound. "
"This is different from blending — the two letters lose their individual sounds "
"and create something new. This week we cover six digraphs:<br><br>"
"• <strong>sh</strong> = /sh/ (like shushing someone to be quiet)<br>"
"• <strong>ch</strong> = /ch/ (like a chair scraping the floor)<br>"
"• <strong>th</strong> = /th/ (tongue between teeth, like in 'think')<br>"
"• <strong>wh</strong> = /wh/ (a breathy 'h' sound)<br>"
"• <strong>ph</strong> = /f/ (ph acts like an f — think 'phone')<br>"
"• <strong>ck</strong> = /k/ (always at the END of a short vowel syllable)"
)
TEACHER_MONDAY_GRAMMAR_FOCUS = "Question Marks (?) and Exclamation Points (!)"
TEACHER_MONDAY_GRAMMAR_EXPLANATION = (
"Question marks end questions — sentences that ask something. "
"Exclamation points show strong feelings — excitement, surprise, or urgency. "
"Contrast with periods, which end calm statements."
)
TEACHER_MONDAY_SORT_LABELS = ["SH Words", "CH Words", "TH Words", "CK Words", "WH/PH Words"]
TEACHER_MONDAY_SORT_ANSWERS = [
["shelter", "smooth"],
["teacher", "stretch"],
["mother", "thunder"],
["neck", "pocket", "rocket"],
["whether", "dolphin", "physics"],
]
TEACHER_MONDAY_FILL_ANSWERS = ["dolphin", "mother", "rocket", "teacher"]
TEACHER_MONDAY_OPPOSITE_ANSWERS = [
("smooth", "rough"),
("stretch", "shrink"),
]
TEACHER_MONDAY_SENTENCE_WORDS = ["shelter", "smooth", "blanket", "pocket"]
# Tuesday
TEACHER_TUESDAY_PHONICS_EXPLANATION = (
"Students continue building fluency with all six digraphs. "
"Today's focus shifts from identification to APPLICATION — finding digraphs "
"in context (reading passage), discriminating them from other patterns (Pattern Hunt), "
"and using them in original sentences."
)
TEACHER_TUESDAY_SCRAMBLE_ANSWERS = [
("rthetes", "shelter"),
("moths", "smooth"),
("lbaknet", "blanket"),
("poctek", "pocket"),
("teahcer", "teacher"),
("strehct", "stretch"),
("mohter", "mother"),
("tnuhder", "thunder"),
("wtehher", "whether"),
("dlhopin", "dolphin"),
("phyics", "physics"),
("roket", "rocket"),
]
TEACHER_TUESDAY_COMP_QUESTIONS = [
"Where did they go during the thunder storm?",
"What did the mother ask about?",
"What did they watch on the physics screen?",
]
TEACHER_TUESDAY_COMP_ANSWERS = [
"They went to the shelter.",
"Whether they should go to the dolphin show.",
"A rocket launch.",
]
TEACHER_TUESDAY_PATTERN_HUNT = {
"match": ["shelter", "stretch", "mother", "thunder", "whether", "dolphin", "physics"],
"decoy": ["smooth", "blanket", "pocket", "teacher", "rocket"],
}
TEACHER_TUESDAY_SWAP_ANSWERS = [
"dolphin, smooth",
"teacher, stretch",
"mother, whether",
]
TEACHER_TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about a dolphin.", "dolphin"),
("Write a sentence about a rocket.", "rocket"),
("Write a question about thunder.", "thunder"),
]
# 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 pattern knowledge becomes functional."
)
TEACHER_WEDNESDAY_VOCAB_Q_QUESTION = (
"In the sentence 'The thunder made the ocean look rough,' what does rough mean?"
)
TEACHER_WEDNESDAY_VOCAB_Q_ANSWER = "B) Not smooth, with waves and bumps"
TEACHER_WEDNESDAY_SYN_ANT_WORDS = ["smooth", "stretch", "thunder", "teacher", "dolphin", "rocket"]
TEACHER_WEDNESDAY_WORD_WEB_CENTER = "dolphin"
TEACHER_WEDNESDAY_WORD_WEB_SUGGESTIONS = [
"ocean", "swim", "jump", "fish", "water", "pod", "smart", "fins", "beach", "marine"
]
TEACHER_WEDNESDAY_SORT_ANSWERS = {
"sentences": [
"The dolphin swam in the smooth ocean water",
"The rocket flew above the shelter during thunder",
],
"correct_order": [
"The dolphin swam in the smooth ocean water.",
"The rocket flew above the shelter during thunder.",
],
}
TEACHER_WEDNESDAY_CORRECT_ANSWERS = [
("the dolphin jumps in the water.", "The dolphin jumps in the water."),
("my teacher reads smooth books.", "My teacher reads smooth books."),
("the thunder sounds very loud.", "The thunder sounds very loud."),
]
TEACHER_WEDNESDAY_FILL_ANSWERS = ["smooth", "mother", "rocket"]
TEACHER_WEDNESDAY_CONTEXT_CLUE_QUESTION = (
"In 'The teacher helped the students stretch their knowledge,' what does stretch mean?"
)
TEACHER_WEDNESDAY_CONTEXT_CLUE_ANSWER = "B) To expand or extend further"
TEACHER_WEDNESDAY_DICTATION_WORDS = ["shelter", "smooth", "blanket", "teacher", "dolphin", "rocket"]
# Thursday
TEACHER_THURSDAY_PHONICS_EXPLANATION = (
"Production day. Students have now seen and practiced the patterns for 3 days — "
"today they actively CREATE with them. Spelling Detective builds metacognition "
"(thinking about how they think about spelling). Spelling Maps teach word analysis. "
"Paragraph writing brings it all together."
)
TEACHER_THURSDAY_COMP_QUESTIONS = [
"Where did the child sit during thunder?",
"What did the mother ask about?",
"What did they watch in physics class?",
]
TEACHER_THURSDAY_COMP_ANSWERS = [
"On the blanket in the shelter.",
"Whether the child wanted a smooth ride.",
"A dolphin.",
]
TEACHER_THURSDAY_DETECTIVE_ANSWERS = [
("sheter", "shelter"),
("smoth", "smooth"),
("blanet", "blanket"),
("poct", "pocket"),
("teacer", "teacher"),
("strech", "stretch"),
("moter", "mother"),
("thnnder", "thunder"),
("wheter", "whether"),
("dolfin", "dolphin"),
("physcs", "physics"),
("roket", "rocket"),
]
TEACHER_THURSDAY_SWAP_ANSWERS = [
"dolphin, smooth",
"teacher, stretch",
]
TEACHER_THURSDAY_MAP_WORD = "dolphin"
TEACHER_THURSDAY_MAP_SUGGESTIONS = [
"do-lphin (2 syllables)",
"dol-phin (split between l and ph)",
"Contains the PH digraph = f sound",
"Related words: dolphin, dolphins",
]
TEACHER_THURSDAY_PARA_PROMPTS = [
"Write a paragraph about a thunder storm.",
"Write a paragraph about a day at the ocean.",
]
# Friday
TEACHER_FRIDAY_PHONICS_EXPLANATION = (
"Review and assessment day. All 12 words are tested through the spelling test, "
"but the full worksheet also reviews reading comprehension, vocabulary, "
"and writing skills from the week. The goal is to see what stuck and what needs "
"more practice next week."
)
TEACHER_FRIDAY_TEST_ANSWERS = [
"shelter", "smooth", "blanket", "pocket", "teacher", "stretch",
"mother", "thunder", "whether", "dolphin", "physics", "rocket",
]
TEACHER_FRIDAY_STORY_QUESTIONS = [
"What jumped from the smooth ocean?",
"What did they see in physics class?",
"What did the mother ask about?",
]
TEACHER_FRIDAY_STORY_ANSWERS = [
"A dolphin.",
"A rocket.",
"Whether the thunder had stopped.",
]
TEACHER_FRIDAY_OPPOSITE_ANSWERS = [
("smooth", "rough"),
("stretch", "shrink"),
("thunder", "quiet"),
]
TEACHER_FRIDAY_BUILDER_WORDS = ["dolphin", "teacher", "rocket", "shelter"]
TEACHER_FRIDAY_JOURNAL_WORDS = ["blanket", "mother", "physics", "whether"]
# =====================================================================
# VALIDATION
# =====================================================================
FILL_DATA = MONDAY_FILL_DATA
DETECTIVE_WORDS = THURSDAY_DETECTIVE
DETECTIVE_ANSWERS = ["shelter", "smooth", "blanket", "pocket", "teacher", "stretch", "mother", "thunder", "whether", "dolphin", "physics", "rocket"]
OPPOSITE_PAIRS = [("smooth", "rough"), ("stretch", "shrink")]
LEARNING_EXAMPLES = ["shelter", "teacher", "dolphin"]
BREAKDOWNS = {
"shelter": "sh-e-l-t-e-r",
"teacher": "t-e-a-ch-e-r",
"dolphin": "do-l-ph-in",
}
def main():
print("=" * 50)
print("Week 5 Generator - Digraphs: SH, CH, TH, WH, PH, CK")
print("=" * 50)
def main():
print("=" * 50)
print("Week 5 Generator - Digraphs: SH, CH, TH, WH, PH, CK")
print("=" * 50)
# Phonetic audit (verifies words against database)
try:
from audit.run_audit import validate_before_generate
validate_before_generate(__file__)
except ImportError:
print(" [warn] audit system unavailable — skipping phonetic check")
except Exception as e:
print(f"\n AUDIT FAILED: {e}")
exit(1)
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,
breakdowns=BREAKDOWNS,
generate_friday=lambda: None,
)
if errors:
print("\nVALIDATION FAILED:")
for e in errors:
print(f" - {e}")
exit(1)
print("Validation passed.\n")
generate_monday(
week_dir=WEEK, week_num=5, 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=5, 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,
)
generate_wednesday(
week_dir=WEEK, week_num=5, 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="dolphin",
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=5, 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="dolphin",
para_prompts=THURSDAY_PARA_PROMPTS,
)
generate_friday(
week_dir=WEEK, week_num=5, 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=5, phonics_label=PHONICS_LABEL, words=WORDS,
phonics_name="Digraphs: SH, CH, TH, WH, PH, CK",
# 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_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("\nAll done! Check Week_05/ for PDFs.")
if __name__ == "__main__":
main()