(self, name, arch=None)
| 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) |
no test coverage detected