From c56764a30306f7152b34649a6650137cdb228a35 Mon Sep 17 00:00:00 2001 From: Konstantin Stepanov Date: Thu, 25 Jan 2018 22:52:49 +0300 Subject: [PATCH] add new_child method to span class --- aiozipkin/span.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/aiozipkin/span.py b/aiozipkin/span.py index dbf6f9a1..5a6f7e1d 100644 --- a/aiozipkin/span.py +++ b/aiozipkin/span.py @@ -66,6 +66,10 @@ def kind(self: T, span_kind: str) -> T: def name(self: T, span_name: str) -> T: pass # pragma: no cover + @abstractmethod + def new_child(self: T, name: str = None, kind: str = None) -> T: + pass # pragma: no cover + def __enter__(self: T) -> T: self.start() return self @@ -117,6 +121,9 @@ def kind(self, span_kind: str) -> 'NoopSpan': def name(self, span_name: str) -> 'NoopSpan': return self + def new_child(self, name: str = None, kind: str = None) -> 'NoopSpan': + return self + class Span(SpanAbc): def __init__(self, tracer: 'Tracer', @@ -177,3 +184,11 @@ def kind(self, span_kind: str) -> 'Span': def name(self, span_name: str) -> 'Span': self._record.name(span_name) return self + + def new_child(self, name: str = None, kind: str = None) -> 'Span': + span = self.tracer.new_child(self.context) + if name is not None: + span.name(name) + if kind is not None: + span.kind(kind) + return span # type: ignore