{"id":15898696,"url":"https://github.com/datarootsio/databooks","last_synced_at":"2025-10-30T15:16:27.521Z","repository":{"id":41806384,"uuid":"437109847","full_name":"datarootsio/databooks","owner":"datarootsio","description":"A CLI tool to reduce the friction between data scientists by reducing git conflicts removing notebook metadata and gracefully resolving git conflicts.","archived":false,"fork":false,"pushed_at":"2023-10-17T21:04:43.000Z","size":83678,"stargazers_count":112,"open_issues_count":8,"forks_count":5,"subscribers_count":8,"default_branch":"main","last_synced_at":"2025-04-09T15:10:05.144Z","etag":null,"topics":["cli","git","helper-tool","jupyter-notebook","pydantic","rich","typer"],"latest_commit_sha":null,"homepage":"https://databooks.dev/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/datarootsio.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-12-10T20:47:05.000Z","updated_at":"2025-02-11T14:15:51.000Z","dependencies_parsed_at":"2024-10-28T06:02:00.477Z","dependency_job_id":null,"html_url":"https://github.com/datarootsio/databooks","commit_stats":{"total_commits":492,"total_committers":6,"mean_commits":82.0,"dds":"0.030487804878048808","last_synced_commit":"39781268fba2d47d3c613b341405b9a86c932dce"},"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarootsio%2Fdatabooks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarootsio%2Fdatabooks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarootsio%2Fdatabooks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/datarootsio%2Fdatabooks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/datarootsio","download_url":"https://codeload.github.com/datarootsio/databooks/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248055282,"owners_count":21040157,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","helper-tool","jupyter-notebook","pydantic","rich","typer"],"created_at":"2024-10-06T10:07:37.545Z","updated_at":"2025-10-30T15:16:22.484Z","avatar_url":"https://github.com/datarootsio.png","language":"Python","funding_links":[],"categories":["Version Control"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://datarootsio.github.io/databooks/\"\u003e\u003cimg alt=\"logo\" src=\"https://raw.githubusercontent.com/datarootsio/databooks/main/docs/images/logo.png\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://dataroots.io\"\u003e\u003cimg alt=\"Maintained by dataroots\" src=\"https://dataroots.io/maintained-rnd.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/databooks/\"\u003e\u003cimg alt=\"Python versions\" src=\"https://img.shields.io/pypi/pyversions/databooks\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/databooks/\"\u003e\u003cimg alt=\"PiPy\" src=\"https://img.shields.io/pypi/v/databooks\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://pepy.tech/project/databooks\"\u003e\u003cimg alt=\"Downloads\" src=\"https://pepy.tech/badge/databooks\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/psf/black\"\u003e\u003cimg alt=\"Code style: black\" src=\"https://img.shields.io/badge/code%20style-black-000000.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"http://mypy-lang.org/\"\u003e\u003cimg alt=\"Mypy checked\" src=\"https://img.shields.io/badge/mypy-checked-1f5082.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://pepy.tech/project/databooks\"\u003e\u003cimg alt=\"Codecov\" src=\"https://codecov.io/github/datarootsio/databooks/main/graph/badge.svg\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/datarootsio/databooks/actions\"\u003e\u003cimg alt=\"test\" src=\"https://github.com/datarootsio/databooks/actions/workflows/test.yml/badge.svg\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n`databooks` is a package to ease the collaboration between data scientists using\n[Jupyter notebooks](https://jupyter.org/), by reducing the number of git conflicts between\ndifferent notebooks and resolution of git conflicts when encountered.\n\nThe key features include:\n\n- CLI tool\n  - Clear notebook metadata\n  - Resolve git conflicts\n- Simple to use\n- Simple API for using modelling and comparing notebooks using [Pydantic](https://pydantic-docs.helpmanual.io/)\n\n## Requirements\n\n`databooks` is built on top of:\n\n- Python 3.7+\n- [Typer](https://typer.tiangolo.com/)\n- [Rich](https://rich.readthedocs.io/en/latest/)\n- [Pydantic](https://pydantic-docs.helpmanual.io/)\n- [GitPython](https://gitpython.readthedocs.io/en/stable/tutorial.html)\n- [Tomli](https://github.com/hukkin/tomli)\n\n## Installation\n\n```\npip install databooks\n```\n\n## Usage\n\n### Clear metadata\n\nSimply specify the paths for notebook files to remove metadata. By doing so, we can\nalready avoid many of the conflicts.\n\n```console\n$ databooks meta [OPTIONS] PATHS...\n```\n\n![databooks meta demo](https://raw.githubusercontent.com/datarootsio/databooks/main/docs/images/databooks-meta.gif)\n\n### Fix git conflicts for notebooks\n\nSpecify the paths for notebook files with conflicts to be fixed. Then, `databooks` finds\nthe source notebooks that caused the conflicts and compares them (so no JSON manipulation!)\n\n```console\n$ databooks fix [OPTIONS] PATHS...\n```\n\n![databooks fix demo](https://raw.githubusercontent.com/datarootsio/databooks/main/docs/images/databooks-fix.gif)\n\n### Assert notebook metadata\n\nSpecify paths of notebooks to be checked, an expression or recipe of what you'd like to\nenforce. `databooks` will run your checks and raise errors if any notebook does not\ncomply with the desired metadata values. This advanced feature allows users to enforce\ncell tags, sequential cell execution, maximum number of cells, among many other things!\n\nCheck out our [docs](https://databooks.dev/latest/usage/overview/#databooks-assert) for more!\n\n```console\n$ databooks assert [OPTIONS] PATHS...\n```\n\n![databooks assert demo](https://raw.githubusercontent.com/datarootsio/databooks/main/docs/images/databooks-assert.gif)\n\n### Show rich notebook\n\nInstead of launching Jupyter and opening the browser to inspect notebooks, have a quick\nlook at them in the terminal. All you need is to specify the path(s) of the notebook(s).\n\n```console\n$ databooks show [OPTIONS] PATHS...\n```\n\n![databooks show demo](https://raw.githubusercontent.com/datarootsio/databooks/main/docs/images/databooks-show.gif)\n\n### Show rich notebook diffs\n\nSimilar to git diff, but for notebooks! Show a rich diff of the notebooks in the\nterminal. Works for comparing git index with the current working directory, comparing\nbranches or blobs.\n\n```console\n$ databooks diff [OPTIONS] [REF_BASE] [REF_REMOTE] [PATHS]...\n```\n\n![databooks diff demo](https://raw.githubusercontent.com/datarootsio/databooks/main/docs/images/databooks-diff.gif)\n\n## License\n\nThis project is licensed under the terms of the MIT license.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarootsio%2Fdatabooks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdatarootsio%2Fdatabooks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdatarootsio%2Fdatabooks/lists"}