#!/usr/bin/env python3
"""Week 7 Generator - R-Controlled Vowels + Adverbs
Phonics: R-Controlled Vowels (ar, er, ir, or, ur)
Spelling: 12 words, all 6+ letters
Grammar: Adverbs -- words that describe HOW something happens
"""
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_07")
# =====================================================================
# WORD LIST - 12 words, all 6+ letters, R-Controlled Vowels
# =====================================================================
WORDS = [
("market", "ar = /ar/", "a place where people buy and sell things"),
("doctor", "or = /or/", "a person who helps sick people feel better"),
("purple", "ur = /er/", "a color like grapes or plums"),
("corner", "or = /or/", "where two things meet, like walls"),
("farmer", "ar = /ar/", "a person who grows food and raises animals"),
("silver", "er = /er/", "a shiny gray metal, like some coins"),
("turtle", "ur = /er/", "a slow animal with a hard shell"),
("winter", "er = /er/", "the coldest season of the year"),
("mirror", "ir = /er/", "something you look into to see yourself"),
("faster", "fast + er", "moving at a higher speed"),
("better", "er = /er/", "of higher quality or more good"),
("feather", "ea = short e / er = /er/", "a soft thing that grows on birds"),
]
WORD_NAMES = [w[0] for w in WORDS]
PHONICS_LABEL = "R_Controlled_Vowels"
# =====================================================================
# SHARED CONTENT DATA
# =====================================================================
LEARNING_TEXT = (
"When the letter <strong>r</strong> comes after a vowel, it changes the sound! <br><br>"
"The r \"bosses\" the vowel and makes a new sound:<br><br>"
"<strong>ar</strong> = /ar/ — <em>market</em>, <em>farmer</em><br>"
"<strong>er</strong> = /er/ — <em>silver</em>, <em>winter</em>, <em>better</em>, <em>feather</em><br>"
"<strong>ir</strong> = /er/ — <em>mirror</em> (sounds the same as er!)<br>"
"<strong>or</strong> = /or/ — <em>doctor</em>, <em>corner</em><br>"
"<strong>ur</strong> = /er/ — <em>purple</em>, <em>turtle</em> (sounds the same as er!)<br><br>"
"Listen carefully — er, ir, and ur all sound the same!"
)
GRAMMAR_NOTE = (
"Grammar: <strong>Adverbs</strong> tell us HOW something happens. "
"Most adverbs end in -ly. Example: The turtle moved <em>slowly</em>. She worked <em>quickly</em>."
)
GRAMMAR_DEEP = (
"Adverbs tell us HOW an action happens. They describe VERBS, not nouns.<br><br>"
"Most adverbs end in <strong>-ly</strong>:<br>"
"• The turtle moved <em>slowly</em>. (How did it move? Slowly.)<br>"
"• The doctor worked <em>quickly</em>. (How did she work? Quickly.)<br>"
"• The farmer sang <em>happily</em>. (How did he sing? Happily.)<br><br>"
"Adverbs can come AFTER the verb or at the END of a sentence!"
)
VOWEL_EXAMPLES_MONDAY = [
'<strong>ar</strong> = /ar/ — <em>market</em>, <em>farmer</em>',
'<strong>er</strong> = /er/ — <em>silver</em>, <em>winter</em>, <em>better</em>, <em>feather</em>',
'<strong>ir</strong> = /er/ — <em>mirror</em>',
'<strong>or</strong> = /or/ — <em>doctor</em>, <em>corner</em>',
'<strong>ur</strong> = /er/ — <em>purple</em>, <em>turtle</em>',
]
VOWEL_EXAMPLES_TUE = [
'<strong>ar = /ar/</strong> — <em>market</em>, <em>farmer</em>',
'<strong>er = /er/</strong> — <em>silver</em>, <em>winter</em>, <em>better</em>, <em>feather</em>',
'<strong>ir = /er/</strong> — <em>mirror</em>',
'<strong>or = /or/</strong> — <em>doctor</em>, <em>corner</em>',
'<strong>ur = /er/</strong> — <em>purple</em>, <em>turtle</em>',
]
SORT_LABELS = ["ar", "er", "ir", "or", "ur"]
SORT_TITLE = "R-Controlled Vowel 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 = (
"R-Controlled Vowel Rules:<br><br>"
"1. When r follows a vowel, it changes the vowel sound.<br>"
"2. <strong>ar</strong> = /ar/ — <em>market</em><br>"
"3. <strong>er</strong> = /er/ — <em>silver</em><br>"
"4. <strong>ir</strong> = /er/ — <em>mirror</em><br>"
"5. <strong>or</strong> = /or/ — <em>doctor</em><br>"
"6. <strong>ur</strong> = /er/ — <em>purple</em><br><br>"
"Remember: er, ir, and ur all sound the same!"
)
# =====================================================================
# MONDAY DATA
# =====================================================================
MONDAY_STORY = (
'On a cold <strong>winter</strong> morning, Maya stepped outside into the snowy city. '
'Her <strong>purple</strong> coat matched the <strong>silver</strong> streetlights. '
'She looked in a shop <strong>mirror</strong> and smiled at her frosty eyebrows. '
'At the <strong>corner</strong>, she met her <strong>doctor</strong> dad walking home. '
'"Let\'s go to the <strong>market</strong> faster before it closes!" he said. '
'They hurried past a tiny statue of a <strong>turtle</strong>. '
'Inside, Maya found a soft <strong>feather</strong> in a gift box and saw a <strong>farmer</strong> selling vegetables. '
'"Today will be <strong>better</strong> with hot cocoa!" she said.'
)
MONDAY_GRAMMAR_PRACTICE = [
"The farmer moved slowly.",
"The turtle crossed faster.",
"The doctor arrived quickly.",
]
MONDAY_FILL_DATA = [
("The farmer went to the ____ early.", "market"),
("The ____ turtle crossed the path.", "purple"),
("Winter brings ____ weather.", "better"),
("The feather was as light as ____.", "silver"),
]
MONDAY_OPPOSITE_WORDS = ["faster", "better"]
MONDAY_SENTENCE_WORDS = WORD_NAMES[:4]
# =====================================================================
# TUESDAY DATA
# =====================================================================
TUESDAY_LEARNING = (
"Today we practice R-Controlled Vowel patterns. Read each word slowly "
"and listen for the special sound the r makes with the vowel."
)
TUESDAY_READING = (
'Our family visited the big <strong>market</strong> on a sunny <strong>winter</strong> afternoon. '
'A <strong>farmer</strong> was selling fresh apples and I saw a <strong>purple</strong> flower bouquet. '
'At the <strong>corner</strong> of the market, a street performer painted a <strong>silver</strong> picture of a <strong>turtle</strong>. '
'My mom checked her <strong>mirror</strong> to see how the light looked on her hat. '
'We walked <strong>faster</strong> when we heard thunder. '
'The <strong>doctor</strong> at the pharmacy said the weather would be <strong>better</strong> tomorrow. '
'On the way home, I found a <strong>feather</strong> from a bird and put it in my pocket.'
)
TUESDAY_COMP_QUESTIONS = [
"What did the family visit on a winter afternoon?",
"What was the street performer painting?",
"What did the student find on the way home?",
]
TUESDAY_REMEMBER_1 = (
"Remember This!",
"R-Controlled Vowel Sounds:<br>"
"- <strong>ar</strong> = /ar/ → <em>market</em>, <em>farmer</em><br>"
"- <strong>er</strong> = /er/ → <em>silver</em>, <em>winter</em>, <em>better</em>, <em>feather</em><br>"
"- <strong>ir</strong> = /er/ → <em>mirror</em><br>"
"- <strong>or</strong> = /or/ → <em>doctor</em>, <em>corner</em><br>"
"- <strong>ur</strong> = /er/ → <em>purple</em>, <em>turtle</em><br><br>"
"<strong>Try This:</strong> What R-controlled sound is in <em>market</em>? ___"
)
TUESDAY_REMEMBER_2 = (
"Remember This!",
"Adverbs describe VERBS — they tell us HOW something happens!<br><br>"
"<strong>The turtle moved slowly</strong> — slowly describes moved<br>"
"<strong>She worked quickly</strong> — quickly describes worked<br>"
"<strong>He sang happily</strong> — happily describes sang<br><br>"
"<strong>Try This:</strong> In 'She ran faster,' what is the adverb? ___"
)
TUESDAY_SWAP_DATA = [
("The farmer went to the market early.", ("farmer", "doctor"), ("market", "corner")),
("The purple scarf matched the silver watch.", ("purple", "winter"), ("silver", "mirror")),
("The turtle moved faster across the path.", ("turtle", "feather"), ("faster", "better")),
]
TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about winter.", "winter"),
("Write a sentence about a mirror.", "mirror"),
("Write a sentence using an R-controlled word.", "better"),
]
# =====================================================================
# WEDNESDAY DATA
# =====================================================================
WEDNESDAY_LEARNING = (
"Today we use our R-Controlled Vowel words in reading, writing, and thinking. "
"Each activity helps you understand how these words work in different contexts."
)
WEDNESDAY_READING = (
'Last Saturday, our school held a <strong>farmer</strong>\'s <strong>market</strong> in the parking lot. '
'I helped my mom set up our table in the <strong>corner</strong> near the main road. '
'She wore her <strong>purple</strong> apron and we stacked <strong>silver</strong> aluminum trays with bread. '
'A <strong>doctor</strong> from our neighborhood stopped by and bought three loaves. '
'"This tastes <strong>better</strong> than the bakery!" he said with a smile. '
'By noon, the line moved <strong>faster</strong> than we expected. '
'When we went home, I checked the <strong>mirror</strong> in the car — my face was covered with flour! '
'I found a <strong>feather</strong> stuck to the window and a <strong>turtle</strong> sticker on the door. '
'Even in the middle of <strong>winter</strong>, our family market was a warm, happy day.'
)
WEDNESDAY_VOCAB_Q = (
"In the sentence 'By noon, the line moved faster than we expected,' what does <strong>faster</strong> mean?<br><br>"
"A) Slower than before<br>"
"B) At a higher speed<br>"
"C) In a different direction<br>"
"D) With more people behind it"
)
WEDNESDAY_SYN_ANT = ["market", "doctor", "purple", "corner", "farmer", "silver"]
WEDNESDAY_SORT_DATA = [
"The farmer went to the market before the winter storm",
"The purple feather landed in the silver bowl",
]
WEDNESDAY_CORRECT = [
"the turtle moved slowly across the path.",
"my farmer dad works faster than anyone.",
"the doctor says winter is better for exercise.",
]
WEDNESDAY_FILL = [
("The ____ sold fresh vegetables every Saturday.", "farmer"),
("She looked in the ____ to check her hair.", "mirror"),
("The ____ of the room had a cozy chair.", "corner"),
]
WEDNESDAY_CONTEXT = (
'Read this sentence: "The doctor said the medicine would make her feel better tomorrow."<br><br>'
"What does <strong>better</strong> mean?<br>"
"A) Worse and more sick<br>"
"B) Of higher quality or more improved<br>"
"C) Faster and stronger<br>"
"D) Smaller and quieter"
)
WEDNESDAY_DICTATION = ["market", "doctor", "purple", "corner", "farmer", "silver"]
# =====================================================================
# THURSDAY DATA
# =====================================================================
THURSDAY_LEARNING = (
"Today we use our R-Controlled Vowel words in stories and writing. "
"Use each word correctly in your sentences and stories."
)
THURSDAY_STORY = (
'My grandma kept a <strong>mirror</strong> in every <strong>corner</strong> of her house. '
'"So you can never get lost!" she always said. '
'One <strong>winter</strong> evening, a <strong>turtle</strong> crawled onto the porch. '
'It had a <strong>purple</strong> flower stuck to its shell like a tiny hat. '
'Grandma said it was a good sign. "Things will be <strong>better</strong> soon," she whispered. '
'The next day, a <strong>farmer</strong> brought a <strong>silver</strong> bell to the <strong>market</strong>. '
'The <strong>doctor</strong> rang it to call people for a health checkup. '
'I ran <strong>faster</strong> than ever to help, with a <strong>feather</strong> from my pocket waving behind me. '
'That day taught me that even small things can make a big difference.'
)
THURSDAY_COMP_QUESTIONS = [
"What did grandma keep in every corner of her house?",
"What was stuck to the turtle\'s shell?",
"Why did the doctor ring the silver bell?",
]
THURSDAY_SORT_DATA = [
"The farmer went to the market before the winter storm",
"The purple feather landed in the silver bowl",
]
THURSDAY_DETECTIVE = [
"maret", "dcoor", "pruple", "cner", "frmer", "siver",
"ture", "wniter", "mriror", "fsater", "beter", "fether"
]
THURSDAY_SWAP_DATA = [
("The farmer went to the market early.", ("farmer", "doctor"), ("market", "corner")),
("The purple feather floated in the silver river.", ("purple", "winter"), ("silver", "mirror")),
]
THURSDAY_PARA_PROMPTS = [
"Write a paragraph about a visit to the market.",
"Write a paragraph about an animal adventure.",
]
# =====================================================================
# FRIDAY DATA
# =====================================================================
FRIDAY_REVIEW_STORY = (
'On the last day of <strong>winter</strong>, our class had a special project. '
'We built a <strong>market</strong> scene for our school display. '
'Jake made a <strong>farmer</strong> stand out of cardboard and painted it <strong>purple</strong>. '
'Sarah created a tiny <strong>doctor</strong> office in the <strong>corner</strong>. '
'I glued <strong>silver</strong> foil stars everywhere and added a paper <strong>turtle</strong> as the mascot. '
'We hung a <strong>mirror</strong> so visitors could see themselves in our scene. '
'Ms. Lopez said it was <strong>better</strong> than last year\'s and moved <strong>faster</strong> to finish. '
'She gave each of us a real <strong>feather</strong> as a reward. '
'What a great week of R-Controlled Vowels!'
)
FRIDAY_STORY_QUESTIONS = [
"What did the class build for their school display?",
"What color did Jake paint the farmer stand?",
"What reward did Ms. Lopez give the students?",
]
FRIDAY_OPPOSITE_WORDS = ["faster", "better", "winter"]
FRIDAY_BUILDER_WORDS = ["market", "farmer", "purple", "corner"]
FRIDAY_JOURNAL_WORDS = ["doctor", "silver", "turtle", "feather"]
# =====================================================================
# TEACHER GUIDE DATA - Answer keys, explanations, and teaching notes
# =====================================================================
# Monday
TEACHER_MONDAY_PHONICS_EXPLANATION = (
"R-CONTROLLED VOWELS happen when the letter r follows a vowel and changes its sound. "
"The r 'bosses' the vowel, creating a brand new sound that is different from both the "
"original vowel and the r itself.<br><br>"
"• <strong>ar</strong> = /ar/ — <em>market</em>, <em>farmer</em><br>"
"• <strong>er</strong> = /er/ — <em>silver</em>, <em>winter</em>, <em>better</em>, <em>feather</em><br>"
"• <strong>ir</strong> = /er/ — <em>mirror</em><br>"
"• <strong>or</strong> = /or/ — <em>doctor</em>, <em>corner</em><br>"
"• <strong>ur</strong> = /er/ — <em>purple</em>, <em>turtle</em><br><br>"
"Important: er, ir, and ur all sound the SAME! This is tricky for students — "
"they must memorize which vowel goes with which word."
)
TEACHER_MONDAY_GRAMMAR_FOCUS = "Adverbs -- Words That Describe HOW"
TEACHER_MONDAY_GRAMMAR_EXPLANATION = (
"Adverbs tell us HOW an action happens. They describe VERBS, not nouns.<br><br>"
"Most adverbs end in <strong>-ly</strong>: slowly, quickly, happily, carefully.<br><br>"
"Examples: The turtle moved <em>slowly</em>. The doctor worked <em>quickly</em>. "
"The farmer sang <em>happily</em>.<br><br>"
"Adverbs usually come AFTER the verb or at the END of a sentence."
)
TEACHER_MONDAY_SORT_LABELS = ["ar", "er", "ir", "or", "ur"]
TEACHER_MONDAY_SORT_ANSWERS = [
["market", "farmer"],
["silver", "winter", "better", "feather"],
["mirror"],
["doctor", "corner"],
["purple", "turtle"],
]
TEACHER_MONDAY_FILL_ANSWERS = ["market", "purple", "better", "silver"]
TEACHER_MONDAY_OPPOSITE_ANSWERS = [
("faster", "slower"),
("better", "worse"),
]
TEACHER_MONDAY_SENTENCE_WORDS = ["market", "doctor", "purple", "corner"]
# Tuesday
TEACHER_TUESDAY_PHONICS_EXPLANATION = (
"Students continue building fluency with R-Controlled Vowels. "
"Today\'s focus shifts from identification to APPLICATION — finding R-controlled words "
"in context (reading passage), discriminating them from other vowel patterns (Pattern Hunt), "
"and using them in original sentences (Builder)."
)
TEACHER_TUESDAY_SCRAMBLE_ANSWERS = [
("maret", "market"),
("dcoor", "doctor"),
("pruple", "purple"),
("cner", "corner"),
("frmer", "farmer"),
("siver", "silver"),
("ture", "turtle"),
("wniter", "winter"),
("mriror", "mirror"),
("fsater", "faster"),
("beter", "better"),
("fether", "feather"),
]
TEACHER_TUESDAY_COMP_QUESTIONS = [
"What did the family visit on a winter afternoon?",
"What was the street performer painting?",
"What did the student find on the way home?",
]
TEACHER_TUESDAY_COMP_ANSWERS = [
"The big market.",
"A silver picture of a turtle.",
"A feather from a bird.",
]
TEACHER_TUESDAY_PATTERN_HUNT = {
"match": ["market", "doctor", "purple", "corner", "farmer", "silver", "turtle", "winter", "mirror", "faster", "better", "feather"],
"decoy": ["cat", "big", "stop", "pen", "hot"],
}
TEACHER_TUESDAY_SWAP_ANSWERS = [
"doctor, corner",
"purple, mirror",
"turtle, better",
]
TEACHER_TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about winter.", "winter"),
("Write a sentence about a mirror.", "mirror"),
("Write a sentence using an R-controlled word.", "better"),
]
# 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 R-Controlled Vowel "
"pattern knowledge becomes functional."
)
TEACHER_WEDNESDAY_VOCAB_Q_QUESTION = (
"In the sentence 'By noon, the line moved faster than we expected,' what does faster mean?"
)
TEACHER_WEDNESDAY_VOCAB_Q_ANSWER = "B) At a higher speed"
TEACHER_WEDNESDAY_SYN_ANT_WORDS = ["market", "doctor", "purple", "corner", "farmer", "silver"]
TEACHER_WEDNESDAY_WORD_WEB_CENTER = "market"
TEACHER_WEDNESDAY_WORD_WEB_SUGGESTIONS = [
"store", "shop", "sale", "buy", "sell", "goods", "farmers", "produce", "stall", "bazaar"
]
TEACHER_WEDNESDAY_SORT_ANSWERS = {
"sentences": [
"The farmer went to the market before the winter storm",
"The purple feather landed in the silver bowl",
],
"correct_order": [
"The farmer went to the market before the winter storm.",
"The purple feather landed in the silver bowl.",
],
}
TEACHER_WEDNESDAY_CORRECT_ANSWERS = [
("the turtle moved slowly across the path.", "The turtle moved slowly across the path."),
("my farmer dad works faster than anyone.", "My farmer dad works faster than anyone."),
("the doctor says winter is better for exercise.", "The doctor says winter is better for exercise."),
]
TEACHER_WEDNESDAY_FILL_ANSWERS = ["farmer", "mirror", "corner"]
TEACHER_WEDNESDAY_CONTEXT_CLUE_QUESTION = (
"In 'The doctor said the medicine would make her feel better tomorrow,' what does better mean?"
)
TEACHER_WEDNESDAY_CONTEXT_CLUE_ANSWER = "B) Of higher quality or more improved"
TEACHER_WEDNESDAY_DICTATION_WORDS = ["market", "doctor", "purple", "corner", "farmer", "silver"]
# Thursday
TEACHER_THURSDAY_PHONICS_EXPLANATION = (
"Production day. Students have now seen and practiced R-Controlled Vowels 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 = [
"What did grandma keep in every corner of her house?",
"What was stuck to the turtle\'s shell?",
"Why did the doctor ring the silver bell?",
]
TEACHER_THURSDAY_COMP_ANSWERS = [
"A mirror.",
"A purple flower.",
"To call people for a health checkup.",
]
TEACHER_THURSDAY_SORT_ANSWERS = {
"sentences": [
"The farmer went to the market before the winter storm",
"The purple feather landed in the silver bowl",
],
"correct_order": [
"The farmer went to the market before the winter storm.",
"The purple feather landed in the silver bowl.",
],
}
TEACHER_THURSDAY_DETECTIVE_ANSWERS = [
("maret", "market"),
("dcoor", "doctor"),
("pruple", "purple"),
("cner", "corner"),
("frmer", "farmer"),
("siver", "silver"),
("ture", "turtle"),
("wniter", "winter"),
("mriror", "mirror"),
("fsater", "faster"),
("beter", "better"),
("fether", "feather"),
]
TEACHER_THURSDAY_SWAP_ANSWERS = [
"doctor, corner",
"purple, winter",
]
TEACHER_THURSDAY_MAP_WORD = "turtle"
TEACHER_THURSDAY_MAP_SUGGESTIONS = [
"tur-tle (2 syllables)",
"Split between r and t: tur-tle",
"Contains R-controlled vowel: ur = /er/",
"Related words: turtle, turtles",
]
TEACHER_THURSDAY_PARA_PROMPTS = [
"Write a paragraph about a visit to the market.",
"Write a paragraph about an animal adventure.",
]
# Friday
TEACHER_FRIDAY_PHONICS_EXPLANATION = (
"Review and assessment day. All 12 R-Controlled Vowel 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 = [
"market", "doctor", "purple", "corner", "farmer", "silver",
"turtle", "winter", "mirror", "faster", "better", "feather",
]
TEACHER_FRIDAY_STORY_QUESTIONS = [
"What did the class build for their school display?",
"What color did Jake paint the farmer stand?",
"What reward did Ms. Lopez give the students?",
]
TEACHER_FRIDAY_STORY_ANSWERS = [
"A market scene.",
"Purple.",
"A real feather.",
]
TEACHER_FRIDAY_OPPOSITE_ANSWERS = [
("faster", "slower"),
("better", "worse"),
("winter", "summer"),
]
TEACHER_FRIDAY_BUILDER_WORDS = ["market", "farmer", "purple", "corner"]
TEACHER_FRIDAY_JOURNAL_WORDS = ["doctor", "silver", "turtle", "feather"]
# =====================================================================
# VALIDATION DATA
# =====================================================================
FILL_DATA = MONDAY_FILL_DATA
DETECTIVE_WORDS = THURSDAY_DETECTIVE
DETECTIVE_ANSWERS = ["market", "doctor", "purple", "corner", "farmer", "silver",
"turtle", "winter", "mirror", "faster", "better", "feather"]
OPPOSITE_PAIRS = [("faster", "slower"), ("better", "worse")]
LEARNING_EXAMPLES = ["market", "doctor", "purple"]
BREAKDOWNS = {
"market": "m-a-r-k-e-t",
"doctor": "d-o-c-t-o-r",
"purple": "p-u-r-p-l-e",
}
# =====================================================================
# GENERATE
# =====================================================================
def main():
print("=" * 50)
print("Week 7 Generator - R-Controlled Vowels")
print("=" * 50)
def main():
print("=" * 50)
print("Week 7 Generator - R-Controlled Vowels")
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)
# Validate
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,
phonetic_check=False
)
if errors:
print("\nVALIDATION FAILED:")
for e in errors:
print(f" - {e}")
exit(1)
print("Validation passed.\n")
# Monday
generate_monday(
week_dir=WEEK, week_num=7, 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,
)
# Tuesday
generate_tuesday(
week_dir=WEEK, week_num=7, 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,
)
# Wednesday
generate_wednesday(
week_dir=WEEK, week_num=7, 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="market",
sentence_sort_data=WEDNESDAY_SORT_DATA, correct_sentences=WEDNESDAY_CORRECT,
fill_data=WEDNESDAY_FILL, context_clue=WEDNESDAY_CONTEXT,
dictation_words=WEDNESDAY_DICTATION,
)
# Thursday
generate_thursday(
week_dir=WEEK, week_num=7, 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="turtle",
para_prompts=THURSDAY_PARA_PROMPTS,
)
# Friday
generate_friday(
week_dir=WEEK, week_num=7, 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,
)
# Teacher Guide
generate_teacher_guide(
week_dir=WEEK, week_num=7, phonics_label=PHONICS_LABEL, words=WORDS,
phonics_name="R-Controlled Vowels",
# 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("\nAll done! Check Week_07/ for PDFs.")
if __name__ == "__main__":
main()