# coding: utf-8 import asyncio from pprint import pprint as pp from phi.async_ldap.model import ( # Hackers, # User, Robots, Service, Congregations, Group, build_heritage, iter_children, ) from phi.async_ldap.new_model import Hackers, User from phi.async_ldap.client import AsyncClient async def dlv(h, cls): return [el async for el in build_heritage(h, cls)] cl = AsyncClient( "ldap://localhost", port=389, encryption=True, # validate=True, ca_cert="/home/leo/Documents/coding/phi/openldap/cert.pem", username="root", password="root", base_dn="dc=unit,dc=macaomilano,dc=org", attribute_id="cn", ) async def get_all_children(): h = Hackers(cl) r = Robots(cl) g = Congregations(cl) hackers = await dlv(h, User) robots = await dlv(r, Service) groups = await dlv(g, Group) return (hackers, robots, groups) async def print_async(awaitable): result = await awaitable pp(result) async def describe(obj): results = await obj.describe() return results asyncio.run(print_async(describe(Hackers(cl)))) asyncio.run(print_async(describe(User(cl, "conte_mascetti"))))