__init__.py (1713B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\beeline\propagation\__init__.py 2 import six 3 from abc import ABCMeta, abstractmethod 4 import beeline 5 6 class PropagationContext(object): 7 8 def __init__(self, trace_id, parent_id, trace_fields = {}, dataset = None): 9 self.trace_id = trace_id 10 self.parent_id = parent_id 11 self.trace_fields = trace_fields 12 self.dataset = dataset 13 14 15 @six.add_metaclass(ABCMeta) 16 17 class Request(object): 18 19 @abstractmethod 20 def header(self, key): 21 pass 22 23 @abstractmethod 24 def method(self): 25 pass 26 27 @abstractmethod 28 def scheme(self): 29 pass 30 31 @abstractmethod 32 def host(self): 33 pass 34 35 @abstractmethod 36 def path(self): 37 pass 38 39 @abstractmethod 40 def query(self): 41 pass 42 43 @abstractmethod 44 def middleware_request(self): 45 pass 46 47 48 class DictRequest(Request): 49 50 def __init__(self, headers, props = {}): 51 self._headers = headers 52 self._props = props 53 self._keymap = {k.lower():k for k in self._headers.keys()} 54 55 def header(self, key): 56 lookup_key = key.lower() 57 if lookup_key not in self._keymap: 58 return None 59 lookup_key = self._keymap[lookup_key] 60 return self._headers[lookup_key] 61 62 def method(self): 63 return self._props['method'] 64 65 def scheme(self): 66 return self._props['scheme'] 67 68 def host(self): 69 return self._props['host'] 70 71 def path(self): 72 return self._props['path'] 73 74 def query(self): 75 return self._props['query'] 76 77 def middleware_request(self): 78 return {'headers': self._headers, 79 'props': self._props}