check-config


Namecheck-config JSON
Version 0.9.10 PyPI version JSON
download
home_pagehttps://pypi.org/project/check-config/
SummaryCheck configuration files.
upload_time2025-11-05 23:39:42
maintainerNone
docs_urlNone
authorNone
requires_python>=3.10
licenseNone
keywords automation configuration
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            

# Effortless Configuration Management with check-config


**Keep your development environment consistent, shareable, and version-controlled**

check-config is a fast, lightweight, declarative configuration management tool that ensures your configuration files
contain exactly what they should. Instead of managing entire config files,
you declare specific parts that must be present - making configurations shareable, maintainable, and verifiable.

## How It Works

Define your configuration requirements in simple TOML files, then let check-config ensure they're applied:

```toml
# Set your preferred editor
[[lines_present]]
file = "~/.bashrc"
lines = "export EDITOR=hx"
```

```toml
# Ensure git signing is configured
[[lines_present]]
file = "~/.gitconfig"
lines = """
[gpg]
        format = ssh
[commit]
        gpgsign = true
"""
```

Run `check-config --fix` to apply changes, or `check-config` to verify everything is in sync.

## Why check-config?

### 🔧 **Shareable Configuration Snippets**

Traditional dotfile repositories force users to adopt entire configuration files. check-config lets you share just the essential parts:
- Share your preferred Python formatting rules without forcing your entire `pyproject.toml`
- Distribute security settings without overwriting personal aliases
- Collaborate on team standards while preserving individual preferences

### ✅ **Enforce Team Standards**

Ensure consistent development environments across your team:

```shell
# In CI: Verify configurations are up-to-date
check-config

# For developers: Apply required configurations  
check-config --fix
```

Perfect for ensuring tools like Ruff, Black, and ESLint use consistent settings across all developers and CI pipelines.

### 📦 **Composable Configuration**

Combine multiple configuration files to build your complete setup:
- Base configurations for your team
- Personal tweaks and preferences  
- Project-specific requirements
- Environment-specific overrides

## Beyond Simple Lines

check-config supports multiple checker types for different configuration needs:
- **Lines present/absent**: Shell configs, text files
- **Key-value pairs**: TOML, JSON, YAML files
- **File existence**: Ensure critical files exist
- **And more**: See [docs/checkers.md](docs/checkers.md) for all features

## Get Started

Make a `check-config.toml` according your needs:

```toml
# Set your preferred editor
[[lines_present]]
file = "~/.bashrc"
lines = "export EDITOR=hx"
```

And use it:

```shell
# Check if configurations match requirements
check-config

# Apply missing configurations
check-config --fix
```

## Documentation

📖 **[Full Documentation](https://check-config.readthedocs.io)** - Complete guides, examples, and API reference

---

*Declare what you need. Share what matters. Keep everything in sync.*


            

Raw data

            {
    "_id": null,
    "home_page": "https://pypi.org/project/check-config/",
    "name": "check-config",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": "Marc Rijken <marc@rijken.org>",
    "keywords": "automation, configuration",
    "author": null,
    "author_email": "Marc Rijken <marc@rijken.org>",
    "download_url": "https://files.pythonhosted.org/packages/fb/17/3d25f84ab09912db193308f1a1a6c58c16373a98c774ada33976739f7f1e/check_config-0.9.10.tar.gz",
    "platform": null,
    "description": "\n\n# Effortless Configuration Management with check-config\n\n\n**Keep your development environment consistent, shareable, and version-controlled**\n\ncheck-config is a fast, lightweight, declarative configuration management tool that ensures your configuration files\ncontain exactly what they should. Instead of managing entire config files,\nyou declare specific parts that must be present - making configurations shareable, maintainable, and verifiable.\n\n## How It Works\n\nDefine your configuration requirements in simple TOML files, then let check-config ensure they're applied:\n\n```toml\n# Set your preferred editor\n[[lines_present]]\nfile = \"~/.bashrc\"\nlines = \"export EDITOR=hx\"\n```\n\n```toml\n# Ensure git signing is configured\n[[lines_present]]\nfile = \"~/.gitconfig\"\nlines = \"\"\"\n[gpg]\n        format = ssh\n[commit]\n        gpgsign = true\n\"\"\"\n```\n\nRun `check-config --fix` to apply changes, or `check-config` to verify everything is in sync.\n\n## Why check-config?\n\n### \ud83d\udd27 **Shareable Configuration Snippets**\n\nTraditional dotfile repositories force users to adopt entire configuration files. check-config lets you share just the essential parts:\n- Share your preferred Python formatting rules without forcing your entire `pyproject.toml`\n- Distribute security settings without overwriting personal aliases\n- Collaborate on team standards while preserving individual preferences\n\n### \u2705 **Enforce Team Standards**\n\nEnsure consistent development environments across your team:\n\n```shell\n# In CI: Verify configurations are up-to-date\ncheck-config\n\n# For developers: Apply required configurations  \ncheck-config --fix\n```\n\nPerfect for ensuring tools like Ruff, Black, and ESLint use consistent settings across all developers and CI pipelines.\n\n### \ud83d\udce6 **Composable Configuration**\n\nCombine multiple configuration files to build your complete setup:\n- Base configurations for your team\n- Personal tweaks and preferences  \n- Project-specific requirements\n- Environment-specific overrides\n\n## Beyond Simple Lines\n\ncheck-config supports multiple checker types for different configuration needs:\n- **Lines present/absent**: Shell configs, text files\n- **Key-value pairs**: TOML, JSON, YAML files\n- **File existence**: Ensure critical files exist\n- **And more**: See [docs/checkers.md](docs/checkers.md) for all features\n\n## Get Started\n\nMake a `check-config.toml` according your needs:\n\n```toml\n# Set your preferred editor\n[[lines_present]]\nfile = \"~/.bashrc\"\nlines = \"export EDITOR=hx\"\n```\n\nAnd use it:\n\n```shell\n# Check if configurations match requirements\ncheck-config\n\n# Apply missing configurations\ncheck-config --fix\n```\n\n## Documentation\n\n\ud83d\udcd6 **[Full Documentation](https://check-config.readthedocs.io)** - Complete guides, examples, and API reference\n\n---\n\n*Declare what you need. Share what matters. Keep everything in sync.*\n\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "Check configuration files.",
    "version": "0.9.10",
    "project_urls": {
        "Homepage": "https://pypi.org/project/check-config/",
        "homepage": "https://check-config.readthedocs.io",
        "source": "https://github.com/mrijken/check-config"
    },
    "split_keywords": [
        "automation",
        " configuration"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "6a5642ceb54ae8d04aedfa94ce7f5ade955b809e949524fe3deea31e7f1f5517",
                "md5": "24d396b3d0a813398dfad9e29b4d6a34",
                "sha256": "3bac80e4b3ac355c30674d88e483acf9128e413ecc4930a8df7b299f3a4dbec5"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-macosx_10_12_x86_64.whl",
            "has_sig": false,
            "md5_digest": "24d396b3d0a813398dfad9e29b4d6a34",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 3814602,
            "upload_time": "2025-11-05T23:39:30",
            "upload_time_iso_8601": "2025-11-05T23:39:30.727046Z",
            "url": "https://files.pythonhosted.org/packages/6a/56/42ceb54ae8d04aedfa94ce7f5ade955b809e949524fe3deea31e7f1f5517/check_config-0.9.10-py3-none-macosx_10_12_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "14c9aea5865ccca50eb8cd6499fdf1d3a04c3bfbf7da82691cf4e51234f3a9ef",
                "md5": "6eea7409e1069a76e3308eb681ede80a",
                "sha256": "786411b5289ad13cb5032252bb290da91918fdc7bf70fcf9fe425f3fdb76eb52"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "6eea7409e1069a76e3308eb681ede80a",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 3899962,
            "upload_time": "2025-11-05T23:39:32",
            "upload_time_iso_8601": "2025-11-05T23:39:32.344197Z",
            "url": "https://files.pythonhosted.org/packages/14/c9/aea5865ccca50eb8cd6499fdf1d3a04c3bfbf7da82691cf4e51234f3a9ef/check_config-0.9.10-py3-none-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fbd0ad7d60871c2851271b5c88144b2cc0bbfc7755b276e1646ae6976d2f8078",
                "md5": "59915eed6e50be1f58da4c83e894d074",
                "sha256": "86a50283067d394a886e41d38b1f6cd32bc1b017541b8caec1dec360459519e6"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "has_sig": false,
            "md5_digest": "59915eed6e50be1f58da4c83e894d074",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 4538509,
            "upload_time": "2025-11-05T23:39:34",
            "upload_time_iso_8601": "2025-11-05T23:39:34.240783Z",
            "url": "https://files.pythonhosted.org/packages/fb/d0/ad7d60871c2851271b5c88144b2cc0bbfc7755b276e1646ae6976d2f8078/check_config-0.9.10-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f7e927856fd02b3d510d5f10a6e3318db4a861e275ff4f7181c8886e440ce64e",
                "md5": "638b52b8e7ffd5cc78ac2e0d56362abd",
                "sha256": "b84d599dc3c819eb61ac4cf90911a6c30047cfd0826824ae68a865f81924859b"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "has_sig": false,
            "md5_digest": "638b52b8e7ffd5cc78ac2e0d56362abd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 3915743,
            "upload_time": "2025-11-05T23:39:35",
            "upload_time_iso_8601": "2025-11-05T23:39:35.842735Z",
            "url": "https://files.pythonhosted.org/packages/f7/e9/27856fd02b3d510d5f10a6e3318db4a861e275ff4f7181c8886e440ce64e/check_config-0.9.10-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "bbe2b5fa24bf5d38732ced28d40e6630cf426f2eed224d2a40c7300640cf7451",
                "md5": "b2733d56a04c4a949233150fdafefee8",
                "sha256": "5b39fe3df5517f93e372037f67dfc2780dd11212acc3bbf46e2793a88342e944"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
            "has_sig": false,
            "md5_digest": "b2733d56a04c4a949233150fdafefee8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 4597019,
            "upload_time": "2025-11-05T23:39:37",
            "upload_time_iso_8601": "2025-11-05T23:39:37.199778Z",
            "url": "https://files.pythonhosted.org/packages/bb/e2/b5fa24bf5d38732ced28d40e6630cf426f2eed224d2a40c7300640cf7451/check_config-0.9.10-py3-none-manylinux_2_17_i686.manylinux2014_i686.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "642b1af13feaca35c9336811058b0d5d3de920d409efd781e9a958ec3cafe6b6",
                "md5": "ddf14093510aedb5213ccd2f6743c612",
                "sha256": "d6097c7ca69ca40e4af96c05c0f93b0a60e862905cacc87295e91cdb42eec899"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "ddf14093510aedb5213ccd2f6743c612",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 4581401,
            "upload_time": "2025-11-05T23:39:38",
            "upload_time_iso_8601": "2025-11-05T23:39:38.824930Z",
            "url": "https://files.pythonhosted.org/packages/64/2b/1af13feaca35c9336811058b0d5d3de920d409efd781e9a958ec3cafe6b6/check_config-0.9.10-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "4c61f8476d27dedd18da70dbf14ba561d4e273262312a8adf7bf7c924aba6483",
                "md5": "65e321516716148b540ee3c092ac64ed",
                "sha256": "bab9f3304686a15baf0cd5474ace7e85926b0d89cc9258a42f260c41fa543cb7"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-win32.whl",
            "has_sig": false,
            "md5_digest": "65e321516716148b540ee3c092ac64ed",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 2331630,
            "upload_time": "2025-11-05T23:39:40",
            "upload_time_iso_8601": "2025-11-05T23:39:40.501478Z",
            "url": "https://files.pythonhosted.org/packages/4c/61/f8476d27dedd18da70dbf14ba561d4e273262312a8adf7bf7c924aba6483/check_config-0.9.10-py3-none-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9f3b6380fbb4e331b7b511bb95c5f5f421312b66685fb565c93630f894e00596",
                "md5": "94a6734ea08bbda2ccf102c6dc2d4d25",
                "sha256": "3e7802a26ff3a51cb68987f133e0b38083587cdb6b5686d7f8cb9671402a5886"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10-py3-none-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "94a6734ea08bbda2ccf102c6dc2d4d25",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 2525407,
            "upload_time": "2025-11-05T23:39:41",
            "upload_time_iso_8601": "2025-11-05T23:39:41.660679Z",
            "url": "https://files.pythonhosted.org/packages/9f/3b/6380fbb4e331b7b511bb95c5f5f421312b66685fb565c93630f894e00596/check_config-0.9.10-py3-none-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fb173d25f84ab09912db193308f1a1a6c58c16373a98c774ada33976739f7f1e",
                "md5": "0cd77596d1a031b3d99f1d103f82105e",
                "sha256": "9056f3771924d90f5c80f8cf7049890ac6bd4fe8138b320c51b0bc86080fe3b2"
            },
            "downloads": -1,
            "filename": "check_config-0.9.10.tar.gz",
            "has_sig": false,
            "md5_digest": "0cd77596d1a031b3d99f1d103f82105e",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 75625,
            "upload_time": "2025-11-05T23:39:42",
            "upload_time_iso_8601": "2025-11-05T23:39:42.819937Z",
            "url": "https://files.pythonhosted.org/packages/fb/17/3d25f84ab09912db193308f1a1a6c58c16373a98c774ada33976739f7f1e/check_config-0.9.10.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-11-05 23:39:42",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "mrijken",
    "github_project": "check-config",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "check-config"
}
        
Elapsed time: 2.09221s