diff --git a/src/crewai/telemtry.py b/src/crewai/telemtry.py index a3cc37753..b67a62dee 100644 --- a/src/crewai/telemtry.py +++ b/src/crewai/telemtry.py @@ -5,6 +5,15 @@ This module allows older code that imports from `crewai.telemtry` (misspelled) to continue working by re-exporting the Telemetry class from the correctly spelled `crewai.telemetry` module. """ +import warnings + from crewai.telemetry import Telemetry +warnings.warn( + "Importing from 'crewai.telemtry' is deprecated due to spelling issues. " + "Please use 'from crewai.telemetry import Telemetry' instead.", + DeprecationWarning, + stacklevel=2 +) + __all__ = ["Telemetry"] diff --git a/tests/backward_compatibility_test.py b/tests/backward_compatibility_test.py index acb88a8ed..a1de393ad 100644 --- a/tests/backward_compatibility_test.py +++ b/tests/backward_compatibility_test.py @@ -1,10 +1,30 @@ import unittest +import warnings class BackwardCompatibilityTest(unittest.TestCase): def test_telemtry_typo_compatibility(self): """Test that the backward compatibility for the telemtry typo works.""" - from crewai.telemtry import Telemetry as MisspelledTelemetry from crewai.telemetry import Telemetry + from crewai.telemtry import Telemetry as MisspelledTelemetry self.assertIs(MisspelledTelemetry, Telemetry) + + def test_functionality_preservation(self): + """Test that the re-exported Telemetry class preserves all functionality.""" + from crewai.telemetry import Telemetry + from crewai.telemtry import Telemetry as MisspelledTelemetry + + self.assertEqual(dir(MisspelledTelemetry), dir(Telemetry)) + + def test_deprecation_warning(self): + """Test that importing from the misspelled module raises a deprecation warning.""" + with warnings.catch_warnings(record=True) as w: + warnings.simplefilter("always") + + from crewai.telemtry import Telemetry # noqa: F401 + + self.assertEqual(len(w), 1) + self.assertTrue(issubclass(w[0].category, DeprecationWarning)) + self.assertIn("crewai.telemtry", str(w[0].message)) + self.assertIn("crewai.telemetry", str(w[0].message))