File size: 3,524 Bytes
cb5b71d
 
 
e92e659
cb5b71d
e92e659
 
cb5b71d
 
 
 
e92e659
bc133ae
 
 
 
 
 
 
 
e92e659
 
 
 
 
 
 
 
 
 
bc133ae
 
 
 
 
 
 
 
 
 
 
 
 
cb5b71d
 
 
e92e659
 
 
 
cb5b71d
e92e659
cb5b71d
 
 
 
1b94fec
cb5b71d
 
 
1b94fec
cb5b71d
 
1b94fec
cb5b71d
7fe906d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import streamlit as st

from core.state import Metadata
from events.metadata import find_license_index
from events.metadata import handle_metadata_change
from events.metadata import LICENSES
from events.metadata import LICENSES_URL
from events.metadata import MetadataEvent


def render_metadata():
    """Renders the `Metadata` view."""
    metadata: Metadata = st.session_state[Metadata]
    col1, col2 = st.columns([1, 1])
    with col1.expander("**Generic metadata**", expanded=True):
        _render_generic_metadata(metadata)


def _render_generic_metadata(metadata: Metadata):
    """Renders all non-RAI generic metadata."""
    index = find_license_index(metadata.license)
    key = "metadata-url"
    st.text_input(
        label="URL",
        key=key,
        value=metadata.url,
        placeholder="URL to the dataset.",
        on_change=handle_metadata_change,
        args=(MetadataEvent.URL, metadata, key),
    )
    key = "metadata-version"
    st.text_input(
        label="Version (`MAJOR.MINOR.PATCH`)",
        key=key,
        help=(
            "Refer to https://semver.org/spec/v2.0.0.html for more information on the"
            " format."
        ),
        value=metadata.version,
        placeholder="1.0.0",
        on_change=handle_metadata_change,
        args=(MetadataEvent.VERSION, metadata, key),
    )
    key = "metadata-license"
    st.selectbox(
        label="License",
        help=(
            "More information on license names and meaning can be found"
            f" [here]({LICENSES_URL})."
        ),
        key=key,
        options=LICENSES.keys(),
        index=index,
        on_change=handle_metadata_change,
        args=(MetadataEvent.LICENSE, metadata, key),
    )
    key = "metadata-cite-as"
    st.text_area(
        label="Citation",
        key=key,
        value=metadata.cite_as,
        placeholder="@book{\n  title={Title}\n}",
        on_change=handle_metadata_change,
        args=(MetadataEvent.CITE_AS, metadata, key),
    )
    key = "metadata-date-published"
    st.date_input(
        label="Date of first broadcast/publication.",
        key=key,
        value=metadata.date_published,
        on_change=handle_metadata_change,
        args=(MetadataEvent.DATE_PUBLISHED, metadata, key),
    )
    if metadata.creators:
        creator = metadata.creators[0]
        col1, col2, col3 = st.columns([1, 1, 1])
        key = "metadata-creator-name"
        col1.text_input(
            label="Creator name",
            key=key,
            value=creator.name,
            on_change=handle_metadata_change,
            placeholder="A person or an organization",
            args=(MetadataEvent.CREATOR_NAME, metadata, key),
        )
        key = "metadata-creator-url"
        col2.text_input(
            label="Creator URL",
            key=key,
            value=creator.url,
            placeholder="https://mlcommons.org",
            on_change=handle_metadata_change,
            args=(MetadataEvent.CREATOR_URL, metadata, key),
        )
        key = "metadata-creator-remove"
        col3.button(
            "✖️",
            key=key,
            help="Remove the creator",
            on_click=handle_metadata_change,
            args=(MetadataEvent.CREATOR_REMOVE, metadata, key),
        )
    else:
        key = "metadata-add-creator"
        st.button(
            label="✚ Add a creator",
            key=key,
            on_click=handle_metadata_change,
            args=(MetadataEvent.CREATOR_ADD, metadata, key),
        )