code: def _get_ctx(self, subctx=None):
          "Return ' (ctx: subctx)' or ' (ctx)' or ' (subctx)' or '' depending on this and constructor arguments"
          l = []
          if self.ctx is not None:      l.append(self.ctx)
          if subctx is not None:        l.append(subctx)
          return '' if len(l) == 0 else f" ({': '.join(l)})f _get_ctx(self, subctx=None):
          "Return ' (ctx: subctx)' or ' (ctx)' or ' (subctx)' or '' depending on this and constructor arguments"
          l = []
          if self.ctx is not None:      l.append(self.ctx)
          if subctx is not None:        l.append(subctx)
          return '' if len(l) == 0 else f" ({': '.join(l)})"
docs: Return ' (ctx: subctx)' or ' (ctx)' or ' (subctx)' or '' depending on this and constructor arguments