code: def _from_deprecated_string(cls, serialized):
          
          match = cls.DEPRECATED_URL_RE.match(serialized)
          if match is None:
              raise InvalidKeyError(BlockUsageLocator, serialized)
          groups = match.groupdict()
          course_key = CourseLocator(
              org=groups['org'],
              course=groups['course'],
              run=None,
              branch=groups.get('revision'),
              deprecated=True,
          )
          return cls(course_key, groups['category'], groups['name'], deprecated=True)
docs: Return an instance of `cls` parsed from its deprecated `serialized` form.
  
          This will be called only if :meth:`OpaqueKey.from_string` is unable to
          parse a key out of `serialized`, and only if `set_deprecated_fallback` has
          been called to register a fallback class.
  
          Args:
              cls: The :class:`OpaqueKey` subclass.
              serialized (unicode): A serialized :class:`OpaqueKey`, with namespace already removed.
  
          Raises:
              InvalidKeyError: Should be raised if `serialized` is not a valid serialized key
                  understood by `cls`.