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

Method has_package

pythonforandroid/build.py:450–482  ·  view source on GitHub ↗
(self, name, arch=None)

Source from the content-addressed store, hash-verified

448 return exists(join(self.get_libs_dir(arch), lib))
449
450 def has_package(self, name, arch=None):
451 # If this is a file path, it'll need special handling:
452 if (name.find("/") >= 0 or name.find("\\") >= 0) and \
453 name.find("://") < 0: # (:// would indicate an url)
454 if not os.path.exists(name):
455 # Non-existing dir, cannot look this up.
456 return False
457 try:
458 name = get_package_name(os.path.abspath(name))
459 except ValueError:
460 # Failed to look up any meaningful name.
461 return False
462
463 # normalize name to remove version tags
464 try:
465 name = Requirement(name).name
466 except Exception:
467 pass
468
469 # Try to look up recipe by name:
470 try:
471 recipe = Recipe.get_recipe(name, self)
472 except ValueError:
473 pass
474 else:
475 name = getattr(recipe, 'site_packages_name', None) or name
476 name = name.replace('.', '/')
477 site_packages_dir = self.get_site_packages_dir(arch)
478 return (exists(join(site_packages_dir, name)) or
479 exists(join(site_packages_dir, name + '.py')) or
480 exists(join(site_packages_dir, name + '.pyc')) or
481 exists(join(site_packages_dir, name + '.so')) or
482 glob.glob(join(site_packages_dir, name + '-*.egg')))
483
484 def not_has_package(self, name, arch=None):
485 return not self.has_package(name, arch)

Callers 4

not_has_packageMethod · 0.95
should_buildMethod · 0.80
should_buildMethod · 0.80
should_buildMethod · 0.80

Calls 3

get_site_packages_dirMethod · 0.95
get_package_nameFunction · 0.90
get_recipeMethod · 0.80

Tested by

no test coverage detected