33 lines
1.3 KiB
Python
33 lines
1.3 KiB
Python
# services/language/language_factory.py
|
|
"""
|
|
Factory class for creating language detection services
|
|
"""
|
|
from typing import Optional, Set
|
|
from .langid_service import LangIdService
|
|
|
|
class LanguageFactory:
|
|
"""Factory class for creating language detection service instances"""
|
|
|
|
@staticmethod
|
|
def create_service(service_type: str, allowed_languages: Optional[Set[str]] = None, **kwargs) -> Optional['LanguageDetectionService']:
|
|
"""
|
|
Create an instance of the specified language detection service
|
|
|
|
Args:
|
|
service_type: Type of language detection service ("langid", etc.)
|
|
allowed_languages: Set of allowed language codes
|
|
**kwargs: Additional arguments for service initialization
|
|
|
|
Returns:
|
|
LanguageDetectionService instance or None if service_type is not recognized
|
|
"""
|
|
services = {
|
|
"langid": LangIdService,
|
|
# Add other language detection services here
|
|
}
|
|
|
|
service_class = services.get(service_type.lower())
|
|
if service_class:
|
|
return service_class(allowed_languages=allowed_languages, **kwargs)
|
|
else:
|
|
raise ValueError(f"Unknown language detection service type: {service_type}") |