{"slug": "stop-writing-isnull-audit-your-dataset-in-one-line-with-omr", "title": "Stop Writing .isnull() — Audit Your Dataset in One Line with OMR", "summary": "A developer built OMR (Omni Data Refinement), an open-source Python library that replaces dozens of lines of boilerplate data quality checks with a single call. The library provides a health score, auto-cleaning, schema validation, drift detection, and statistical analysis for datasets. OMR aims to be the first tool run after loading data, offering a quality layer on top of pandas.", "body_md": "Every time I start a new data project, I write the same boilerplate:\n\n```\npython\ndf.isnull().sum()\ndf.duplicated().sum()\ndf.dtypes\ndf.describe()\ndf[df['age'] < 0]\n# ... 40 more lines\nAfter doing this for the hundredth time, I built OMR (Omni Data Refinement) — a Python library that replaces all of that with a single call.\n\nWhat is OMR?\nOMR is an open-source Python framework for dataset quality, validation, profiling, and monitoring. Think of it as a health check for your data — before you do any ML, EDA, or transformation, you should know how healthy your data actually is.\n\nInstallation\nbash\npip install omni-data-refinement\nOnly needs pandas, numpy, and rich. No cloud, no LLMs.\n\nThe Core Feature: Health Score\npython\nimport pandas as pd\nfrom omr import Dataset\ndf = pd.read_csv(\"your_data.csv\")\nreport = Dataset(df).health()\nprint(report.score)  # e.g. 87/100\nYou get a 0-100 quality score covering 5 dimensions:\n\nPillar  What it checks\nCompleteness    Missing values\nUniqueness  Duplicates\nConsistency Type mismatches\nValidity    Value ranges and format rules\nConformity  Schema adherence\nAuto-Cleaning\npython\ndataset = Dataset(df)\ndataset.clean()\ndataset.explain_changes()  # See exactly what was fixed\nOMR auto-resolves missing values, duplicates, and type mismatches — and gives you a full transformation log so nothing is a black box.\n\nSchema Validation\npython\nfrom omr import schemas\nschema = {\n    \"age\":    schemas.PositiveInteger(max=120),\n    \"salary\": schemas.PositiveFloat(min=10000),\n    \"status\": schemas.OneOf(\"active\", \"inactive\"),\n    \"email\":  schemas.Email()\n}\ndataset.validate(schema)\nDrift Detection\nCompare your current dataset against production or a previous version:\n\npython\nprod_dataset = Dataset(pd.read_csv(\"prod_data.csv\"))\ndataset.compare(prod_dataset)\nUses PSI, KS Test, and JS Divergence under the hood.\n\nStatistical Analysis\npython\ndataset.analyze()\n# Detects: outliers, multicollinearity, skewness, class imbalance, zero variance\nColumn Profiling (replaces .describe())\npython\ndataset.profile()\nUnlike .describe() which only covers numeric columns, OMR profiles every column — numeric, categorical, and boolean — in a clean terminal table.\n\nThe Fluent API\nChain everything together:\n\npython\nclean_df = (Dataset(df)\n    .health()\n    .clean()\n    .analyze()\n    .export())  # Exports HTML, Markdown, or JSON report\nWhy I Built This\nThe goal is for OMR to become the first thing you run after pd.read_csv() — not a replacement for Pandas, but the quality layer on top of it.\n\nLinks\nPyPI: pip install omni-data-refinement\nGitHub: https://github.com/Omar-Alshafai2/omni-data-refinement\nDocs: https://Omar-Alshafai2.github.io/omni-data-refinement/\nExamples: https://Omar-Alshafai2.github.io/omni-data-refinement/examples/\n\nWhat data quality problems do you run into most? I would love to know what to build next.\n```", "url": "https://wpnews.pro/news/stop-writing-isnull-audit-your-dataset-in-one-line-with-omr", "canonical_source": "https://dev.to/omar_alshafai/stop-writing-isnull-audit-your-dataset-in-one-line-with-omr-4l91", "published_at": "2026-07-16 13:06:51+00:00", "updated_at": "2026-07-16 13:41:17.867086+00:00", "lang": "en", "topics": ["developer-tools", "machine-learning"], "entities": ["OMR", "Omni Data Refinement", "Omar-Alshafai2", "pandas", "numpy", "rich"], "alternates": {"html": "https://wpnews.pro/news/stop-writing-isnull-audit-your-dataset-in-one-line-with-omr", "markdown": "https://wpnews.pro/news/stop-writing-isnull-audit-your-dataset-in-one-line-with-omr.md", "text": "https://wpnews.pro/news/stop-writing-isnull-audit-your-dataset-in-one-line-with-omr.txt", "jsonld": "https://wpnews.pro/news/stop-writing-isnull-audit-your-dataset-in-one-line-with-omr.jsonld"}}