소스 검색

adds term.colored.embed, which does not reset colors

Ask Solem 13 년 전
부모
커밋
164d265fbc
1개의 변경된 파일10개의 추가작업 그리고 4개의 파일을 삭제
  1. 10 4
      celery/utils/term.py

+ 10 - 4
celery/utils/term.py

@@ -55,11 +55,17 @@ class colored(object):
     def no_color(self):
     def no_color(self):
         return reduce(self._fold_no_color, self.s)
         return reduce(self._fold_no_color, self.s)
 
 
+    def embed(self):
+        prefix = ""
+        if self.enabled:
+            prefix = self.op
+        return prefix + str(reduce(self._add, self.s))
+
     def __str__(self):
     def __str__(self):
-        prefix, suffix = "", ""
+        suffix = ""
         if self.enabled:
         if self.enabled:
-            prefix, suffix = self.op, RESET_SEQ
-        return prefix + str(reduce(self._add, self.s)) + suffix
+            suffix = RESET_SEQ
+        return self.embed() + suffix
 
 
     def node(self, s, op):
     def node(self, s, op):
         return self.__class__(enabled=self.enabled, op=op, *s)
         return self.__class__(enabled=self.enabled, op=op, *s)
@@ -128,7 +134,7 @@ class colored(object):
         return self.node(s, fg(40 + WHITE))
         return self.node(s, fg(40 + WHITE))
 
 
     def reset(self, *s):
     def reset(self, *s):
-        return self.node(s, RESET_SEQ)
+        return self.node(s or [""], RESET_SEQ)
 
 
     def __add__(self, other):
     def __add__(self, other):
         return str(self) + str(other)
         return str(self) + str(other)