gguf-py : use pyyaml instead of python-frontmatter
HF transformers already depends on pyyaml for model cards, so it should already be in the environment of the users of the convert scripts, unlike python-frontmatter. This should be completely equivalent since the model cards seem to use only YAML and never TOML.
This commit is contained in:
parent
3b1766a992
commit
78a42fbee5
4 changed files with 15 additions and 9 deletions
|
@ -90,7 +90,6 @@ let
|
||||||
ps.tiktoken
|
ps.tiktoken
|
||||||
ps.torchWithoutCuda
|
ps.torchWithoutCuda
|
||||||
ps.transformers
|
ps.transformers
|
||||||
ps.python-frontmatter
|
|
||||||
|
|
||||||
# server bench
|
# server bench
|
||||||
ps.matplotlib
|
ps.matplotlib
|
||||||
|
|
|
@ -2,6 +2,7 @@ from __future__ import annotations
|
||||||
|
|
||||||
import re
|
import re
|
||||||
import json
|
import json
|
||||||
|
import yaml
|
||||||
import logging
|
import logging
|
||||||
from pathlib import Path
|
from pathlib import Path
|
||||||
from typing import Any, Optional
|
from typing import Any, Optional
|
||||||
|
@ -116,12 +117,18 @@ class Metadata:
|
||||||
if not model_card_path.is_file():
|
if not model_card_path.is_file():
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
try:
|
# The model card metadata is assumed to always be in YAML
|
||||||
import frontmatter
|
# ref: https://github.com/huggingface/transformers/blob/a5c642fe7a1f25d3bdcd76991443ba6ff7ee34b2/src/transformers/modelcard.py#L468-L473
|
||||||
with open(model_card_path, "r", encoding="utf-8") as f:
|
with open(model_card_path, "r", encoding="utf-8") as f:
|
||||||
return frontmatter.load(f).to_dict()
|
if f.readline() == "---\n":
|
||||||
except ModuleNotFoundError:
|
raw = f.read().partition("---\n")[0]
|
||||||
logger.warning("module 'frontmatter' not available. Metadata from README.md will NOT be read.")
|
data = yaml.safe_load(raw)
|
||||||
|
if isinstance(data, dict):
|
||||||
|
return data
|
||||||
|
else:
|
||||||
|
logger.error(f"while reading YAML model card frontmatter, data is {type(data)} instead of dict")
|
||||||
|
return {}
|
||||||
|
else:
|
||||||
return {}
|
return {}
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
|
@ -22,6 +22,7 @@ classifiers = [
|
||||||
python = ">=3.8"
|
python = ">=3.8"
|
||||||
numpy = ">=1.17"
|
numpy = ">=1.17"
|
||||||
tqdm = ">=4.27"
|
tqdm = ">=4.27"
|
||||||
|
pyyaml = ">=5.1"
|
||||||
|
|
||||||
[tool.poetry.dev-dependencies]
|
[tool.poetry.dev-dependencies]
|
||||||
pytest = "^5.2"
|
pytest = "^5.2"
|
||||||
|
|
|
@ -3,4 +3,3 @@ sentencepiece~=0.2.0
|
||||||
transformers>=4.40.1,<5.0.0
|
transformers>=4.40.1,<5.0.0
|
||||||
gguf>=0.1.0
|
gguf>=0.1.0
|
||||||
protobuf>=4.21.0,<5.0.0
|
protobuf>=4.21.0,<5.0.0
|
||||||
python-frontmatter~=1.0.1
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue