| 1053 | |
| 1054 | class SpecsConfigurationConflictError(CondaError): |
| 1055 | def __init__( |
| 1056 | self, |
| 1057 | requested_specs: Iterable[MatchSpec], |
| 1058 | pinned_specs: Iterable[MatchSpec], |
| 1059 | prefix: PathType, |
| 1060 | ): |
| 1061 | message = dals( |
| 1062 | """ |
| 1063 | Requested specs conflict with configured specs. |
| 1064 | requested specs: {requested_specs_formatted} |
| 1065 | pinned specs: {pinned_specs_formatted} |
| 1066 | Use 'conda config --show-sources' to look for 'pinned_specs' and 'track_features' |
| 1067 | configuration parameters. Pinned specs may also be defined in the file |
| 1068 | {pinned_specs_path}. |
| 1069 | """ |
| 1070 | ).format( |
| 1071 | requested_specs_formatted=dashlist(requested_specs, 4), |
| 1072 | pinned_specs_formatted=dashlist(pinned_specs, 4), |
| 1073 | pinned_specs_path=join(prefix, PREFIX_PINNED_FILE), |
| 1074 | ) |
| 1075 | super().__init__( |
| 1076 | message, |
| 1077 | requested_specs=requested_specs, |
| 1078 | pinned_specs=pinned_specs, |
| 1079 | prefix=prefix, |
| 1080 | ) |
| 1081 | |
| 1082 | |
| 1083 | class CondaIndexError(CondaError, IndexError): |