context#

Conda's global configuration object.

The context aggregates all configuration files, environment variables, and command line arguments into one global stateful object to be used across all of conda.

Classes#

Context

ContextStackObject

ContextStack

PluginConfig

Class used to hold settings for conda plugins.

Functions#

user_data_dir([appname, appauthor, version, roaming])

mockable_context_envs_dirs(root_writable, root_prefix, ...)

channel_alias_validation(value)

default_python_default()

default_python_validation(value)

ssl_verify_validation(value)

reset_context([search_path, argparse_args])

fresh_context([env, search_path, argparse_args])

stack_context(pushing[, search_path, argparse_args])

stack_context_default(pushing[, argparse_args])

replace_context([pushing, search_path, argparse_args])

replace_context_default([pushing, argparse_args])

env_name(prefix)

locate_prefix_by_name(name[, envs_dirs])

Find the location of a prefix given a conda env name. If the location does not exist, an

validate_prefix_name(→ str)

Run various validations to make sure prefix_name is valid

determine_target_prefix(ctx[, args])

Get the prefix to operate in. The prefix may not yet exist.

_first_writable_envs_dir()

get_plugin_config_data(→ dict[pathlib.Path, dict[str, ...)

This is used to move everything under the key "plugins" from the provided dictionary

add_plugin_setting(name, parameter[, aliases])

Adds a setting to the PluginConfig class

remove_all_plugin_settings(→ None)

Removes all attached settings from the PluginConfig class

Attributes#

_platform_map#
non_x86_machines#
_arch_names#
user_rc_path#
sys_rc_path#
user_data_dir(appname: str | None = None, appauthor: str | None | Literal[False] = None, version: str | None = None, roaming: bool = False)#
mockable_context_envs_dirs(root_writable, root_prefix, _envs_dirs)#
channel_alias_validation(value)#
default_python_default()#
default_python_validation(value)#
ssl_verify_validation(value)#
class Context(search_path=None, argparse_args=None, **kwargs)#

Bases: conda.common.configuration.Configuration

property plugin_manager: conda.plugins.manager.CondaPluginManager#

This is the preferred way of accessing the PluginManager object for this application and is located here to avoid problems with cyclical imports elsewhere in the code.

property conda_build_local_paths#
property conda_build_local_urls#
property croot#

This is where source caches and work folders live

property local_build_root#
property conda_build#
property arch_name#
property platform#
property default_threads: int | None#
property repodata_threads: int | None#
property fetch_threads: int | None#

If both are not overriden (0), return experimentally-determined value of 5

property verify_threads: int | None#
property execute_threads#
property subdir#
property subdirs#
property bits#
property root_writable#
property envs_dirs#
property pkgs_dirs#
property default_prefix#
property active_prefix#
property shlvl#
property aggressive_update_packages#
property target_prefix#
property conda_prefix#
property conda_exe#
property av_data_dir#

Where critical artifact verification data (e.g., various public keys) can be found.

property signing_metadata_url_base#

Base URL for artifact verification signing metadata (*.root.json, key_mgr.json).

property conda_exe_vars_dict#

The vars can refer to each other if necessary since the dict is ordered. None means unset it.

property migrated_channel_aliases#
property prefix_specified#
property channels#
property config_files#
property use_only_tar_bz2#
property binstar_upload#
property trace: bool#

Alias for context.verbosity >=4.

property debug: bool#

Alias for context.verbosity >=3.

property info: bool#

Alias for context.verbosity >=2.

property verbose: bool#

Alias for context.verbosity >=1.

property verbosity: int#

Verbosity level.

For cleaner and readable code it is preferable to use the following alias properties:

context.trace context.debug context.info context.verbose context.log_level

property log_level: int#

Map context.verbosity to logging level.

property category_map#
add_pip_as_python_dependency#
allow_conda_downgrades#
allow_cycles#
auto_update_conda#
auto_activate_base#
auto_stack#
notify_outdated_conda#
clobber#
changeps1#
env_prompt#
create_default_packages#
register_envs#
default_python#
download_only#
enable_private_envs#
force_32bit#
non_admin_enabled#
pip_interop_enabled#
_default_threads#
_repodata_threads#
_fetch_threads#
_verify_threads#
_execute_threads#
_aggressive_update_packages#
safety_checks#
extra_safety_checks#
_signing_metadata_url_base#
path_conflict#
pinned_packages#
disallowed_packages#
rollback_enabled#
track_features#
use_index_cache#
separate_format_cache#
_root_prefix#
_envs_dirs#
_pkgs_dirs#
_subdir#
_subdirs#
local_repodata_ttl#
ssl_verify#
client_ssl_cert#
client_ssl_cert_key#
proxy_servers#
remote_connect_timeout_secs#
remote_read_timeout_secs#
remote_max_retries#
remote_backoff_factor#
add_anaconda_token#
_reporters#
allow_non_channel_urls#
_channel_alias#
channel_priority#
_channels#
channel_settings#
_custom_channels#
_custom_multichannels#
_default_channels#
_migrated_channel_aliases#
migrated_custom_channels#
override_channels_enabled#
show_channel_urls#
use_local#
allowlist_channels#
denylist_channels#
restore_free_channel#
repodata_fns#
_use_only_tar_bz2#
always_copy#
always_yes#
_debug#
_trace#
dev#
dry_run#
error_upload_url#
force#
json#
offline#
quiet#
ignore_pinned#
report_errors#
shortcuts#
number_channel_notices#
shortcuts#
shortcuts_only#
_verbosity#
experimental#
no_lock#
repodata_use_zst#
envvars_force_uppercase#
deps_modifier#
update_modifier#
sat_solver#
solver_ignore_timestamps#
solver#
force_remove#
force_reinstall#
target_prefix_override#
unsatisfiable_hints#
unsatisfiable_hints_check_depth#
bld_path#
anaconda_upload#
_croot#
_conda_build#
no_plugins#
post_build_validation()#
plugins() PluginConfig#

Preferred way of accessing settings introduced by the settings plugin hook

_native_subdir()#
known_subdirs()#
trash_dir()#
root_prefix()#
channel_alias()#
default_channels()#
custom_multichannels()#
custom_channels()#
solver_user_agent()#
user_agent()#
_override(key, value)#

TODO: This might be broken in some ways. Unsure what happens if the old value is a property and gets set to a new value. Or if the new value overrides the validation logic on the underlying ParameterLoader instance.

Investigate and implement in a safer way.

requests_version()#
python_implementation_name_version()#
platform_system_release()#
os_distribution_name_version()#
libc_family_version()#
reporters() tuple[Mapping[str, str]]#

Determine the value of reporters based on other settings and the self._reporters value itself.

get_descriptions()#
description_map()#
reset_context(search_path=SEARCH_PATH, argparse_args=None)#
fresh_context(env=None, search_path=SEARCH_PATH, argparse_args=None, **kwargs)#
class ContextStackObject(search_path=SEARCH_PATH, argparse_args=None)#
set_value(search_path=SEARCH_PATH, argparse_args=None)#
apply()#
class ContextStack#
push(search_path, argparse_args)#
apply()#
pop()#
replace(search_path, argparse_args)#
context_stack#
stack_context(pushing, search_path=SEARCH_PATH, argparse_args=None)#
stack_context_default(pushing, argparse_args=None)#
replace_context(pushing=None, search_path=SEARCH_PATH, argparse_args=None)#
replace_context_default(pushing=None, argparse_args=None)#
conda_tests_ctxt_mgmt_def_pol#
env_name(prefix)#
locate_prefix_by_name(name, envs_dirs=None)#

Find the location of a prefix given a conda env name. If the location does not exist, an error is raised.

validate_prefix_name(prefix_name: str, ctx: Context, allow_base=True) str#

Run various validations to make sure prefix_name is valid

determine_target_prefix(ctx, args=None)#

Get the prefix to operate in. The prefix may not yet exist.

Parameters:
  • ctx -- the context of conda

  • args -- the argparse args from the command line

Returns: the prefix Raises: CondaEnvironmentNotFoundError if the prefix is invalid

_first_writable_envs_dir()#
get_plugin_config_data(data: dict[pathlib.Path, dict[str, conda.common.configuration.RawParameter]]) dict[pathlib.Path, dict[str, conda.common.configuration.RawParameter]]#

This is used to move everything under the key "plugins" from the provided dictionary to the top level of the returned dictionary. The returned dictionary is then passed to PluginConfig.

class PluginConfig(data)#

Class used to hold settings for conda plugins.

The object created by this class should only be accessed via conda.base.context.Context.plugins.

When this class is updated via the add_plugin_setting() function it adds new setting properties which can be accessed later via the context object.

We currently call that function in conda.plugins.manager.CondaPluginManager.load_settings(). because CondaPluginManager has access to all registered plugin settings via the settings plugin hook.

add_plugin_setting(name: str, parameter: conda.common.configuration.Parameter, aliases: tuple[str, Ellipsis] = ())#

Adds a setting to the PluginConfig class

remove_all_plugin_settings() None#

Removes all attached settings from the PluginConfig class

context#