Package: ipyannotator
Ipyannotator - the infinitely hackable annotation frameworkIpyannotator is a flexible annotation system. Developed to allow users to hack its features by extending and customizing it.The large variety of annotation tasks, data formats and data visualizations is a challenging when dealing with multiple domains of supervised machine learning (ML). The existent tooling is often not flexible enough which imposes limitations to the user. By providing a framework where users can use, customize and create their own annotation tooling this projects aims to solve this problem.The library contains some pre-defined annotators that can be used out of the box, but it also can be extend and customized according to the users needs. Check ourtutorialsfor a quickly understanding of it's usage and check ourAPIfor quick reference.This library has been written in theliterate programming stylepopularized for jupyter notebooks bynbdev. In addition to ouronline documentationthe jupyter notebooks located atnbs/allow an interactive exploration of the inner workings of Ipyannotator.We hope this repository helps you to explore how annotation UI's can be quickly built using only python code and leveraging many awesome libraries (ipywidgets,voila,ipycanvas, etc.) from thejupyter Eco-system.Athttps://palaimon.iowe have used the concepts underlying Ipyannotator internally for various projects and this is our attempt to contribute back to the OSS community some of the benefits we have had using OOS software.Please star, fork and open issues!Please let us know if you find this repository useful. Your feedback will help us to turn this proof of concept into a comprehensive library.InstallIpyannotator is available on Pypi and can be installed using:pip install ipyannotatorRunning ipyannotatorIpyannotator provides asimple APIthat provides the ability to explore, create and improve annotation datasets by using a pair of input/outputs. All pair of input/output arelisted on Ipyannotator's docs. CheckIpyannotator tutorialsfor a quickly demonstration of the library.Run ipyannotator testsTo run Ipyannotator's tests:InstallpoetryCreate the test environment withpoetry installActivate the poetry environment usingpoetry shellRun tests by executingnbdev_test_nbsRun ipyannotator as stand-alone web app using voilaIpyannotator can be executed as a web app using thevoilalibrary. The following sections describe how to run using poetry and pip.Using poetryOn your terminal:cd{project_root}poetryinstall--no-devAny jupyter notebook with ipyannotator can be executed as an standalone web application. An example of voila usage it's available in the current repository and can be executed as it follow:poetryrunvoilanbs/09_voila_example.ipynb--enable_nbextensions=TrueUsing pipThe installation and execution process can also be done using pip.cd{project_root}pipinstall.pipinstallvoilavoilanbs/09_voila_example.ipynb--enable_nbextensions=TrueJupyter lab trouble shootingFor clean (re)install make sure to have all the lab extencions active:jupyter lab cleanto remove the staging and static directories from the labipywidgets:jupyter labextension install @jupyter-widgets/jupyterlab-manageripycanvas:jupyter labextension install @jupyter-widgets/jupyterlab-manager ipycanvasipyevents:jupyter labextension install @jupyter-widgets/jupyterlab-manager ipyeventsnbdime:nbdime extensions --enable [--sys-prefix/--user/--system]viola:jupyter labextension install @jupyter-voila/jupyterlab-previewHow to contributeCheck outCONTRIBUTING.mdand since ipyannotator is build using nbdev reading
thenbdev tutorialand related docs will be very helpful.Additional resourcesjupytercon 2020 talk.Recording of jupytercon 2020talk explaining the high level concepts / vision of ipyannotator.AcknowledgementsThe authors acknowledge the financial support by the Federal Ministry for Digital and Transport of Germany under the program mFUND (project number 19F2160A).CopyrightCopyright 2022 onwards, Palaimon GmbH. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this project's files except in compliance with the License. A copy of the License is provided in the LICENSE file in this repository.