lpdb_python.defs
Data type wrappers for data from LPDB queries.
1""" 2Data type wrappers for data from LPDB queries. 3""" 4 5import datetime 6import json 7 8from enum import StrEnum 9from functools import lru_cache 10from typing import Any, Optional, Union 11 12type Number = Union[int, float] 13 14__all__ = [ 15 "OpponentType", 16 "Broadcasters", 17 "Company", 18 "Datapoint", 19 "ExternalMediaLink", 20 "Match", 21 "MatchGame", 22 "MatchOpponent", 23 "Placement", 24 "Player", 25 "Series", 26 "SquadPlayer", 27 "StandingsEntry", 28 "StandingsTable", 29 "Team", 30 "Tournament", 31 "Transfer", 32 "TeamTemplate", 33] 34 35 36@lru_cache 37def _parseIsoDate(date_str: str) -> Optional[datetime.date]: 38 try: 39 return datetime.date.fromisoformat(date_str) 40 except ValueError: 41 return None 42 43 44@lru_cache 45def _parseIsoDateTime(datetime_str: str) -> Optional[datetime.datetime]: 46 try: 47 return datetime.datetime.fromisoformat(datetime_str).replace( 48 tzinfo=datetime.UTC 49 ) 50 except ValueError: 51 return None 52 53 54class OpponentType(StrEnum): 55 """ 56 Enum that defines all valid opponent types in LPDB. 57 """ 58 59 team = "team" 60 solo = "solo" 61 duo = "duo" 62 trio = "trio" 63 quad = "quad" 64 literal = "literal" 65 66 67class LpdbBaseData: 68 """ 69 Base class of all LPDB data 70 """ 71 72 __raw: dict[str, Any] 73 """ 74 Raw data from LPDB in Python dict form 75 """ 76 77 def __init__(self, raw: dict[str, Any]): 78 self.__raw = raw.copy() 79 80 def _rawGet(self, key: str): 81 """ 82 Gets the value from LPDB data. 83 84 :param key: the key 85 86 :return: the value associated with the key, returns `None` if the key does not exist or the value is an empty string 87 """ 88 value = self.__raw.get(key) 89 if value == "": 90 return None 91 return value 92 93 def __repr__(self): 94 return repr(self.__raw) 95 96 97class LpdbBaseResponseData(LpdbBaseData): 98 """ 99 Base class of all LPDB response data 100 """ 101 102 @property 103 def pageid(self) -> int: 104 return self._rawGet("pageid") 105 106 @property 107 def pagename(self) -> str: 108 return self._rawGet("pagename") 109 110 @property 111 def namespace(self) -> int: 112 return self._rawGet("namespace") 113 114 @property 115 def objectname(self) -> str: 116 return self._rawGet("objectname") 117 118 @property 119 def extradata(self) -> Optional[dict[str, Any]]: 120 return self._rawGet("extradata") 121 122 @property 123 def wiki(self) -> str: 124 return self._rawGet("wiki") 125 126 127class Broadcasters(LpdbBaseResponseData): 128 """ 129 Broadcaster data from LPDB. 130 """ 131 132 @property 133 def id(self) -> str: 134 return self._rawGet("id") 135 136 @property 137 def name(self) -> str: 138 return self._rawGet("name") 139 140 @property 141 def page(self) -> str: 142 return self._rawGet("page") 143 144 @property 145 def position(self) -> str: 146 return self._rawGet("position") 147 148 @property 149 def language(self) -> str: 150 return self._rawGet("language") 151 152 @property 153 def flag(self) -> str: 154 return self._rawGet("flag") 155 156 @property 157 def weight(self) -> float: 158 return self._rawGet("weight") 159 160 @property 161 def date(self) -> Optional[datetime.date]: 162 return _parseIsoDate(self._rawGet("date")) 163 164 @property 165 def parent(self) -> str: 166 return self._rawGet("parent") 167 168 169class Company(LpdbBaseResponseData): 170 """ 171 Company data from LPDB. 172 """ 173 174 @property 175 def name(self) -> str: 176 return self._rawGet("name") 177 178 @property 179 def image(self) -> str: 180 return self._rawGet("image") 181 182 @property 183 def imageurl(self) -> str: 184 return self._rawGet("imageurl") 185 186 @property 187 def imagedark(self) -> str: 188 return self._rawGet("imagedark") 189 190 @property 191 def imagedarkurl(self) -> str: 192 return self._rawGet("imagedarkurl") 193 194 @property 195 def locations(self) -> list: 196 return self._rawGet("locations") 197 198 @property 199 def parentcompany(self) -> str: 200 return self._rawGet("parentcompany") 201 202 @property 203 def sistercompany(self) -> str: 204 return self._rawGet("sistercompany") 205 206 @property 207 def industry(self) -> str: 208 return self._rawGet("industry") 209 210 @property 211 def foundeddate(self) -> Optional[datetime.datetime]: 212 return _parseIsoDateTime(self._rawGet("foundeddate")) 213 214 @property 215 def defunctdate(self) -> Optional[datetime.datetime]: 216 return _parseIsoDateTime(self._rawGet("defunctdate")) 217 218 @property 219 def defunctfate(self) -> str: 220 return self._rawGet("defunctfate") 221 222 @property 223 def links(self) -> dict[str, Any]: 224 return self._rawGet("links") 225 226 227class Datapoint(LpdbBaseResponseData): 228 """ 229 Generic datapoint from LPDB. 230 """ 231 232 @property 233 def type(self) -> str: 234 return self._rawGet("type") 235 236 @property 237 def name(self) -> str: 238 return self._rawGet("name") 239 240 @property 241 def information(self) -> str: 242 return self._rawGet("information") 243 244 @property 245 def imageurl(self) -> str: 246 return self._rawGet("imageurl") 247 248 @property 249 def imagedark(self) -> str: 250 return self._rawGet("imagedark") 251 252 @property 253 def imagedarkurl(self) -> str: 254 return self._rawGet("imagedarkurl") 255 256 @property 257 def date(self) -> Optional[datetime.datetime]: 258 return _parseIsoDateTime(self._rawGet("date")) 259 260 261class ExternalMediaLink(LpdbBaseResponseData): 262 """ 263 External media link from LPDB. 264 """ 265 266 @property 267 def title(self) -> str: 268 return self._rawGet("title") 269 270 @property 271 def translatedtitle(self) -> str: 272 return self._rawGet("translatedtitle") 273 274 @property 275 def link(self) -> str: 276 return self._rawGet("link") 277 278 @property 279 def date(self) -> Optional[datetime.date]: 280 return _parseIsoDate(self._rawGet("date")) 281 282 @property 283 def authors(self) -> dict[str, str]: 284 return self._rawGet("authors") 285 286 @property 287 def language(self) -> str: 288 return self._rawGet("language") 289 290 @property 291 def publisher(self) -> str: 292 return self._rawGet("publisher") 293 294 @property 295 def type(self) -> str: 296 return self._rawGet("type") 297 298 299class Match(LpdbBaseResponseData): 300 """ 301 Match data from LPDB. 302 """ 303 304 @property 305 def match2id(self) -> str: 306 return self._rawGet("match2id") 307 308 @property 309 def match2bracketid(self) -> str: 310 return self._rawGet("match2bracketid") 311 312 @property 313 def status(self) -> str: 314 return self._rawGet("status") 315 316 @property 317 def winner(self) -> str: 318 return self._rawGet("winner") 319 320 @property 321 def walkover(self) -> str: 322 return self._rawGet("walkover") 323 324 @property 325 def resulttype(self) -> str: 326 return self._rawGet("resulttype") 327 328 @property 329 def finished(self) -> bool: 330 return bool(self._rawGet("finished")) 331 332 @property 333 def mode(self) -> str: 334 return self._rawGet("mode") 335 336 @property 337 def type(self) -> str: 338 return self._rawGet("type") 339 340 @property 341 def section(self) -> str: 342 return self._rawGet("section") 343 344 @property 345 def game(self) -> str: 346 return self._rawGet("game") 347 348 @property 349 def patch(self) -> str: 350 return self._rawGet("patch") 351 352 @property 353 def links(self) -> dict[str, Any]: 354 return self._rawGet("links") 355 356 @property 357 def bestof(self) -> Optional[int]: 358 return self._rawGet("bestof") 359 360 @property 361 def date(self) -> Optional[datetime.datetime]: 362 parsed = _parseIsoDateTime(self._rawGet("date")) 363 if not self.dateexact: 364 return parsed 365 elif self.timezone is not None: 366 return parsed.astimezone(tz=self.timezone) 367 return parsed 368 369 @property 370 def dateexact(self) -> bool: 371 return bool(self._rawGet("dateexact")) 372 373 @property 374 def timezone(self) -> Optional[datetime.timezone]: 375 """ 376 Timezone information stored in this match. 377 378 The `timezone` property from this property does not support IANA time zones. 379 """ 380 if not self.dateexact: 381 return None 382 elif self.extradata is None: 383 return None 384 offset: str = self.extradata.get("timezoneoffset") 385 if offset is None: 386 return None 387 sliced_offset = offset.split(":") 388 offset_delta = datetime.timedelta( 389 hours=int(sliced_offset[0]), minutes=int(sliced_offset[1]) 390 ) 391 return datetime.timezone(offset_delta, name=self.extradata.get("timezoneid")) 392 393 @property 394 def stream(self) -> dict[str, Any]: 395 return self._rawGet("stream") 396 397 @property 398 def vod(self) -> str: 399 return self._rawGet("vod") 400 401 @property 402 def tournament(self) -> str: 403 return self._rawGet("tournament") 404 405 @property 406 def parent(self) -> str: 407 return self._rawGet("parent") 408 409 @property 410 def tickername(self) -> str: 411 return self._rawGet("tickername") 412 413 @property 414 def shortname(self) -> str: 415 return self._rawGet("shortname") 416 417 @property 418 def series(self) -> str: 419 return self._rawGet("series") 420 421 @property 422 def icon(self) -> str: 423 return self._rawGet("icon") 424 425 @property 426 def iconurl(self) -> str: 427 return self._rawGet("iconurl") 428 429 @property 430 def icondark(self) -> str: 431 return self._rawGet("icondark") 432 433 @property 434 def icondarkurl(self) -> str: 435 return self._rawGet("icondarkurl") 436 437 @property 438 def liquipediatier(self) -> str: 439 return self._rawGet("liquipediatier") 440 441 @property 442 def liquipediatiertype(self) -> str: 443 return self._rawGet("liquipediatiertype") 444 445 @property 446 def publishertier(self) -> str: 447 return self._rawGet("publishertier") 448 449 @property 450 def match2bracketdata(self) -> dict: 451 return self._rawGet("match2bracketdata") 452 453 @property 454 def match2games(self) -> list["MatchGame"]: 455 return [ 456 MatchGame(self, match2game) for match2game in self._rawGet("match2games") 457 ] 458 459 @property 460 def match2opponents(self) -> list["MatchOpponent"]: 461 return [ 462 MatchOpponent(match2opponent) 463 for match2opponent in self._rawGet("match2opponents") 464 ] 465 466 467class MatchGame(LpdbBaseData): 468 """ 469 Game data stored in a match. 470 """ 471 472 _parent: "Match" 473 474 def __init__(self, parent: "Match", raw: dict[str, Any]): 475 super().__init__(raw) 476 self._parent = parent 477 478 @property 479 def map(self) -> str: 480 return self._rawGet("map") 481 482 @property 483 def subgroup(self) -> str: 484 return self._rawGet("subgroup") 485 486 @property 487 def match2gameid(self) -> int: 488 return self._rawGet("match2gameid") 489 490 @property 491 def scores(self) -> list[Number]: 492 return self._rawGet("scores") 493 494 @property 495 def opponents(self) -> list[dict]: 496 return self._rawGet("opponents") 497 498 @property 499 def status(self) -> str: 500 return self._rawGet("status") 501 502 @property 503 def winner(self) -> str: 504 return self._rawGet("winner") 505 506 @property 507 def walkover(self): 508 return self._rawGet("walkover") 509 510 @property 511 def resulttype(self) -> str: 512 return self._rawGet("resulttype") 513 514 @property 515 def date(self) -> datetime.datetime: 516 parsed = _parseIsoDateTime(self._rawGet("date")) 517 if not self.dateexact: 518 return parsed 519 return parsed.astimezone(self._parent.timezone) 520 521 @property 522 def dateexact(self) -> bool: 523 return self.extradata.get("dateexact") 524 525 @property 526 def mode(self) -> str: 527 return self._rawGet("mode") 528 529 @property 530 def type(self) -> str: 531 return self._rawGet("type") 532 533 @property 534 def game(self) -> str: 535 return self._rawGet("game") 536 537 @property 538 def patch(self) -> str: 539 return self._rawGet("patch") 540 541 @property 542 def vod(self) -> str: 543 return self._rawGet("vod") 544 545 @property 546 def length(self) -> str: 547 return self._rawGet("length") 548 549 @property 550 def extradata(self) -> Optional[dict[str, Any]]: 551 return self._rawGet("extradata") 552 553 554class MatchOpponent(LpdbBaseData): 555 """ 556 Opponent data stored in a match. 557 """ 558 559 @property 560 def id(self) -> int: 561 return self._rawGet("id") 562 563 @property 564 def type(self) -> OpponentType: 565 return OpponentType(self._rawGet("type")) 566 567 @property 568 def name(self) -> str: 569 return self._rawGet("name") 570 571 @property 572 def template(self) -> Optional[str]: 573 return self._rawGet("template") 574 575 @property 576 def icon(self) -> str: 577 return self._rawGet("icon") 578 579 @property 580 def score(self) -> Number: 581 return self._rawGet("score") 582 583 @property 584 def status(self) -> str: 585 return self._rawGet("status") 586 587 @property 588 def placement(self) -> int: 589 return self._rawGet("placement") 590 591 @property 592 def match2players(self) -> list[dict]: 593 return self._rawGet("match2players") 594 595 @property 596 def teamtemplate(self) -> Optional["TeamTemplate"]: 597 if self.template is None: 598 return None 599 return TeamTemplate(self._rawGet("teamtemplate")) 600 601 @property 602 def extradata(self) -> Optional[dict[str, Any]]: 603 return self._rawGet("extradata") 604 605 606class Placement(LpdbBaseResponseData): 607 """ 608 Placement data from LPDB. 609 """ 610 611 @property 612 def tournament(self) -> str: 613 return self._rawGet("tournament") 614 615 @property 616 def series(self) -> str: 617 return self._rawGet("series") 618 619 @property 620 def parent(self) -> str: 621 return self._rawGet("parent") 622 623 @property 624 def imageurl(self) -> str: 625 return self._rawGet("imageurl") 626 627 @property 628 def imagedarkurl(self) -> str: 629 return self._rawGet("imagedarkurl") 630 631 @property 632 def startdate(self) -> Optional[datetime.datetime]: 633 return _parseIsoDateTime(self._rawGet("startdate")) 634 635 @property 636 def date(self) -> Optional[datetime.datetime]: 637 return _parseIsoDateTime(self._rawGet("date")) 638 639 @property 640 def prizemoney(self) -> Number: 641 return self._rawGet("placement") 642 643 @property 644 def weight(self) -> Number: 645 return self._rawGet("weight") 646 647 @property 648 def mode(self) -> str: 649 return self._rawGet("mode") 650 651 @property 652 def type(self) -> str: 653 return self._rawGet("type") 654 655 @property 656 def liquipediatier(self) -> str: 657 return self._rawGet("liquipediatier") 658 659 @property 660 def liquipediatiertype(self) -> str: 661 return self._rawGet("liquipediatiertype") 662 663 @property 664 def publishertier(self) -> str: 665 return self._rawGet("publishertier") 666 667 @property 668 def icon(self) -> str: 669 return self._rawGet("icon") 670 671 @property 672 def iconurl(self) -> str: 673 return self._rawGet("iconurl") 674 675 @property 676 def icondark(self) -> str: 677 return self._rawGet("icondark") 678 679 @property 680 def icondarkurl(self) -> str: 681 return self._rawGet("icondarkurl") 682 683 @property 684 def game(self) -> str: 685 return self._rawGet("game") 686 687 @property 688 def lastvsdata(self) -> dict: 689 return self._rawGet("lastvsdata") 690 691 @property 692 def opponentname(self) -> str: 693 return self._rawGet("opponentname") 694 695 @property 696 def opponenttemplate(self) -> Optional[str]: 697 return self._rawGet("opponenttemplate") 698 699 @property 700 def opponenttype(self) -> OpponentType: 701 return OpponentType(self._rawGet("opponenttype")) 702 703 @property 704 def opponentplayers(self) -> dict: 705 return self._rawGet("opponentplayers") 706 707 @property 708 def qualifier(self) -> str: 709 return self._rawGet("qualifier") 710 711 @property 712 def qualifierpage(self) -> str: 713 return self._rawGet("qualifierpage") 714 715 @property 716 def qualifierurl(self) -> str: 717 return self._rawGet("qualifierurl") 718 719 720class Player(LpdbBaseResponseData): 721 """ 722 Player data from LPDB. 723 """ 724 725 @property 726 def id(self) -> str: 727 return self._rawGet("id") 728 729 @property 730 def alternateid(self) -> str: 731 return self._rawGet("alternateid") 732 733 @property 734 def name(self) -> str: 735 return self._rawGet("name") 736 737 @property 738 def localizedname(self) -> str: 739 return self._rawGet("localizedname") 740 741 @property 742 def type(self) -> str: 743 return self._rawGet("type") 744 745 @property 746 def nationality(self) -> str: 747 return self._rawGet("nationality") 748 749 @property 750 def nationality2(self) -> str: 751 return self._rawGet("nationality2") 752 753 @property 754 def nationality3(self) -> str: 755 return self._rawGet("nationality3") 756 757 @property 758 def region(self) -> str: 759 return self._rawGet("region") 760 761 @property 762 def birthdate(self) -> Optional[datetime.date]: 763 return _parseIsoDate(self._rawGet("birthdate")) 764 765 @property 766 def deathdate(self) -> Optional[datetime.date]: 767 return _parseIsoDate(self._rawGet("deathdate")) 768 769 @property 770 def teampagename(self) -> str: 771 return self._rawGet("teampagename") 772 773 @property 774 def teamtemplate(self) -> str: 775 return self._rawGet("teamtemplate") 776 777 @property 778 def links(self) -> dict: 779 return self._rawGet("links") 780 781 @property 782 def status(self) -> str: 783 return self._rawGet("status") 784 785 @property 786 def earnings(self) -> Number: 787 return self._rawGet("earnings") 788 789 @property 790 def earningsbyyear(self) -> dict[str, Number]: 791 return self._rawGet("earningsbyyear") 792 793 794class Series(LpdbBaseResponseData): 795 """ 796 Tournament series data from LPDB. 797 """ 798 799 @property 800 def name(self) -> str: 801 return self._rawGet("name") 802 803 @property 804 def abbreviation(self) -> str: 805 return self._rawGet("abbreviation") 806 807 @property 808 def image(self) -> str: 809 return self._rawGet("image") 810 811 @property 812 def imageurl(self) -> str: 813 return self._rawGet("imageurl") 814 815 @property 816 def imagedark(self) -> str: 817 return self._rawGet("imagedark") 818 819 @property 820 def imagedarkurl(self) -> str: 821 return self._rawGet("imagedarkurl") 822 823 @property 824 def icon(self) -> str: 825 return self._rawGet("icon") 826 827 @property 828 def iconurl(self) -> str: 829 return self._rawGet("iconurl") 830 831 @property 832 def icondark(self) -> str: 833 return self._rawGet("icondark") 834 835 @property 836 def icondarkurl(self) -> str: 837 return self._rawGet("icondarkurl") 838 839 @property 840 def game(self) -> str: 841 return self._rawGet("game") 842 843 @property 844 def type(self) -> str: 845 return self._rawGet("type") 846 847 @property 848 def organizers(self) -> dict: 849 return self._rawGet("organizers") 850 851 @property 852 def locations(self) -> dict: 853 return self._rawGet("locations") 854 855 @property 856 def prizepool(self) -> Number: 857 return self._rawGet("prizepool") 858 859 @property 860 def liquipediatier(self) -> str: 861 return self._rawGet("liquipediatier") 862 863 @property 864 def liquipediatiertype(self) -> str: 865 return self._rawGet("liquipediatiertype") 866 867 @property 868 def publishertier(self) -> str: 869 return self._rawGet("publishertier") 870 871 @property 872 def launcheddate(self) -> datetime.date: 873 return _parseIsoDate(self._rawGet("launcheddate")) 874 875 @property 876 def defunctdate(self) -> datetime.date: 877 return _parseIsoDate(self._rawGet("defunctdate")) 878 879 @property 880 def defunctfate(self) -> str: 881 return self._rawGet("defunctfate") 882 883 @property 884 def links(self) -> dict: 885 return self._rawGet("links") 886 887 888class SquadPlayer(LpdbBaseResponseData): 889 """ 890 Squad player data from LPDB. 891 """ 892 893 @property 894 def id(self) -> str: 895 return self._rawGet("id") 896 897 @property 898 def link(self) -> str: 899 return self._rawGet("link") 900 901 @property 902 def name(self) -> str: 903 return self._rawGet("name") 904 905 @property 906 def nationality(self) -> str: 907 return self._rawGet("nationality") 908 909 @property 910 def position(self) -> str: 911 return self._rawGet("position") 912 913 @property 914 def role(self) -> str: 915 return self._rawGet("role") 916 917 @property 918 def type(self) -> str: 919 return self._rawGet("type") 920 921 @property 922 def newteam(self) -> str: 923 return self._rawGet("newteam") 924 925 @property 926 def teamtemplate(self) -> str: 927 return self._rawGet("teamtemplate") 928 929 @property 930 def newteamtemplate(self) -> str: 931 return self._rawGet("newteamtemplate") 932 933 @property 934 def status(self) -> str: 935 return self._rawGet("status") 936 937 @property 938 def joindate(self) -> datetime.date: 939 return _parseIsoDate(self._rawGet("joindate")) 940 941 @property 942 def joindateref(self) -> dict: 943 return self._rawGet("joindateref") 944 945 @property 946 def leavedate(self) -> datetime.date: 947 return _parseIsoDate(self._rawGet("leavedate")) 948 949 @property 950 def leavedateref(self) -> dict: 951 return self._rawGet("leavedateref") 952 953 @property 954 def inactivedate(self) -> datetime.date: 955 return _parseIsoDate(self._rawGet("inactivedate")) 956 957 @property 958 def inactivedateref(self) -> dict: 959 return self._rawGet("inactivedateref") 960 961 962class StandingsEntry(LpdbBaseResponseData): 963 """ 964 Standings entry from LPDB. 965 """ 966 967 @property 968 def parent(self) -> str: 969 return self._rawGet("parent") 970 971 @property 972 def standingsindex(self) -> int: 973 return self._rawGet("standingsindex") 974 975 @property 976 def opponenttype(self) -> OpponentType: 977 return OpponentType(self._rawGet("opponenttype")) 978 979 @property 980 def opponentname(self) -> str: 981 return self._rawGet("opponentname") 982 983 @property 984 def opponenttemplate(self) -> str: 985 return self._rawGet("opponenttemplate") 986 987 @property 988 def opponentplayers(self) -> dict: 989 return self._rawGet("opponentplayers") 990 991 @property 992 def placement(self) -> int: 993 return self._rawGet("placement") 994 995 @property 996 def definitestatus(self) -> str: 997 return self._rawGet("definitestatus") 998 999 @property 1000 def currentstatus(self) -> str: 1001 return self._rawGet("currentstatus") 1002 1003 @property 1004 def placementchange(self) -> int: 1005 return self._rawGet("placementchange") 1006 1007 @property 1008 def scoreboard(self) -> dict: 1009 return self._rawGet("scoreboard") 1010 1011 @property 1012 def roundindex(self) -> int: 1013 return self._rawGet("roundindex") 1014 1015 @property 1016 def slotindex(self) -> dict: 1017 return self._rawGet("slotindex") 1018 1019 1020class StandingsTable(LpdbBaseResponseData): 1021 """ 1022 Standings table from LPDB. 1023 """ 1024 1025 @property 1026 def parent(self) -> str: 1027 return self._rawGet("parent") 1028 1029 @property 1030 def standingsindex(self) -> int: 1031 return self._rawGet("standingsindex") 1032 1033 @property 1034 def title(self) -> str: 1035 return self._rawGet("title") 1036 1037 @property 1038 def tournament(self) -> str: 1039 return self._rawGet("tournament") 1040 1041 @property 1042 def section(self) -> dict: 1043 return self._rawGet("section") 1044 1045 @property 1046 def type(self) -> int: 1047 return self._rawGet("type") 1048 1049 @property 1050 def matches(self) -> list[str]: 1051 return self._rawGet("matches") 1052 1053 @property 1054 def config(self) -> dict: 1055 return self._rawGet("config") 1056 1057 1058class Team(LpdbBaseResponseData): 1059 """ 1060 Team data from LPDB. 1061 """ 1062 1063 @property 1064 def name(self) -> str: 1065 return self._rawGet("name") 1066 1067 @property 1068 def locations(self) -> dict: 1069 return self._rawGet("locations") 1070 1071 @property 1072 def region(self) -> str: 1073 return self._rawGet("region") 1074 1075 @property 1076 def logo(self) -> str: 1077 return self._rawGet("logo") 1078 1079 @property 1080 def logourl(self) -> str: 1081 return self._rawGet("logourl") 1082 1083 @property 1084 def logodark(self) -> str: 1085 return self._rawGet("logodark") 1086 1087 @property 1088 def logodarkurl(self) -> str: 1089 return self._rawGet("logodarkurl") 1090 1091 @property 1092 def textlesslogourl(self) -> str: 1093 return self._rawGet("textlesslogourl") 1094 1095 @property 1096 def textlesslogodarkurl(self) -> str: 1097 return self._rawGet("textlesslogodarkurl") 1098 1099 @property 1100 def status(self) -> str: 1101 return self._rawGet("status") 1102 1103 @property 1104 def createdate(self) -> Optional[datetime.date]: 1105 return _parseIsoDate(self._rawGet("createdate")) 1106 1107 @property 1108 def disbanddate(self) -> Optional[datetime.date]: 1109 return _parseIsoDate(self._rawGet("disbanddate")) 1110 1111 @property 1112 def earnings(self) -> Number: 1113 return self._rawGet("earnings") 1114 1115 @property 1116 def earningsbyyear(self) -> dict[str, Number]: 1117 return self._rawGet("earningsbyyear") 1118 1119 @property 1120 def template(self) -> str: 1121 return self._rawGet("template") 1122 1123 @property 1124 def links(self) -> dict: 1125 return self._rawGet("links") 1126 1127 1128class Tournament(LpdbBaseResponseData): 1129 """ 1130 Tournament data from LPDB. 1131 """ 1132 1133 @property 1134 def name(self) -> str: 1135 return self._rawGet("name") 1136 1137 @property 1138 def shortname(self) -> str: 1139 return self._rawGet("shortname") 1140 1141 @property 1142 def tickername(self) -> str: 1143 return self._rawGet("tickername") 1144 1145 @property 1146 def banner(self) -> str: 1147 return self._rawGet("banner") 1148 1149 @property 1150 def bannerurl(self) -> str: 1151 return self._rawGet("bannerurl") 1152 1153 @property 1154 def bannerdark(self) -> str: 1155 return self._rawGet("bannerdark") 1156 1157 @property 1158 def bannerdarkurl(self) -> str: 1159 return self._rawGet("bannerdarkurl") 1160 1161 @property 1162 def icon(self) -> str: 1163 return self._rawGet("icon") 1164 1165 @property 1166 def iconurl(self) -> str: 1167 return self._rawGet("iconurl") 1168 1169 @property 1170 def icondark(self) -> str: 1171 return self._rawGet("icondark") 1172 1173 @property 1174 def icondarkurl(self) -> str: 1175 return self._rawGet("icondarkurl") 1176 1177 @property 1178 def seriespage(self) -> str: 1179 return self._rawGet("seriespage") 1180 1181 @property 1182 def serieslist(self) -> dict: 1183 return self._rawGet("serieslist") 1184 1185 @property 1186 def previous(self) -> str: 1187 return self._rawGet("previous") 1188 1189 @property 1190 def previous2(self) -> str: 1191 return self._rawGet("previous2") 1192 1193 @property 1194 def next(self) -> str: 1195 return self._rawGet("next") 1196 1197 @property 1198 def next2(self) -> str: 1199 return self._rawGet("next2") 1200 1201 @property 1202 def game(self) -> str: 1203 return self._rawGet("game") 1204 1205 @property 1206 def mode(self) -> str: 1207 return self._rawGet("mode") 1208 1209 @property 1210 def patch(self) -> str: 1211 return self._rawGet("patch") 1212 1213 @property 1214 def endpatch(self) -> str: 1215 return self._rawGet("endpatch") 1216 1217 @property 1218 def type(self) -> str: 1219 return self._rawGet("type") 1220 1221 @property 1222 def organizers(self) -> dict: 1223 return self._rawGet("organizers") 1224 1225 @property 1226 def startdate(self) -> datetime.date: 1227 return _parseIsoDate(self._rawGet("startdate")) 1228 1229 @property 1230 def enddate(self) -> datetime.date: 1231 return _parseIsoDate(self._rawGet("enddate")) 1232 1233 @property 1234 def sortdate(self) -> datetime.date: 1235 return _parseIsoDate(self._rawGet("sortdate")) 1236 1237 @property 1238 def locations(self) -> dict: 1239 return self._rawGet("locations") 1240 1241 @property 1242 def prizepool(self) -> Number: 1243 return self._rawGet("prizepool") 1244 1245 @property 1246 def participantsnumber(self) -> int: 1247 return self._rawGet("participantsnumber") 1248 1249 @property 1250 def liquipediatier(self) -> str: 1251 return self._rawGet("liquipediatier") 1252 1253 @property 1254 def liquipediatiertype(self) -> str: 1255 return self._rawGet("liquipediatiertype") 1256 1257 @property 1258 def publishertier(self) -> str: 1259 return self._rawGet("publishertier") 1260 1261 @property 1262 def status(self) -> dict: 1263 return self._rawGet("status") 1264 1265 @property 1266 def maps(self) -> list[str]: 1267 map_data: Optional[str] = self._rawGet("maps") 1268 if map_data is None: 1269 return None 1270 return map_data.split(";") 1271 1272 @property 1273 def format(self) -> str: 1274 return self._rawGet("format") 1275 1276 @property 1277 def sponsors(self) -> dict: 1278 return json.loads(self._rawGet("sponsors")) 1279 1280 1281class Transfer(LpdbBaseResponseData): 1282 """ 1283 Transfer data from LPDB. 1284 """ 1285 1286 @property 1287 def player(self) -> str: 1288 return self._rawGet("player") 1289 1290 @property 1291 def nationality(self) -> str: 1292 return self._rawGet("nationality") 1293 1294 @property 1295 def fromteam(self) -> str: 1296 return self._rawGet("fromteam") 1297 1298 @property 1299 def toteam(self) -> str: 1300 return self._rawGet("toteam") 1301 1302 @property 1303 def fromteamtemplate(self) -> str: 1304 return self._rawGet("fromteamtemplate") 1305 1306 @property 1307 def toteamtemplate(self) -> str: 1308 return self._rawGet("toteamtemplate") 1309 1310 @property 1311 def role1(self) -> str: 1312 return self._rawGet("role1") 1313 1314 @property 1315 def role2(self) -> str: 1316 return self._rawGet("role2") 1317 1318 @property 1319 def reference(self) -> dict: 1320 return self._rawGet("reference") 1321 1322 @property 1323 def date(self) -> Optional[datetime.datetime]: 1324 return _parseIsoDateTime(self._rawGet("date")) 1325 1326 @property 1327 def wholeteam(self) -> bool: 1328 return bool(self._rawGet("wholeteam")) 1329 1330 1331class TeamTemplate(LpdbBaseData): 1332 """ 1333 Team template from LPDB. 1334 """ 1335 1336 @property 1337 def template(self) -> str: 1338 return self._rawGet("template") 1339 1340 @property 1341 def page(self) -> str: 1342 return self._rawGet("page") 1343 1344 @property 1345 def name(self) -> str: 1346 return self._rawGet("name") 1347 1348 @property 1349 def shortname(self) -> str: 1350 return self._rawGet("shortname") 1351 1352 @property 1353 def bracketname(self) -> str: 1354 return self._rawGet("bracketname") 1355 1356 @property 1357 def image(self) -> str: 1358 return self._rawGet("image") 1359 1360 @property 1361 def imageurl(self) -> str: 1362 return self._rawGet("imageurl") 1363 1364 @property 1365 def imagedark(self) -> str: 1366 return self._rawGet("imagedark") 1367 1368 @property 1369 def imagedarkurl(self) -> str: 1370 return self._rawGet("imagedarkurl") 1371 1372 @property 1373 def legacyimage(self) -> str: 1374 return self._rawGet("legacyimage") 1375 1376 @property 1377 def legacyimageurl(self) -> str: 1378 return self._rawGet("legacyimageurl") 1379 1380 @property 1381 def legacyimagedark(self) -> str: 1382 return self._rawGet("legacyimagedark") 1383 1384 @property 1385 def legacyimagedarkurl(self) -> str: 1386 return self._rawGet("legacyimagedarkurl")
class
OpponentType(enum.StrEnum):
55class OpponentType(StrEnum): 56 """ 57 Enum that defines all valid opponent types in LPDB. 58 """ 59 60 team = "team" 61 solo = "solo" 62 duo = "duo" 63 trio = "trio" 64 quad = "quad" 65 literal = "literal"
Enum that defines all valid opponent types in LPDB.
team =
<OpponentType.team: 'team'>
solo =
<OpponentType.solo: 'solo'>
duo =
<OpponentType.duo: 'duo'>
trio =
<OpponentType.trio: 'trio'>
quad =
<OpponentType.quad: 'quad'>
literal =
<OpponentType.literal: 'literal'>
128class Broadcasters(LpdbBaseResponseData): 129 """ 130 Broadcaster data from LPDB. 131 """ 132 133 @property 134 def id(self) -> str: 135 return self._rawGet("id") 136 137 @property 138 def name(self) -> str: 139 return self._rawGet("name") 140 141 @property 142 def page(self) -> str: 143 return self._rawGet("page") 144 145 @property 146 def position(self) -> str: 147 return self._rawGet("position") 148 149 @property 150 def language(self) -> str: 151 return self._rawGet("language") 152 153 @property 154 def flag(self) -> str: 155 return self._rawGet("flag") 156 157 @property 158 def weight(self) -> float: 159 return self._rawGet("weight") 160 161 @property 162 def date(self) -> Optional[datetime.date]: 163 return _parseIsoDate(self._rawGet("date")) 164 165 @property 166 def parent(self) -> str: 167 return self._rawGet("parent")
Broadcaster data from LPDB.
Inherited Members
170class Company(LpdbBaseResponseData): 171 """ 172 Company data from LPDB. 173 """ 174 175 @property 176 def name(self) -> str: 177 return self._rawGet("name") 178 179 @property 180 def image(self) -> str: 181 return self._rawGet("image") 182 183 @property 184 def imageurl(self) -> str: 185 return self._rawGet("imageurl") 186 187 @property 188 def imagedark(self) -> str: 189 return self._rawGet("imagedark") 190 191 @property 192 def imagedarkurl(self) -> str: 193 return self._rawGet("imagedarkurl") 194 195 @property 196 def locations(self) -> list: 197 return self._rawGet("locations") 198 199 @property 200 def parentcompany(self) -> str: 201 return self._rawGet("parentcompany") 202 203 @property 204 def sistercompany(self) -> str: 205 return self._rawGet("sistercompany") 206 207 @property 208 def industry(self) -> str: 209 return self._rawGet("industry") 210 211 @property 212 def foundeddate(self) -> Optional[datetime.datetime]: 213 return _parseIsoDateTime(self._rawGet("foundeddate")) 214 215 @property 216 def defunctdate(self) -> Optional[datetime.datetime]: 217 return _parseIsoDateTime(self._rawGet("defunctdate")) 218 219 @property 220 def defunctfate(self) -> str: 221 return self._rawGet("defunctfate") 222 223 @property 224 def links(self) -> dict[str, Any]: 225 return self._rawGet("links")
Company data from LPDB.
Inherited Members
228class Datapoint(LpdbBaseResponseData): 229 """ 230 Generic datapoint from LPDB. 231 """ 232 233 @property 234 def type(self) -> str: 235 return self._rawGet("type") 236 237 @property 238 def name(self) -> str: 239 return self._rawGet("name") 240 241 @property 242 def information(self) -> str: 243 return self._rawGet("information") 244 245 @property 246 def imageurl(self) -> str: 247 return self._rawGet("imageurl") 248 249 @property 250 def imagedark(self) -> str: 251 return self._rawGet("imagedark") 252 253 @property 254 def imagedarkurl(self) -> str: 255 return self._rawGet("imagedarkurl") 256 257 @property 258 def date(self) -> Optional[datetime.datetime]: 259 return _parseIsoDateTime(self._rawGet("date"))
Generic datapoint from LPDB.
Inherited Members
262class ExternalMediaLink(LpdbBaseResponseData): 263 """ 264 External media link from LPDB. 265 """ 266 267 @property 268 def title(self) -> str: 269 return self._rawGet("title") 270 271 @property 272 def translatedtitle(self) -> str: 273 return self._rawGet("translatedtitle") 274 275 @property 276 def link(self) -> str: 277 return self._rawGet("link") 278 279 @property 280 def date(self) -> Optional[datetime.date]: 281 return _parseIsoDate(self._rawGet("date")) 282 283 @property 284 def authors(self) -> dict[str, str]: 285 return self._rawGet("authors") 286 287 @property 288 def language(self) -> str: 289 return self._rawGet("language") 290 291 @property 292 def publisher(self) -> str: 293 return self._rawGet("publisher") 294 295 @property 296 def type(self) -> str: 297 return self._rawGet("type")
External media link from LPDB.
Inherited Members
300class Match(LpdbBaseResponseData): 301 """ 302 Match data from LPDB. 303 """ 304 305 @property 306 def match2id(self) -> str: 307 return self._rawGet("match2id") 308 309 @property 310 def match2bracketid(self) -> str: 311 return self._rawGet("match2bracketid") 312 313 @property 314 def status(self) -> str: 315 return self._rawGet("status") 316 317 @property 318 def winner(self) -> str: 319 return self._rawGet("winner") 320 321 @property 322 def walkover(self) -> str: 323 return self._rawGet("walkover") 324 325 @property 326 def resulttype(self) -> str: 327 return self._rawGet("resulttype") 328 329 @property 330 def finished(self) -> bool: 331 return bool(self._rawGet("finished")) 332 333 @property 334 def mode(self) -> str: 335 return self._rawGet("mode") 336 337 @property 338 def type(self) -> str: 339 return self._rawGet("type") 340 341 @property 342 def section(self) -> str: 343 return self._rawGet("section") 344 345 @property 346 def game(self) -> str: 347 return self._rawGet("game") 348 349 @property 350 def patch(self) -> str: 351 return self._rawGet("patch") 352 353 @property 354 def links(self) -> dict[str, Any]: 355 return self._rawGet("links") 356 357 @property 358 def bestof(self) -> Optional[int]: 359 return self._rawGet("bestof") 360 361 @property 362 def date(self) -> Optional[datetime.datetime]: 363 parsed = _parseIsoDateTime(self._rawGet("date")) 364 if not self.dateexact: 365 return parsed 366 elif self.timezone is not None: 367 return parsed.astimezone(tz=self.timezone) 368 return parsed 369 370 @property 371 def dateexact(self) -> bool: 372 return bool(self._rawGet("dateexact")) 373 374 @property 375 def timezone(self) -> Optional[datetime.timezone]: 376 """ 377 Timezone information stored in this match. 378 379 The `timezone` property from this property does not support IANA time zones. 380 """ 381 if not self.dateexact: 382 return None 383 elif self.extradata is None: 384 return None 385 offset: str = self.extradata.get("timezoneoffset") 386 if offset is None: 387 return None 388 sliced_offset = offset.split(":") 389 offset_delta = datetime.timedelta( 390 hours=int(sliced_offset[0]), minutes=int(sliced_offset[1]) 391 ) 392 return datetime.timezone(offset_delta, name=self.extradata.get("timezoneid")) 393 394 @property 395 def stream(self) -> dict[str, Any]: 396 return self._rawGet("stream") 397 398 @property 399 def vod(self) -> str: 400 return self._rawGet("vod") 401 402 @property 403 def tournament(self) -> str: 404 return self._rawGet("tournament") 405 406 @property 407 def parent(self) -> str: 408 return self._rawGet("parent") 409 410 @property 411 def tickername(self) -> str: 412 return self._rawGet("tickername") 413 414 @property 415 def shortname(self) -> str: 416 return self._rawGet("shortname") 417 418 @property 419 def series(self) -> str: 420 return self._rawGet("series") 421 422 @property 423 def icon(self) -> str: 424 return self._rawGet("icon") 425 426 @property 427 def iconurl(self) -> str: 428 return self._rawGet("iconurl") 429 430 @property 431 def icondark(self) -> str: 432 return self._rawGet("icondark") 433 434 @property 435 def icondarkurl(self) -> str: 436 return self._rawGet("icondarkurl") 437 438 @property 439 def liquipediatier(self) -> str: 440 return self._rawGet("liquipediatier") 441 442 @property 443 def liquipediatiertype(self) -> str: 444 return self._rawGet("liquipediatiertype") 445 446 @property 447 def publishertier(self) -> str: 448 return self._rawGet("publishertier") 449 450 @property 451 def match2bracketdata(self) -> dict: 452 return self._rawGet("match2bracketdata") 453 454 @property 455 def match2games(self) -> list["MatchGame"]: 456 return [ 457 MatchGame(self, match2game) for match2game in self._rawGet("match2games") 458 ] 459 460 @property 461 def match2opponents(self) -> list["MatchOpponent"]: 462 return [ 463 MatchOpponent(match2opponent) 464 for match2opponent in self._rawGet("match2opponents") 465 ]
Match data from LPDB.
timezone: datetime.timezone | None
374 @property 375 def timezone(self) -> Optional[datetime.timezone]: 376 """ 377 Timezone information stored in this match. 378 379 The `timezone` property from this property does not support IANA time zones. 380 """ 381 if not self.dateexact: 382 return None 383 elif self.extradata is None: 384 return None 385 offset: str = self.extradata.get("timezoneoffset") 386 if offset is None: 387 return None 388 sliced_offset = offset.split(":") 389 offset_delta = datetime.timedelta( 390 hours=int(sliced_offset[0]), minutes=int(sliced_offset[1]) 391 ) 392 return datetime.timezone(offset_delta, name=self.extradata.get("timezoneid"))
Timezone information stored in this match.
The timezone property from this property does not support IANA time zones.
match2games: list[MatchGame]
match2opponents: list[MatchOpponent]
Inherited Members
468class MatchGame(LpdbBaseData): 469 """ 470 Game data stored in a match. 471 """ 472 473 _parent: "Match" 474 475 def __init__(self, parent: "Match", raw: dict[str, Any]): 476 super().__init__(raw) 477 self._parent = parent 478 479 @property 480 def map(self) -> str: 481 return self._rawGet("map") 482 483 @property 484 def subgroup(self) -> str: 485 return self._rawGet("subgroup") 486 487 @property 488 def match2gameid(self) -> int: 489 return self._rawGet("match2gameid") 490 491 @property 492 def scores(self) -> list[Number]: 493 return self._rawGet("scores") 494 495 @property 496 def opponents(self) -> list[dict]: 497 return self._rawGet("opponents") 498 499 @property 500 def status(self) -> str: 501 return self._rawGet("status") 502 503 @property 504 def winner(self) -> str: 505 return self._rawGet("winner") 506 507 @property 508 def walkover(self): 509 return self._rawGet("walkover") 510 511 @property 512 def resulttype(self) -> str: 513 return self._rawGet("resulttype") 514 515 @property 516 def date(self) -> datetime.datetime: 517 parsed = _parseIsoDateTime(self._rawGet("date")) 518 if not self.dateexact: 519 return parsed 520 return parsed.astimezone(self._parent.timezone) 521 522 @property 523 def dateexact(self) -> bool: 524 return self.extradata.get("dateexact") 525 526 @property 527 def mode(self) -> str: 528 return self._rawGet("mode") 529 530 @property 531 def type(self) -> str: 532 return self._rawGet("type") 533 534 @property 535 def game(self) -> str: 536 return self._rawGet("game") 537 538 @property 539 def patch(self) -> str: 540 return self._rawGet("patch") 541 542 @property 543 def vod(self) -> str: 544 return self._rawGet("vod") 545 546 @property 547 def length(self) -> str: 548 return self._rawGet("length") 549 550 @property 551 def extradata(self) -> Optional[dict[str, Any]]: 552 return self._rawGet("extradata")
Game data stored in a match.
MatchGame(parent: Match, raw: dict[str, typing.Any])
555class MatchOpponent(LpdbBaseData): 556 """ 557 Opponent data stored in a match. 558 """ 559 560 @property 561 def id(self) -> int: 562 return self._rawGet("id") 563 564 @property 565 def type(self) -> OpponentType: 566 return OpponentType(self._rawGet("type")) 567 568 @property 569 def name(self) -> str: 570 return self._rawGet("name") 571 572 @property 573 def template(self) -> Optional[str]: 574 return self._rawGet("template") 575 576 @property 577 def icon(self) -> str: 578 return self._rawGet("icon") 579 580 @property 581 def score(self) -> Number: 582 return self._rawGet("score") 583 584 @property 585 def status(self) -> str: 586 return self._rawGet("status") 587 588 @property 589 def placement(self) -> int: 590 return self._rawGet("placement") 591 592 @property 593 def match2players(self) -> list[dict]: 594 return self._rawGet("match2players") 595 596 @property 597 def teamtemplate(self) -> Optional["TeamTemplate"]: 598 if self.template is None: 599 return None 600 return TeamTemplate(self._rawGet("teamtemplate")) 601 602 @property 603 def extradata(self) -> Optional[dict[str, Any]]: 604 return self._rawGet("extradata")
Opponent data stored in a match.
type: OpponentType
teamtemplate: TeamTemplate | None
Inherited Members
607class Placement(LpdbBaseResponseData): 608 """ 609 Placement data from LPDB. 610 """ 611 612 @property 613 def tournament(self) -> str: 614 return self._rawGet("tournament") 615 616 @property 617 def series(self) -> str: 618 return self._rawGet("series") 619 620 @property 621 def parent(self) -> str: 622 return self._rawGet("parent") 623 624 @property 625 def imageurl(self) -> str: 626 return self._rawGet("imageurl") 627 628 @property 629 def imagedarkurl(self) -> str: 630 return self._rawGet("imagedarkurl") 631 632 @property 633 def startdate(self) -> Optional[datetime.datetime]: 634 return _parseIsoDateTime(self._rawGet("startdate")) 635 636 @property 637 def date(self) -> Optional[datetime.datetime]: 638 return _parseIsoDateTime(self._rawGet("date")) 639 640 @property 641 def prizemoney(self) -> Number: 642 return self._rawGet("placement") 643 644 @property 645 def weight(self) -> Number: 646 return self._rawGet("weight") 647 648 @property 649 def mode(self) -> str: 650 return self._rawGet("mode") 651 652 @property 653 def type(self) -> str: 654 return self._rawGet("type") 655 656 @property 657 def liquipediatier(self) -> str: 658 return self._rawGet("liquipediatier") 659 660 @property 661 def liquipediatiertype(self) -> str: 662 return self._rawGet("liquipediatiertype") 663 664 @property 665 def publishertier(self) -> str: 666 return self._rawGet("publishertier") 667 668 @property 669 def icon(self) -> str: 670 return self._rawGet("icon") 671 672 @property 673 def iconurl(self) -> str: 674 return self._rawGet("iconurl") 675 676 @property 677 def icondark(self) -> str: 678 return self._rawGet("icondark") 679 680 @property 681 def icondarkurl(self) -> str: 682 return self._rawGet("icondarkurl") 683 684 @property 685 def game(self) -> str: 686 return self._rawGet("game") 687 688 @property 689 def lastvsdata(self) -> dict: 690 return self._rawGet("lastvsdata") 691 692 @property 693 def opponentname(self) -> str: 694 return self._rawGet("opponentname") 695 696 @property 697 def opponenttemplate(self) -> Optional[str]: 698 return self._rawGet("opponenttemplate") 699 700 @property 701 def opponenttype(self) -> OpponentType: 702 return OpponentType(self._rawGet("opponenttype")) 703 704 @property 705 def opponentplayers(self) -> dict: 706 return self._rawGet("opponentplayers") 707 708 @property 709 def qualifier(self) -> str: 710 return self._rawGet("qualifier") 711 712 @property 713 def qualifierpage(self) -> str: 714 return self._rawGet("qualifierpage") 715 716 @property 717 def qualifierurl(self) -> str: 718 return self._rawGet("qualifierurl")
Placement data from LPDB.
opponenttype: OpponentType
Inherited Members
721class Player(LpdbBaseResponseData): 722 """ 723 Player data from LPDB. 724 """ 725 726 @property 727 def id(self) -> str: 728 return self._rawGet("id") 729 730 @property 731 def alternateid(self) -> str: 732 return self._rawGet("alternateid") 733 734 @property 735 def name(self) -> str: 736 return self._rawGet("name") 737 738 @property 739 def localizedname(self) -> str: 740 return self._rawGet("localizedname") 741 742 @property 743 def type(self) -> str: 744 return self._rawGet("type") 745 746 @property 747 def nationality(self) -> str: 748 return self._rawGet("nationality") 749 750 @property 751 def nationality2(self) -> str: 752 return self._rawGet("nationality2") 753 754 @property 755 def nationality3(self) -> str: 756 return self._rawGet("nationality3") 757 758 @property 759 def region(self) -> str: 760 return self._rawGet("region") 761 762 @property 763 def birthdate(self) -> Optional[datetime.date]: 764 return _parseIsoDate(self._rawGet("birthdate")) 765 766 @property 767 def deathdate(self) -> Optional[datetime.date]: 768 return _parseIsoDate(self._rawGet("deathdate")) 769 770 @property 771 def teampagename(self) -> str: 772 return self._rawGet("teampagename") 773 774 @property 775 def teamtemplate(self) -> str: 776 return self._rawGet("teamtemplate") 777 778 @property 779 def links(self) -> dict: 780 return self._rawGet("links") 781 782 @property 783 def status(self) -> str: 784 return self._rawGet("status") 785 786 @property 787 def earnings(self) -> Number: 788 return self._rawGet("earnings") 789 790 @property 791 def earningsbyyear(self) -> dict[str, Number]: 792 return self._rawGet("earningsbyyear")
Player data from LPDB.
Inherited Members
795class Series(LpdbBaseResponseData): 796 """ 797 Tournament series data from LPDB. 798 """ 799 800 @property 801 def name(self) -> str: 802 return self._rawGet("name") 803 804 @property 805 def abbreviation(self) -> str: 806 return self._rawGet("abbreviation") 807 808 @property 809 def image(self) -> str: 810 return self._rawGet("image") 811 812 @property 813 def imageurl(self) -> str: 814 return self._rawGet("imageurl") 815 816 @property 817 def imagedark(self) -> str: 818 return self._rawGet("imagedark") 819 820 @property 821 def imagedarkurl(self) -> str: 822 return self._rawGet("imagedarkurl") 823 824 @property 825 def icon(self) -> str: 826 return self._rawGet("icon") 827 828 @property 829 def iconurl(self) -> str: 830 return self._rawGet("iconurl") 831 832 @property 833 def icondark(self) -> str: 834 return self._rawGet("icondark") 835 836 @property 837 def icondarkurl(self) -> str: 838 return self._rawGet("icondarkurl") 839 840 @property 841 def game(self) -> str: 842 return self._rawGet("game") 843 844 @property 845 def type(self) -> str: 846 return self._rawGet("type") 847 848 @property 849 def organizers(self) -> dict: 850 return self._rawGet("organizers") 851 852 @property 853 def locations(self) -> dict: 854 return self._rawGet("locations") 855 856 @property 857 def prizepool(self) -> Number: 858 return self._rawGet("prizepool") 859 860 @property 861 def liquipediatier(self) -> str: 862 return self._rawGet("liquipediatier") 863 864 @property 865 def liquipediatiertype(self) -> str: 866 return self._rawGet("liquipediatiertype") 867 868 @property 869 def publishertier(self) -> str: 870 return self._rawGet("publishertier") 871 872 @property 873 def launcheddate(self) -> datetime.date: 874 return _parseIsoDate(self._rawGet("launcheddate")) 875 876 @property 877 def defunctdate(self) -> datetime.date: 878 return _parseIsoDate(self._rawGet("defunctdate")) 879 880 @property 881 def defunctfate(self) -> str: 882 return self._rawGet("defunctfate") 883 884 @property 885 def links(self) -> dict: 886 return self._rawGet("links")
Tournament series data from LPDB.
Inherited Members
889class SquadPlayer(LpdbBaseResponseData): 890 """ 891 Squad player data from LPDB. 892 """ 893 894 @property 895 def id(self) -> str: 896 return self._rawGet("id") 897 898 @property 899 def link(self) -> str: 900 return self._rawGet("link") 901 902 @property 903 def name(self) -> str: 904 return self._rawGet("name") 905 906 @property 907 def nationality(self) -> str: 908 return self._rawGet("nationality") 909 910 @property 911 def position(self) -> str: 912 return self._rawGet("position") 913 914 @property 915 def role(self) -> str: 916 return self._rawGet("role") 917 918 @property 919 def type(self) -> str: 920 return self._rawGet("type") 921 922 @property 923 def newteam(self) -> str: 924 return self._rawGet("newteam") 925 926 @property 927 def teamtemplate(self) -> str: 928 return self._rawGet("teamtemplate") 929 930 @property 931 def newteamtemplate(self) -> str: 932 return self._rawGet("newteamtemplate") 933 934 @property 935 def status(self) -> str: 936 return self._rawGet("status") 937 938 @property 939 def joindate(self) -> datetime.date: 940 return _parseIsoDate(self._rawGet("joindate")) 941 942 @property 943 def joindateref(self) -> dict: 944 return self._rawGet("joindateref") 945 946 @property 947 def leavedate(self) -> datetime.date: 948 return _parseIsoDate(self._rawGet("leavedate")) 949 950 @property 951 def leavedateref(self) -> dict: 952 return self._rawGet("leavedateref") 953 954 @property 955 def inactivedate(self) -> datetime.date: 956 return _parseIsoDate(self._rawGet("inactivedate")) 957 958 @property 959 def inactivedateref(self) -> dict: 960 return self._rawGet("inactivedateref")
Squad player data from LPDB.
Inherited Members
963class StandingsEntry(LpdbBaseResponseData): 964 """ 965 Standings entry from LPDB. 966 """ 967 968 @property 969 def parent(self) -> str: 970 return self._rawGet("parent") 971 972 @property 973 def standingsindex(self) -> int: 974 return self._rawGet("standingsindex") 975 976 @property 977 def opponenttype(self) -> OpponentType: 978 return OpponentType(self._rawGet("opponenttype")) 979 980 @property 981 def opponentname(self) -> str: 982 return self._rawGet("opponentname") 983 984 @property 985 def opponenttemplate(self) -> str: 986 return self._rawGet("opponenttemplate") 987 988 @property 989 def opponentplayers(self) -> dict: 990 return self._rawGet("opponentplayers") 991 992 @property 993 def placement(self) -> int: 994 return self._rawGet("placement") 995 996 @property 997 def definitestatus(self) -> str: 998 return self._rawGet("definitestatus") 999 1000 @property 1001 def currentstatus(self) -> str: 1002 return self._rawGet("currentstatus") 1003 1004 @property 1005 def placementchange(self) -> int: 1006 return self._rawGet("placementchange") 1007 1008 @property 1009 def scoreboard(self) -> dict: 1010 return self._rawGet("scoreboard") 1011 1012 @property 1013 def roundindex(self) -> int: 1014 return self._rawGet("roundindex") 1015 1016 @property 1017 def slotindex(self) -> dict: 1018 return self._rawGet("slotindex")
Standings entry from LPDB.
opponenttype: OpponentType
Inherited Members
1021class StandingsTable(LpdbBaseResponseData): 1022 """ 1023 Standings table from LPDB. 1024 """ 1025 1026 @property 1027 def parent(self) -> str: 1028 return self._rawGet("parent") 1029 1030 @property 1031 def standingsindex(self) -> int: 1032 return self._rawGet("standingsindex") 1033 1034 @property 1035 def title(self) -> str: 1036 return self._rawGet("title") 1037 1038 @property 1039 def tournament(self) -> str: 1040 return self._rawGet("tournament") 1041 1042 @property 1043 def section(self) -> dict: 1044 return self._rawGet("section") 1045 1046 @property 1047 def type(self) -> int: 1048 return self._rawGet("type") 1049 1050 @property 1051 def matches(self) -> list[str]: 1052 return self._rawGet("matches") 1053 1054 @property 1055 def config(self) -> dict: 1056 return self._rawGet("config")
Standings table from LPDB.
Inherited Members
1059class Team(LpdbBaseResponseData): 1060 """ 1061 Team data from LPDB. 1062 """ 1063 1064 @property 1065 def name(self) -> str: 1066 return self._rawGet("name") 1067 1068 @property 1069 def locations(self) -> dict: 1070 return self._rawGet("locations") 1071 1072 @property 1073 def region(self) -> str: 1074 return self._rawGet("region") 1075 1076 @property 1077 def logo(self) -> str: 1078 return self._rawGet("logo") 1079 1080 @property 1081 def logourl(self) -> str: 1082 return self._rawGet("logourl") 1083 1084 @property 1085 def logodark(self) -> str: 1086 return self._rawGet("logodark") 1087 1088 @property 1089 def logodarkurl(self) -> str: 1090 return self._rawGet("logodarkurl") 1091 1092 @property 1093 def textlesslogourl(self) -> str: 1094 return self._rawGet("textlesslogourl") 1095 1096 @property 1097 def textlesslogodarkurl(self) -> str: 1098 return self._rawGet("textlesslogodarkurl") 1099 1100 @property 1101 def status(self) -> str: 1102 return self._rawGet("status") 1103 1104 @property 1105 def createdate(self) -> Optional[datetime.date]: 1106 return _parseIsoDate(self._rawGet("createdate")) 1107 1108 @property 1109 def disbanddate(self) -> Optional[datetime.date]: 1110 return _parseIsoDate(self._rawGet("disbanddate")) 1111 1112 @property 1113 def earnings(self) -> Number: 1114 return self._rawGet("earnings") 1115 1116 @property 1117 def earningsbyyear(self) -> dict[str, Number]: 1118 return self._rawGet("earningsbyyear") 1119 1120 @property 1121 def template(self) -> str: 1122 return self._rawGet("template") 1123 1124 @property 1125 def links(self) -> dict: 1126 return self._rawGet("links")
Team data from LPDB.
Inherited Members
1129class Tournament(LpdbBaseResponseData): 1130 """ 1131 Tournament data from LPDB. 1132 """ 1133 1134 @property 1135 def name(self) -> str: 1136 return self._rawGet("name") 1137 1138 @property 1139 def shortname(self) -> str: 1140 return self._rawGet("shortname") 1141 1142 @property 1143 def tickername(self) -> str: 1144 return self._rawGet("tickername") 1145 1146 @property 1147 def banner(self) -> str: 1148 return self._rawGet("banner") 1149 1150 @property 1151 def bannerurl(self) -> str: 1152 return self._rawGet("bannerurl") 1153 1154 @property 1155 def bannerdark(self) -> str: 1156 return self._rawGet("bannerdark") 1157 1158 @property 1159 def bannerdarkurl(self) -> str: 1160 return self._rawGet("bannerdarkurl") 1161 1162 @property 1163 def icon(self) -> str: 1164 return self._rawGet("icon") 1165 1166 @property 1167 def iconurl(self) -> str: 1168 return self._rawGet("iconurl") 1169 1170 @property 1171 def icondark(self) -> str: 1172 return self._rawGet("icondark") 1173 1174 @property 1175 def icondarkurl(self) -> str: 1176 return self._rawGet("icondarkurl") 1177 1178 @property 1179 def seriespage(self) -> str: 1180 return self._rawGet("seriespage") 1181 1182 @property 1183 def serieslist(self) -> dict: 1184 return self._rawGet("serieslist") 1185 1186 @property 1187 def previous(self) -> str: 1188 return self._rawGet("previous") 1189 1190 @property 1191 def previous2(self) -> str: 1192 return self._rawGet("previous2") 1193 1194 @property 1195 def next(self) -> str: 1196 return self._rawGet("next") 1197 1198 @property 1199 def next2(self) -> str: 1200 return self._rawGet("next2") 1201 1202 @property 1203 def game(self) -> str: 1204 return self._rawGet("game") 1205 1206 @property 1207 def mode(self) -> str: 1208 return self._rawGet("mode") 1209 1210 @property 1211 def patch(self) -> str: 1212 return self._rawGet("patch") 1213 1214 @property 1215 def endpatch(self) -> str: 1216 return self._rawGet("endpatch") 1217 1218 @property 1219 def type(self) -> str: 1220 return self._rawGet("type") 1221 1222 @property 1223 def organizers(self) -> dict: 1224 return self._rawGet("organizers") 1225 1226 @property 1227 def startdate(self) -> datetime.date: 1228 return _parseIsoDate(self._rawGet("startdate")) 1229 1230 @property 1231 def enddate(self) -> datetime.date: 1232 return _parseIsoDate(self._rawGet("enddate")) 1233 1234 @property 1235 def sortdate(self) -> datetime.date: 1236 return _parseIsoDate(self._rawGet("sortdate")) 1237 1238 @property 1239 def locations(self) -> dict: 1240 return self._rawGet("locations") 1241 1242 @property 1243 def prizepool(self) -> Number: 1244 return self._rawGet("prizepool") 1245 1246 @property 1247 def participantsnumber(self) -> int: 1248 return self._rawGet("participantsnumber") 1249 1250 @property 1251 def liquipediatier(self) -> str: 1252 return self._rawGet("liquipediatier") 1253 1254 @property 1255 def liquipediatiertype(self) -> str: 1256 return self._rawGet("liquipediatiertype") 1257 1258 @property 1259 def publishertier(self) -> str: 1260 return self._rawGet("publishertier") 1261 1262 @property 1263 def status(self) -> dict: 1264 return self._rawGet("status") 1265 1266 @property 1267 def maps(self) -> list[str]: 1268 map_data: Optional[str] = self._rawGet("maps") 1269 if map_data is None: 1270 return None 1271 return map_data.split(";") 1272 1273 @property 1274 def format(self) -> str: 1275 return self._rawGet("format") 1276 1277 @property 1278 def sponsors(self) -> dict: 1279 return json.loads(self._rawGet("sponsors"))
Tournament data from LPDB.
Inherited Members
1282class Transfer(LpdbBaseResponseData): 1283 """ 1284 Transfer data from LPDB. 1285 """ 1286 1287 @property 1288 def player(self) -> str: 1289 return self._rawGet("player") 1290 1291 @property 1292 def nationality(self) -> str: 1293 return self._rawGet("nationality") 1294 1295 @property 1296 def fromteam(self) -> str: 1297 return self._rawGet("fromteam") 1298 1299 @property 1300 def toteam(self) -> str: 1301 return self._rawGet("toteam") 1302 1303 @property 1304 def fromteamtemplate(self) -> str: 1305 return self._rawGet("fromteamtemplate") 1306 1307 @property 1308 def toteamtemplate(self) -> str: 1309 return self._rawGet("toteamtemplate") 1310 1311 @property 1312 def role1(self) -> str: 1313 return self._rawGet("role1") 1314 1315 @property 1316 def role2(self) -> str: 1317 return self._rawGet("role2") 1318 1319 @property 1320 def reference(self) -> dict: 1321 return self._rawGet("reference") 1322 1323 @property 1324 def date(self) -> Optional[datetime.datetime]: 1325 return _parseIsoDateTime(self._rawGet("date")) 1326 1327 @property 1328 def wholeteam(self) -> bool: 1329 return bool(self._rawGet("wholeteam"))
Transfer data from LPDB.
Inherited Members
1332class TeamTemplate(LpdbBaseData): 1333 """ 1334 Team template from LPDB. 1335 """ 1336 1337 @property 1338 def template(self) -> str: 1339 return self._rawGet("template") 1340 1341 @property 1342 def page(self) -> str: 1343 return self._rawGet("page") 1344 1345 @property 1346 def name(self) -> str: 1347 return self._rawGet("name") 1348 1349 @property 1350 def shortname(self) -> str: 1351 return self._rawGet("shortname") 1352 1353 @property 1354 def bracketname(self) -> str: 1355 return self._rawGet("bracketname") 1356 1357 @property 1358 def image(self) -> str: 1359 return self._rawGet("image") 1360 1361 @property 1362 def imageurl(self) -> str: 1363 return self._rawGet("imageurl") 1364 1365 @property 1366 def imagedark(self) -> str: 1367 return self._rawGet("imagedark") 1368 1369 @property 1370 def imagedarkurl(self) -> str: 1371 return self._rawGet("imagedarkurl") 1372 1373 @property 1374 def legacyimage(self) -> str: 1375 return self._rawGet("legacyimage") 1376 1377 @property 1378 def legacyimageurl(self) -> str: 1379 return self._rawGet("legacyimageurl") 1380 1381 @property 1382 def legacyimagedark(self) -> str: 1383 return self._rawGet("legacyimagedark") 1384 1385 @property 1386 def legacyimagedarkurl(self) -> str: 1387 return self._rawGet("legacyimagedarkurl")
Team template from LPDB.