index#

用于获取当前索引的工具。

#

Index

Index 提供来自所有相关来源的可用包的信息。

ReducedIndex

包含可用包子集的索引。

函数#

check_allowlist(→ None)

检查给定的通道 URL 是否在上下文的允许列表中。

get_index(, prepend, platform, use_local, use_cache, ...)

返回通道上可用包的索引

fetch_index(→ dict)

从指定的通道获取包索引。

dist_str_in_index(→ bool)

检查分发字符串是否与索引中的任何包匹配。

_supplement_index_with_prefix(→ None)

使用来自指定环境前缀的信息补充给定的索引。

_supplement_index_with_cache(→ None)

使用来自缓存的包补充给定的索引。

_make_virtual_package(→ conda.models.records.PackageRecord)

创建虚拟包记录。

_supplement_index_with_features(→ None)

使用虚拟功能记录补充给定的索引。

_supplement_index_with_system(→ None)

从 conda 插件加载并填充虚拟包记录

get_archspec_name(→ str | None)

确定当前环境的架构规范名称。

calculate_channel_urls(, prepend, platform, use_local)

根据给定的参数计算要使用的完整通道 URL 列表。

get_reduced_index(→ dict)

根据给定的规范生成缩减的包索引。

属性#

LAST_CHANNEL_URLS = []#
check_allowlist(channel_urls: list[str]) None#

检查给定的通道 URL 是否在上下文的允许列表中。 :param channel_urls: 要对照允许列表检查的通道 URL 列表。 :raises ChannelNotAllowed: 如果任何 URL 不在允许列表中。 :raises ChannelDenied: 如果任何 URL 在拒绝列表中。

class Index(channels: collections.abc.Iterable[str | conda.models.channel.Channel] = (), prepend: bool = True, platform: str | None = None, subdirs: tuple[str, Ellipsis] | None = None, use_local: bool = False, use_cache: bool | None = None, prefix: str | os.PathLike[str] | pathlib.Path | conda.core.prefix_data.PrefixData | None = None, repodata_fn: str | None = context.repodata_fns[-1], use_system: bool = False)#

基类: collections.UserDict

Index 提供来自所有相关来源的可用包的信息。

包信息有四种类型的来源,即

通道

表示来自使用 URL 标识的标准来源的可用包,主要是在线,但也可能使用 file:// 方案在本地文件系统上。在编程上,通道由 conda.models.channel.Channel 表示,其数据使用 conda.core.subdir_data.SubdirData 获取。

有关更多信息,请参见 什么是“通道”?

来自通道的单个包通常由 conda.models.records.PackageRecord 表示。

前缀

表示已安装的包。每个 Index 都可以与完全一个前缀关联,该前缀是 conda 环境 之一的位置。有关已安装包的包信息由 conda.core.prefix_data.PrefixData 表示。

来自前缀的单个包通常由 conda.models.records.PrefixRecord 表示。

包缓存

表示本地解压缩的包,但可能未安装在此索引关联的环境中。这些通常是在本地 conda 安装的任何环境中安装的包,但现在可能已从所有环境中删除。

来自包的单个包通常由 conda.models.records.PackageCacheRecord 表示。

虚拟包

表示系统的属性,而不是正常意义上的实际 conda 包。例如,这些是系统包,用于告知求解器有关正在使用的操作系统的信息,或跟踪可用于引导包优先级的特性。

单个虚拟包由特殊的 conda.models.records.PackageRecord 表示,请参见 conda.models.records.PackageRecord.virtual_package()conda.models.records.PackageRecord.feature()

使用所需的组件初始化新索引。

参数:
  • channels -- 由规范名称或 URL 或 Channel 对象标识的通道;有关更多详细信息,请参见 conda.models.channel.Channel.from_value()

  • prepend -- 如果为 True(默认),则添加配置的通道,其优先级高于传递的通道;如果为 False,则添加配置的通道。

  • platform -- 请参见 subdirs

  • subdirs -- platform 和 subdirs 确定通道中子目录的选择;如果两者均为 None,则从配置中获取子目录;如果两者都给出,则 subdirs 优先,并且 platform 将被忽略;如果仅给出 platform,则子目录将为 (platform, "noarch");如果给出 subdirs,则子目录将为 subdirs

  • use_local -- 如果为 True,则添加特殊的“local”通道,用于本地构建的包,优先级最低。

  • use_cache -- 如果为 True,则添加来自包缓存的包。

  • prefix -- 将前缀与此索引关联并添加其包。

  • repodata_fn -- repodata 的文件名,默认取自配置,几乎总是“repodata.json”。

  • use_system -- 如果为 True,则添加系统包,即由插件定义的虚拟包,通常用于使有关系统的内在信息(例如 cpu 架构或操作系统)可供求解器使用。

property cache_entries: tuple[conda.models.records.PackageCacheRecord, Ellipsis]#

如果包缓存处于活动状态,则显示其内容。

返回:

从包缓存中可用的所有包。

property system_packages: dict[conda.models.records.PackageRecord, conda.models.records.PackageRecord]#

插件提供的系统包。

返回:

dict 形式提供的可用系统包的身份映射。

property features: dict[conda.models.records.PackageRecord, conda.models.records.PackageRecord]#

活动跟踪功能。

返回:

dict 形式提供的本地跟踪功能的身份映射。

property data: dict[conda.models.records.PackageRecord, conda.models.records.PackageRecord]#

整个索引作为 dict;尽可能避免使用。

警告

这会将索引的全部内容作为单个身份映射在 dict 中返回。这可能很方便,但会付出代价,因为必须完全加载所有来源,这将为每个包的 PackageRecord 构造带来显着的开销。

因此,强烈建议不要使用 data 的所有用法,包括对整个索引的所有迭代。

reload(*, prefix: bool = False, cache: bool = False, features: bool = False, system: bool = False) None#

重新加载索引组件中的一个或多个。

可用于使用新信息刷新索引,例如在将新包安装到索引中之后。

参数:
  • prefix -- 如果为 True,则重新加载前缀数据。

  • cache -- 如果为 True,则重新加载包缓存。

  • features -- 如果为 True,则重新加载跟踪功能。

  • system -- 如果为 True,则重新加载系统包。

__repr__() str#

返回 repr(self)。

get_reduced_index(specs: collections.abc.Iterable[conda.models.match_spec.MatchSpec]) ReducedIndex#

创建包含软件包子集的精简索引。

可用于从现有索引中创建软件包子集的精简索引。

参数:

specs -- 跨越子集的规范。

返回:

与此索引具有相同来源的精简索引,但仅限于 specs 及其依赖关系图。

_supplement_index_dict_with_prefix() None#

使用来自其前缀的信息来补充索引。

_supplement_index_dict_with_cache() None#
_realize() None#
_retrieve_from_channels(key: conda.models.records.PackageRecord) conda.models.records.PackageRecord | None#
_retrieve_all_from_channels(key: conda.models.records.PackageRecord) list[conda.models.records.PackageRecord]#
_update_from_prefix(key: conda.models.records.PackageRecord, prec: conda.models.records.PackageRecord | None) conda.models.records.PackageRecord | None#
_update_from_cache(key: conda.models.records.PackageRecord, prec: conda.models.records.PackageRecord | None) conda.models.records.PackageRecord | None#
__getitem__(key: conda.models.records.PackageRecord) conda.models.records.PackageRecord#
__contains__(key: conda.models.records.PackageRecord) bool#
__copy__() Self#
class ReducedIndex(specs: collections.abc.Iterable[conda.models.match_spec.MatchSpec], channels: tuple[str, Ellipsis] = (), prepend: bool = True, platform: str | None = None, subdirs: tuple[str, Ellipsis] | None = None, use_local: bool = False, use_cache: bool | None = None, prefix: str | os.PathLike[str] | pathlib.Path | conda.core.prefix_data.PrefixData | None = None, repodata_fn: str | None = context.repodata_fns[-1], use_system: bool = False)#

基类:Index

包含可用包子集的索引。

Index 类似,这使得来自相同四个来源的软件包信息可用。但是,精简索引的内容仅限于与给定规范相关的软件包子集。这通过考虑与给定规范匹配的所有软件包及其依赖项以及依赖项的依赖项等来实现。

注意

有关便捷的构造,请参阅 Index.get_reduced_index()

初始化新的精简索引。

参数:
  • specs -- 跨越软件包子集的规范集合。

  • args (所有其他参数) -- 请参阅 Index

__repr__() str#

返回 repr(self)。

_derive_reduced_index() None#
get_index(channel_urls: collections.abc.Iterable[str | conda.models.channel.Channel] = (), prepend: bool = True, platform: str | None = None, use_local: bool = False, use_cache: bool = False, unknown: bool | None = None, prefix: str | None = None, repodata_fn: str = context.repodata_fns[-1]) Index#

返回通道上可用包的索引

如果 prepend=False,则仅使用作为参数传入的通道。如果 platform=None,则使用当前平台。如果提供了 prefix,则会添加安装在该前缀中的软件包。

参数:
  • channel_urls -- 要包含在索引中的通道。

  • prepend -- 如果为 False,则仅使用传入的通道。

  • platform -- 索引的目标平台。

  • use_local -- 是否使用本地通道。

  • use_cache -- 是否使用缓存的索引信息。

  • unknown -- 是否包含未知软件包。

  • prefix -- 要包含在索引中的环境前缀的路径。

  • repodata_fn -- repodata 文件的文件名。

返回:

表示软件包索引的字典。

fetch_index(channel_urls: list[str], use_cache: bool = False, index: dict | None = None, repodata_fn: str = context.repodata_fns[-1]) dict#

从指定的通道获取包索引。

参数:
  • channel_urls -- 要从中获取索引的通道 URL 列表。

  • use_cache -- 是否使用缓存的索引数据。

  • index -- 要更新的可选的预先存在的索引。

  • repodata_fn -- repodata 文件的名称。

返回:

表示获取或更新的软件包索引的字典。

dist_str_in_index(index: dict[Any, Any], dist_str: str) bool#

检查分发字符串是否与索引中的任何包匹配。

参数:
  • index -- 软件包索引。

  • dist_str -- 要与索引匹配的发行版字符串。

返回:

如果存在匹配项,则为 True;否则为 False。

_supplement_index_with_prefix(index: Index | dict[Any, Any], prefix: str | os.PathLike[str] | pathlib.Path | conda.core.prefix_data.PrefixData) None#

使用来自指定环境前缀的信息补充给定的索引。

参数:
  • index -- 要补充的软件包索引。

  • prefix -- 环境前缀的路径。

_supplement_index_with_cache(index: dict[Any, Any]) None#

使用来自缓存的包补充给定的索引。

参数:

index -- 要补充的软件包索引。

_make_virtual_package(name: str, version: str | None = None, build_string: str | None = None) conda.models.records.PackageRecord#

创建虚拟包记录。

参数:
  • name -- 虚拟软件包的名称。

  • version -- 虚拟软件包的版本,默认为 "0"。

  • build_string -- 虚拟软件包的构建字符串,默认为 "0"。

返回:

表示虚拟软件包的 PackageRecord。

_supplement_index_with_features(index: dict[conda.models.records.PackageRecord, conda.models.records.PackageRecord], features: list[str] = []) None#

使用虚拟功能记录补充给定的索引。

参数:
  • index -- 要补充的软件包索引。

  • features -- 要添加到索引的特性名称列表。

_supplement_index_with_system(index: dict[conda.models.records.PackageRecord, conda.models.records.PackageRecord]) None#

从 conda 插件加载并填充虚拟包记录,并将其添加到提供的索引中,除非存在命名冲突。

参数:

index -- 要补充的软件包索引。

get_archspec_name() str | None#

确定当前环境的架构规范名称。

返回:

如果可用,则为架构名称,否则为 None。

calculate_channel_urls(channel_urls: tuple[str] = (), prepend: bool = True, platform: str | None = None, use_local: bool = False) list[str]#

根据给定的参数计算要使用的完整通道 URL 列表。

参数:
  • channel_urls -- 通道 URL 的初始列表。

  • prepend -- 是否将默认通道添加到列表的前面。

  • platform -- 通道的目标平台。

  • use_local -- 是否包含本地通道。

返回:

计算出的通道 URL 列表。

get_reduced_index(prefix: str | None, channels: list[str], subdirs: list[str], specs: list[conda.models.match_spec.MatchSpec], repodata_fn: str) dict#

根据给定的规范生成缩减的包索引。

此函数对于通过减少求解器需要考虑的数据量来优化求解器非常有用。

参数:
  • prefix -- 包含已安装软件包的环境前缀路径。

  • channels -- 要包含在索引中的通道名称列表。

  • subdirs -- 要为每个通道考虑的子目录列表。

  • specs -- 用于过滤软件包的 MatchSpec 对象列表。

  • repodata_fn -- 要使用的 repodata 文件的文件名。

返回:

表示缩减的包索引的字典。