[](https://github.com/bcdev/xrlint/actions/workflows/tests.yml)
[](https://codecov.io/gh/bcdev/xrlint)
[](https://pypi.org/project/xrlint/)
[](https://github.com/charliermarsh/ruff)[](https://github.com/bcdev/xrlint)
# XRLint - A linter for xarray datasets
XRLint is a [linting](https://en.wikipedia.org/wiki/Lint_(software)) 
tool and library for [xarray]() datasets.
Its design is heavily inspired by the awesome [ESLint](https://eslint.org/).
## Features 
- Flexible validation for `xarray.Dataset` objects by configurable rules.
- Available from CLI and Python API.
- Custom plugins providing custom rule sets allow addressing 
  different dataset conventions.
- Project-specific configurations including configuration of individual 
  rules and file-specific settings.
- Works with dataset files in the local filesystem or any of the remote 
  filesystems supported by xarray.
## Inbuilt Rules
The following plugins provide XRLint's [inbuilt rules](https://bcdev.github.io/xrlint/rule-ref/):
- `xrlint.plugins.core`: implementing the rules for
  [tidy data](https://tutorial.xarray.dev/intermediate/data_cleaning/05.1_intro.html)
  and the 
  [CF-Conventions](https://cfconventions.org/cf-conventions/cf-conventions.html).
- `xrlint.plugins.core`: implementing the rules for 
  [xcube datasets](https://xcube.readthedocs.io/en/latest/cubespec.html).
  Note, this plugin is fully optional. You must manually configure 
  it to apply its rules. It may be moved into a separate GitHub repo 
  once XRLint is mature enough. 
            
         
        Raw data
        
            {
    "_id": null,
    "home_page": null,
    "name": "xrlint",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.10",
    "maintainer_email": null,
    "keywords": "xarray",
    "author": "Norman Fomferra (Brockmann Consult GmbH)",
    "author_email": null,
    "download_url": "https://files.pythonhosted.org/packages/90/b5/d3edcac159074611370752009a91d620528ed253f59ea6dbf766ac1921ab/xrlint-0.4.0.tar.gz",
    "platform": null,
    "description": "[](https://github.com/bcdev/xrlint/actions/workflows/tests.yml)\n[](https://codecov.io/gh/bcdev/xrlint)\n[](https://pypi.org/project/xrlint/)\n[](https://github.com/charliermarsh/ruff)[](https://github.com/bcdev/xrlint)\n\n# XRLint - A linter for xarray datasets\n\n\nXRLint is a [linting](https://en.wikipedia.org/wiki/Lint_(software)) \ntool and library for [xarray]() datasets.\nIts design is heavily inspired by the awesome [ESLint](https://eslint.org/).\n\n\n## Features \n\n- Flexible validation for `xarray.Dataset` objects by configurable rules.\n- Available from CLI and Python API.\n- Custom plugins providing custom rule sets allow addressing \n  different dataset conventions.\n- Project-specific configurations including configuration of individual \n  rules and file-specific settings.\n- Works with dataset files in the local filesystem or any of the remote \n  filesystems supported by xarray.\n\n## Inbuilt Rules\n\nThe following plugins provide XRLint's [inbuilt rules](https://bcdev.github.io/xrlint/rule-ref/):\n\n- `xrlint.plugins.core`: implementing the rules for\n  [tidy data](https://tutorial.xarray.dev/intermediate/data_cleaning/05.1_intro.html)\n  and the \n  [CF-Conventions](https://cfconventions.org/cf-conventions/cf-conventions.html).\n- `xrlint.plugins.core`: implementing the rules for \n  [xcube datasets](https://xcube.readthedocs.io/en/latest/cubespec.html).\n  Note, this plugin is fully optional. You must manually configure \n  it to apply its rules. It may be moved into a separate GitHub repo \n  once XRLint is mature enough. \n\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "A linter for xarray datasets.",
    "version": "0.4.0",
    "project_urls": {
        "Changelog": "https://github.com/bcdev/xrlint/blob/main/CHANGES.md",
        "Documentation": "https://bcdev.github.io/xrlint",
        "Issues": "https://github.com/bcdev/xrlint/issues",
        "Repository": "https://github.com/bcdev/xrlint"
    },
    "split_keywords": [
        "xarray"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "fb239e2052774b801fb5838ceb6d4f4e49fdc390d908c6b7afc8a93eb6ec3137",
                "md5": "cfb87f3f558c72e3e6308e7164501d01",
                "sha256": "6a84eec06842642222c924e9209006680f673922988ef01c7b9b6e8042ffc2dd"
            },
            "downloads": -1,
            "filename": "xrlint-0.4.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cfb87f3f558c72e3e6308e7164501d01",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.10",
            "size": 116900,
            "upload_time": "2025-01-27T12:49:27",
            "upload_time_iso_8601": "2025-01-27T12:49:27.984726Z",
            "url": "https://files.pythonhosted.org/packages/fb/23/9e2052774b801fb5838ceb6d4f4e49fdc390d908c6b7afc8a93eb6ec3137/xrlint-0.4.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "90b5d3edcac159074611370752009a91d620528ed253f59ea6dbf766ac1921ab",
                "md5": "078b417e8351a7f5a1ceb1066af3c8dc",
                "sha256": "3d0901c7b8ea6488d3c52f11e5ec47dad296eed752bfb6f2aef25fb76a8c02e4"
            },
            "downloads": -1,
            "filename": "xrlint-0.4.0.tar.gz",
            "has_sig": false,
            "md5_digest": "078b417e8351a7f5a1ceb1066af3c8dc",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.10",
            "size": 86912,
            "upload_time": "2025-01-27T12:49:29",
            "upload_time_iso_8601": "2025-01-27T12:49:29.864330Z",
            "url": "https://files.pythonhosted.org/packages/90/b5/d3edcac159074611370752009a91d620528ed253f59ea6dbf766ac1921ab/xrlint-0.4.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-01-27 12:49:29",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "bcdev",
    "github_project": "xrlint",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "xrlint"
}