#!/usr/bin/env python3
"""Week 6 Generator - Soft C, Soft G
Phonics: Soft c (ce, ci, cy = /s/), soft g (ge, gi, gy = /j/) vs. hard forms
Spelling: 12 words, all 6+ letters
Grammar: Adjectives -- describing words
"""
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_06")
# =====================================================================
# WORD LIST - 12 words, all 6+ letters, Soft C / Soft G
# =====================================================================
WORDS = [
("circle", "soft c (ci)", "a round shape with no corners"),
("notice", "soft c (ci)", "to pay attention to something"),
("decide", "soft c (ci)", "to make a choice"),
("ceiling", "soft c (ce)", "the top inside wall of a room"),
("bicycle", "soft c (cy)", "a vehicle with two wheels you pedal"),
("garage", "soft g (ge)", "a place where you park a car"),
("gentle", "soft g (ge)", "kind and careful, not rough"),
("finger", "soft g (gi)", "one of five parts on your hand"),
("college", "soft g (ge)", "a school for older students who learn advanced topics"),
("danger", "soft g (ge)", "a situation that could cause harm"),
("change", "soft g (ge)", "to make something different"),
("energy", "soft g (gy)", "power and strength to do things"),
]
WORD_NAMES = [w[0] for w in WORDS]
PHONICS_LABEL = "Soft_C_Soft_G"
# =====================================================================
# SHARED CONTENT
# =====================================================================
LEARNING_TEXT = (
"The letters <strong>C</strong> and <strong>G</strong> can make TWO different sounds!<br><br>"
"When <strong>C</strong> is followed by <strong>e, i, or y</strong>, it makes a soft /s/ sound.<br>"
"When <strong>G</strong> is followed by <strong>e, i, or y</strong>, it makes a soft /j/ sound.<br><br>"
"But with <strong>a, o, u</strong> (or at the end of a word), C and G make their HARD sounds!<br><br>"
"Soft C = /s/ | Hard C = /k/ | Soft G = /j/ | Hard G = /g/"
)
GRAMMAR_NOTE = (
"Grammar: <strong>Adjectives</strong> are DESCRIBING words. They tell us more about nouns. "
"Example: The <em>gentle</em> breeze, the <em>circular</em> path, a <em>high</em> ceiling."
)
GRAMMAR_DEEP = (
"Adjectives are DESCRIBING words that give us more information about nouns.<br><br>"
"They can tell us:<br>"
"• <strong>What kind:</strong> <em>gentle</em> breeze, <em>circular</em> track<br>"
"• <strong>How many:</strong> <em>five</em> fingers, <em>two</em> wheels<br>"
"• <strong>Which one:</strong> <em>that</em> ceiling, <em>these</em> bicycles<br><br>"
"Adjectives usually come BEFORE the noun they describe!"
)
VOWEL_EXAMPLES_MONDAY = [
'<strong>Soft C</strong> (ci, ce, cy = /s/) — <em>circle</em>, <em>notice</em>, <em>decide</em>, <em>ceiling</em>, <em>bicycle</em>',
'<strong>Soft G</strong> (ge, gi, gy = /j/) — <em>garage</em>, <em>gentle</em>, <em>finger</em>, <em>college</em>, <em>danger</em>, <em>change</em>, <em>energy</em>',
'<strong>Remember:</strong> When c or g is followed by e, i, or y, they make their SOFT sounds!',
]
VOWEL_EXAMPLES_TUE = [
'<strong>Soft C = /s/</strong> — <em>circle</em>, <em>notice</em>, <em>decide</em>, <em>ceiling</em>, <em>bicycle</em>',
'<strong>Soft G = /j/</strong> — <em>garage</em>, <em>gentle</em>, <em>finger</em>, <em>college</em>, <em>danger</em>, <em>change</em>, <em>energy</em>',
'<strong>Hard C = /k/</strong> — <em>cat</em>, <em>cup</em>, <em>cake</em>',
'<strong>Hard G = /g/</strong> — <em>go</em>, <em>game</em>, <em>girl</em>',
]
SORT_LABELS = ["Soft C Words", "Soft G Words"]
SORT_TITLE = "Soft C vs. Soft G Sort"
LEARNING_SKILLS_WED = [
"<strong>Reading</strong> — identify soft c and soft g in context",
"<strong>Synonyms & Antonyms</strong> — words with similar and opposite meanings",
"<strong>Word Webs</strong> — connecting related vocabulary",
]
REMINDER_TEXT = (
"Soft C and Soft G Rules:<br><br>"
"1. <strong>Soft C</strong> (before e, i, y) = /s/ sound — <em>circle</em>, <em>notice</em>, <em>decide</em>, <em>ceiling</em>, <em>bicycle</em><br>"
"2. <strong>Soft G</strong> (before e, i, y) = /j/ sound — <em>garage</em>, <em>gentle</em>, <em>finger</em>, <em>college</em>, <em>danger</em>, <em>change</em>, <em>energy</em><br>"
"3. <strong>Hard C</strong> (before a, o, u, or at end) = /k/ sound — <em>cat</em>, <em>cup</em><br>"
"4. <strong>Hard G</strong> (before a, o, u, or at end) = /g/ sound — <em>go</em>, <em>game</em><br><br>"
"Look at the vowel after C or G to know which sound it makes!"
)
# =====================================================================
# MONDAY
# =====================================================================
MONDAY_STORY = (
'Our class visited the art museum and I <strong>notice</strong>d a giant <strong>circle</strong> mosaic on the <strong>ceiling</strong>. '
'The guide <strong>gentle</strong>ly pointed to each painting with one <strong>finger</strong>. '
'I had to <strong>decide</strong> which artwork was my favorite. '
'In the sculpture room, there was a metal <strong>bicycle</strong> made entirely of recycled metal from the old <strong>garage</strong>. '
'The sign said it was a <strong>danger</strong> to touch, so I looked with my eyes only. '
'My art <strong>change</strong>d from stick figures to detailed drawings after that visit. '
'I had so much <strong>energy</strong> to draw when I got home! '
'One day I hope to send my art to <strong>college</strong>.'
)
MONDAY_GRAMMAR_PRACTICE = [
"The gentle wind blew softly.",
"My bicycle is very fast.",
"The ceiling is painted white.",
]
MONDAY_FILL_DATA = [
("I had to decide which path to take.", "decide"),
("The garage is next to our house.", "garage"),
("Be gentle with the baby.", "gentle"),
("Energy helps us stay active.", "energy"),
]
MONDAY_OPPOSITE_WORDS = ["gentle", "danger"]
MONDAY_SENTENCE_WORDS = WORD_NAMES[:4]
# =====================================================================
# TUESDAY
# =====================================================================
TUESDAY_LEARNING = (
"Today we practice Soft C and Soft G patterns. Read each word slowly "
"and listen for the soft sound C or G makes."
)
TUESDAY_READING = (
'My dad and I <strong>decide</strong>d to build a treehouse this summer. '
'We started in the <strong>garage</strong> gathering tools and lumber. '
'The <strong>ceiling</strong> of the garage was so low that my dad had to duck to reach the shelves. '
'He <strong>gentle</strong>ly reminded me to keep my <strong>finger</strong> away from the hammer. '
'We drew a <strong>circle</strong> on the ground to mark the base. '
'I could <strong>notice</strong> the <strong>danger</strong> of climbing too high, so I stayed near the bottom. '
'My <strong>bicycle</strong> had to <strong>change</strong> spots to make room for the wood pile. '
'It took a lot of <strong>energy</strong>, but I dreamed about building even bigger things in <strong>college</strong>.'
)
TUESDAY_COMP_QUESTIONS = [
"What did the child and dad decide to build?",
"What did the dad say to keep fingers away from?",
"What did they draw on the ground?",
]
TUESDAY_REMEMBER_1 = (
"Remember This!",
"Soft C and Soft G Rules:<br>"
"- <strong>Soft C</strong> (before e, i, y) = /s/ → <em>circle</em>, <em>notice</em>, <em>decide</em><br>"
"- <strong>Soft G</strong> (before e, i, y) = /j/ → <em>gentle</em>, <em>finger</em>, <em>danger</em><br>"
"- <strong>Hard C</strong> = /k/ → <em>cat</em>, <em>cup</em><br>"
"- <strong>Hard G</strong> = /g/ → <em>go</em>, <em>game</em><br><br>"
"<strong>Try This:</strong> Is the C in <em>circle</em> soft or hard? ___"
)
TUESDAY_REMEMBER_2 = (
"Remember This!",
"Adjectives describe NOUNS!<br><br>"
"<strong>The gentle breeze</strong> — gentle describes breeze<br>"
"<strong>A circular path</strong> — circular describes path<br>"
"<strong>High ceiling</strong> — high describes ceiling<br><br>"
"<strong>Try This:</strong> In 'the fast bicycle,' what is the adjective? ___"
)
TUESDAY_SWAP_DATA = [
("I decided to build a bicycle this summer.", ("decide", "notice"), ("bicycle", "garage")),
("We started gathering energy in the garage.", ("garage", "ceiling"), ("energy", "danger")),
("I could notice the danger of climbing too high.", ("notice", "decide"), ("danger", "change")),
]
TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about a bicycle.", "bicycle"),
("Write a sentence about danger.", "danger"),
("Write a sentence using a soft G word.", "gentle"),
]
# =====================================================================
# WEDNESDAY
# =====================================================================
WEDNESDAY_LEARNING = (
"Today we use our Soft C and Soft G words in reading, writing, and thinking. "
"Each activity helps you understand how these words work in different contexts."
)
WEDNESDAY_READING = (
'The school talent show was tonight and I had to <strong>decide</strong> what to perform. '
'I <strong>notice</strong>d the bright <strong>ceiling</strong> lights shining down on the stage <strong>circle</strong>. '
'My friend was <strong>gentle</strong> with the microphone and touched every <strong>finger</strong> on the piano keys. '
'There was some <strong>danger</strong> that I might forget my lines, so I practiced all week. '
'After the show, we rode our <strong>bicycle</strong>s home past the <strong>garage</strong> sale on our street. '
'The <strong>change</strong> from nervous to excited gave me new <strong>energy</strong>. '
'Someday I want to perform at <strong>college</strong>.'
)
WEDNESDAY_VOCAB_Q = (
"In the sentence 'There was some danger that I might forget my lines,' what does <strong>danger</strong> mean?<br><br>"
"A) A fun surprise<br>"
"B) A risk or possibility of something bad happening<br>"
"C) A type of music<br>"
"D) A bright light"
)
WEDNESDAY_SYN_ANT = ["gentle", "danger", "energy", "change", "decide", "notice"]
WEDNESDAY_SORT_DATA = [
"I had to decide what to perform at the talent show",
"My friend was gentle with the microphone on stage",
]
WEDNESDAY_CORRECT = [
"the talent show was tonight.",
"my finger touched the piano keys.",
"the ceiling lights shone on the stage circle.",
]
WEDNESDAY_FILL = [
("I had to ____ which way to go.", "decide"),
("Be ____ with the baby bird.", "gentle"),
("The ____ brought new energy to the garden.", "change"),
]
WEDNESDAY_CONTEXT = (
'Read this sentence: "Be gentle with the baby bird; it might get hurt."<br><br>'
"What does <strong>gentle</strong> mean?<br>"
"A) Rough and loud<br>"
"B) Kind and careful<br>"
"C) Fast and strong<br>"
"D) Cold and quiet"
)
WEDNESDAY_DICTATION = ["circle", "notice", "decide", "ceiling", "bicycle", "garage"]
# =====================================================================
# THURSDAY
# =====================================================================
THURSDAY_LEARNING = (
"Today we use our Soft C and Soft G words in stories and writing. "
"Use each word correctly in your sentences and stories."
)
THURSDAY_STORY = (
'Mom and I were baking cookies for the neighborhood bake sale. '
'We <strong>notice</strong>d the flour on the kitchen <strong>ceiling</strong> fan from last week. '
'She taught me to <strong>decide</strong> between chocolate chip and oatmeal. '
'Using each <strong>finger</strong>, I pressed the dough in a <strong>circle</strong> on the baking sheet. '
'She was <strong>gentle</strong> when she explained the <strong>danger</strong> of the hot oven. '
'We <strong>change</strong>d our plan and added nuts to the recipe. '
'With a burst of <strong>energy</strong>, I helped wash every dish! '
'Our cookies won first prize and the money went toward a new <strong>bicycle</strong> for our <strong>garage</strong> fund. One day I will bake for my whole <strong>college</strong> dorm!'
)
THURSDAY_COMP_QUESTIONS = [
"What were the child and mom baking?",
"What shape did the child press on the baking sheet?",
"What did the cookies win?"
]
THURSDAY_SORT_DATA = [
"I pressed the dough in a circle on the baking sheet",
"We decided between chocolate chip and oatmeal cookies",
]
THURSDAY_DETECTIVE = ["cirele", "notcie", "deciide", "ceiing", "bicyele", "garege", "genlte", "figner", "colleege", "dangr", "chane", "enrgy"]
THURSDAY_SWAP_DATA = [
("She was gentle when she explained the danger.", ("gentle", "change"), ("danger", "energy")),
("We changed our plan and noticed the ceiling.", ("change", "decide"), ("notice", "college")),
]
THURSDAY_PARA_PROMPTS = [
"Write a paragraph about baking with someone.",
"Write a paragraph about performing on stage.",
]
# =====================================================================
# FRIDAY
# =====================================================================
FRIDAY_REVIEW_STORY = (
'The ice skating rink had a beautiful glass <strong>ceiling</strong> shaped like a <strong>circle</strong>. '
'I <strong>notice</strong>d how the ice <strong>change</strong>d color from white to blue near the edges. '
'My mom was <strong>gentle</strong> when she held my <strong>finger</strong>s to help me balance. '
'I had to <strong>decide</strong> if I could skate without holding on. '
'There was <strong>danger</strong> of falling, but I had lots of <strong>energy</strong> to try again. '
'After skating, we bought hot chocolate at the rink snack bar near the <strong>garage</strong>. '
'My little brother rode his mini <strong>bicycle</strong> around the rink lobby. '
'Someday I want to join a skating team in <strong>college</strong>. What a great week of soft C and soft G sounds!'
)
FRIDAY_STORY_QUESTIONS = [
"What shape was the ceiling of the rink?",
"What did the mom hold to help the child balance?",
"What did the ice change to near the edges?",
]
FRIDAY_OPPOSITE_WORDS = ["gentle", "danger", "energy"]
FRIDAY_BUILDER_WORDS = ["bicycle", "garage", "ceiling", "circle"]
FRIDAY_JOURNAL_WORDS = ["decide", "notice", "change", "finger"]
# =====================================================================
# TEACHER GUIDE DATA
# =====================================================================
TEACHER_MONDAY_PHONICS_EXPLANATION = (
"C and G are TRICKY letters because they each make TWO different sounds.<br><br>"
"The rule: When C or G is followed by <strong>e, i, or y</strong>, they make their SOFT sounds.<br><br>"
"• <strong>Soft C</strong> = /s/ (like 'ssss') — circle, notice, decide, ceiling, bicycle<br>"
"• <strong>Soft G</strong> = /j/ (like 'jump') — garage, gentle, finger, college, danger, change, energy<br><br>"
"When C or G is followed by <strong>a, o, u</strong> or appears at the END of a word, "
"they make their HARD sounds:<br>"
"• <strong>Hard C</strong> = /k/ (like 'cat', 'cup')<br>"
"• <strong>Hard G</strong> = /g/ (like 'go', 'game')"
)
TEACHER_MONDAY_GRAMMAR_FOCUS = "Adjectives -- Describing Words"
TEACHER_MONDAY_GRAMMAR_EXPLANATION = (
"Adjectives are DESCRIBING words that give us more information about nouns. "
"They tell us WHAT KIND, HOW MANY, or WHICH ONE.<br><br>"
"Examples: <em>gentle</em> breeze, <em>circular</em> path, <em>high</em> ceiling, <em>fast</em> bicycle.<br><br>"
"Adjectives usually come BEFORE the noun they describe."
)
TEACHER_MONDAY_SORT_LABELS = ["Soft C Words", "Soft G Words"]
TEACHER_MONDAY_SORT_ANSWERS = [
["circle", "notice", "decide", "ceiling", "bicycle"],
["garage", "gentle", "finger", "college", "danger", "change", "energy"],
]
TEACHER_MONDAY_FILL_ANSWERS = ["decide", "garage", "gentle", "energy"]
TEACHER_MONDAY_OPPOSITE_ANSWERS = [
("gentle", "rough"),
("danger", "safety"),
]
TEACHER_MONDAY_SENTENCE_WORDS = ["circle", "notice", "decide", "ceiling"]
TEACHER_TUESDAY_PHONICS_EXPLANATION = (
"Students continue building fluency with soft C and soft G sounds. "
"Today's focus shifts from identification to APPLICATION -- finding soft C and soft G "
"in context, discriminating them from hard C and hard G, and using them in original sentences."
)
TEACHER_TUESDAY_SCRAMBLE_ANSWERS = [
("riccel", "circle"),
("citnoe", "notice"),
("cedied", "decide"),
("cielign", "ceiling"),
("byciclee", "bicycle"),
("garaeg", "garage"),
("elgent", "gentle"),
("finerg", "finger"),
("colgeee", "college"),
("daenerg", "danger"),
("chaneg", "change"),
("enegyr", "energy"),
]
TEACHER_TUESDAY_COMP_QUESTIONS = [
"What did the child and dad decide to build?",
"What did the dad say to keep fingers away from?",
"What did they draw on the ground?",
]
TEACHER_TUESDAY_COMP_ANSWERS = [
"A treehouse.",
"The hammer.",
"A circle.",
]
TEACHER_TUESDAY_PATTERN_HUNT = {
"match": ["circle", "notice", "decide", "ceiling", "bicycle", "garage", "gentle", "finger", "college", "danger", "change", "energy"],
"decoy": ["cat", "cup", "go", "game", "girl", "coat"],
}
TEACHER_TUESDAY_SWAP_ANSWERS = [
"decide, treehouse",
"garage, tools",
"notice, danger",
]
TEACHER_TUESDAY_BUILDER_PROMPTS = [
("Write a sentence about a bicycle.", "bicycle"),
("Write a sentence about danger.", "danger"),
("Write a sentence using a soft G word.", "gentle"),
]
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 'There was some danger that I might forget my lines,' what does danger mean?"
)
TEACHER_WEDNESDAY_VOCAB_Q_ANSWER = "B) A risk or possibility of something bad happening"
TEACHER_WEDNESDAY_SYN_ANT_WORDS = ["gentle", "danger", "energy", "change", "decide", "notice"]
TEACHER_WEDNESDAY_WORD_WEB_CENTER = "talent show"
TEACHER_WEDNESDAY_WORD_WEB_SUGGESTIONS = [
"stage", "audience", "perform", "practice", "lights", "music", "costume", "sing", "dance", "brave"
]
TEACHER_WEDNESDAY_SORT_ANSWERS = {
"sentences": [
"I had to decide what to perform at the talent show",
"My friend was gentle with the microphone on stage",
],
"correct_order": [
"I had to decide what to perform at the talent show.",
"My friend was gentle with the microphone on stage.",
],
}
TEACHER_WEDNESDAY_CORRECT_ANSWERS = [
("the talent show was tonight.", "The talent show was tonight."),
("my finger touched the piano keys.", "My finger touched the piano keys."),
("the ceiling lights shone on the stage circle.", "The ceiling lights shone on the stage circle."),
]
TEACHER_WEDNESDAY_FILL_ANSWERS = ["decide", "gentle", "change"]
TEACHER_WEDNESDAY_CONTEXT_CLUE_QUESTION = (
"In 'Be gentle with the baby bird; it might get hurt,' what does gentle mean?"
)
TEACHER_WEDNESDAY_CONTEXT_CLUE_ANSWER = "B) Kind and careful"
TEACHER_WEDNESDAY_DICTATION_WORDS = ["circle", "notice", "decide", "ceiling", "bicycle", "garage"]
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. "
"Spelling Maps teach word analysis. Paragraph writing brings it all together."
)
TEACHER_THURSDAY_COMP_QUESTIONS = [
"What did the child notice about the ceiling?",
"What was the dad gentle about?",
"Where does the child want to ride someday?",
]
TEACHER_THURSDAY_COMP_ANSWERS = [
"It had a crack that was dangerous.",
"About telling the child to decide on a safer path.",
"To college on the bicycle.",
]
TEACHER_THURSDAY_DETECTIVE_ANSWERS = [
("cirele", "circle"),
("notcie", "notice"),
("deciide", "decide"),
("ceiing", "ceiling"),
("bicyele", "bicycle"),
("garege", "garage"),
("genlte", "gentle"),
("figner", "finger"),
("colleege", "college"),
("dangr", "danger"),
("chane", "change"),
("enrgy", "energy"),
]
TEACHER_THURSDAY_COMP_QUESTIONS = [
"What were the child and mom baking?",
"What shape did the child press on the baking sheet?",
"What did the cookies win?"
]
TEACHER_THURSDAY_COMP_ANSWERS = [
"Cookies for the neighborhood bake sale.",
"A circle.",
"First prize.",
]
TEACHER_THURSDAY_SWAP_ANSWERS = [
"gentle, oven",
"change, recipe",
]
TEACHER_THURSDAY_MAP_WORD = "cookie"
TEACHER_THURSDAY_MAP_SUGGESTIONS = [
"cook-ie (2 syllables)",
"Split between k and i: cook-ie",
"Contains hard C (ck = /k/ sound)",
"Related words: cookie, cookies",
]
TEACHER_THURSDAY_PARA_PROMPTS = [
"Write a paragraph about baking with someone.",
"Write a paragraph about performing on stage.",
]
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."
)
TEACHER_FRIDAY_TEST_ANSWERS = [
"circle", "notice", "decide", "ceiling", "bicycle", "garage",
"gentle", "finger", "college", "danger", "change", "energy",
]
TEACHER_FRIDAY_STORY_QUESTIONS = [
"What shape was the ceiling of the rink?",
"What did the mom hold to help the child balance?",
"What did the ice change to near the edges?",
]
TEACHER_FRIDAY_STORY_ANSWERS = [
"A circle.",
"The child's fingers.",
"Blue.",
]
TEACHER_FRIDAY_OPPOSITE_ANSWERS = [
("gentle", "rough"),
("danger", "safety"),
("energy", "tiredness"),
]
TEACHER_FRIDAY_BUILDER_WORDS = ["bicycle", "garage", "ceiling", "circle"]
TEACHER_FRIDAY_JOURNAL_WORDS = ["decide", "notice", "change", "finger"]
# =====================================================================
# VALIDATION
# =====================================================================
FILL_DATA = MONDAY_FILL_DATA
DETECTIVE_WORDS = THURSDAY_DETECTIVE
DETECTIVE_ANSWERS = ["circle", "notice", "decide", "ceiling", "bicycle", "garage", "gentle", "finger", "college", "danger", "change", "energy"]
OPPOSITE_PAIRS = [("gentle", "rough"), ("danger", "safety")]
LEARNING_EXAMPLES = ["circle", "gentle", "bicycle"]
BREAKDOWNS = {
"circle": "ci-r-cle",
"gentle": "gen-tle",
"bicycle": "bi-cycle",
}
def main():
print("=" * 50)
print("Week 6 Generator - Soft C, Soft G")
print("=" * 50)
def main():
print("=" * 50)
print("Week 6 Generator - Soft C, Soft G")
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=6, 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=6, 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=6, 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="bicycle",
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=6, 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="bicycle",
para_prompts=THURSDAY_PARA_PROMPTS,
)
generate_friday(
week_dir=WEEK, week_num=6, 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=6, phonics_label=PHONICS_LABEL, words=WORDS,
phonics_name="Soft C, Soft G",
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_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_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_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_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_06/ for PDFs.")
if __name__ == "__main__":
main()