1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-08-12 18:24:04 +02:00
Files
github.com_openSUSE_osc/osc/obs_api/attributes.py

47 lines
1.1 KiB
Python

from typing import Any
from ..util.models import * # pylint: disable=wildcard-import,unused-wildcard-import
class Attribute(XmlModel):
name: str = Field(
xml_attribute=True,
)
namespace: str = Field(
xml_attribute=True,
)
value: str = Field(
xml_set_text=True,
xml_wrapped=True,
)
class Attributes(XmlModel):
XML_TAG = "attributes"
attribute_list: List[Attribute] = Field(
xml_name="attribute",
)
@classmethod
def from_api(
cls, apiurl: str, project: str, package: Optional[str] = None, *, attr: Optional[str] = None
) -> "Attributes":
import urllib.error
from .. import oscerr
from ..connection import http_request
from ..core import makeurl
if package:
url_path = ["source", project, package, "_attribute"]
else:
url_path = ["source", project, "_attribute"]
if attr:
url_path.append(attr)
url_query: Dict[str, Any] = {}
url = makeurl(apiurl, url_path, url_query)
response = http_request("GET", url)
return cls.from_file(response)