Spaces:
Runtime error
Runtime error
File size: 2,611 Bytes
e814211 |
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 |
import pytest
import markdown
from bs4 import BeautifulSoup
from compliance_checks import (
IntendedPurposeCheck, IntendedPurposeResult,
)
@pytest.fixture
def intended_purpose_model_card():
return """
# Model Card for Sample Model
Some random info...
## Uses
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
### Direct Use
Here is some info about direct uses...
### Downstream Use [optional]
<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
[More Information Needed]
### Out-of-Scope Use
<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
Here is some info about out-of-scope uses...
## Bias, Risks, and Limitations
<!-- This section is meant to convey both technical and sociotechnical limitations. -->
[More Information Needed]
"""
@pytest.fixture
def bad_intended_purpose_model_card():
return """
# Model Card for Sample Model
Some random info...
## Uses
<!-- Address questions around how the model is intended to be used, including the foreseeable users of the model and those affected by the model. -->
### Direct Use
<!-- This section is for the model use without fine-tuning or plugging into a larger ecosystem/app. -->
[More Information Needed]
### Downstream Use [optional]
<!-- This section is for the model use when fine-tuned for a task, or when plugged into a larger ecosystem/app -->
[More Information Needed]
### Out-of-Scope Use
<!-- This section addresses misuse, malicious use, and uses that the model will not work well for. -->
[More Information Needed]
## Bias, Risks, and Limitations
<!-- This section is meant to convey both technical and sociotechnical limitations. -->
[More Information Needed]
"""
@pytest.mark.parametrize("check,card,expected", [
(IntendedPurposeCheck(), "intended_purpose_model_card", IntendedPurposeResult(
status=True,
direct_use="Here is some info about direct uses...",
downstream_use=None,
out_of_scope_use="Here is some info about out-of-scope uses...",
)),
(IntendedPurposeCheck(), "bad_intended_purpose_model_card", IntendedPurposeResult()),
])
def test_run_checks(check, card, expected, request):
card = request.getfixturevalue(card)
model_card_html = markdown.markdown(card)
card_soup = BeautifulSoup(model_card_html, features="html.parser")
results = check.run_check(card_soup)
assert results == expected
|