{"id":13639871,"url":"https://github.com/tensorwerk/hangar-py","last_synced_at":"2026-02-22T11:06:29.989Z","repository":{"id":41081512,"uuid":"181599670","full_name":"tensorwerk/hangar-py","owner":"tensorwerk","description":"Hangar is version control for tensor data. Commit, branch, merge, revert, and collaborate in the data-defined software era.","archived":false,"fork":false,"pushed_at":"2020-09-14T20:34:47.000Z","size":3812,"stargazers_count":203,"open_issues_count":21,"forks_count":29,"subscribers_count":14,"default_branch":"master","last_synced_at":"2024-11-09T10:38:32.114Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tensorwerk.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.rst","contributing":"CONTRIBUTING.rst","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.rst","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-04-16T02:28:52.000Z","updated_at":"2024-10-07T10:53:43.000Z","dependencies_parsed_at":"2022-08-31T03:51:14.582Z","dependency_job_id":null,"html_url":"https://github.com/tensorwerk/hangar-py","commit_stats":null,"previous_names":[],"tags_count":12,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tensorwerk%2Fhangar-py","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tensorwerk%2Fhangar-py/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tensorwerk%2Fhangar-py/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tensorwerk%2Fhangar-py/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tensorwerk","download_url":"https://codeload.github.com/tensorwerk/hangar-py/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249838128,"owners_count":21332561,"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":[],"created_at":"2024-08-02T01:01:05.671Z","updated_at":"2025-10-21T19:32:01.484Z","avatar_url":"https://github.com/tensorwerk.png","language":"Python","readme":"========\nOverview\n========\n\n.. start-badges\n\n.. list-table::\n    :stub-columns: 1\n\n    * - docs\n      - |docs|\n    * - tests\n      - | |gh-build-status| |codecov|\n        | |lgtm|\n    * - package\n      - | |version| |wheel| |conda-forge|\n        | |supported-versions| |supported-implementations|\n        | |license|\n.. |docs| image:: https://readthedocs.org/projects/hangar-py/badge/?style=flat\n    :target: https://readthedocs.org/projects/hangar-py\n    :alt: Documentation Status\n\n.. |gh-build-status| image:: https://github.com/tensorwerk/hangar-py/workflows/Run%20Test%20Suite/badge.svg?branch=master\n    :alt: Build Status\n    :target: https://github.com/tensorwerk/hangar-py/actions?query=workflow%3A%22Run+Test+Suite%22+branch%3Amaster+event%3Apush+is%3Acompleted\n\n.. |codecov| image:: https://codecov.io/gh/tensorwerk/hangar-py/branch/master/graph/badge.svg\n   :alt: Code Coverage\n   :target: https://codecov.io/gh/tensorwerk/hangar-py\n\n.. |lgtm| image:: https://img.shields.io/lgtm/grade/python/g/tensorwerk/hangar-py.svg?logo=lgtm\u0026logoWidth=18\n   :alt: Language grade: Python\n   :target: https://lgtm.com/projects/g/tensorwerk/hangar-py/context:python\n\n.. |version| image:: https://img.shields.io/pypi/v/hangar.svg\n    :alt: PyPI Package latest release\n    :target: https://pypi.org/project/hangar\n\n.. |license| image:: https://img.shields.io/github/license/tensorwerk/hangar-py\n   :alt: GitHub license\n   :target: https://github.com/tensorwerk/hangar-py/blob/master/LICENSE\n\n.. |conda-forge| image:: https://img.shields.io/conda/vn/conda-forge/hangar.svg\n   :alt: Conda-Forge Latest Version\n   :target: https://anaconda.org/conda-forge/hangar\n\n.. |wheel| image:: https://img.shields.io/pypi/wheel/hangar.svg\n    :alt: PyPI Wheel\n    :target: https://pypi.org/project/hangar\n\n.. |supported-versions| image:: https://img.shields.io/pypi/pyversions/hangar.svg\n    :alt: Supported versions\n    :target: https://pypi.org/project/hangar\n\n.. |supported-implementations| image:: https://img.shields.io/pypi/implementation/hangar.svg\n    :alt: Supported implementations\n    :target: https://pypi.org/project/hangar\n\n\n.. end-badges\n\nHangar is version control for tensor data. Commit, branch, merge, revert, and\ncollaborate in the data-defined software era.\n\n* Free software: Apache 2.0 license\n\nWhat is Hangar?\n===============\n\nHangar is based off the belief that too much time is spent collecting, managing,\nand creating home-brewed version control systems for data. At its core Hangar\nis designed to solve many of the same problems faced by traditional code version\ncontrol system (i.e. ``Git``), just adapted for numerical data:\n\n* Time travel through the historical evolution of a dataset\n* Zero-cost Branching to enable exploratory analysis and collaboration\n* Cheap Merging to build datasets over time (with multiple collaborators)\n* Completely abstracted organization and management of data files on disk\n* Ability to only retrieve a small portion of the data (as needed) while still\n  maintaining complete historical record\n* Ability to push and pull changes directly to collaborators or a central server\n  (i.e. a truly distributed version control system)\n\nThe ability of version control systems to perform these tasks for codebases is\nlargely taken for granted by almost every developer today; however, we are\nin-fact standing on the shoulders of giants, with decades of engineering which\nhas resulted in these phenomenally useful tools. Now that a new era of\n\"Data-Defined software\" is taking hold, we find there is a strong need for\nanalogous version control systems which are designed to handle numerical data at\nlarge scale... Welcome to Hangar!\n\n\nThe Hangar Workflow:\n\n::\n\n       Checkout Branch\n              |\n              ▼\n     Create/Access Data\n              |\n              ▼\n    Add/Remove/Update Samples\n              |\n              ▼\n           Commit\n\nLog Style Output:\n\n.. code-block:: text\n\n   *   5254ec (master) : merge commit combining training updates and new validation samples\n   |\\\n   | * 650361 (add-validation-data) : Add validation labels and image data in isolated branch\n   * | 5f15b4 : Add some metadata for later reference and add new training samples received after initial import\n   |/\n   *   baddba : Initial commit adding training images and labels\n\n\nLearn more about what Hangar is all about at https://hangar-py.readthedocs.io/\n\n\nInstallation\n============\n\nHangar is in early alpha development release!\n\n::\n\n    pip install hangar\n\nDocumentation\n=============\n\nhttps://hangar-py.readthedocs.io/\n\n\nDevelopment\n===========\n\nTo run the all tests run::\n\n    tox\n\nNote, to combine the coverage data from all the tox environments run:\n\n.. list-table::\n    :widths: 10 90\n    :stub-columns: 1\n\n    - - Windows\n      - ::\n\n            set PYTEST_ADDOPTS=--cov-append\n            tox\n\n    - - Other\n      - ::\n\n            PYTEST_ADDOPTS=--cov-append tox\n","funding_links":[],"categories":["Model and Data Versioning","Python","Model, Data and Experiment Tracking"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftensorwerk%2Fhangar-py","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftensorwerk%2Fhangar-py","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftensorwerk%2Fhangar-py/lists"}