croissant-editor / events /metadata.py
marcenacp's picture
Deploy (see actual commits on https://github.com/mlcommons/croissant).
e92e659
raw
history blame
4.87 kB
import enum
import streamlit as st
from core.state import Metadata
# List from:
LICENSES_URL = "https://huggingface.co/docs/hub/repositories-licenses"
LICENSES = {
"Unknown": "unknown",
"Other": "other",
"Apache license 2.0": "apache-2.0",
"MIT": "mit",
"OpenRAIL license family": "openrail",
"BigScience OpenRAIL-M": "bigscience-openrail-m",
"CreativeML OpenRAIL-M": "creativeml-openrail-m",
"BigScience BLOOM RAIL 1.0": "bigscience-bloom-rail-1.0",
"BigCode Open RAIL-M v1": "bigcode-openrail-m",
"Academic Free License v3.0": "afl-3.0",
"Artistic license 2.0": "artistic-2.0",
"Boost Software License 1.0": "bsl-1.0",
"BSD license family": "bsd",
"BSD 2-clause “Simplified” license": "bsd-2-clause",
"BSD 3-clause “New” or “Revised” license": "bsd-3-clause",
"BSD 3-clause Clear license": "bsd-3-clause-clear",
"Computational Use of Data Agreement": "c-uda",
"Creative Commons license family": "cc",
"Creative Commons Zero v1.0 Universal": "cc0-1.0",
"Creative Commons Attribution 2.0": "cc-by-2.0",
"Creative Commons Attribution 2.5": "cc-by-2.5",
"Creative Commons Attribution 3.0": "cc-by-3.0",
"Creative Commons Attribution 4.0": "cc-by-4.0",
"Creative Commons Attribution Share Alike 3.0": "cc-by-sa-3.0",
"Creative Commons Attribution Share Alike 4.0": "cc-by-sa-4.0",
"Creative Commons Attribution Non Commercial 2.0": "cc-by-nc-2.0",
"Creative Commons Attribution Non Commercial 3.0": "cc-by-nc-3.0",
"Creative Commons Attribution Non Commercial 4.0": "cc-by-nc-4.0",
"Creative Commons Attribution No Derivatives 4.0": "cc-by-nd-4.0",
"Creative Commons Attribution Non Commercial No Derivatives 3.0": "cc-by-nc-nd-3.0",
"Creative Commons Attribution Non Commercial No Derivatives 4.0": "cc-by-nc-nd-4.0",
"Creative Commons Attribution Non Commercial Share Alike 2.0": "cc-by-nc-sa-2.0",
"Creative Commons Attribution Non Commercial Share Alike 3.0": "cc-by-nc-sa-3.0",
"Creative Commons Attribution Non Commercial Share Alike 4.0": "cc-by-nc-sa-4.0",
"Community Data License Agreement – Sharing, Version 1.0": "cdla-sharing-1.0",
"Community Data License Agreement – Permissive, Version 1.0": "cdla-permissive-1.0",
"Community Data License Agreement – Permissive, Version 2.0": "cdla-permissive-2.0",
"Do What The F*ck You Want To Public License": "wtfpl",
"Educational Community License v2.0": "ecl-2.0",
"Eclipse Public License 1.0": "epl-1.0",
"Eclipse Public License 2.0": "epl-2.0",
"European Union Public License 1.1": "eupl-1.1",
"GNU Affero General Public License v3.0": "agpl-3.0",
"GNU Free Documentation License family": "gfdl",
"GNU General Public License family": "gpl",
"GNU General Public License v2.0": "gpl-2.0",
"GNU General Public License v3.0": "gpl-3.0",
"GNU Lesser General Public License family": "lgpl",
"GNU Lesser General Public License v2.1": "lgpl-2.1",
"GNU Lesser General Public License v3.0": "lgpl-3.0",
"ISC": "isc",
"LaTeX Project Public License v1.3c": "lppl-1.3c",
"Microsoft Public License": "ms-pl",
"Mozilla Public License 2.0": "mpl-2.0",
"Open Data Commons License Attribution family": "odc-by",
"Open Database License family": "odbl",
"Open Rail++-M License": "openrail++",
"Open Software License 3.0": "osl-3.0",
"PostgreSQL License": "postgresql",
"SIL Open Font License 1.1": "ofl-1.1",
"University of Illinois/NCSA Open Source License": "ncsa",
"The Unlicense": "unlicense",
"zLib License": "zlib",
"Open Data Commons Public Domain Dedication and License": "pddl",
"Lesser General Public License For Linguistic Resources": "lgpl-lr",
"DeepFloyd IF Research License Agreement": "deepfloyd-if-license",
"Llama 2 Community License Agreement": "llama2",
}
def find_license_index(code: str) -> int | None:
"""Finds the index in the list of LICENSES."""
for index, license_code in enumerate(LICENSES.values()):
if license_code == code:
return index
return None
class MetadataEvent(enum.Enum):
"""Event that triggers a metadata change."""
NAME = "NAME"
DESCRIPTION = "DESCRIPTION"
URL = "URL"
LICENSE = "LICENSE"
CITATION = "CITATION"
def handle_metadata_change(event: MetadataEvent, metadata: Metadata, key: str):
if event == MetadataEvent.NAME:
metadata.name = st.session_state[key]
elif event == MetadataEvent.DESCRIPTION:
metadata.description = st.session_state[key]
elif event == MetadataEvent.LICENSE:
metadata.license = LICENSES.get(st.session_state[key])
elif event == MetadataEvent.CITATION:
metadata.citation = st.session_state[key]
elif event == MetadataEvent.URL:
metadata.url = st.session_state[key]