# Source code for fontTools.misc.macCreatorType

    from fontTools.misc.textTools import Tag, bytesjoin, strjoin
    try:
    	import xattr
    except ImportError:
    	xattr = None

    def _reverseString(s):
    	s = list(s)
    	s.reverse()
    	return strjoin(s)

    def getMacCreatorAndType(path):
    	"""Returns file creator and file type codes for a path.

    	Args:
    		path (str): A file path.

    	Returns:
    		A tuple of two :py:class:`fontTools.textTools.Tag` objects, the first
    		representing the file creator and the second representing the
    		file type.
    	"""
    	if xattr is not None:
    		try:
    			finderInfo = xattr.getxattr(path, 'com.apple.FinderInfo')
    		except (KeyError, IOError):
    			pass
    		else:
    			fileType = Tag(finderInfo[:4])
    			fileCreator = Tag(finderInfo[4:8])
    			return fileCreator, fileType
    	return None, None

    def setMacCreatorAndType(path, fileCreator, fileType):
    	"""Set file creator and file type codes for a path.

    	Note that if the ``xattr`` module is not installed, no action is
    	taken but no error is raised.

    	Args:
    		path (str): A file path.
    		fileCreator: A four-character file creator tag.
    		fileType: A four-character file type tag.

    	"""
    	if xattr is not None:
    		from fontTools.misc.textTools import pad
    		if not all(len(s) == 4 for s in (fileCreator, fileType)):
    			raise TypeError('arg must be string of 4 chars')
    		finderInfo = pad(bytesjoin([fileType, fileCreator]), 32)
    		xattr.setxattr(path, 'com.apple.FinderInfo', finderInfo)