nodes: 0, module; 1, function_definition; 2, function_name:_extract_value_from_storage; 3, parameters; 4, block; 5, identifier:self; 6, identifier:string; 7, expression_statement; 8, expression_statement; 9, expression_statement; 10, return_statement; 11, comment:"""Taking a string that was a member of the zset, extract the value and pk
  
          Parameters
          ----------
          string: str
              The member extracted from the sorted set
  
          Returns
          -------
          tuple
              Tuple with the value and the pk, extracted from the string
  
          """; 12, assignment; 13, assignment; 14, expression_list; 15, identifier:parts; 16, call; 17, identifier:pk; 18, call; 19, call; 20, identifier:pk; 21, attribute; 22, argument_list; 23, attribute; 24, argument_list; 25, attribute; 26, argument_list; 27, identifier:string; 28, identifier:split; 29, attribute; 30, identifier:parts; 31, identifier:pop; 32, attribute; 33, identifier:join; 34, identifier:parts; 35, identifier:self; 36, identifier:separator; 37, identifier:self; 38, identifier:separator
code: def _extract_value_from_storage(self, string):
          """Taking a string that was a member of the zset, extract the value and pk
  
          Parameters
          ----------
          string: str
              The member extracted from the sorted set
  
          Returns
          -------
          tuple
              Tuple with the value and the pk, extracted from the string
  
          """
          parts = string.split(self.separator)
          pk = parts.pop()
          return self.separator.join(parts), pk