У меня есть API, который я хотел бы использовать из python. Этот API содержит флаги и перечисления, реализованные с помощью # define.
// it's just almost C so don't bother adding the typedef and parenthesis diarrhea here.
routine(API_SOMETHING | API_OTHERTHING)
stuff = getflags()
? stuff & API_SOMETHING
action(API_INTERESTING)
mode = getaction()
? mode == INTERESTING
Если игнорировать все остальное, кроме перечислений и флагов, мои привязки должны перевести это на:
routine(["something", "otherthing"])
stuff = getflags()
if 'something' in stuff
action('interesting')
mode = getaction()
if mode == 'interesting'
Предоставляет ли ctypes механизмы для этого? Если нет, то просто расскажите о своем «обычном» инструменте для обработки флагов и перечислений в привязках python.