Может ли python создать единую функцию для покрытия как асинхронных, так и синхронизирующих случаев - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть два проекта на Python (предположительно, с именами 'prj_a' и 'prj_b'), которые имеют много общих кодов, я хочу реорганизовать два проекта, чтобы уменьшить дублирование кода.

Мой плансоздать другой проект (названный с помощью «libcommon»), который содержит все общие коды, от него зависят как «prj_a», так и «prj_b».

Проблема заключается в том, что «prj_a» использует каркасы торнадо, предпочитая асинхронные API-интерфейсысправиться со многими вещами.Однако prj_b предпочитает синхронные API.

Например, для запроса таблицы базы данных: prj_a предпочитает:

async def query_data():
    return await asycdb.table.find({'foo': 1})

prj_b предпочитает:

def query_data():
    return syncdb.table.find({'foo': 1})

Есть лиВ любом случае я создаю унифицированный API query_data (с одинаковой подписью), чтобы и prj_a, и prj_b могли его использовать?

...