NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

__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}