diff --git a/helpers/flower_helpers.py b/helpers/flower_helpers.py new file mode 100644 index 0000000..0b17f88 --- /dev/null +++ b/helpers/flower_helpers.py @@ -0,0 +1,77 @@ +from typing import List, Dict, Optional, Union, Any +import re + +def validate_flower_name(name: str) -> bool: + """ + Validate a flower name. + + Args: + name: The flower name to validate. + + Returns: + bool: True if the flower name is valid, False otherwise. + """ + pattern = r'^[a-zA-Z\s]+$' + return bool(re.match(pattern, name)) + +def get_flower_info(flower_name: str) -> Optional[Dict[str, Any]]: + """ + Get information about a flower from an external API or database. + + Args: + flower_name: The name of the flower. + + Returns: + Optional[Dict[str, Any]]: A dictionary containing information about the flower, or None if not found. + """ + # Implement logic to fetch flower information from an external source + pass + +def format_flower_list(flowers: List[Dict[str, Any]]) -> List[Dict[str, Any]]: + """ + Format a list of flower information dictionaries. + + Args: + flowers: A list of dictionaries containing flower information. + + Returns: + List[Dict[str, Any]]: A formatted list of dictionaries with flower information. + """ + formatted_flowers = [] + for flower in flowers: + formatted_flower = { + 'name': flower['name'], + 'description': flower.get('description', ''), + 'category': flower.get('category', ''), + 'image_url': flower.get('image_url', '') + } + formatted_flowers.append(formatted_flower) + return formatted_flowers + +def filter_flowers_by_category(flowers: List[Dict[str, Any]], category: str) -> List[Dict[str, Any]]: + """ + Filter a list of flower information dictionaries by category. + + Args: + flowers: A list of dictionaries containing flower information. + category: The category to filter by. + + Returns: + List[Dict[str, Any]]: A list of dictionaries containing flower information for the specified category. + """ + filtered_flowers = [flower for flower in flowers if flower.get('category', '').lower() == category.lower()] + return filtered_flowers + +def search_flowers_by_name(flowers: List[Dict[str, Any]], search_term: str) -> List[Dict[str, Any]]: + """ + Search for flowers by name in a list of flower information dictionaries. + + Args: + flowers: A list of dictionaries containing flower information. + search_term: The search term to use for filtering flower names. + + Returns: + List[Dict[str, Any]]: A list of dictionaries containing flower information for matching flower names. + """ + matching_flowers = [flower for flower in flowers if search_term.lower() in flower['name'].lower()] + return matching_flowers \ No newline at end of file