22# Copyright Contributors to the Rez Project
33
44
5- from rez .package_repository import package_repository_manager
65from rez .package_resources import PackageFamilyResource , PackageResource , \
76 VariantResource , package_family_schema , package_schema , variant_schema , \
87 package_release_keys , late_requires_schema
1716from rez .version import Version , VersionRange
1817from rez .version import VersionedObject
1918from rez .serialise import FileFormat
20- from rez .config import config
2119
2220import os
2321import sys
@@ -99,11 +97,13 @@ def config(self):
9997 Defaults to global config if this package did not provide a 'config'
10098 section.
10199 """
100+ from rez .config import config
102101 return self .resource .config or config
103102
104103 @cached_property
105104 def is_local (self ):
106105 """Returns True if the package is in the local package repository"""
106+ from rez .package_repository import package_repository_manager
107107 local_repo = package_repository_manager .get_repository (
108108 self .config .local_packages_path )
109109 return (self .resource ._repository .uid == local_repo .uid )
@@ -262,6 +262,7 @@ def is_relocatable(self):
262262 if self .relocatable is not None :
263263 return self .relocatable
264264
265+ from rez .config import config
265266 if config .default_relocatable_per_repository :
266267 value = config .default_relocatable_per_repository .get (
267268 self .repository .location )
@@ -282,6 +283,7 @@ def is_cachable(self):
282283 if self .cachable is not None :
283284 return self .cachable
284285
286+ from rez .config import config
285287 if config .default_cachable_per_repository :
286288 # TODO: The location of filesystem repository is canonical path,
287289 # so if the path in `default_cachable_per_repository` isn't
@@ -451,6 +453,7 @@ def install(self, path, dry_run=False, overrides=None):
451453 `Variant` object - the (existing or newly created) variant in the
452454 specified repository. If `dry_run` is True, None may be returned.
453455 """
456+ from rez .package_repository import package_repository_manager
454457 repo = package_repository_manager .get_repository (path )
455458 resource = repo .install_variant (self .resource ,
456459 dry_run = dry_run ,
@@ -507,6 +510,7 @@ def __contains__(self, package):
507510
508511 @cached_property
509512 def _repository_uids (self ):
513+ from rez .package_repository import package_repository_manager
510514 uids = set ()
511515 for path in self .paths :
512516 repo = package_repository_manager .get_repository (path )
@@ -532,6 +536,8 @@ def iter_package_families(paths=None):
532536 Returns:
533537 `PackageFamily` iterator.
534538 """
539+ from rez .config import config
540+ from rez .package_repository import package_repository_manager
535541 for path in (paths or config .packages_path ):
536542 repo = package_repository_manager .get_repository (path )
537543 for resource in repo .iter_package_families ():
@@ -607,6 +613,7 @@ def get_package_family_from_repository(name, path):
607613 Returns:
608614 `PackageFamily` object, or None if the family was not found.
609615 """
616+ from rez .package_repository import package_repository_manager
610617 repo = package_repository_manager .get_repository (path )
611618
612619 family_resource = repo .get_package_family (name )
@@ -626,6 +633,7 @@ def get_package_from_repository(name, version, path):
626633 Returns:
627634 `Package` object, or None if the package was not found.
628635 """
636+ from rez .package_repository import package_repository_manager
629637 repo = package_repository_manager .get_repository (path )
630638
631639 if isinstance (version , str ):
@@ -649,6 +657,7 @@ def get_package_from_handle(package_handle):
649657 Returns:
650658 `Package`.
651659 """
660+ from rez .package_repository import package_repository_manager
652661 if isinstance (package_handle , dict ):
653662 package_handle = ResourceHandle .from_dict (package_handle )
654663 package_resource = package_repository_manager .get_resource_from_handle (package_handle )
@@ -713,6 +722,7 @@ def get_variant(variant_handle, context=None):
713722 Returns:
714723 `Variant`.
715724 """
725+ from rez .package_repository import package_repository_manager
716726 if isinstance (variant_handle , dict ):
717727 variant_handle = ResourceHandle .from_dict (variant_handle )
718728
@@ -733,6 +743,7 @@ def get_package_from_uri(uri, paths=None):
733743 Returns:
734744 `Package`, or None if the package could not be found.
735745 """
746+ from rez .package_repository import package_repository_manager
736747 def _find_in_path (path ):
737748 repo = package_repository_manager .get_repository (path )
738749 pkg_resource = repo .get_package_from_uri (uri )
@@ -741,6 +752,7 @@ def _find_in_path(path):
741752 else :
742753 return None
743754
755+ from rez .config import config
744756 for path in (paths or config .packages_path ):
745757 pkg = _find_in_path (path )
746758 if pkg is not None :
@@ -780,6 +792,7 @@ def get_variant_from_uri(uri, paths=None):
780792 Returns:
781793 `Variant`, or None if the variant could not be found.
782794 """
795+ from rez .package_repository import package_repository_manager
783796 def _find_in_path (path ):
784797 repo = package_repository_manager .get_repository (path )
785798 variant_resource = repo .get_variant_from_uri (uri )
@@ -788,6 +801,7 @@ def _find_in_path(path):
788801 else :
789802 return None
790803
804+ from rez .config import config
791805 for path in (paths or config .packages_path ):
792806 variant = _find_in_path (path )
793807 if variant is not None :
@@ -951,6 +965,8 @@ def get_latest_package_from_string(txt, paths=None, error=False):
951965
952966def _get_families (name , paths = None ):
953967 entries = []
968+ from rez .config import config
969+ from rez .package_repository import package_repository_manager
954970 for path in (paths or config .packages_path ):
955971 repo = package_repository_manager .get_repository (path )
956972 family_resource = repo .get_package_family (name )
0 commit comments