Source code for yandex_market_language.models.gift
from typing import List
from yandex_market_language.models import abstract
[docs]class Gift(abstract.AbstractModel):
"""
Gift model.
Docs:
https://yandex.ru/support/partnermarket/elements/promo-gift.html
"""
__slots__ = [
'id',
'name',
'pictures'
]
def __init__(
self,
id: str,
name: str,
pictures: List[str] = None,
):
super().__init__()
self.id = id
self.name = name
self.pictures = pictures
[docs] def create_dict(self, **kwargs) -> dict:
return dict(id=self.id, name=self.name, pictures=self.pictures)
[docs] def create_xml(self, **kwargs) -> "abstract.XMLElement":
gift_el = abstract.XMLElement("gift", {"id": self.id})
name_el = abstract.XMLSubElement(gift_el, "name")
name_el.text = self.name
# Add pictures
if self.pictures:
for url in self.pictures:
p_el = abstract.XMLSubElement(gift_el, "picture")
p_el.text = url
return gift_el
[docs] @staticmethod
def from_xml(gift_el: abstract.XMLElement) -> "Gift":
kwargs = {"pictures": []}
# Parse element
for el in gift_el:
if el.tag == "name":
kwargs["name"] = el.text
elif el.tag == "picture":
kwargs["pictures"].append(el.text)
return Gift(id=gift_el.attrib.get("id"), **kwargs)