O que substitui o Carbon.File.FSResolveAliasFile, agora descontinuado, em Python no OSX?
No Python 2, posso usar o código a seguir para resolver um alias do MacOS ou um link simbólico:
from Carbon import File
File.FSResolveAliasFile(alias_fp, True)[0].as_pathname()
onde alias_fp é o caminho para o arquivo que estou curioso, armazenado como uma string (fonte)
Contudo,a documentação me diz alegremente que toda a família de módulos Carbon está obsoleta. O que devo usar em vez disso?
EDIT: Eu acredito que o código abaixo é um passo na direção certa para a abordagem PyObjC. Não resolve aliases, mas parece detectá-los.
from AppKit import NSWorkspace
def is_alias (path):
uti, err = NSWorkspace.sharedWorkspace().typeOfFile_error_(
os.path.realpath(path), None)
if err:
raise Exception(unicode(err))
else:
return "com.apple.alias-file" == uti
(fonte)
Infelizmente, não consigo fazer a solução da @ Milliways funcionar (sem saber nada sobre cacau) ecoisas que encontro em outros lugares na internet parece muito mais complicado (talvez esteja lidando com todos os tipos de casos extremos?).