Add type hints to BaseInstrumentor (#3084)
This commit is contained in:
		
							parent
							
								
									ecf5529f99
								
							
						
					
					
						commit
						7804e0a4e8
					
				|  | @ -12,8 +12,10 @@ | ||||||
| # See the License for the specific language governing permissions and | # See the License for the specific language governing permissions and | ||||||
| # limitations under the License. | # limitations under the License. | ||||||
| 
 | 
 | ||||||
|  | from __future__ import annotations | ||||||
|  | 
 | ||||||
| from logging import getLogger | from logging import getLogger | ||||||
| from typing import Collection, Optional, Union | from typing import Collection | ||||||
| 
 | 
 | ||||||
| from packaging.requirements import InvalidRequirement, Requirement | from packaging.requirements import InvalidRequirement, Requirement | ||||||
| 
 | 
 | ||||||
|  | @ -27,10 +29,10 @@ logger = getLogger(__name__) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class DependencyConflict: | class DependencyConflict: | ||||||
|     required: str = None |     required: str | None = None | ||||||
|     found: Optional[str] = None |     found: str | None = None | ||||||
| 
 | 
 | ||||||
|     def __init__(self, required, found=None): |     def __init__(self, required: str | None, found: str | None = None): | ||||||
|         self.required = required |         self.required = required | ||||||
|         self.found = found |         self.found = found | ||||||
| 
 | 
 | ||||||
|  | @ -40,7 +42,7 @@ class DependencyConflict: | ||||||
| 
 | 
 | ||||||
| def get_dist_dependency_conflicts( | def get_dist_dependency_conflicts( | ||||||
|     dist: Distribution, |     dist: Distribution, | ||||||
| ) -> Optional[DependencyConflict]: | ) -> DependencyConflict | None: | ||||||
|     instrumentation_deps = [] |     instrumentation_deps = [] | ||||||
|     extra = "extra" |     extra = "extra" | ||||||
|     instruments = "instruments" |     instruments = "instruments" | ||||||
|  | @ -57,8 +59,8 @@ def get_dist_dependency_conflicts( | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_dependency_conflicts( | def get_dependency_conflicts( | ||||||
|     deps: Collection[Union[str, Requirement]], |     deps: Collection[str | Requirement], | ||||||
| ) -> Optional[DependencyConflict]: | ) -> DependencyConflict | None: | ||||||
|     for dep in deps: |     for dep in deps: | ||||||
|         if isinstance(dep, Requirement): |         if isinstance(dep, Requirement): | ||||||
|             req = dep |             req = dep | ||||||
|  |  | ||||||
|  | @ -17,9 +17,11 @@ | ||||||
| OpenTelemetry Base Instrumentor | OpenTelemetry Base Instrumentor | ||||||
| """ | """ | ||||||
| 
 | 
 | ||||||
|  | from __future__ import annotations | ||||||
|  | 
 | ||||||
| from abc import ABC, abstractmethod | from abc import ABC, abstractmethod | ||||||
| from logging import getLogger | from logging import getLogger | ||||||
| from typing import Collection, Optional | from typing import Any, Collection | ||||||
| 
 | 
 | ||||||
| from opentelemetry.instrumentation._semconv import ( | from opentelemetry.instrumentation._semconv import ( | ||||||
|     _OpenTelemetrySemanticConventionStability, |     _OpenTelemetrySemanticConventionStability, | ||||||
|  | @ -33,7 +35,7 @@ _LOG = getLogger(__name__) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class BaseInstrumentor(ABC): | class BaseInstrumentor(ABC): | ||||||
|     """An ABC for instrumentors |     """An ABC for instrumentors. | ||||||
| 
 | 
 | ||||||
|     Child classes of this ABC should instrument specific third |     Child classes of this ABC should instrument specific third | ||||||
|     party libraries or frameworks either by using the |     party libraries or frameworks either by using the | ||||||
|  | @ -74,18 +76,18 @@ class BaseInstrumentor(ABC): | ||||||
|         is present in the environment. |         is present in the environment. | ||||||
|         """ |         """ | ||||||
| 
 | 
 | ||||||
|     def _instrument(self, **kwargs): |     def _instrument(self, **kwargs: Any): | ||||||
|         """Instrument the library""" |         """Instrument the library""" | ||||||
| 
 | 
 | ||||||
|     @abstractmethod |     @abstractmethod | ||||||
|     def _uninstrument(self, **kwargs): |     def _uninstrument(self, **kwargs: Any): | ||||||
|         """Uninstrument the library""" |         """Uninstrument the library""" | ||||||
| 
 | 
 | ||||||
|     def _check_dependency_conflicts(self) -> Optional[DependencyConflict]: |     def _check_dependency_conflicts(self) -> DependencyConflict | None: | ||||||
|         dependencies = self.instrumentation_dependencies() |         dependencies = self.instrumentation_dependencies() | ||||||
|         return get_dependency_conflicts(dependencies) |         return get_dependency_conflicts(dependencies) | ||||||
| 
 | 
 | ||||||
|     def instrument(self, **kwargs): |     def instrument(self, **kwargs: Any): | ||||||
|         """Instrument the library |         """Instrument the library | ||||||
| 
 | 
 | ||||||
|         This method will be called without any optional arguments by the |         This method will be called without any optional arguments by the | ||||||
|  | @ -117,7 +119,7 @@ class BaseInstrumentor(ABC): | ||||||
|         self._is_instrumented_by_opentelemetry = True |         self._is_instrumented_by_opentelemetry = True | ||||||
|         return result |         return result | ||||||
| 
 | 
 | ||||||
|     def uninstrument(self, **kwargs): |     def uninstrument(self, **kwargs: Any): | ||||||
|         """Uninstrument the library |         """Uninstrument the library | ||||||
| 
 | 
 | ||||||
|         See ``BaseInstrumentor.instrument`` for more information regarding the |         See ``BaseInstrumentor.instrument`` for more information regarding the | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue