| 146 | |
| 147 | @lru_cache |
| 148 | def is_torch_available() -> bool: |
| 149 | try: |
| 150 | is_available, torch_version = _is_package_available("torch", return_version=True) |
| 151 | parsed_version = version.parse(torch_version) |
| 152 | if is_available and parsed_version < version.parse("2.4.0"): |
| 153 | logger.warning_once(f"Disabling PyTorch because PyTorch >= 2.4 is required but found {torch_version}") |
| 154 | return is_available and version.parse(torch_version) >= version.parse("2.4.0") |
| 155 | except packaging.version.InvalidVersion: |
| 156 | return False |
| 157 | |
| 158 | |
| 159 | @lru_cache |