code: def _from_string(cls, serialized):
          
          # Allow access to _from_string protected method
          library_key = LibraryLocator._from_string(serialized)  # pylint: disable=protected-access
          parsed_parts = LibraryLocator.parse_url(serialized)
  
          block_id = parsed_parts.get('block_id', None)
          if block_id is None:
              raise InvalidKeyError(cls, serialized)
  
          block_type = parsed_parts.get('block_type')
          if block_type is None:
              raise InvalidKeyError(cls, serialized)
  
          return cls(library_key, parsed_parts.get('block_type'), block_id)
docs: Requests LibraryLocator to deserialize its part and then adds the local deserialization of block