"""
PyKnowledgeBase
Generated by Eden via recursive self-improvement
2025-11-01 09:26:58.068561
"""

class KnowledgeSnippet:
    def __init__(self, title: str, content: str, category: str):
        self.title = title
        self.content = content
        self.category = category

class PyKnowledgeBase:
    def __init__(self):
        self.snippets = []

    def add_snippet(self, snippet: KnowledgeSnippet):
        """Add a new knowledge snippet to the repository."""
        self.snippets.append(snippet)

    def search_by_keyword(self, keyword: str) -> list[KnowledgeSnippet]:
        """Search for snippets containing the given keyword."""
        return [snippet for snippet in self.snippets if keyword.lower() in snippet.title.lower() or keyword.lower() in snippet.content.lower()]

    def search_by_category(self, category: str) -> list[KnowledgeSnippet]:
        """Search for snippets within a specific category."""
        return [snippet for snippet in self.snippets if snippet.category == category]

# Example usage
kb = PyKnowledgeBase()

# Adding some snippets
kb.add_snippet(KnowledgeSnippet("Python Basics", "Introduction to Python programming language.", "Programming"))
kb.add_snippet(KnowledgeSnippet("Data Science with Python", "Using Python for data analysis and machine learning.", "Analytics"))

# Searching by keyword
print(kb.search_by_keyword("Python"))
# Output: [KnowledgeSnippet(title='Python Basics', content='Introduction to Python programming language.', category='Programming'), KnowledgeSnippet(title='Data Science with Python', content='Using Python for data analysis and machine learning.', category='Analytics')]

# Searching by category
print(kb.search_by_category("Analytics"))
# Output: [KnowledgeSnippet(title='Data Science with Python', content='Using Python for data analysis and machine learning.', category='Analytics')]