code: def _extend_str(class_node, rvalue):
      
      code = dedent(
          """
      class whatever(object):
          def join(self, iterable):
              return {rvalue}
          def replace(self, old, new, count=None):
              return {rvalue}
          def format(self, *args, **kwargs):
              return {rvalue}
          def encode(self, encoding='ascii', errors=None):
              return ''
          def decode(self, encoding='ascii', errors=None):
              return u''
          def capitalize(self):
              return {rvalue}
          def title(self):
              return {rvalue}
          def lower(self):
              return {rvalue}
          def upper(self):
              return {rvalue}
          def swapcase(self):
              return {rvalue}
          def index(self, sub, start=None, end=None):
              return 0
          def find(self, sub, start=None, end=None):
              return 0
          def count(self, sub, start=None, end=None):
              return 0
          def strip(self, chars=None):
              return {rvalue}
          def lstrip(self, chars=None):
              return {rvalue}
          def rstrip(self, chars=None):
              return {rvalue}
          def rjust(self, width, fillchar=None):
              return {rvalue}
          def center(self, width, fillchar=None):
              return {rvalue}
          def ljust(self, width, fillchar=None):
              return {rvalue}
      """
      )
      code = code.format(rvalue=rvalue)
      fake = AstroidBuilder(MANAGER).string_build(code)["whatever"]
      for method in fake.mymethods():
          method.parent = class_node
          method.lineno = None
          method.col_offset = None
          if "__class__" in method.locals:
              method.locals["__class__"] = [class_node]
          class_node.locals[method.name] = [method]
          method.parent = class_node
docs: function to extend builtin str/unicode class