rez 3.1.0__tar.gz → 3.2.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (713) hide show
  1. {rez-3.1.0 → rez-3.2.0}/MANIFEST.in +1 -2
  2. {rez-3.1.0/src/rez.egg-info → rez-3.2.0}/PKG-INFO +1 -1
  3. {rez-3.1.0 → rez-3.2.0}/setup.py +0 -1
  4. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/rez.py +1 -1
  5. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/build.py +3 -1
  6. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/env.py +14 -1
  7. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/pkg-cache.py +20 -1
  8. {rez-3.1.0 → rez-3.2.0}/src/rez/config.py +2 -0
  9. rez-3.2.0/src/rez/data/tests/builds/packages/testing_obj/1.0.0/build.py +24 -0
  10. rez-3.2.0/src/rez/data/tests/builds/packages/testing_obj/1.0.0/package.py +42 -0
  11. rez-3.2.0/src/rez/data/tests/builds/packages/testing_obj/1.0.0/testing_obj/__init__.py +2 -0
  12. rez-3.2.0/src/rez/data/tests/solver/packages/test_weakly_reference_requires/2.0/package.py +4 -0
  13. rez-3.2.0/src/rez/data/tests/solver/packages/test_weakly_reference_variant/2.0/package.py +6 -0
  14. {rez-3.1.0 → rez-3.2.0}/src/rez/deprecations.py +2 -2
  15. {rez-3.1.0 → rez-3.2.0}/src/rez/package_cache.py +103 -15
  16. {rez-3.1.0 → rez-3.2.0}/src/rez/package_order.py +20 -14
  17. {rez-3.1.0 → rez-3.2.0}/src/rez/package_test.py +4 -1
  18. {rez-3.1.0 → rez-3.2.0}/src/rez/resolved_context.py +27 -9
  19. {rez-3.1.0 → rez-3.2.0}/src/rez/resolver.py +5 -2
  20. {rez-3.1.0 → rez-3.2.0}/src/rez/rezconfig.py +16 -124
  21. {rez-3.1.0 → rez-3.2.0}/src/rez/serialise.py +1 -0
  22. {rez-3.1.0 → rez-3.2.0}/src/rez/system.py +13 -9
  23. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_build.py +1 -1
  24. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_completion.py +2 -1
  25. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_config.py +12 -7
  26. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_context.py +20 -0
  27. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_package_cache.py +56 -4
  28. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_packages.py +3 -1
  29. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_shells.py +16 -0
  30. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_solver.py +17 -0
  31. rez-3.2.0/src/rez/tests/test_test.py +85 -0
  32. rez-3.2.0/src/rez/tests/test_utils_elf.py +38 -0
  33. rez-3.2.0/src/rez/tests/test_utils_formatting.py +43 -0
  34. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/util.py +1 -22
  35. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/_version.py +1 -1
  36. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/elf.py +3 -1
  37. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/formatting.py +6 -2
  38. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/README.md +3 -3
  39. {rez-3.1.0 → rez-3.2.0/src/rez.egg-info}/PKG-INFO +1 -1
  40. {rez-3.1.0 → rez-3.2.0}/src/rez.egg-info/SOURCES.txt +29 -40
  41. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/package_repository/filesystem.py +3 -1
  42. rez-3.1.0/src/rezplugins/package_repository/rezconfig → rez-3.2.0/src/rezplugins/package_repository/rezconfig.py +15 -10
  43. rez-3.1.0/src/rezplugins/release_hook/rezconfig → rez-3.2.0/src/rezplugins/release_hook/rezconfig.py +48 -41
  44. rez-3.2.0/src/rezplugins/release_vcs/rezconfig.py +47 -0
  45. rez-3.2.0/src/rezplugins/shell/_utils/__init__.py +2 -0
  46. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/_utils/powershell_base.py +3 -24
  47. rez-3.2.0/src/rezplugins/shell/_utils/windows.py +70 -0
  48. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/gitbash.py +1 -1
  49. rez-3.2.0/src/rezplugins/shell/rezconfig.py +45 -0
  50. rez-3.1.0/src/rez/vendor/yaml/__init__.py +0 -11
  51. rez-3.1.0/src/rez/vendor/yaml/lib/__init__.py +0 -406
  52. rez-3.1.0/src/rez/vendor/yaml/lib/composer.py +0 -139
  53. rez-3.1.0/src/rez/vendor/yaml/lib/constructor.py +0 -709
  54. rez-3.1.0/src/rez/vendor/yaml/lib/cyaml.py +0 -101
  55. rez-3.1.0/src/rez/vendor/yaml/lib/dumper.py +0 -62
  56. rez-3.1.0/src/rez/vendor/yaml/lib/emitter.py +0 -1144
  57. rez-3.1.0/src/rez/vendor/yaml/lib/error.py +0 -75
  58. rez-3.1.0/src/rez/vendor/yaml/lib/loader.py +0 -63
  59. rez-3.1.0/src/rez/vendor/yaml/lib/parser.py +0 -589
  60. rez-3.1.0/src/rez/vendor/yaml/lib/reader.py +0 -188
  61. rez-3.1.0/src/rez/vendor/yaml/lib/representer.py +0 -488
  62. rez-3.1.0/src/rez/vendor/yaml/lib/resolver.py +0 -227
  63. rez-3.1.0/src/rez/vendor/yaml/lib/scanner.py +0 -1444
  64. rez-3.1.0/src/rez/vendor/yaml/lib/serializer.py +0 -111
  65. rez-3.1.0/src/rez/vendor/yaml/lib3/events.py +0 -86
  66. rez-3.1.0/src/rez/vendor/yaml/lib3/nodes.py +0 -49
  67. rez-3.1.0/src/rez/vendor/yaml/lib3/tokens.py +0 -104
  68. rez-3.1.0/src/rezplugins/build_process/rezconfig +0 -0
  69. rez-3.1.0/src/rezplugins/build_system/rezconfig +0 -21
  70. rez-3.1.0/src/rezplugins/release_vcs/rezconfig +0 -3
  71. rez-3.1.0/src/rezplugins/shell/_utils/windows.py +0 -110
  72. rez-3.1.0/src/rezplugins/shell/rezconfig +0 -40
  73. {rez-3.1.0 → rez-3.2.0}/LICENSE +0 -0
  74. {rez-3.1.0 → rez-3.2.0}/README.md +0 -0
  75. {rez-3.1.0 → rez-3.2.0}/pyproject.toml +0 -0
  76. {rez-3.1.0 → rez-3.2.0}/setup.cfg +0 -0
  77. {rez-3.1.0 → rez-3.2.0}/src/rez/__init__.py +0 -0
  78. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/PyQt.py +0 -0
  79. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/PySide.py +0 -0
  80. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/__init__.py +0 -0
  81. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/_pymodule.py +0 -0
  82. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/_utils.py +0 -0
  83. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/arch.py +0 -0
  84. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/cmake.py +0 -0
  85. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/gcc.py +0 -0
  86. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/hello_world.py +0 -0
  87. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/os.py +0 -0
  88. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/pip.py +0 -0
  89. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/platform.py +0 -0
  90. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/python.py +0 -0
  91. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/rezgui.py +0 -0
  92. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/setuptools.py +0 -0
  93. {rez-3.1.0 → rez-3.2.0}/src/rez/bind/sip.py +0 -0
  94. {rez-3.1.0 → rez-3.2.0}/src/rez/build_process.py +0 -0
  95. {rez-3.1.0 → rez-3.2.0}/src/rez/build_system.py +0 -0
  96. {rez-3.1.0 → rez-3.2.0}/src/rez/bundle_context.py +0 -0
  97. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/README.md +0 -0
  98. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/__init__.py +0 -0
  99. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/_complete_util.py +0 -0
  100. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/_entry_points.py +0 -0
  101. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/_main.py +0 -0
  102. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/_util.py +0 -0
  103. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/benchmark.py +0 -0
  104. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/bind.py +0 -0
  105. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/bundle.py +0 -0
  106. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/complete.py +0 -0
  107. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/config.py +0 -0
  108. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/context.py +0 -0
  109. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/cp.py +0 -0
  110. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/depends.py +0 -0
  111. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/diff.py +0 -0
  112. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/forward.py +0 -0
  113. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/gui.py +0 -0
  114. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/help.py +0 -0
  115. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/interpret.py +0 -0
  116. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/memcache.py +0 -0
  117. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/mv.py +0 -0
  118. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/pip.py +0 -0
  119. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/pkg-ignore.py +0 -0
  120. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/plugins.py +0 -0
  121. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/python.py +0 -0
  122. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/release.py +0 -0
  123. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/rm.py +0 -0
  124. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/search.py +0 -0
  125. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/selftest.py +0 -0
  126. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/status.py +0 -0
  127. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/suite.py +0 -0
  128. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/test.py +0 -0
  129. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/view.py +0 -0
  130. {rez-3.1.0 → rez-3.2.0}/src/rez/cli/yaml2py.py +0 -0
  131. {rez-3.1.0 → rez-3.2.0}/src/rez/command.py +0 -0
  132. {rez-3.1.0 → rez-3.2.0}/src/rez/completion/complete.csh +0 -0
  133. {rez-3.1.0 → rez-3.2.0}/src/rez/completion/complete.sh +0 -0
  134. {rez-3.1.0 → rez-3.2.0}/src/rez/completion/complete.zsh +0 -0
  135. {rez-3.1.0 → rez-3.2.0}/src/rez/data/benchmarking/packages.tar.gz +0 -0
  136. {rez-3.1.0 → rez-3.2.0}/src/rez/data/benchmarking/requests.json +0 -0
  137. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/bind/__init__.py +0 -0
  138. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/bind/os.py +0 -0
  139. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/anti/1.0.0/build.py +0 -0
  140. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/anti/1.0.0/package.py +0 -0
  141. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/bah/2.1/bah/__init__.py +0 -0
  142. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/bah/2.1/build.py +0 -0
  143. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/bah/2.1/package.py +0 -0
  144. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/build_util/1/build.py +0 -0
  145. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/build_util/1/build_util/__init__.py +0 -0
  146. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/build_util/1/package.py +0 -0
  147. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/floob/build.py +0 -0
  148. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/floob/floob/__init__.py +0 -0
  149. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/floob/package.py +0 -0
  150. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/foo/1.0.0/build.py +0 -0
  151. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/foo/1.0.0/foo/__init__.py +0 -0
  152. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/foo/1.0.0/package.py +0 -0
  153. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/foo/1.1.0/build.py +0 -0
  154. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/foo/1.1.0/foo/__init__.py +0 -0
  155. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/foo/1.1.0/package.py +0 -0
  156. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/hello/1.0/Makefile +0 -0
  157. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/hello/1.0/lib/main.cpp +0 -0
  158. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/hello/1.0/package.py +0 -0
  159. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/loco/3/build.py +0 -0
  160. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/loco/3/package.py +0 -0
  161. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/sup_world/3.8/CMakeLists.txt +0 -0
  162. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/sup_world/3.8/lib/CMakeLists.txt +0 -0
  163. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/sup_world/3.8/lib/spanish_greet.cpp +0 -0
  164. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/sup_world/3.8/lib/spanish_greet.h +0 -0
  165. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/sup_world/3.8/package.py +0 -0
  166. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/sup_world/3.8/util/CMakeLists.txt +0 -0
  167. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/sup_world/3.8/util/main.cpp +0 -0
  168. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/CMakeLists.txt +0 -0
  169. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/docs/a spaced document +0 -0
  170. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/docs/an_unspaced_document +0 -0
  171. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/package.py +0 -0
  172. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/src/lolTranslator.cpp +0 -0
  173. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/src/lolTranslator.h +0 -0
  174. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/src/spanishTranslator.cpp +0 -0
  175. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/src/spanishTranslator.h +0 -0
  176. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/src/translator.cpp +0 -0
  177. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/translate_lib/2.2.0/src/translator.h +0 -0
  178. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/whack/build.py +0 -0
  179. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/builds/packages/whack/package.py +0 -0
  180. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/commands/packages/rextest/1.1/package.yaml +0 -0
  181. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/commands/packages/rextest/1.2/package.yaml +0 -0
  182. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/commands/packages/rextest/1.3/package.py +0 -0
  183. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/commands/packages/rextest2/2/package.py +0 -0
  184. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/config/package.py +0 -0
  185. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/config/test1.yaml +0 -0
  186. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/config/test2.py +0 -0
  187. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/bar/__init__.py +0 -0
  188. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/bar/rezplugins/__init__.py +0 -0
  189. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/bar/rezplugins/package_repository/__init__.py +0 -0
  190. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/bar/rezplugins/package_repository/memory.py +0 -0
  191. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/foo/__init__.py +0 -0
  192. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/foo/rezplugins/__init__.py +0 -0
  193. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/foo/rezplugins/package_repository/__init__.py +0 -0
  194. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/foo/rezplugins/package_repository/cloud.py +0 -0
  195. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/non-mod/rezplugins/__init__.py +0 -0
  196. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/non-mod/rezplugins/package_repository/__init__.py +0 -0
  197. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/extensions/non-mod/rezplugins/package_repository/memory.py +0 -0
  198. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/developer/package.yaml +0 -0
  199. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/developer_changed/package.yaml +0 -0
  200. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/developer_dynamic_global_preprocess/package.py +0 -0
  201. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/developer_dynamic_local_preprocess/package.py +0 -0
  202. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/developer_dynamic_local_preprocess_additive/package.py +0 -0
  203. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/developer_novar/package.yaml +0 -0
  204. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/developer_novar_changed/package.yaml +0 -0
  205. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/empty/README.md +0 -0
  206. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/late_binding/1.0/package.py +0 -0
  207. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/multi.py +0 -0
  208. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/single_unversioned.py +0 -0
  209. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/single_versioned.py +0 -0
  210. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/1.0.5/package.py +0 -0
  211. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/1.0.6/package.py +0 -0
  212. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/1.1.0/package.py +0 -0
  213. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/1.1.1/package.py +0 -0
  214. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/1.2.0/package.py +0 -0
  215. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/1.2.0/stuff.txt +0 -0
  216. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/2.0.0/package.py +0 -0
  217. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/2.1.0/package.py +0 -0
  218. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/timestamped/2.1.5/package.py +0 -0
  219. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/unversioned_py/package.py +0 -0
  220. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/variants_py/2.0/package.py +0 -0
  221. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/versioned/2.0/package.py +0 -0
  222. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/py_packages/versioned/3.0/package.py +0 -0
  223. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/yaml_packages/multi.yaml +0 -0
  224. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/yaml_packages/single_unversioned.yaml +0 -0
  225. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/yaml_packages/single_versioned.yaml +0 -0
  226. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/yaml_packages/unversioned/package.yaml +0 -0
  227. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/yaml_packages/versioned/1.0/package.yaml +0 -0
  228. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/packages/yaml_packages/versioned/2.0/package.yaml +0 -0
  229. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/pip/installed_distributions/six-1.12.0.dist-info/INSTALLER +0 -0
  230. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/pip/installed_distributions/six-1.12.0.dist-info/LICENSE +0 -0
  231. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/pip/installed_distributions/six-1.12.0.dist-info/METADATA +0 -0
  232. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/pip/installed_distributions/six-1.12.0.dist-info/RECORD +0 -0
  233. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/pip/installed_distributions/six-1.12.0.dist-info/WHEEL +0 -0
  234. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/pip/installed_distributions/six-1.12.0.dist-info/top_level.txt +0 -0
  235. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/python/early_bind/__init__.py +0 -0
  236. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/python/early_bind/early_utils.py +0 -0
  237. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/python/late_bind/late_utils.py +0 -0
  238. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/python/preprocess/__init__.py +0 -0
  239. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/python/preprocess/global_preprocess.py +0 -0
  240. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/build.py +0 -0
  241. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/data/data.txt +0 -0
  242. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/package.yaml +0 -0
  243. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/variants/build.py +0 -0
  244. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/variants/package.yaml +0 -0
  245. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/variants/spangle/1.0/package.yaml +0 -0
  246. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/variants/spangle/1.1/package.yaml +0 -0
  247. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/release/variants/spangle/2.0/package.yaml +0 -0
  248. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/README +0 -0
  249. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/bahish/1/package.py +0 -0
  250. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/bahish/2/package.py +0 -0
  251. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/missing_variant_requires/1/package.py +0 -0
  252. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/nada/package.py +0 -0
  253. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/nopy/2.1/package.py +0 -0
  254. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pybah/4/package.py +0 -0
  255. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pybah/5/package.py +0 -0
  256. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pydad/1/package.py +0 -0
  257. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pydad/2/package.py +0 -0
  258. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pydad/3/package.py +0 -0
  259. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pyfoo/3.0.0/package.py +0 -0
  260. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pyfoo/3.1.0/package.py +0 -0
  261. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pymum/1/package.py +0 -0
  262. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pymum/2/package.py +0 -0
  263. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pymum/3/package.py +0 -0
  264. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pyodd/1/package.py +0 -0
  265. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pyodd/2/package.py +0 -0
  266. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pyson/1/package.py +0 -0
  267. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pyson/2/package.py +0 -0
  268. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pysplit/5/package.py +0 -0
  269. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pysplit/6/package.py +0 -0
  270. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pysplit/7/package.py +0 -0
  271. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/python/2.5.2/package.py +0 -0
  272. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/python/2.6.0/package.py +0 -0
  273. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/python/2.6.8/package.py +0 -0
  274. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/python/2.7.0/package.py +0 -0
  275. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/pyvariants/2/package.py +0 -0
  276. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_end/1.0/package.py +0 -0
  277. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_end/2.0/package.py +0 -0
  278. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_end/3.0/package.py +0 -0
  279. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_end/4.0/package.py +0 -0
  280. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_mid1/1.0/package.py +0 -0
  281. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_mid1/2.0/package.py +0 -0
  282. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_mid2/1.0/package.py +0 -0
  283. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_mid2/2.0/package.py +0 -0
  284. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_start/1.0/package.py +0 -0
  285. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/solver/packages/test_variant_split_start/2.0/package.py +0 -0
  286. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/suites/packages/bah/package.yaml +0 -0
  287. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/suites/packages/eek/package.yaml +0 -0
  288. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/suites/packages/foo/package.yaml +0 -0
  289. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/suites/packages/pooh/bin/hunny +0 -0
  290. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/suites/packages/pooh/bin/hunny.bat +0 -0
  291. {rez-3.1.0 → rez-3.2.0}/src/rez/data/tests/suites/packages/pooh/package.yaml +0 -0
  292. {rez-3.1.0 → rez-3.2.0}/src/rez/developer_package.py +0 -0
  293. {rez-3.1.0 → rez-3.2.0}/src/rez/exceptions.py +0 -0
  294. {rez-3.1.0 → rez-3.2.0}/src/rez/package_bind.py +0 -0
  295. {rez-3.1.0 → rez-3.2.0}/src/rez/package_copy.py +0 -0
  296. {rez-3.1.0 → rez-3.2.0}/src/rez/package_filter.py +0 -0
  297. {rez-3.1.0 → rez-3.2.0}/src/rez/package_help.py +0 -0
  298. {rez-3.1.0 → rez-3.2.0}/src/rez/package_maker.py +0 -0
  299. {rez-3.1.0 → rez-3.2.0}/src/rez/package_move.py +0 -0
  300. {rez-3.1.0 → rez-3.2.0}/src/rez/package_py_utils.py +0 -0
  301. {rez-3.1.0 → rez-3.2.0}/src/rez/package_remove.py +0 -0
  302. {rez-3.1.0 → rez-3.2.0}/src/rez/package_repository.py +0 -0
  303. {rez-3.1.0 → rez-3.2.0}/src/rez/package_resources.py +0 -0
  304. {rez-3.1.0 → rez-3.2.0}/src/rez/package_search.py +0 -0
  305. {rez-3.1.0 → rez-3.2.0}/src/rez/package_serialise.py +0 -0
  306. {rez-3.1.0 → rez-3.2.0}/src/rez/packages.py +0 -0
  307. {rez-3.1.0 → rez-3.2.0}/src/rez/pip.py +0 -0
  308. {rez-3.1.0 → rez-3.2.0}/src/rez/plugin_managers.py +0 -0
  309. {rez-3.1.0 → rez-3.2.0}/src/rez/release_hook.py +0 -0
  310. {rez-3.1.0 → rez-3.2.0}/src/rez/release_vcs.py +0 -0
  311. {rez-3.1.0 → rez-3.2.0}/src/rez/rex.py +0 -0
  312. {rez-3.1.0 → rez-3.2.0}/src/rez/rex_bindings.py +0 -0
  313. {rez-3.1.0 → rez-3.2.0}/src/rez/shells.py +0 -0
  314. {rez-3.1.0 → rez-3.2.0}/src/rez/solver.py +0 -0
  315. {rez-3.1.0 → rez-3.2.0}/src/rez/status.py +0 -0
  316. {rez-3.1.0 → rez-3.2.0}/src/rez/suite.py +0 -0
  317. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/README +0 -0
  318. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/__init__.py +0 -0
  319. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_bind.py +0 -0
  320. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_cli.py +0 -0
  321. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_commands.py +0 -0
  322. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_copy_package.py +0 -0
  323. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_formatter.py +0 -0
  324. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_imports.py +0 -0
  325. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_package_filter.py +0 -0
  326. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_packages_order.py +0 -0
  327. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_pip_utils.py +0 -0
  328. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_plugin_manager.py +0 -0
  329. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_release.py +0 -0
  330. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_resources_.py +0 -0
  331. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_rex.py +0 -0
  332. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_schema.py +0 -0
  333. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_suites.py +0 -0
  334. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_util.py +0 -0
  335. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_utils.py +0 -0
  336. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_utils_filesystem.py +0 -0
  337. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_utils_resolve_graph.py +0 -0
  338. {rez-3.1.0 → rez-3.2.0}/src/rez/tests/test_version.py +0 -0
  339. {rez-3.1.0 → rez-3.2.0}/src/rez/util.py +0 -0
  340. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/__init__.py +0 -0
  341. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/amqp.py +0 -0
  342. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/backcompat.py +0 -0
  343. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/base26.py +0 -0
  344. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/colorize.py +0 -0
  345. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/data_utils.py +0 -0
  346. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/diff_packages.py +0 -0
  347. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/execution.py +0 -0
  348. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/filesystem.py +0 -0
  349. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/graph_utils.py +0 -0
  350. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/installer.py +0 -0
  351. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/lint_helper.py +0 -0
  352. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/logging_.py +0 -0
  353. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/memcached.py +0 -0
  354. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/patching.py +0 -0
  355. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/pip.py +0 -0
  356. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/platform_.py +0 -0
  357. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/platform_mapped.py +0 -0
  358. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/py_dist.py +0 -0
  359. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/resolve_graph.py +0 -0
  360. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/resources.py +0 -0
  361. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/schema.py +0 -0
  362. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/scope.py +0 -0
  363. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/sourcecode.py +0 -0
  364. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/which.py +0 -0
  365. {rez-3.1.0 → rez-3.2.0}/src/rez/utils/yaml.py +0 -0
  366. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/__init__.py +0 -0
  367. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/argcomplete/__init__.py +0 -0
  368. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/argcomplete/completers.py +0 -0
  369. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/argcomplete/my_argparse.py +0 -0
  370. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/argcomplete/my_shlex.py +0 -0
  371. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/atomicwrites/__init__.py +0 -0
  372. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/__init__.py +0 -0
  373. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/__init__.pyi +0 -0
  374. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/_compat.py +0 -0
  375. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/_config.py +0 -0
  376. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/_funcs.py +0 -0
  377. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/_make.py +0 -0
  378. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/converters.py +0 -0
  379. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/converters.pyi +0 -0
  380. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/exceptions.py +0 -0
  381. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/exceptions.pyi +0 -0
  382. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/filters.py +0 -0
  383. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/filters.pyi +0 -0
  384. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/py.typed +0 -0
  385. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/validators.py +0 -0
  386. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/attr/validators.pyi +0 -0
  387. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/__init__.py +0 -0
  388. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/ansi.py +0 -0
  389. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/ansitowin32.py +0 -0
  390. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/initialise.py +0 -0
  391. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/tests/__init__.py +0 -0
  392. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/tests/ansi_test.py +0 -0
  393. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/tests/ansitowin32_test.py +0 -0
  394. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/tests/initialise_test.py +0 -0
  395. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/tests/isatty_test.py +0 -0
  396. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/tests/utils.py +0 -0
  397. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/tests/winterm_test.py +0 -0
  398. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/win32.py +0 -0
  399. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/colorama/winterm.py +0 -0
  400. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/__init__.py +0 -0
  401. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/_backport/__init__.py +0 -0
  402. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/_backport/misc.py +0 -0
  403. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/_backport/shutil.py +0 -0
  404. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/_backport/sysconfig.py +0 -0
  405. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/_backport/tarfile.py +0 -0
  406. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/compat.py +0 -0
  407. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/database.py +0 -0
  408. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/index.py +0 -0
  409. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/locators.py +0 -0
  410. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/manifest.py +0 -0
  411. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/markers.py +0 -0
  412. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/metadata.py +0 -0
  413. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/resources.py +0 -0
  414. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/scripts.py +0 -0
  415. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/t32.exe +0 -0
  416. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/t64.exe +0 -0
  417. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/util.py +0 -0
  418. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/version.py +0 -0
  419. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/w32.exe +0 -0
  420. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/w64.exe +0 -0
  421. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distlib/wheel.py +0 -0
  422. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distro/__init__.py +0 -0
  423. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/distro/distro.py +0 -0
  424. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/enum/__init__.py +0 -0
  425. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/enum/enum.py +0 -0
  426. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/lockfile/__init__.py +0 -0
  427. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/lockfile/linklockfile.py +0 -0
  428. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/lockfile/mkdirlockfile.py +0 -0
  429. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/lockfile/pidlockfile.py +0 -0
  430. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/lockfile/sqlitelockfile.py +0 -0
  431. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/lockfile/symlinklockfile.py +0 -0
  432. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/memcache/__init__.py +0 -0
  433. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/memcache/memcache.py +0 -0
  434. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/__about__.py +0 -0
  435. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/__init__.py +0 -0
  436. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/_compat.py +0 -0
  437. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/_structures.py +0 -0
  438. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/markers.py +0 -0
  439. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/requirements.py +0 -0
  440. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/specifiers.py +0 -0
  441. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/utils.py +0 -0
  442. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/packaging/version.py +0 -0
  443. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/__init__.py +0 -0
  444. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/__init__.py +0 -0
  445. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/asyncio_connection.py +0 -0
  446. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/base_connection.py +0 -0
  447. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/blocking_connection.py +0 -0
  448. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/select_connection.py +0 -0
  449. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/utils/__init__.py +0 -0
  450. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/utils/connection_workflow.py +0 -0
  451. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/utils/io_services_utils.py +0 -0
  452. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/utils/nbio_interface.py +0 -0
  453. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/adapters/utils/selector_ioloop_adapter.py +0 -0
  454. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/amqp_object.py +0 -0
  455. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/callback.py +0 -0
  456. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/channel.py +0 -0
  457. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/compat.py +0 -0
  458. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/connection.py +0 -0
  459. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/credentials.py +0 -0
  460. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/data.py +0 -0
  461. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/delivery_mode.py +0 -0
  462. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/diagnostic_utils.py +0 -0
  463. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/exceptions.py +0 -0
  464. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/exchange_type.py +0 -0
  465. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/frame.py +0 -0
  466. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/heartbeat.py +0 -0
  467. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/spec.py +0 -0
  468. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/tcp_socket_opts.py +0 -0
  469. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pika/validators.py +0 -0
  470. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/progress/__init__.py +0 -0
  471. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/progress/bar.py +0 -0
  472. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/progress/counter.py +0 -0
  473. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/progress/helpers.py +0 -0
  474. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/progress/spinner.py +0 -0
  475. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pydot/README +0 -0
  476. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pydot/__init__.py +0 -0
  477. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pydot/dot_parser.py +0 -0
  478. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pydot/pydot.py +0 -0
  479. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/__init__.py +0 -0
  480. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/__init__.py +0 -0
  481. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/accessibility.py +0 -0
  482. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/critical.py +0 -0
  483. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/cycles.py +0 -0
  484. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/filters/__init__.py +0 -0
  485. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/filters/find.py +0 -0
  486. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/filters/null.py +0 -0
  487. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/filters/radius.py +0 -0
  488. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/generators.py +0 -0
  489. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/heuristics/__init__.py +0 -0
  490. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/heuristics/chow.py +0 -0
  491. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/heuristics/euclidean.py +0 -0
  492. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/minmax.py +0 -0
  493. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/pagerank.py +0 -0
  494. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/searching.py +0 -0
  495. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/sorting.py +0 -0
  496. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/traversal.py +0 -0
  497. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/algorithms/utils.py +0 -0
  498. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/classes/__init__.py +0 -0
  499. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/classes/digraph.py +0 -0
  500. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/classes/exceptions.py +0 -0
  501. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/classes/graph.py +0 -0
  502. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/classes/hypergraph.py +0 -0
  503. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/mixins/__init__.py +0 -0
  504. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/mixins/basegraph.py +0 -0
  505. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/mixins/common.py +0 -0
  506. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/mixins/labeling.py +0 -0
  507. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/readwrite/__init__.py +0 -0
  508. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/readwrite/dot.py +0 -0
  509. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pygraph/readwrite/markup.py +0 -0
  510. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pyparsing/__init__.py +0 -0
  511. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/pyparsing/pyparsing.py +0 -0
  512. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/schema/__init__.py +0 -0
  513. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/schema/schema.py +0 -0
  514. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/schema/test_schema.py +0 -0
  515. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/six/README +0 -0
  516. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/six/__init__.py +0 -0
  517. {rez-3.1.0 → rez-3.2.0}/src/rez/vendor/six/six.py +0 -0
  518. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/__init__.py +0 -0
  519. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/composer.py +0 -0
  520. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/constructor.py +0 -0
  521. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/cyaml.py +0 -0
  522. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/dumper.py +0 -0
  523. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/emitter.py +0 -0
  524. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/error.py +0 -0
  525. {rez-3.1.0/src/rez/vendor/yaml/lib → rez-3.2.0/src/rez/vendor/yaml}/events.py +0 -0
  526. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/loader.py +0 -0
  527. {rez-3.1.0/src/rez/vendor/yaml/lib → rez-3.2.0/src/rez/vendor/yaml}/nodes.py +0 -0
  528. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/parser.py +0 -0
  529. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/reader.py +0 -0
  530. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/representer.py +0 -0
  531. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/resolver.py +0 -0
  532. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/scanner.py +0 -0
  533. {rez-3.1.0/src/rez/vendor/yaml/lib3 → rez-3.2.0/src/rez/vendor/yaml}/serializer.py +0 -0
  534. {rez-3.1.0/src/rez/vendor/yaml/lib → rez-3.2.0/src/rez/vendor/yaml}/tokens.py +0 -0
  535. {rez-3.1.0 → rez-3.2.0}/src/rez/version/__init__.py +0 -0
  536. {rez-3.1.0 → rez-3.2.0}/src/rez/version/_requirement.py +0 -0
  537. {rez-3.1.0 → rez-3.2.0}/src/rez/version/_util.py +0 -0
  538. {rez-3.1.0 → rez-3.2.0}/src/rez/version/_version.py +0 -0
  539. {rez-3.1.0 → rez-3.2.0}/src/rez/wrapper.py +0 -0
  540. {rez-3.1.0 → rez-3.2.0}/src/rez.egg-info/dependency_links.txt +0 -0
  541. {rez-3.1.0 → rez-3.2.0}/src/rez.egg-info/entry_points.txt +0 -0
  542. {rez-3.1.0 → rez-3.2.0}/src/rez.egg-info/not-zip-safe +0 -0
  543. {rez-3.1.0 → rez-3.2.0}/src/rez.egg-info/top_level.txt +0 -0
  544. {rez-3.1.0 → rez-3.2.0}/src/rezgui/__init__.py +0 -0
  545. {rez-3.1.0 → rez-3.2.0}/src/rezgui/app.py +0 -0
  546. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/AboutDialog.py +0 -0
  547. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/BrowsePackageDialog.py +0 -0
  548. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/ImageViewerDialog.py +0 -0
  549. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/ProcessDialog.py +0 -0
  550. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/ResolveDialog.py +0 -0
  551. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/VariantVersionsDialog.py +0 -0
  552. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/WriteGraphDialog.py +0 -0
  553. {rez-3.1.0 → rez-3.2.0}/src/rezgui/dialogs/__init__.py +0 -0
  554. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/advanced_resolve.png +0 -0
  555. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/changelog.png +0 -0
  556. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/clock.png +0 -0
  557. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/clock_warning.png +0 -0
  558. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/cog.png +0 -0
  559. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/context.png +0 -0
  560. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/context_settings.png +0 -0
  561. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/depends.png +0 -0
  562. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/diff.png +0 -0
  563. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/diff_to_disk.png +0 -0
  564. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/diff_to_other.png +0 -0
  565. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/equal_to.png +0 -0
  566. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/equalish.png +0 -0
  567. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/error.png +0 -0
  568. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/excluded.png +0 -0
  569. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/find.png +0 -0
  570. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/github_32.png +0 -0
  571. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/graph.png +0 -0
  572. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/greater_than.png +0 -0
  573. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/greater_than_1.png +0 -0
  574. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/greater_than_2.png +0 -0
  575. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/greater_than_3.png +0 -0
  576. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/green_tick.png +0 -0
  577. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/green_white_tick.png +0 -0
  578. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/help.png +0 -0
  579. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/info.png +0 -0
  580. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/less_than.png +0 -0
  581. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/less_than_1.png +0 -0
  582. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/less_than_2.png +0 -0
  583. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/less_than_3.png +0 -0
  584. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/local.png +0 -0
  585. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock.png +0 -0
  586. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock_2.png +0 -0
  587. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock_2_faint.png +0 -0
  588. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock_3.png +0 -0
  589. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock_3_faint.png +0 -0
  590. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock_4.png +0 -0
  591. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock_4_faint.png +0 -0
  592. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/lock_faint.png +0 -0
  593. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/missing.png +0 -0
  594. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/new.png +0 -0
  595. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/no_lock.png +0 -0
  596. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/no_lock_faint.png +0 -0
  597. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/old_man.png +0 -0
  598. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/package.png +0 -0
  599. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/pink.png +0 -0
  600. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/resolve.png +0 -0
  601. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/revert.png +0 -0
  602. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/revert_to_diff.png +0 -0
  603. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/revert_to_disk.png +0 -0
  604. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/spanner.png +0 -0
  605. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/terminal.png +0 -0
  606. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/time_lock.png +0 -0
  607. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/tools.png +0 -0
  608. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/variant.png +0 -0
  609. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/versions.png +0 -0
  610. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/warning.png +0 -0
  611. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/yellow_tick.png +0 -0
  612. {rez-3.1.0 → rez-3.2.0}/src/rezgui/icons/yellow_white_tick.png +0 -0
  613. {rez-3.1.0 → rez-3.2.0}/src/rezgui/mixins/ContextViewMixin.py +0 -0
  614. {rez-3.1.0 → rez-3.2.0}/src/rezgui/mixins/StoreSizeMixin.py +0 -0
  615. {rez-3.1.0 → rez-3.2.0}/src/rezgui/mixins/__init__.py +0 -0
  616. {rez-3.1.0 → rez-3.2.0}/src/rezgui/models/ContextModel.py +0 -0
  617. {rez-3.1.0 → rez-3.2.0}/src/rezgui/models/__init__.py +0 -0
  618. {rez-3.1.0 → rez-3.2.0}/src/rezgui/objects/App.py +0 -0
  619. {rez-3.1.0 → rez-3.2.0}/src/rezgui/objects/Config.py +0 -0
  620. {rez-3.1.0 → rez-3.2.0}/src/rezgui/objects/LoadPackagesThread.py +0 -0
  621. {rez-3.1.0 → rez-3.2.0}/src/rezgui/objects/ProcessTrackerThread.py +0 -0
  622. {rez-3.1.0 → rez-3.2.0}/src/rezgui/objects/ResolveThread.py +0 -0
  623. {rez-3.1.0 → rez-3.2.0}/src/rezgui/objects/__init__.py +0 -0
  624. {rez-3.1.0 → rez-3.2.0}/src/rezgui/rezguiconfig +0 -0
  625. {rez-3.1.0 → rez-3.2.0}/src/rezgui/util.py +0 -0
  626. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/BrowsePackagePane.py +0 -0
  627. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/BrowsePackageWidget.py +0 -0
  628. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ChangelogEdit.py +0 -0
  629. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ConfiguredSplitter.py +0 -0
  630. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextDetailsWidget.py +0 -0
  631. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextEnvironTable.py +0 -0
  632. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextEnvironWidget.py +0 -0
  633. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextManagerWidget.py +0 -0
  634. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextResolveTimeLabel.py +0 -0
  635. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextSettingsWidget.py +0 -0
  636. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextTableWidget.py +0 -0
  637. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ContextToolsWidget.py +0 -0
  638. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/EffectivePackageCellWidget.py +0 -0
  639. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/FindPopup.py +0 -0
  640. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/IconButton.py +0 -0
  641. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ImageViewerWidget.py +0 -0
  642. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/PackageLineEdit.py +0 -0
  643. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/PackageLoadingWidget.py +0 -0
  644. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/PackageSelectWidget.py +0 -0
  645. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/PackageTabWidget.py +0 -0
  646. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/PackageVersionsTable.py +0 -0
  647. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/SearchableTextEdit.py +0 -0
  648. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/StreamableTextEdit.py +0 -0
  649. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/TimeSelecterPopup.py +0 -0
  650. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/TimestampWidget.py +0 -0
  651. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ToolWidget.py +0 -0
  652. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantCellWidget.py +0 -0
  653. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantDetailsWidget.py +0 -0
  654. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantHelpWidget.py +0 -0
  655. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantSummaryWidget.py +0 -0
  656. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantToolsList.py +0 -0
  657. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantVersionsTable.py +0 -0
  658. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantVersionsWidget.py +0 -0
  659. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/VariantsList.py +0 -0
  660. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/ViewGraphButton.py +0 -0
  661. {rez-3.1.0 → rez-3.2.0}/src/rezgui/widgets/__init__.py +0 -0
  662. {rez-3.1.0 → rez-3.2.0}/src/rezgui/windows/BrowsePackageSubWindow.py +0 -0
  663. {rez-3.1.0 → rez-3.2.0}/src/rezgui/windows/ContextSubWindow.py +0 -0
  664. {rez-3.1.0 → rez-3.2.0}/src/rezgui/windows/MainWindow.py +0 -0
  665. {rez-3.1.0 → rez-3.2.0}/src/rezgui/windows/__init__.py +0 -0
  666. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/__init__.py +0 -0
  667. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_process/__init__.py +0 -0
  668. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_process/local.py +0 -0
  669. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_process/remote.py +0 -0
  670. /rez-3.1.0/src/rezplugins/shell/_utils/__init__.py → /rez-3.2.0/src/rezplugins/build_process/rezconfig.py +0 -0
  671. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/__init__.py +0 -0
  672. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake.py +0 -0
  673. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/Colorize.cmake +0 -0
  674. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/FindStaticLibs.cmake +0 -0
  675. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/InstallDirs.cmake +0 -0
  676. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/InstallFiles.cmake +0 -0
  677. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/InstallPython.cmake +0 -0
  678. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezBuild.cmake +0 -0
  679. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezFindPackages.cmake +0 -0
  680. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezInstallCMake.cmake +0 -0
  681. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezInstallContext.cmake +0 -0
  682. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezInstallDoxygen.cmake +0 -0
  683. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezInstallPython.cmake +0 -0
  684. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezPipInstall.cmake +0 -0
  685. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezProject.cmake +0 -0
  686. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/RezRepository.cmake +0 -0
  687. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/cmake_files/Utils.cmake +0 -0
  688. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/custom.py +0 -0
  689. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/make.py +0 -0
  690. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/rezconfig.py +0 -0
  691. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/build_system/template_files/Doxyfile +0 -0
  692. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/command/__init__.py +0 -0
  693. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/package_repository/__init__.py +0 -0
  694. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/package_repository/memory.py +0 -0
  695. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_hook/__init__.py +0 -0
  696. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_hook/amqp.py +0 -0
  697. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_hook/command.py +0 -0
  698. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_hook/emailer.py +0 -0
  699. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_vcs/__init__.py +0 -0
  700. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_vcs/git.py +0 -0
  701. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_vcs/hg.py +0 -0
  702. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_vcs/stub.py +0 -0
  703. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/release_vcs/svn.py +0 -0
  704. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/__init__.py +0 -0
  705. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/bash.py +0 -0
  706. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/cmd.py +0 -0
  707. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/csh.py +0 -0
  708. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/powershell.py +0 -0
  709. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/pwsh.py +0 -0
  710. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/sh.py +0 -0
  711. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/tcsh.py +0 -0
  712. {rez-3.1.0 → rez-3.2.0}/src/rezplugins/shell/zsh.py +0 -0
  713. {rez-3.1.0 → rez-3.2.0}/tests/test.py +0 -0
@@ -1,8 +1,7 @@
1
1
  include src/rez/data/*
2
- include src/rez/rezconfig
3
2
  include src/rez/completion/*
4
3
  include src/rez/vendor/distlib/*.exe
5
4
  include src/rezgui/rezguiconfig
6
5
  include src/rezgui/icons/*
7
6
  recursive-include src/rez README*
8
- recursive-include src/rezplugins *.cmake Doxyfile rezconfig
7
+ recursive-include src/rezplugins *.cmake Doxyfile
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: rez
3
- Version: 3.1.0
3
+ Version: 3.2.0
4
4
  Summary: A cross-platform packaging system that can build and install multiple version of packages, and dynamically configure resolved environments at runtime.
5
5
  Home-page: https://github.com/AcademySoftwareFoundation/rez
6
6
  Author: Allan Johns
@@ -76,7 +76,6 @@ setup(
76
76
  find_files('*', 'data') +
77
77
  find_files('*.exe', 'vendor/distlib'),
78
78
  'rezplugins':
79
- find_files('rezconfig', root='rezplugins') +
80
79
  find_files('*.cmake', 'build_system', root='rezplugins') +
81
80
  find_files('*', 'build_system/template_files', root='rezplugins'),
82
81
  'rezgui':
@@ -34,7 +34,7 @@ def bind(path, version_range=None, opts=None, parser=None):
34
34
  with make_package("rez", path, make_root=make_root) as pkg:
35
35
  pkg.version = version
36
36
  pkg.commands = commands
37
- pkg.requires = ["python-2.7+<4"]
37
+ pkg.requires = ["python-3.7+<3.12"]
38
38
  pkg.variants = [system.variant]
39
39
 
40
40
  return pkg.installed_variants
@@ -30,11 +30,13 @@ def setup_parser_common(parser):
30
30
  """Parser setup common to both rez-build and rez-release."""
31
31
  from rez.build_process import get_build_process_types
32
32
  from rez.build_system import get_valid_build_systems
33
+ from rez.config import config
33
34
  from rez.exceptions import PackageMetadataError
34
35
 
35
36
  process_types = get_build_process_types()
36
37
  parser.add_argument(
37
- "--process", type=str, choices=process_types, default="local",
38
+ "--process", type=str, choices=process_types,
39
+ default=config.default_build_process,
38
40
  help="the build process to use (default: %(default)s).")
39
41
 
40
42
  # add build system choices valid for this package
@@ -119,6 +119,11 @@ def setup_parser(parser, completions=False):
119
119
  parser.add_argument(
120
120
  "--no-pkg-cache", action="store_true",
121
121
  help="Disable package caching")
122
+ parser.add_argument(
123
+ "--pkg-cache-mode", choices=["sync", "async"],
124
+ help="If provided, override the rezconfig's package_cache_async key. "
125
+ "If 'sync', the process will block until packages are cached. "
126
+ "If 'async', the process will not block while packages are cached.")
122
127
  parser.add_argument(
123
128
  "--pre-command", type=str, help=SUPPRESS)
124
129
  PKG_action = parser.add_argument(
@@ -201,6 +206,13 @@ def command(opts, parser, extra_arg_groups=None):
201
206
  rule = Rule.parse_rule(rule_str)
202
207
  package_filter.add_inclusion(rule)
203
208
 
209
+ if opts.pkg_cache_mode == "async":
210
+ package_cache_mode = True
211
+ elif opts.pkg_cache_mode == "sync":
212
+ package_cache_mode = False
213
+ else:
214
+ package_cache_mode = None
215
+
204
216
  # perform the resolve
205
217
  context = ResolvedContext(
206
218
  package_requests=request,
@@ -215,7 +227,8 @@ def command(opts, parser, extra_arg_groups=None):
215
227
  caching=(not opts.no_cache),
216
228
  suppress_passive=opts.no_passive,
217
229
  print_stats=opts.stats,
218
- package_caching=(not opts.no_pkg_cache)
230
+ package_caching=(not opts.no_pkg_cache),
231
+ package_cache_async=package_cache_mode,
219
232
  )
220
233
 
221
234
  success = (context.status == ResolverStatus.solved)
@@ -41,6 +41,14 @@ def setup_parser(parser, completions=False):
41
41
  group.add_argument(
42
42
  "--daemon", action="store_true", help=SUPPRESS
43
43
  )
44
+ parser.add_argument(
45
+ "--pkg-cache-mode",
46
+ choices=["sync", "async"],
47
+ default=None,
48
+ help="If provided, override the rezconfig's package_cache_async key. "
49
+ "If 'sync', the process will block until packages are cached. "
50
+ "If 'async', the process will not block while packages are cached."
51
+ )
44
52
  parser.add_argument(
45
53
  "-c", "--columns", nargs='+', choices=column_choices,
46
54
  default=["status", "package", "variant_uri", "cache_path"],
@@ -59,6 +67,7 @@ def setup_parser(parser, completions=False):
59
67
 
60
68
 
61
69
  def add_variant(pkgcache, uri, opts):
70
+ from rez.config import config
62
71
  from rez.packages import get_variant_from_uri
63
72
  from rez.utils.logging_ import print_info, print_warning
64
73
  from rez.package_cache import PackageCache
@@ -70,7 +79,17 @@ def add_variant(pkgcache, uri, opts):
70
79
  print("No such variant: %s" % uri, file=sys.stderr)
71
80
  sys.exit(1)
72
81
 
73
- destpath, status = pkgcache.add_variant(variant, force=opts.force)
82
+ if opts.pkg_cache_mode == "async":
83
+ sync = False
84
+ elif opts.pkg_cache_mode == "sync":
85
+ sync = True
86
+ else:
87
+ sync = not config.package_cache_async
88
+
89
+ destpath, status = pkgcache.add_variant(
90
+ variant, force=opts.force,
91
+ wait_for_copying=sync
92
+ )
74
93
 
75
94
  if status == PackageCache.VARIANT_FOUND:
76
95
  print_info("Already exists: %s", destpath)
@@ -397,6 +397,7 @@ config_schema = Schema({
397
397
  "release_packages_path": Str,
398
398
  "dot_image_format": Str,
399
399
  "build_directory": Str,
400
+ "default_build_process": Str,
400
401
  "documentation_url": Str,
401
402
  "suite_visibility": SuiteVisibility_,
402
403
  "rez_tools_visibility": RezToolsVisibility_,
@@ -453,6 +454,7 @@ config_schema = Schema({
453
454
  "package_cache_during_build": Bool,
454
455
  "package_cache_local": Bool,
455
456
  "package_cache_same_device": Bool,
457
+ "package_cache_async": Bool,
456
458
  "color_enabled": ForceOrBool,
457
459
  "resolve_caching": Bool,
458
460
  "cache_package_files": Bool,
@@ -0,0 +1,24 @@
1
+ from build_util import build_directory_recurse
2
+ import os.path
3
+
4
+
5
+ def build(source_path, build_path, install_path, targets):
6
+
7
+ if "install" not in (targets or []):
8
+ install_path = None
9
+
10
+ build_directory_recurse(src_dir="testing_obj",
11
+ dest_dir=os.path.join("python", "testing_obj"),
12
+ source_path=source_path,
13
+ build_path=build_path,
14
+ install_path=install_path)
15
+
16
+
17
+ if __name__ == '__main__':
18
+ import os, sys
19
+ build(
20
+ source_path=os.environ['REZ_BUILD_SOURCE_PATH'],
21
+ build_path=os.environ['REZ_BUILD_PATH'],
22
+ install_path=os.environ['REZ_BUILD_INSTALL_PATH'],
23
+ targets=sys.argv[1:]
24
+ )
@@ -0,0 +1,42 @@
1
+ name = 'testing obj'
2
+ version = '1.0.0'
3
+ authors = ["Dan Flashes"]
4
+
5
+ description = "testing the 'testing' attribute available during rez test"
6
+
7
+ @late()
8
+ def requires():
9
+ if in_context() and testing:
10
+ return ["floob"]
11
+ return ["hello"]
12
+
13
+ private_build_requires = ["build_util", "python"]
14
+
15
+ def commands():
16
+ env.PYTHONPATH.append('{root}/python')
17
+ if testing:
18
+ env.CAR_IDEA = "STURDY STEERING WHEEL"
19
+ else:
20
+ env.SKIP_LUNCH = "False"
21
+
22
+ build_command = 'python {root}/build.py {install}'
23
+
24
+ tests = {
25
+ "command_as_string_success": {
26
+ "command": "exit 0"
27
+ },
28
+ "command_as_string_fail": {
29
+ "command": "exit 1"
30
+ },
31
+ "check_car_ideas": {
32
+ "command": ["python", "-c", "import os; assert os.environ.get('CAR_IDEA') == 'STURDY STEERING WHEEL'"],
33
+ "requires": ["python"]
34
+ },
35
+ "move_meeting_to_noon": {
36
+ # We want this test to fail. SKIP_LUNCH should not be set.
37
+ # TODO: We should not test for failures here. Testing failures, str vs lsit commands, etc
38
+ # should we tested separately.
39
+ "command": ["python", "-c", "import os; assert os.environ.get('SKIP_LUNCH') is not None"],
40
+ "requires": ["python"]
41
+ }
42
+ }
@@ -0,0 +1,2 @@
1
+ def hello():
2
+ return "This shirt was $150 out the door and the pattern's not that complicated"
@@ -0,0 +1,4 @@
1
+ name = "test_weakly_reference_requires"
2
+ version = "2.0"
3
+
4
+ requires = ["~test_variant_split_mid1", "~test_variant_split_mid2"]
@@ -0,0 +1,6 @@
1
+ name = "test_weakly_reference_variant"
2
+ version = "2.0"
3
+
4
+ requires = ["~pyfoo"]
5
+
6
+ variants = [["test_variant_split_mid1", "~test_variant_split_mid2-1..3"]]
@@ -7,12 +7,12 @@ import warnings
7
7
 
8
8
  def warn(message, category, pre_formatted=False, stacklevel=1, filename=None, **kwargs):
9
9
  """
10
- Wrapper around warnings.warn that allows to passa a pre-formatter
10
+ Wrapper around warnings.warn that allows to pass a pre-formatter
11
11
  warning message. This allows to warn about things that aren't coming
12
12
  from python files, like environment variables, etc.
13
13
  """
14
14
  if not pre_formatted:
15
- message = warnings.warn(
15
+ warnings.warn(
16
16
  message, category=category, stacklevel=stacklevel + 1, **kwargs
17
17
  )
18
18
  return
@@ -22,6 +22,7 @@ from contextlib import contextmanager
22
22
  from rez.config import config
23
23
  from rez.exceptions import PackageCacheError
24
24
  from rez.vendor.lockfile import LockFile, NotLocked
25
+ from rez.vendor.progress.spinner import PixelSpinner
25
26
  from rez.utils.filesystem import safe_listdir, safe_makedirs, safe_remove, \
26
27
  forceful_rmtree
27
28
  from rez.utils.colorize import ColorizedStreamHandler
@@ -70,6 +71,18 @@ class PackageCache(object):
70
71
  VARIANT_PENDING = 5 #: Variant is pending caching
71
72
  VARIANT_REMOVED = 6 #: Variant was deleted
72
73
 
74
+ STATUS_DESCRIPTIONS = {
75
+ VARIANT_NOT_FOUND: "was not found",
76
+ VARIANT_FOUND: "was found",
77
+ VARIANT_CREATED: "was created",
78
+ VARIANT_COPYING: "payload is still being copied to this cache",
79
+ VARIANT_COPY_STALLED: "payload copy has stalled.\nSee "
80
+ "https://rez.readthedocs.io/en/stable/caching.html#cleaning-the-cache "
81
+ "for more information.",
82
+ VARIANT_PENDING: "is pending caching",
83
+ VARIANT_REMOVED: "was deleted",
84
+ }
85
+
73
86
  _FILELOCK_TIMEOUT = 10
74
87
  _COPYING_TIME_INC = 0.2
75
88
  _COPYING_TIME_MAX = 5.0
@@ -117,7 +130,7 @@ class PackageCache(object):
117
130
 
118
131
  return rootpath
119
132
 
120
- def add_variant(self, variant, force=False):
133
+ def add_variant(self, variant, force=False, wait_for_copying=False, logger=None):
121
134
  """Copy a variant's payload into the cache.
122
135
 
123
136
  The following steps are taken to ensure muti-thread/proc safety, and to
@@ -148,6 +161,9 @@ class PackageCache(object):
148
161
  variant (Variant): The variant to copy into this cache
149
162
  force (bool): Copy the variant regardless. Use at your own risk (there
150
163
  is no guarantee the resulting variant payload will be functional).
164
+ wait_for_copying (bool): Whether the caching step should block when one of the
165
+ pending variants is marked as already copying.
166
+ logger (None | Logger): If a logger is provided, log information to it.
151
167
 
152
168
  Returns:
153
169
  tuple: 2-tuple:
@@ -208,15 +224,40 @@ class PackageCache(object):
208
224
  % package.repository
209
225
  )
210
226
 
211
- no_op_statuses = (
227
+ no_op_statuses = {
212
228
  self.VARIANT_FOUND,
213
- self.VARIANT_COPYING,
214
- self.VARIANT_COPY_STALLED
215
- )
229
+ self.VARIANT_COPY_STALLED,
230
+ }
231
+ if not wait_for_copying:
232
+ # Copying variants are only no-ops if we want to ignore them.
233
+ no_op_statuses.add(self.VARIANT_COPYING)
216
234
 
217
235
  # variant already exists, or is being copied to cache by another thread/proc
218
236
  status, rootpath = self._get_cached_root(variant)
219
237
  if status in no_op_statuses:
238
+ if logger:
239
+ logger.warning(f"Not caching {variant.qualified_name}. "
240
+ f"Variant {self.STATUS_DESCRIPTIONS[status]}")
241
+ return (rootpath, status)
242
+
243
+ if wait_for_copying and status == self.VARIANT_COPYING:
244
+ spinner = PixelSpinner(f"Waiting for {variant.qualified_name} to finish copying. ")
245
+ while status == self.VARIANT_COPYING:
246
+ spinner.next()
247
+ time.sleep(self._COPYING_TIME_INC)
248
+ status, rootpath = self._get_cached_root(variant)
249
+
250
+ # Status has changed, so report the change and return
251
+ if logger:
252
+ if status == self.VARIANT_FOUND:
253
+ # We have resolved into a satisfactory state
254
+ logger.info(
255
+ f"{variant.qualified_name} {self.STATUS_DESCRIPTIONS[status]}"
256
+ )
257
+ else:
258
+ logger.warning(
259
+ f"{variant.qualified_name} {self.STATUS_DESCRIPTIONS[status]}"
260
+ )
220
261
  return (rootpath, status)
221
262
 
222
263
  # 1.
@@ -365,20 +406,39 @@ class PackageCache(object):
365
406
 
366
407
  This method is called when a context is created or sourced. Variants
367
408
  are then added to the cache in a separate process.
409
+
410
+ .. deprecated:: 3.2.0
411
+ Use :method:`add_variants` instead.
368
412
  """
413
+ return self.add_variants(variants, package_cache_async=True)
369
414
 
370
- # A prod install is necessary because add_variants_async works by
415
+ def add_variants(self, variants, package_cache_async=True):
416
+ """Add the given variants to the package payload cache.
417
+ """
418
+
419
+ # A prod install is necessary because add_variants works by
371
420
  # starting a rez-pkg-cache proc, and this can only be done reliably in
372
421
  # a prod install. On non-windows we could fork instead, but there would
373
422
  # remain no good solution on windows.
374
423
  #
375
424
  if not system.is_production_rez_install:
376
425
  raise PackageCacheError(
377
- "PackageCache.add_variants_async is only supported in a "
426
+ "PackageCache.add_variants is only supported in a "
378
427
  "production rez installation."
379
428
  )
380
429
 
381
430
  variants_ = []
431
+ cachable_statuses = {
432
+ self.VARIANT_NOT_FOUND,
433
+ }
434
+ if not package_cache_async:
435
+ # We want to monitor copying variants if we're synchronous.
436
+ # We also want to report that a status has been stalled, so we'll
437
+ # hand that off to the caching function as well
438
+ cachable_statuses.update({
439
+ self.VARIANT_COPYING,
440
+ self.VARIANT_COPY_STALLED,
441
+ })
382
442
 
383
443
  # trim down to those variants that are cachable, and not already cached
384
444
  for variant in variants:
@@ -386,7 +446,7 @@ class PackageCache(object):
386
446
  continue
387
447
 
388
448
  status, _ = self._get_cached_root(variant)
389
- if status == self.VARIANT_NOT_FOUND:
449
+ if status in cachable_statuses:
390
450
  variants_.append(variant)
391
451
 
392
452
  # if there are no variants to add, and no potential cleanup to do, then exit
@@ -427,6 +487,20 @@ class PackageCache(object):
427
487
  with open(filepath, 'w') as f:
428
488
  f.write(json.dumps(handle_dict))
429
489
 
490
+ if package_cache_async:
491
+ self._subprocess_package_caching_daemon(self.path)
492
+ else:
493
+ # syncronous caching
494
+ self._run_caching_operation(wait_for_copying=True)
495
+
496
+ @staticmethod
497
+ def _subprocess_package_caching_daemon(path):
498
+ """
499
+ Run the package cache in a daemon process
500
+
501
+ Returns:
502
+ subprocess.Popen : The package caching daemon process
503
+ """
430
504
  # configure executable
431
505
  if platform.system() == "Windows":
432
506
  kwargs = {
@@ -443,7 +517,7 @@ class PackageCache(object):
443
517
  raise RuntimeError("Did not find rez-pkg-cache executable")
444
518
 
445
519
  # start caching subproc
446
- args = [exe, "--daemon", self.path]
520
+ args = [exe, "--daemon", path]
447
521
 
448
522
  try:
449
523
  with open(os.devnull, 'w') as devnull:
@@ -454,8 +528,8 @@ class PackageCache(object):
454
528
  else:
455
529
  out_target = devnull
456
530
 
457
- subprocess.Popen(
458
- [exe, "--daemon", self.path],
531
+ return subprocess.Popen(
532
+ args,
459
533
  stdout=out_target,
460
534
  stderr=out_target,
461
535
  **kwargs
@@ -558,6 +632,15 @@ class PackageCache(object):
558
632
  if pid > 0:
559
633
  sys.exit(0)
560
634
 
635
+ self._run_caching_operation(wait_for_copying=False)
636
+
637
+ def _run_caching_operation(self, wait_for_copying=True):
638
+ """Copy pending variants.
639
+
640
+ Args:
641
+ wait_for_copying (bool): Whether the caching step should block when one of the
642
+ pending variants is marked as already copying.
643
+ """
561
644
  logger = self._init_logging()
562
645
 
563
646
  # somewhere for the daemon to store stateful info
@@ -568,7 +651,7 @@ class PackageCache(object):
568
651
  # copy variants into cache
569
652
  try:
570
653
  while True:
571
- keep_running = self._run_daemon_step(state)
654
+ keep_running = self._run_caching_step(state, wait_for_copying=wait_for_copying)
572
655
  if not keep_running:
573
656
  break
574
657
  except Exception:
@@ -682,12 +765,13 @@ class PackageCache(object):
682
765
  except NotLocked:
683
766
  pass
684
767
 
685
- def _run_daemon_step(self, state):
768
+ def _run_caching_step(self, state, wait_for_copying=False):
686
769
  logger = state["logger"]
687
770
 
688
771
  # pick a random pending variant to copy
689
772
  pending_filenames = set(os.listdir(self._pending_dir))
690
- pending_filenames -= set(state.get("copying", set()))
773
+ if not wait_for_copying:
774
+ pending_filenames -= set(state.get("copying", set()))
691
775
  if not pending_filenames:
692
776
  return False
693
777
 
@@ -710,7 +794,11 @@ class PackageCache(object):
710
794
  t = time.time()
711
795
 
712
796
  try:
713
- rootpath, status = self.add_variant(variant)
797
+ rootpath, status = self.add_variant(
798
+ variant,
799
+ wait_for_copying=wait_for_copying,
800
+ logger=logger,
801
+ )
714
802
 
715
803
  except PackageCacheError as e:
716
804
  # variant cannot be cached, so remove as a pending variant
@@ -116,8 +116,9 @@ class PackageOrder(object):
116
116
 
117
117
  Args:
118
118
  package_name: (str) The family name of the package we are sorting
119
- version_like: (Version|_LowerBound|_UpperBound|_Bound|VersionRange)
120
- the version-like object you wish to generate a key for
119
+ version_like: (Version|_LowerBound|_UpperBound|_Bound|VersionRange|None)
120
+ The version-like object to be used as a basis for generating a sort key.
121
+ Note that 'None' is also a supported value, which maintains the default sorting order.
121
122
 
122
123
  Returns:
123
124
  Sortable object
@@ -126,21 +127,26 @@ class PackageOrder(object):
126
127
  """
127
128
  if isinstance(version_like, VersionRange):
128
129
  return tuple(self.sort_key(package_name, bound) for bound in version_like.bounds)
129
- elif isinstance(version_like, _Bound):
130
+ if isinstance(version_like, _Bound):
130
131
  return (self.sort_key(package_name, version_like.lower),
131
132
  self.sort_key(package_name, version_like.upper))
132
- elif isinstance(version_like, _LowerBound):
133
+ if isinstance(version_like, _LowerBound):
133
134
  inclusion_key = -2 if version_like.inclusive else -1
134
135
  return self.sort_key(package_name, version_like.version), inclusion_key
135
- elif isinstance(version_like, _UpperBound):
136
+ if isinstance(version_like, _UpperBound):
136
137
  inclusion_key = 2 if version_like.inclusive else 1
137
138
  return self.sort_key(package_name, version_like.version), inclusion_key
138
- elif isinstance(version_like, Version):
139
+ if isinstance(version_like, Version):
139
140
  # finally, the bit that we actually use the sort_key_implementation for.
140
141
  return FallbackComparable(
141
142
  self.sort_key_implementation(package_name, version_like), version_like)
142
- else:
143
- raise TypeError(version_like)
143
+ if version_like is None:
144
+ # As no version range is provided for this package,
145
+ # Python's sort preserves the order of equal elements.
146
+ # Thus, to maintain the original order,
147
+ # we return the same object for all None values.
148
+ return 0
149
+ raise TypeError(version_like)
144
150
 
145
151
  def sort_key_implementation(self, package_name, version):
146
152
  """Returns a sort key usable for sorting these packages within the
@@ -171,7 +177,7 @@ class PackageOrder(object):
171
177
  raise NotImplementedError
172
178
 
173
179
  def __eq__(self, other):
174
- return type(self) == type(other) and str(self) == str(other)
180
+ return type(self) == type(other) and str(self) == str(other) # noqa: E721
175
181
 
176
182
  def __ne__(self, other):
177
183
  return not self == other
@@ -198,7 +204,7 @@ class NullPackageOrder(PackageOrder):
198
204
  return "{}"
199
205
 
200
206
  def __eq__(self, other):
201
- return type(self) == type(other)
207
+ return type(self) == type(other) # noqa: E721
202
208
 
203
209
  def to_pod(self):
204
210
  """
@@ -244,7 +250,7 @@ class SortedOrder(PackageOrder):
244
250
  return str(self.descending)
245
251
 
246
252
  def __eq__(self, other):
247
- return (
253
+ return ( # noqa: E721
248
254
  type(self) == type(other)
249
255
  and self.descending == other.descending
250
256
  )
@@ -321,7 +327,7 @@ class PerFamilyOrder(PackageOrder):
321
327
  return str((items, str(self.default_order)))
322
328
 
323
329
  def __eq__(self, other):
324
- return (
330
+ return ( # noqa: E721
325
331
  type(other) == type(self)
326
332
  and self.order_dict == other.order_dict
327
333
  and self.default_order == other.default_order
@@ -413,7 +419,7 @@ class VersionSplitPackageOrder(PackageOrder):
413
419
  return str(self.first_version)
414
420
 
415
421
  def __eq__(self, other):
416
- return (
422
+ return ( # noqa: E721
417
423
  type(other) == type(self)
418
424
  and self.first_version == other.first_version
419
425
  )
@@ -576,7 +582,7 @@ class TimestampPackageOrder(PackageOrder):
576
582
  return str((self.timestamp, self.rank))
577
583
 
578
584
  def __eq__(self, other):
579
- return (
585
+ return ( # noqa: E721
580
586
  type(other) == type(self)
581
587
  and self.timestamp == other.timestamp
582
588
  and self.rank == other.rank
@@ -394,7 +394,9 @@ class PackageTestRunner(object):
394
394
  if isinstance(command, str):
395
395
  command = variant.format(command)
396
396
  else:
397
- command = map(variant.format, command)
397
+ # Note that we convert the iterator to a list to
398
+ # make sure that we can consume the variable more than once.
399
+ command = [x for x in map(variant.format, command)]
398
400
 
399
401
  if extra_test_args:
400
402
  if isinstance(command, str):
@@ -601,6 +603,7 @@ class PackageTestRunner(object):
601
603
  package_paths=self.package_paths,
602
604
  buf=(f if quiet else None),
603
605
  timestamp=self.timestamp,
606
+ testing=True,
604
607
  **self.context_kwargs
605
608
  )
606
609