Spaces:
Running
Running
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] | |