In contrast, it-depends recursively builds a project’s dependency graph starting from either a source code repository or a package specification, enumerating the superset of all feasible dependency resolutions, not just a single resolution. For example, it-depends correctly identifies that the Python package pytz depends on the native library libtinfo6, which itself depends on libcrypt1, which depends on libc6, … and so on. from it_depends.dependencies import DependencyResolver , Dependency , Package class CustomResolver ( DependencyResolver ): def resolve ( self , dependency : Dependency ) -> Iterator [ Package ]: """Yields all packages that satisfy the given dependency""" raise NotImplementedError ( "TODO: Implement" )