Skip to main content

ChatEnv

ChatArch typed env/profile runtime.

ChatEnv 是 ChatArch / chatxxx 系列项目共用的 typed env/profile 底层包。它提供字段描述、配置基类、registry、路径、profile 文件读写、mask、paste 解析,以及 runtime token-store 的通用能力;具体业务变量、登录刷新和连通性语义由各项目自己定义并注册。

文档入口:https://arch.gh.wzhecnu.cn/ChatEnv/

安装

pip install chatenv --upgrade
chatenv --version
chatenv --tree

支持 Python >=3.10

目录

CHATARCH_HOME=${CHATARCH_HOME:-~/.chatarch}
$CHATARCH_HOME/envs/      # stable typed env/profile files
$CHATARCH_HOME/tokens/    # generated runtime tokens/sessions, parallel to env profiles

ChatEnv 只负责 stable env/profile 与 runtime token-store 的存储规则,不额外创建 config/cache/data/state,也不把 tokens/ 当作第二个手工维护 secret/env 层。

CLI 树

chatenv --tree 从当前安装包的 Click 注册表实时输出完整命令面:

chatenv [--home <HOME>]  # Manage typed env profiles under $CHATARCH_HOME/envs.
├── --help  # Show this help message.
├── --version  # Show the installed package version.
├── --tree  # Print the registered command tree.
├── init [--type <CONFIG-TYPES>] [--interactive/--no-interactive]  # Create or update active typed env files.
├── new [NAME] [--type <CONFIG-TYPES>] [--yes] [--interactive/--no-interactive]  # Create a named typed profile without activating it.
├── paste [--value <VALUE>] [--stdin] [--profile <PROFILE>] [--yes] [--interactive/--no-interactive]  # Paste loose env text and import recognized keys.
├── use [NAME] [--type <CONFIG-TYPES>] [--interactive/--no-interactive]  # Activate a named profile for one config type.
├── list [--type <CONFIG-TYPES>]  # List active default and named profiles grouped by config type.
├── status [--type <CONFIG-TYPES>] [--detail]  # Show registered config platforms and provider ownership.
├── token  # Manage generic runtime token profiles.
│   ├── status <SERVICE> [PROFILE] [--format <OUTPUT-FORMAT>]  # Show safe runtime token metadata for SERVICE/PROFILE.
│   ├── refresh <SERVICE> [PROFILE] [--format <OUTPUT-FORMAT>]  # Refresh SERVICE/PROFILE through a registered service refresh provider.
│   ├── import <SERVICE> [PROFILE] [--stdin] [--file <VALUE-FILE>] [--token-type <TOKEN-TYPE>] [--summary <SUMMARY>] [--expires-at <EXPIRES-AT>] [--format <OUTPUT-FORMAT>]  # Explicitly import externally refreshed runtime token JSON.
│   ├── list [SERVICE] [--format <OUTPUT-FORMAT>]  # List runtime token profiles grouped by service.
│   └── clear <SERVICE> [PROFILE] [--execute] [--format <OUTPUT-FORMAT>]  # Clear a generic runtime token file for SERVICE/PROFILE.
├── cat [NAME] [--no-mask] [--type <CONFIG-TYPES>]  # Print active values, or a named typed profile with -t TYPE NAME.
├── get [KEY] [--interactive/--no-interactive]  # Get a configuration value from active typed env files.
├── set [KEY-VALUE] [--interactive/--no-interactive]  # Set a configuration value in the matching active typed env file.
├── save [NAME] [--type <CONFIG-TYPES>] [--yes] [--interactive/--no-interactive]  # Save current active values as a named profile.
├── delete [NAME] [--type <CONFIG-TYPES>] [--yes] [--interactive/--no-interactive]  # Delete a named profile for one config type.
└── test [--target <TARGET>] [--interactive/--no-interactive]  # Test a registered configuration schema.

常用命令

chatenv init -t example
chatenv status --detail
chatenv cat -t example
chatenv paste --stdin --profile work --yes
chatenv set EXAMPLE_API_KEY=sk-xxx
chatenv get EXAMPLE_API_KEY
chatenv token refresh PyPI RexWzh
chatenv token status PyPI RexWzh

敏感值默认 mask;token status/list/clear 只输出 safe metadata,不输出 raw token/cookie/CSRF values。

Python API

from chatenv import BaseEnvConfig, EnvField, EnvStore, get_paths

class ExampleConfig(BaseEnvConfig):
    _title = "Example Configuration"
    _aliases = ["example"]
    _storage_dir = "Example"

    EXAMPLE_API_KEY = EnvField("EXAMPLE_API_KEY", is_sensitive=True)

paths = get_paths()
store = EnvStore(paths.envs_dir)
store.save_active(ExampleConfig, {"EXAMPLE_API_KEY": "sk-..."})

文档

  • https://arch.gh.wzhecnu.cn/ChatEnv/
  • docs/cli.md:CLI 用法
  • docs/design.md:路径、数据布局与注册策略
  • docs/developer-guide.md:chatxxx 项目接入和 provider 开发指南
  • docs/development.md:测试、构建与发布

开发

python -m pip install -e .[dev,docs]
python -m pytest -q
python -m mkdocs build --strict
python -m build
python -m twine check dist/*

开源协议

MIT License

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

chatenv-0.2.9.tar.gz (33.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

chatenv-0.2.9-py3-none-any.whl (27.6 kB view details)

Uploaded Python 3

File details

Details for the file chatenv-0.2.9.tar.gz.

File metadata

  • Download URL: chatenv-0.2.9.tar.gz
  • Upload date:
  • Size: 33.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chatenv-0.2.9.tar.gz
Algorithm Hash digest
SHA256 80741601a5f1d603c5c90ff142b5fb3dbca49be97eb4eec68f99dd3cc1650ebe
MD5 f64a885d46a1d9090a38e4474f99d808
BLAKE2b-256 f0364bc95e1ea9f2f9fc5937946d390eb8616a01fb8c75fd67d6e6a28d7de6d8

See more details on using hashes here.

Provenance

The following attestation bundles were made for chatenv-0.2.9.tar.gz:

Publisher: publish.yml on ChatArch/ChatEnv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chatenv-0.2.9-py3-none-any.whl.

File metadata

  • Download URL: chatenv-0.2.9-py3-none-any.whl
  • Upload date:
  • Size: 27.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for chatenv-0.2.9-py3-none-any.whl
Algorithm Hash digest
SHA256 46e7d6c899e4ecb31c8f98eaae23f7f2ab01d87d3c8943f730becdf3a4f26495
MD5 cb1a7ed35e1795c8f8a6d6c26934b229
BLAKE2b-256 223683dedb2da5feb4af2f00cea684504d0d2dbf41081baa270abc4bf4aa130f

See more details on using hashes here.

Provenance

The following attestation bundles were made for chatenv-0.2.9-py3-none-any.whl:

Publisher: publish.yml on ChatArch/ChatEnv

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.11

2 files

0.2.10

2 files

This release

0.2.9 This release

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

0.0.1

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page