1.1.0-dev.517.68412ef7 • Published 2 years ago

dotdata_widgets v1.1.0-dev.517.68412ef7

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
2 years ago

Architecture of IFF Jupyter Widgets

Widgets are developed using ipywidgets packages. The ipywidgets package provides the base class for all widgets and mechanisms for integrating them with React.

Widgets using react consists of three parts:

  1. (Python) Main widget class which links widget to js modules, defines widget state and provides methods to interact with widget.
  2. (JS/TS) Entry widget class on js side which is responsible for rendering widget and handling widget state changes.
  3. (JS/TS) React app which is initialized in entry widget class.

Respective code can be found in:

  1. unified_core_api/dotdata_widgets/dotdata_widgets/widgets/<widget_name>.py
  2. unified_core_api/dotdata_widgets/src/widgets/<widget_name>.ts
  3. unified_core_api/dotdata_widgets/src/widgets/<widget_name>/<widget_name>View.tsx

Detailed explanation on ipywidgets architecture can be found here.

Backend - Frontend widget communication

We are providing two base utilities to simplify communication between backend and frontend:

  • useModelState
  • useBackendWidgetApi

useModelState

useModelState is a hook which allows to subscribe to widget state changes and update widget state from frontend.

it uses WidgetModel methods get, set, and save_changes and updates state when on('change:<observed_model_field>') event is triggered.

Usage

import { useModelState } from '@dotdata/ui-widgets';

const [likedFeatures, setLikedFeatures] = useModelState<
  FeatureLeaderboardWidgetState,
  'liked_features'
>('liked_features')();

useBackendWidgetApi

useBackendWidgetApi is a hook which allows to call backend widget api methods.

Usage

import { useBackendWidgetApi } from '@utils/backend-widget-api';

const saveUserExplanation = useBackendWidgetApi('set_user_explanation');

saveUserExplanation({ id, user_explanation })
  .then(() => props.onClose())
  .catch(e => console.error(e));

Development of the IFF Jupyter Widgets setup


Currently it is not possible to develop IFF Jupyter Widgets with dotdata package installed from PyPi.

In order to develop IFF Jupyter Widgets and use dotdata package one have two options:

  1. build dotdata package utilizing jars from already built dotdata package
  2. build dotdata package from source code with compiling runtime jars

(Option 1) IFF Jupyter Widgets setup utilizing jars from already built dotdata package

Obtaining dotdata package

 pip download dotdata \
        --extra-index-url 'https://<USERNAME>:<PASSWORD>@download.dotdata.com/feature-factory/whl/stable/' \
        --extra-index-url https://download.pytorch.org/whl/cpu

Environment requirements

Following items must be prepared before initializing widgets developments environment:

  • yarn
  • IFF_TEST_DATASETS_USERNAME
  • IFF_TEST_DATASETS_PASSWORD
  • java 11 (optional, required for using actual IFF functionality)

Setup instructions

  1. Create virtual environment and setup local dotdata package
    make prepare_frontend_dev_env_with_jar_from_external_wheel EXT_WHL=<PATH_TO_DOWNLOADED_WHEEL>
  1. Start building of widget js bundle in watch mode (continuous process)
   make run_yarn_watch_compilation_of_dotdata_widgets
  1. Start jupyterlab (continuous process)
    make start_jupyterlab

(Option 2) IFF Jupyter Widgets setup with jar compilation

(TBD)

1.4.0-b2.dev37

1 year ago

1.4.0-b2.dev32

1 year ago

1.4.0-b2.dev31

1 year ago

1.4.0-b2.dev25

1 year ago

1.4.0-b2.dev26

1 year ago

1.4.0-b2.dev21

1 year ago

1.4.0-b2.dev29

1 year ago

1.4.0-b2.dev4

1 year ago

1.4.0-b2.dev7

1 year ago

1.4.0-b2.dev11

1 year ago

1.4.0-b2.dev17

1 year ago

1.4.0-b2.dev18

1 year ago

1.3.0-b5.dev129

1 year ago

1.3.0-b5.dev125

1 year ago

1.3.0-b5.dev115

1 year ago

1.3.0-b5.dev112

1 year ago

1.4.0-b2.dev2

1 year ago

1.4.0-b1

1 year ago

1.3.0-b5.dev106

1 year ago

1.3.0-b5.dev102

1 year ago

1.3.0-b5.dev104

1 year ago

1.3.0-b5.dev105

1 year ago

1.3.0-b5.dev101

1 year ago

1.3.0-b5.dev95

1 year ago

1.3.0-b5.dev99

1 year ago

1.3.0-b5.dev98

1 year ago

1.3.0-b5.dev90

1 year ago

1.3.0-b5.dev84

1 year ago

1.3.0-b5.dev82

1 year ago

1.3.0-b5.dev85

1 year ago

1.3.0

1 year ago

1.3.0-b5.dev81

1 year ago

1.3.0-b5.dev73

1 year ago

1.3.0-b5.dev71

1 year ago

1.3.0-b5.dev77

1 year ago

1.3.0-b5.dev74

1 year ago

1.3.0-b5.dev61

1 year ago

1.3.0-b5.dev66

1 year ago

1.3.0-b5.dev55

1 year ago

1.3.0-b5.dev59

1 year ago

1.3.0-b5.dev56

1 year ago

1.3.0-b4.post1

1 year ago

1.3.0-b5.dev29

1 year ago

1.3.0-b5.dev45

1 year ago

1.3.0-b5.dev32

1 year ago

1.3.0-b5.dev37

1 year ago

1.3.0-b5.dev35

1 year ago

1.3.0-b5.dev24

1 year ago

1.3.0-b5.dev13

1 year ago

1.3.0-b5.dev19

1 year ago

1.3.0-b5.dev8

1 year ago

1.3.0-b5.dev2

1 year ago

1.3.0-b5.dev3

1 year ago

1.3.0-b5.dev6

1 year ago

1.3.0-b4.dev116

1 year ago

1.3.0-b4.dev124

1 year ago

1.3.0-b4

1 year ago

1.2.2

1 year ago

1.3.0-b4.dev108

1 year ago

1.3.0-b4.dev101

1 year ago

1.3.0-b4.dev113

1 year ago

1.3.0-b4.dev114

1 year ago

1.3.0-b4.dev88

1 year ago

1.3.0-b4.dev94

1 year ago

1.3.0-b4.dev96

1 year ago

1.3.0-b4.dev95

1 year ago

1.3.0-b4.dev68

1 year ago

1.3.0-b4.dev62

1 year ago

1.3.0-b4.dev70

1 year ago

1.3.0-b4.dev76

1 year ago

1.3.0-b4.dev80

1 year ago

1.3.0-b4.dev59

1 year ago

1.3.0-b4.dev52

1 year ago

1.3.0-b4.dev55

1 year ago

1.3.0-b4.dev47

1 year ago

1.3.0-b4.dev46

1 year ago

1.3.0-b4.dev41

1 year ago

1.3.0-b3.post1

1 year ago

1.3.0-b4.dev35

1 year ago

1.3.0-b4.dev33

1 year ago

1.3.0-b4.dev40

1 year ago

1.3.0-b4.dev29

1 year ago

1.3.0-b4.dev13

1 year ago

1.3.0-b4.dev19

1 year ago

1.3.0-b4.dev11

1 year ago

1.3.0-b4.dev23

1 year ago

1.3.0-b4.dev8

1 year ago

1.3.0-b4.dev6

1 year ago

1.3.0-b4.dev3

1 year ago

1.3.0-b3.dev80

1 year ago

1.3.0-b3.dev86

1 year ago

1.3.0-b3

1 year ago

1.3.0-b3.dev76

1 year ago

1.3.0-b3.dev74

1 year ago

1.3.0-b3.dev73

1 year ago

1.3.0-b3.dev67

1 year ago

1.3.0-b3.dev61

1 year ago

1.3.0-b3.dev58

1 year ago

1.3.0-b2.post2

1 year ago

1.3.0-b3.dev42

1 year ago

1.3.0-b3.dev39

1 year ago

1.3.0-b3.dev55

1 year ago

1.3.0-b3.dev50

1 year ago

1.3.0-b3.dev37

1 year ago

1.3.0-b3.dev34

1 year ago

1.3.0-b3.dev31

1 year ago

1.3.0-b3.dev30

1 year ago

1.3.0-b3.dev26

1 year ago

1.3.0-b3.dev21

1 year ago

1.3.0-b2.post1

1 year ago

1.3.0-b3.dev14

1 year ago

1.3.0-b3.dev11

1 year ago

1.3.0-b2.dev106

1 year ago

1.3.0-b2.dev102

1 year ago

1.3.0-b2.dev117

1 year ago

1.3.0-b2.dev115

1 year ago

1.2.1-post1.dev3

2 years ago

1.3.0-b3.dev5

1 year ago

1.3.0-b3.dev9

1 year ago

1.3.0-b2.dev19

2 years ago

1.3.0-b2.dev14

2 years ago

1.3.0-b2.dev28

2 years ago

1.3.0-b1.post1

2 years ago

1.3.0-b2.dev24

2 years ago

1.3.0-b2.dev53

2 years ago

1.2.0-b6.dev90

2 years ago

1.2.0-b6.dev88

2 years ago

1.3.0-b2.dev63

2 years ago

1.3.0-b2.dev61

2 years ago

1.2.0-b6.dev83

2 years ago

1.3.0-b2.dev60

2 years ago

1.3.0-b2.dev37

2 years ago

1.3.0-b2.dev33

2 years ago

1.3.0-b2.dev30

2 years ago

1.3.0-b2.dev32

2 years ago

1.3.0-b2.dev46

2 years ago

1.3.0-b2.dev41

2 years ago

1.3.0-b2.dev43

2 years ago

1.3.0-b3.dev10

1 year ago

1.3.0-b2.dev96

1 year ago

1.3.0-b2.dev95

1 year ago

1.3.0-b2.dev92

1 year ago

1.3.0-b2.dev91

1 year ago

1.3.0-b2.dev90

1 year ago

1.3.0-b2.dev78

1 year ago

1.3.0-b2.dev74

1 year ago

1.3.0-b2.dev73

1 year ago

1.3.0-b2.dev76

1 year ago

1.3.0-b2.dev75

1 year ago

1.3.0-b2.dev71

2 years ago

1.3.0-b2

1 year ago

1.3.0-b1

2 years ago

1.3.0-b2.dev83

1 year ago

1.3.0-b2.dev8

2 years ago

1.3.0-b2.dev1

2 years ago

1.3.0-b2.dev3

2 years ago

1.2.0-b6.dev81

2 years ago

1.2.0-b6.dev78

2 years ago

1.2.0-b6.dev77

2 years ago

1.2.0-b6.dev75

2 years ago

1.2.0-b6.dev73

2 years ago

1.2.1

2 years ago

1.2.0-b6.dev68

2 years ago

1.2.0-b6.dev66

2 years ago

1.2.0-b6.dev65

2 years ago

1.2.0-b6.dev64

2 years ago

1.2.0-b6.dev59

2 years ago

1.2.0-b6.dev62

2 years ago

1.2.0-b6.dev60

2 years ago

1.2.0-b6.dev58

2 years ago

1.2.0-b6.dev56

2 years ago

1.2.0-b6.dev54

2 years ago

1.2.0-b6.dev53

2 years ago

1.2.0

2 years ago

1.2.0-b6.dev50

2 years ago

1.2.0-b5.post1

2 years ago

1.2.0-b6.dev1

2 years ago

1.2.0-b6.dev7

2 years ago

1.2.0-b6.dev16

2 years ago

1.2.0-b6.dev11

2 years ago

1.2.0-b6.dev47

2 years ago

1.2.0-b6.dev48

2 years ago

1.2.0-b6.dev45

2 years ago

1.2.0-b6.dev46

2 years ago

1.2.0-b6.dev43

2 years ago

1.2.0-b6.dev41

2 years ago

1.2.0-b6.dev42

2 years ago

1.2.0-b6.dev37

2 years ago

1.2.0-b6.dev30

2 years ago

1.2.0-b6.dev27

2 years ago

1.2.0-b6.dev21

2 years ago

1.2.0-b6.dev22

2 years ago

1.2.0-b6.dev20

2 years ago

1.2.0-b5.dev83

2 years ago

1.2.0-b5.dev62

2 years ago

1.2.0-b5.dev79

2 years ago

1.2.0-b5.dev70

2 years ago

1.2.0-b5.dev45

2 years ago

1.2.0-b5.dev47

2 years ago

1.2.0-b5.dev40

2 years ago

1.2.0-b5.dev42

2 years ago

1.2.0-b5.dev57

2 years ago

1.2.0-b5.dev51

2 years ago

1.2.0-b5.dev52

2 years ago

1.2.0-b5

2 years ago

1.2.0-b5.dev36

2 years ago

1.2.0-b5.dev29

2 years ago

1.2.0-b5.dev35

2 years ago

1.2.0-b5.dev32

2 years ago

1.2.0-b5.dev22

2 years ago

1.2.0-b5.dev23

2 years ago

1.2.0-b4.post1

2 years ago

1.2.0-b3.dev161

2 years ago

1.2.0-b5.dev6

2 years ago

1.2.0-b5.dev20

2 years ago

1.2.0-b5.dev16

2 years ago

1.2.0-b5.dev17

2 years ago

1.2.0-b5.dev11

2 years ago

1.2.0-b4

2 years ago

1.2.0-b3.dev147

2 years ago

1.2.0-b3.dev150

2 years ago

1.2.0-b3.dev153

2 years ago

1.2.0-b3.dev154

2 years ago

1.2.0-b3.dev143

2 years ago

1.2.0-b3.dev140

2 years ago

1.2.0-b3.dev138

2 years ago

1.2.0-b3.dev134

2 years ago

1.2.0-b3.dev130

2 years ago

1.2.0-b3.dev129

2 years ago

1.2.0-b3.dev121

2 years ago

1.2.0-b3.dev125

2 years ago

1.2.0-b3.dev119

2 years ago

1.2.0-b3.dev115

2 years ago

1.2.0-b2.post3

2 years ago

1.2.0-b3.dev112

2 years ago

1.2.0-b3.dev109

2 years ago

1.2.0-b3.dev108

2 years ago

1.2.0-b3.dev104

2 years ago

1.2.0-b3.post1

2 years ago

1.2.0-b2.post2

2 years ago

1.2.0-b3.dev100

2 years ago

1.2.0-b3.dev93

2 years ago

1.2.0-b3.dev92

2 years ago

1.2.0-b3.dev90

2 years ago

1.2.0-b3.dev86

2 years ago

1.2.0-b3

2 years ago

1.2.0-b3.dev80

2 years ago

1.2.0-b3.dev72

2 years ago

1.2.0-b3.dev64

2 years ago

1.2.0-b3.dev63

2 years ago

1.2.0-b3.dev59

2 years ago

1.2.0-b3.dev50

2 years ago

1.2.0-b3.dev44

2 years ago

1.2.0-b3.dev41

2 years ago

1.2.0-b3.dev39

2 years ago

1.2.0-b3.dev35

2 years ago

1.2.0-b2.post1

2 years ago

1.2.0-b2

2 years ago

12.2.0-b1

2 years ago

0.0.0-a1

2 years ago

1.1.0

2 years ago

1.2.0-b1

2 years ago

1.1.0-b10.post1

2 years ago

1.1.0-b10

2 years ago

0.0.0-dev.0.mk5

2 years ago

0.0.0-dev.0.mk3

2 years ago

1.1.0-b9.post2

2 years ago

0.0.0-dev.0.mk2

2 years ago

0.0.0-dev.0.mk-1

2 years ago

0.0.0-dev.0.mk1

2 years ago

1.1.0-b9.post1

2 years ago

1.1.0-b9

2 years ago

1.1.0-b8.post2

2 years ago

1.1.0-b8.post1

2 years ago

1.1.0-b8

2 years ago

1.1.0-b6

2 years ago

1.1.0-b5

2 years ago

1.1.0-b4

3 years ago

1.1.0-b3

3 years ago

1.1.0-b7

2 years ago

0.5.0

3 years ago

1.1.0-a1

3 years ago

0.3.4

3 years ago

0.4.1

3 years ago

1.0.0

3 years ago

0.4.0

3 years ago

0.3.3

3 years ago

0.0.129

3 years ago

0.0.123

3 years ago

0.0.121

3 years ago

0.3.0

3 years ago

0.3.2

3 years ago

0.3.1

3 years ago

0.0.130

3 years ago

0.0.28

3 years ago

0.0.29

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.1.20

3 years ago

0.1.10

3 years ago

0.0.0

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.9

3 years ago

0.1.6

3 years ago

0.1.4

3 years ago

0.1.5

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago