MCPcopy Index your code
hub / github.com/kivy/python-for-android / get_package_dependencies

Function get_package_dependencies

pythonforandroid/pythonpackage.py:604–679  ·  view source on GitHub ↗

Obtain the dependencies from a package. Please note this function is possibly SLOW, especially if you enable the recursive mode.

(package,
                             recursive=False,
                             verbose=False,
                             include_build_requirements=False)

Source from the content-addressed store, hash-verified

602
603
604def get_package_dependencies(package,
605 recursive=False,
606 verbose=False,
607 include_build_requirements=False):
608 """ Obtain the dependencies from a package. Please note this
609 function is possibly SLOW, especially if you enable
610 the recursive mode.
611 """
612 packages_processed = set()
613 package_queue = [package]
614 reqs = set()
615 reqs_as_names = set()
616 while len(package_queue) > 0:
617 current_queue = package_queue
618 package_queue = []
619 for package_dep in current_queue:
620 new_reqs = set()
621 if verbose:
622 print("get_package_dependencies: resolving dependency "
623 f"to package name: {package_dep}")
624 package = get_package_name(package_dep)
625 if package.lower() in packages_processed:
626 continue
627 if verbose:
628 print("get_package_dependencies: "
629 "processing package: {}".format(package))
630 print("get_package_dependencies: "
631 "Packages seen so far: {}".format(
632 packages_processed
633 ))
634 packages_processed.add(package.lower())
635
636 # Use our regular folder processing to examine:
637 new_reqs = new_reqs.union(_extract_info_from_package(
638 package_dep, extract_type="dependencies",
639 debug=verbose,
640 include_build_requirements=include_build_requirements,
641 ))
642
643 # Process new requirements:
644 if verbose:
645 print('get_package_dependencies: collected '
646 "deps of '{}': {}".format(
647 package_dep, str(new_reqs),
648 ))
649 for new_req in new_reqs:
650 try:
651 req_name = get_package_name(new_req)
652 except ValueError as e:
653 if new_req.find(";") >= 0:
654 # Conditional dep where condition isn't met?
655 # --> ignore it
656 continue
657 if verbose:
658 print("get_package_dependencies: " +
659 "unexpected failure to get name " +
660 "of '" + str(new_req) + "': " +
661 str(e))

Callers 2

get_dep_names_of_packageFunction · 0.85

Calls 3

get_package_nameFunction · 0.85
formatMethod · 0.80

Tested by 1