Skip to content

v0.0.2 — More Personality, Color, and Coverage

Latest

Choose a tag to compare

@smiley-maker smiley-maker released this 15 Dec 18:24
· 3 commits to main since this release

V0.0.2 Release

This release expands EmotiGrad’s expressiveness, polish, and reliability, with major community contributions across personalities, output formatting, and test coverage.

✨ New Personalities

Eight new built-in personalities are now available:

  • nervous: anxious and overthinking
  • chaotic: unpredictable, varied responses
  • arrogant: confidently condescending
  • tired: exhausted but pushing through
  • hype: extremely enthusiastic and energetic
  • academic: research-style feedback with Δ and % stats
  • pirate: Arrr! motivational pirate talk
  • zen: calm, mindful, journey-focused feedback

All personalities are fully registered, tested, and available via string names.

🎨 Colored Output Support

EmotiGrad now supports optional ANSI-colored output:

  • New colors module with utilities to apply or strip ANSI color codes
  • ColoredPrinter helper for personality-specific color schemes
  • Seamless integration via the print_fn argument

Example:

from emotigrad import EmotionalOptimizer, ColoredPrinter

printer = ColoredPrinter("hype")
opt = EmotionalOptimizer(optimizer, personality="hype", print_fn=printer)

🧪 Expanded Test Coverage

Significant improvements to test coverage and robustness, including 25+ new tests covering:

  • Personality registry behavior
  • String, function, class, and lambda personalities
  • Registry overwrite protection
  • Built-in personality behaviors
  • message_every smoothing and averaging logic
  • Full training-loop integration scenarios

All tests passed across the expanded suite.

💖 Community Contributions

Huge thanks to @majiayu000 for the new personalities, colored output support, and comprehensive test additions. This release is a big step forward for EmotiGrad!

🔧 Upgrade Notes

  • No breaking changes
  • Existing APIs continue to work as-is
  • Fully backward compatible with v0.0.1