def get_installed_pypackages():
    return {p.project_name.lower(): p for p in pkg_resources.working_set}
def queue_when_in_transaction(call):
    if transaction_states[call.using]:
        transaction_states[call.using].push((call, (), {}))
    else:
        return call()