code: def loads(cls, s):
          
          if isinstance(s, six.binary_type):
              fp = six.BytesIO(s)
          else:
              fp = six.StringIO(s)
          return cls.load(fp)
docs: Parse the contents of the string ``s`` as a simple line-oriented
          ``.properties`` file and return a `PropertiesFile` instance.
  
          ``s`` may be either a text string or bytes string.  If it is a bytes
          string, its contents are decoded as Latin-1.
  
          .. versionchanged:: 0.5.0
              Invalid ``\\uXXXX`` escape sequences will now cause an
              `InvalidUEscapeError` to be raised
  
          :param string s: the string from which to read the ``.properties``
              document
          :rtype: PropertiesFile
          :raises InvalidUEscapeError: if an invalid ``\\uXXXX`` escape sequence
              occurs in the input