From d2a71703cf7cbf47ac2d5f7e567bffc3767296de Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:31:33 -0400 Subject: [PATCH 01/13] Make script compatible with Python 3 --- MegaCounter.py | 8 ++-- PS-Extractor.py | 4 +- StatCounter.py | 34 ++++++++--------- Stats/chaos/gen9ou-1500.json | 1 + Stats/gen9ou-1500.txt | 34 +++++++++++++++++ Stats/leads/gen9ou-1500.txt | 33 +++++++++++++++++ Stats/metagame/gen9ou-1500.txt | 26 +++++++++++++ TA.py | 3 +- TierUpdate9Doubles.py | 32 ++++++++-------- TierUpdate9LC.py | 28 +++++++------- TierUpdate9NatDex.py | 32 ++++++++-------- TierUpdate9Singles.py | 32 ++++++++-------- batchLogReader.py | 53 ++++++++++++++------------- batchMovesetCounter.py | 57 ++++++++++++++--------------- common.py | 16 ++++---- compare.py | 12 +++--- environment.yml | 10 ++--- ladderdev/BattleOutcomeExtractor.py | 4 +- ladderdev/Glicko.py | 6 +-- ladderdev/Glicko2.py | 4 +- ladderdev/RatingSystemTester.py | 8 ++-- ladderdev/RatingValidator.py | 6 +-- ladderdev/RatingValidator2.py | 6 +-- ladderdev/ladderRatingTester.py | 8 ++-- 24 files changed, 275 insertions(+), 182 deletions(-) create mode 100644 Stats/chaos/gen9ou-1500.json create mode 100644 Stats/gen9ou-1500.txt create mode 100644 Stats/leads/gen9ou-1500.txt create mode 100644 Stats/metagame/gen9ou-1500.txt diff --git a/MegaCounter.py b/MegaCounter.py index 1befcba..ae138ea 100644 --- a/MegaCounter.py +++ b/MegaCounter.py @@ -1,11 +1,13 @@ #!/usr/bin/python import sys -import json +import orjson as json from TA import megas from common import keyify -stats=json.load(open(sys.argv[1])) +file = open(sys.argv[1]) +stats=json.loads(file.read()) +file.close() megastats=[] total=0 @@ -33,5 +35,5 @@ megastats=sorted(megastats, key=lambda megastats:-megastats[1]) for mega in megastats: - print "%-18s%8.5f%%" % (mega[0],600.0*mega[1]/total) + print("%-18s%8.5f%%" % (mega[0],600.0*mega[1]/total)) diff --git a/PS-Extractor.py b/PS-Extractor.py index 647122d..ff61fdf 100644 --- a/PS-Extractor.py +++ b/PS-Extractor.py @@ -3,8 +3,8 @@ """The goal of this script is to take a json version of the "exports" object used on Pokemon Showdown and pull out the data that's needed for the scripts.""" -import json -import cPickle as pickle +import orjson as json +import pickle from onix import contexts ctx = contexts.get_standard_context(force_refresh=True) diff --git a/StatCounter.py b/StatCounter.py index 9e80e1f..b31924d 100644 --- a/StatCounter.py +++ b/StatCounter.py @@ -23,10 +23,9 @@ import string import sys import math -import cPickle as pickle +import pickle import os -#import ujson as json -import json +import orjson as json import gzip from common import * @@ -66,10 +65,6 @@ metagamefile=open(filename,'w') else: metagamefile=False -filename="Raw/moveset/"+tier+"/teammate"+specs+".pickle" -teammatefile=open(filename,'w') -filename="Raw/moveset/"+tier+"/encounterMatrix"+specs+".pickle" -encounterfile=open(filename,'w') battleCount = 0 @@ -94,7 +89,7 @@ t=t[:-11] for line in file: - #print line + #print(line) battles = json.loads(line) for battle in battles: @@ -193,8 +188,8 @@ if 'empty' in leads: if len(battle['matchups']) == 0: #1v1 (or similiar) battle forfeited before started continue - print "Something went wrong." - print battle + print("Something went wrong.") + print(battle) for i in range(2): if ['p1','p2'][i] not in weight: @@ -246,10 +241,13 @@ #write teammates and encounter matrix to file -pickle.dump(teammateMatrix,teammatefile) -teammatefile.close() -pickle.dump(encounterMatrix,encounterfile) -encounterfile.close() +filename="Raw/moveset/"+tier+"/teammate"+specs+".pickle" +teammatefile=open(filename,'wb') +with open(filename, 'wb') as teammate_file: + pickle.dump(teammateMatrix, teammate_file) +filename="Raw/moveset/"+tier+"/encounterMatrix"+specs+".pickle" +with open(filename, 'wb') as encounter_file: + pickle.dump(encounterMatrix, encounter_file) #sort by weighted usage if tier in ['challengecup1v1','1v1']: @@ -322,8 +320,8 @@ if stallCounter: #figure out a good bin range by looking at .1% and 99.9% points - low = stallCounter[len(stallCounter)/1000][0] - high = stallCounter[len(stallCounter)-len(stallCounter)/1000-1][0] + low = stallCounter[len(stallCounter)//1000][0] + high = stallCounter[len(stallCounter)-len(stallCounter)//1000-1][0] nbins = 13 #this is actually only a rough idea--I think it might be the minimum? @@ -353,7 +351,7 @@ nbins = len(histogram) for start in range(len(stallCounter)): - if stallCounter[start] >= histogram[0][0]-binSize/2: + if stallCounter[start][0] >= histogram[0][0]-binSize/2: break j=0 @@ -379,7 +377,7 @@ x=x+score[0]*score[1] y=y+score[1] - #print histogram + #print(histogram) metagamefile.write(' Stalliness (mean: %6.3f)\n'%(x/y)) for i in range(len(histogram)): if histogram[i][0]%(2.0*binSize) < binSize/2: diff --git a/Stats/chaos/gen9ou-1500.json b/Stats/chaos/gen9ou-1500.json new file mode 100644 index 0000000..18cbab6 --- /dev/null +++ b/Stats/chaos/gen9ou-1500.json @@ -0,0 +1 @@ +{"info":{"metagame":"gen9ou","cutoff":1500,"cutoff deviation":0,"team type":null,"number of battles":1110},"data":{"Kingambit":{"Raw count":1981,"Viability Ceiling":[0,0,0,0],"Abilities":{"supremeoverlord":990.5},"Items":{"airballoon":270.0,"leftovers":720.5},"Spreads":{"Adamant:0/252/0/0/4/252":74.5,"Adamant:220/252/0/0/0/36":61.0,"Adamant:208/252/0/0/0/48":572.5,"Adamant:160/252/0/0/0/96":67.0,"Adamant:112/252/0/0/0/144":72.5,"Adamant:232/252/0/0/0/24":81.0,"Adamant:248/252/0/0/0/8":62.0},"Moves":{"swordsdance":990.5,"kowtowcleave":990.5,"ironhead":928.5,"suckerpunch":990.5,"lowkick":62.0},"Happiness":{"255":990.5},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":128.965737121338,"Gholdengo":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":133.04068435835543,"Iron Valiant":122.87508793830429,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":118.38757914447383,"Dragapult":673.3590342390729,"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Landorus-Therian":659.359034239073,"Cinderace":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":145.43754396915216,"Darkrai":66.990719533677,"Roaring Moon":66.990719533677,"Zamazenta":146.70949151825326,"Glimmora":66.990719533677,"Enamorus":128.22198272442282,"Ting-Lu":79.71877198457608,"Gliscor":79.71877198457608,"Raging Bolt":61.23126319074562,"Heatran":61.23126319074562},"Checks and Counters":{"Ogerpon-Wellspring":[203.41682755630956,0.32175502742230366,0.032753862681919016],"Gholdengo":[230.19198584525714,0.36348949919224594,0.03170323801172089],"Dragonite":[46.48464980720066,0.34400000000000003,0.0696749008232859],"Landorus-Therian":[535.1312885804966,0.293259207783182,0.01968002907741305],"Samurott-Hisui":[441.79011176763663,0.31649831649831656,0.02212827198559609],"Dragapult":[430.6337958139084,0.19775474956821998,0.01919388921661698],"Kingambit":[1057.6187524134314,0.3913502109704633,0.0150072788679165],"Okidogi":[127.925756269416,0.4273255813953489,0.04373753885759623],"Cinderace":[48.7159129979463,0.2519083969465648,0.06219611945958876],"Primarina":[558.1876748848681,0.35309793471019274,0.02022910814392847],"Kyurem":[52.80656218097995,0.28873239436619713,0.06236204142567437],"Slowking-Galar":[155.07279175682103,0.21342925659472434,0.03290243709232959],"Iron Crown":[429.51816421853505,0.2640692640692629,0.021270937470863564],"Sudowoodo":[37.55959704421813,0.29702970297029707,0.07456035476739865],"Great Tusk":[200.06993277019117,0.3754646840148699,0.03423514208544264],"Iron Valiant":[87.01926443907959,0.44444444444444425,0.053267802937776276],"Darkrai":[55.781579768640796,0.3466666666666666,0.06372033433094787],"Gliscor":[126.06637027712799,0.40707964601769886,0.04375606404581485],"Zamazenta":[144.28835300155058,0.4304123711340206,0.04121990711053138],"Roaring Moon":[157.67593214602428,0.3160377358490567,0.03702566249005062],"Weezing-Galar":[91.48179082057084,0.3130081300813008,0.04848264209389185],"Glimmora":[130.1570194601616,0.2685714285714287,0.03884919889245439],"Raging Bolt":[47.60028140257347,0.38281250000000006,0.07045257256305058],"Enamorus":[72.51605369923301,0.25641025641025644,0.05127637452391057],"Heatran":[58.75659735630163,0.42405063291139244,0.06447222996003318],"Ting-Lu":[105.24124716350212,0.3250883392226148,0.04565950182490163],"Mimikyu":[55.4097025701832,0.3154362416107382,0.062426622249300144],"Iron Treads":[44.25338661645503,0.3865546218487395,0.07320152496270171]},"usage":0.8975365},"Dragapult":{"Raw count":1307,"Viability Ceiling":[0,0,0,0],"Abilities":{"clearbody":572.5,"infiltrator":81.0},"Items":{"choiceband":572.5,"heavydutyboots":81.0},"Spreads":{"Jolly:0/252/0/0/4/252":572.5,"Timid:0/0/4/252/0/252":81.0},"Moves":{"dragondarts":572.5,"uturn":653.5,"quickattack":572.5,"terablast":572.5,"dracometeor":81.0,"hex":81.0,"willowisp":81.0},"Happiness":{"255":653.5},"Teammates":{"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":673.3590342390729,"Landorus-Therian":593.6402622544969,"Ting-Lu":79.71877198457608,"Slowking-Galar":79.71877198457608,"Gliscor":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Iron Treads":[38.30335144113334,0.47572815533980595,0.08069364021418754],"Iron Valiant":[62.84724653933527,0.4733727810650886,0.06298108884343323],"Kingambit":[430.6337958139084,0.5595854922279803,0.023922688021714635],"Cinderace":[39.04710583804855,0.24761904761904757,0.06907430052391886],"Slowking-Galar":[114.9100543233998,0.32686084142394833,0.04375773763294399],"Landorus-Therian":[128.66951066633118,0.32658959537572246,0.04134312102825118],"Primarina":[140.9414582154321,0.5488126649076516,0.04191516040109586],"Samurott-Hisui":[104.86936996504457,0.47517730496453886,0.04876517859965135],"Gholdengo":[98.91933478972285,0.6165413533834584,0.04888771958958496],"Okidogi":[87.76301883599473,0.4957627118644066,0.05337017561389956],"Mimikyu":[33.097070662726864,0.5955056179775282,0.08531087570378859],"Sudowoodo":[23.05638630437152,0.3225806451612903,0.09735367123073488],"Kyurem":[33.097070662726864,0.4831460674157304,0.0868617067123218],"Enamorus":[49.8315445933191,0.30597014925373134,0.0652794414516412],"Roaring Moon":[76.23482568380905,0.5121951219512193,0.05724849613973768],"Darkrai":[34.58457945655729,0.5053763440860215,0.0850165831881181],"Zamazenta":[89.62240482828275,0.4771784232365142,0.05276049404668293],"Ting-Lu":[63.591000936250445,0.4327485380116958,0.06213092024200442],"Dragapult":[130.90077385707684,0.32386363636363663,0.04090036029008342],"Great Tusk":[105.24124716350212,0.4134275618374559,0.048002907862172914],"Glimmora":[55.03782537172557,0.39189189189189183,0.06580257716560303],"Heatran":[42.7658778226246,0.4173913043478261,0.07540696894183618],"Weezing-Galar":[44.625263814912635,0.5583333333333333,0.0743367708782102],"Ogerpon-Wellspring":[114.16629992648467,0.4918566775244298,0.04678896455792427],"Raging Bolt":[33.097070662726864,0.50561797752809,0.08690560952367302],"Dragonite":[42.022123425709395,0.336283185840708,0.0728794337270593],"Iron Crown":[96.68807159897723,0.36923076923076914,0.049079230318880104],"Gliscor":[63.59100093625047,0.5263157894736841,0.06261376562969842]},"usage":0.6066298},"Landorus-Therian":{"Raw count":1279,"Viability Ceiling":[0,0,0,0],"Abilities":{"intimidate":639.5},"Items":{"rockyhelmet":639.5},"Spreads":{"Bold:252/0/252/0/0/4":572.5,"Bold:248/0/244/0/0/16":67.0},"Moves":{"stealthrock":639.5,"earthpower":639.5,"uturn":639.5,"grassknot":572.5,"taunt":67.0},"Happiness":{"255":639.5},"Teammates":{"Dragapult":593.6402622544969,"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":659.359034239073,"Cinderace":65.71877198457605,"Iron Valiant":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Okidogi":[103.75373836967171,0.45519713261648725,0.048889722733493145],"Kingambit":[535.1312885804966,0.4218207088255737,0.021348385795153347],"Ogerpon-Wellspring":[137.9664406277713,0.3989218328840971,0.04168911248066211],"Slowking-Galar":[117.88507191106063,0.3880126182965301,0.04488123016016134],"Samurott-Hisui":[121.97572109409433,0.4085365853658536,0.044508475929172765],"Kyurem":[39.04710583804855,0.4380952380952381,0.0794001271298748],"Landorus-Therian":[174.03852887815884,0.3226495726495727,0.0354363962951393],"Dragapult":[128.66951066633118,0.3179190751445089,0.04105238759271011],"Primarina":[171.4353884889556,0.5292841648590021,0.03812181915109392],"Iron Crown":[131.644528253992,0.3502824858757064,0.04157862204317994],"Great Tusk":[130.5288966586192,0.38176638176638167,0.042522796313264596],"Gholdengo":[144.28835300155055,0.5489690721649483,0.04142489939915939],"Cinderace":[43.50963221953982,0.3162393162393162,0.07049645648176618],"Darkrai":[33.097070662726864,0.5393258426966293,0.0866418589623908],"Zamazenta":[124.95073868175515,0.39583333333333315,0.04374869956396304],"Gliscor":[82.18486085913065,0.4570135746606334,0.05494942144043064],"Glimmora":[72.51605369923298,0.4307692307692305,0.058149962649693694],"Heatran":[49.08779019640389,0.4545454545454544,0.07106916310758646],"Raging Bolt":[45.36901821182784,0.43442622950819676,0.07359070421985059],"Enamorus":[47.97215860103108,0.27906976744186035,0.06476023021413692],"Ting-Lu":[85.90363284370669,0.4718614718614715,0.05386112486371701],"Weezing-Galar":[50.94717618869191,0.4525547445255473,0.06973420440911353],"Mimikyu":[54.29407097481036,0.38356164383561636,0.0659912278871875],"Iron Treads":[40.90649183033658,0.390909090909091,0.07629267211732846],"Dragonite":[47.972158601031055,0.5271317829457363,0.07208336183587703],"Sudowoodo":[32.35331626581166,0.3908045977011495,0.0857825079381537],"Roaring Moon":[106.72875595733257,0.3519163763066201,0.046226875330228984],"Iron Valiant":[88.50677323290995,0.36134453781512604,0.05106293913147709]},"usage":0.5940171},"Primarina":{"Raw count":1145,"Viability Ceiling":[0,0,0,0],"Abilities":{"torrent":572.5},"Items":{"heavydutyboots":572.5},"Spreads":{"Modest:248/0/0/80/0/180":572.5},"Moves":{"calmmind":572.5,"surf":572.5,"moonblast":572.5,"psychicnoise":572.5},"Happiness":{"255":572.5},"Teammates":{"Dragapult":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":593.6402622544969,"Landorus-Therian":593.6402622544969},"Checks and Counters":{"Okidogi":[105.61312436195976,0.3556338028169014,0.04658101487587763],"Dragonite":[37.55959704421813,0.3465346534653465,0.07764690581195438],"Cinderace":[48.34403579948868,0.21538461538461537,0.059124066639830074],"Iron Valiant":[84.41612404987633,0.28193832599118956,0.04897170538886287],"Kingambit":[558.1876748848681,0.43437708194537,0.020980064998726775],"Kyurem":[58.756597356301626,0.2848101265822785,0.05887895222222776],"Landorus-Therian":[171.43538848895562,0.2060737527114969,0.03089236674339984],"Iron Crown":[104.12561556812932,0.2857142857142859,0.04427139114178026],"Primarina":[148.0071249861266,0.40954773869346733,0.04042065529418772],"Dragapult":[140.9414582154321,0.17414248021108208,0.031943724111128335],"Gholdengo":[136.47893183394086,0.4386920980926431,0.04247639752141428],"Mimikyu":[48.71591299794629,0.43511450381679395,0.07103077757893729],"Slowking-Galar":[158.41968654293947,0.3568075117370894,0.038061237227688685],"Darkrai":[54.29407097481037,0.3835616438356165,0.0659912278871875],"Roaring Moon":[115.2819315218575,0.4193548387096774,0.045958475343477426],"Zamazenta":[142.42896700926255,0.34464751958224543,0.039822258768930675],"Glimmora":[82.18486085913071,0.3122171945701357,0.05111615207652622],"Enamorus":[76.23482568380905,0.2585365853658538,0.05014517622859521],"Gliscor":[82.18486085913071,0.3393665158371041,0.05222986145071247],"Ting-Lu":[85.90363284370673,0.2770562770562771,0.04828702816272456],"Great Tusk":[134.24766864319525,0.27700831024930767,0.03862421585714458],"Ogerpon-Wellspring":[134.24766864319525,0.4958448753462602,0.04315206977617981],"Heatran":[59.12847455475922,0.4150943396226415,0.06407933266935661],"Weezing-Galar":[42.394000624167,0.34210526315789475,0.07286280444144982],"Raging Bolt":[49.83154459331911,0.2686567164179104,0.0627924336578101],"Iron Treads":[43.13775502108221,0.36206896551724144,0.07317348609288175],"Sudowoodo":[37.55959704421813,0.2475247524752475,0.07041982873954857],"Samurott-Hisui":[109.33189634653581,0.32653061224489804,0.04484845027946966]},"usage":0.5348109999999999},"Iron Crown":{"Raw count":1145,"Viability Ceiling":[0,0,0,0],"Abilities":{"quarkdrive":572.5},"Items":{"assaultvest":572.5},"Spreads":{"Timid:0/0/0/252/4/252":572.5},"Moves":{"futuresight":572.5,"tachyoncutter":572.5,"voltswitch":572.5,"focusblast":572.5},"Happiness":{"255":572.5},"Teammates":{"Dragapult":593.6402622544969,"Primarina":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":593.6402622544969,"Landorus-Therian":593.6402622544969},"Checks and Counters":{"Ogerpon-Wellspring":[132.76015984936484,0.45098039215686275,0.04318559168728309],"Okidogi":[94.08493120977403,0.48221343873517775,0.051515154437127446],"Iron Valiant":[78.46608887455469,0.37440758293838866,0.054635768103156616],"Kingambit":[429.51816421853505,0.509956709956711,0.024120877961237294],"Primarina":[104.12561556812932,0.4607142857142856,0.048847968457123116],"Iron Crown":[78.09421167609702,0.3619047619047619,0.05437890747657196],"Landorus-Therian":[131.644528253992,0.2542372881355933,0.03795059155473639],"Samurott-Hisui":[84.04424685141875,0.4778761061946902,0.054486692705265176],"Sudowoodo":[31.981439067354053,0.32558139534883723,0.08286012045813612],"Great Tusk":[119.00070350643354,0.403125,0.044966262975305066],"Gholdengo":[132.76015984936484,0.5406162464985992,0.04325123163653305],"Mimikyu":[37.55959704421813,0.40594059405940597,0.08012826102430397],"Slowking-Galar":[115.28193152185739,0.38387096774193546,0.04529474805458525],"Cinderace":[41.27836902879418,0.3063063063063063,0.07174647651930531],"Darkrai":[36.81584264730292,0.5555555555555556,0.08189457167894801],"Enamorus":[57.26908856247122,0.29870129870129863,0.06047974300515283],"Zamazenta":[100.77872078201088,0.4280442804428044,0.04928799277455697],"Ting-Lu":[54.29407097481036,0.40410958904109584,0.06659729247159153],"Gliscor":[62.103492142420066,0.5508982035928143,0.06311753991769771],"Glimmora":[74.74731688997862,0.35323383084577087,0.05528495865170501],"Weezing-Galar":[44.625263814912635,0.34166666666666673,0.07099599165151739],"Heatran":[45.74089541028545,0.4715447154471544,0.07380966474120465],"Raging Bolt":[47.97215860103108,0.372093023255814,0.06978768424160121],"Roaring Moon":[94.82868560668928,0.48627450980392134,0.05132588475737178],"Dragonite":[39.79086023496376,0.45794392523364497,0.07898354005769213],"Kyurem":[42.022123425709395,0.2743362831858407,0.0688288213526809],"Dragapult":[96.68807159897722,0.2653846153846157,0.04490362804291023],"Iron Treads":[34.95645665501489,0.40425531914893614,0.08300308918898433]},"usage":0.5348109999999999},"Samurott-Hisui":{"Raw count":1145,"Viability Ceiling":[0,0,0,0],"Abilities":{"sharpness":572.5},"Items":{"heavydutyboots":572.5},"Spreads":{"Jolly:0/252/0/0/4/252":572.5},"Moves":{"ceaselessedge":572.5,"razorshell":572.5,"knockoff":572.5,"encore":572.5},"Happiness":{"255":572.5},"Teammates":{"Dragapult":593.6402622544969,"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Kingambit":593.6402622544969,"Landorus-Therian":593.6402622544969},"Checks and Counters":{"Iron Treads":[35.700211051930104,0.32291666666666663,0.0782583884576369],"Dragonite":[46.48464980720066,0.40800000000000003,0.07208354773035562],"Kingambit":[441.79011176763663,0.43771043771043744,0.0236029054583266],"Ogerpon-Wellspring":[132.01640545244965,0.4676056338028168,0.043425281385810297],"Okidogi":[101.89435237738373,0.47810218978102176,0.049485509610158546],"Landorus-Therian":[121.97572109409433,0.30487804878048796,0.04168279981768135],"Cinderace":[39.790860234963766,0.2523364485981308,0.06885752901414859],"Slowking-Galar":[114.91005432339986,0.30420711974110043,0.04291861141077213],"Samurott-Hisui":[84.78800124833394,0.368421052631579,0.05238643481314187],"Dragapult":[104.86936996504457,0.2517730496453904,0.042383514313694234],"Iron Crown":[84.04424685141873,0.26991150442477896,0.04842219313872226],"Gholdengo":[104.86936996504457,0.42198581560283677,0.048227399551611004],"Kyurem":[31.609561868896446,0.44705882352941173,0.088432634529684],"Iron Valiant":[83.67236965296114,0.4755555555555555,0.05459581331398245],"Darkrai":[41.27836902879418,0.43243243243243246,0.07710928035569592],"Zamazenta":[104.49749276658694,0.4555160142348755,0.048718223685415805],"Ting-Lu":[70.65666770694494,0.3684210526315789,0.057386464108863465],"Gliscor":[74.00356249306341,0.4120603015075374,0.057216391863188304],"Roaring Moon":[88.13489603445237,0.4514767932489452,0.05300798195719932],"Great Tusk":[116.39756311723028,0.4089456869009585,0.04556953189987074],"Raging Bolt":[24.543895098201943,0.43939393939393934,0.10018072778718708],"Heatran":[31.23768467043884,0.3928571428571429,0.08738227625503364],"Mimikyu":[47.60028140257348,0.42187499999999994,0.07158104100191802],"Weezing-Galar":[42.022123425709395,0.46902654867256643,0.07698322833065611],"Glimmora":[69.91291331002978,0.3297872340425533,0.05622695544564092],"Primarina":[109.33189634653581,0.4693877551020407,0.047728861108973196],"Enamorus":[52.434684982522356,0.34751773049645385,0.06576025815370139],"Sudowoodo":[29.378298678150813,0.3037974683544304,0.08484896584025182]},"usage":0.5348109999999999},"Great Tusk":{"Raw count":512,"Viability Ceiling":[0,0,0,0],"Abilities":{"protosynthesis":256.0},"Items":{"boosterenergy":194.0,"rockyhelmet":62.0},"Spreads":{"Jolly:252/4/0/0/0/252":256.0},"Moves":{"bulkup":194.0,"headlongrush":256.0,"icespinner":256.0,"rapidspin":256.0,"taunt":62.0},"Happiness":{"255":256.0},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":71.8094211676097,"Gholdengo":185.54389509820209,"Mimikyu":71.8094211676097,"Kingambit":133.04068435835543,"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":174.96573712133795,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229,"Raging Bolt":61.23126319074562,"Heatran":61.23126319074562,"Enamorus":61.23126319074562},"Checks and Counters":{"Gholdengo":[26.40328109048997,0.5352112676056339,0.0970647342635459],"Landorus-Therian":[130.5288966586192,0.3646723646723649,0.04213053425066309],"Kingambit":[200.06993277019117,0.3921933085501858,0.03451770519190531],"Iron Crown":[119.00070350643354,0.3281250000000002,0.043041672309552345],"Samurott-Hisui":[116.39756311723028,0.3610223642172523,0.04451823503225071],"Dragapult":[105.24124716350215,0.2614840989399295,0.042836065539285074],"Primarina":[134.24766864319525,0.5373961218836563,0.04303269272147454],"Ogerpon-Wellspring":[24.915772296659547,0.5671641791044776,0.09926103926094558],"Roaring Moon":[24.915772296659547,0.41791044776119407,0.09880964520176327],"Glimmora":[21.5688775105411,0.3620689655172414,0.10348293643867244],"Great Tusk":[25.287649495117154,0.3676470588235294,0.09588288386190676]},"usage":0.22232},"Ogerpon-Wellspring":{"Raw count":485,"Viability Ceiling":[0,0,0,0],"Abilities":{"waterabsorb":242.5},"Items":{"wellspringmask":242.5},"Spreads":{"Jolly:0/252/0/0/4/252":242.5},"Moves":{"swordsdance":242.5,"ivycudgel":242.5,"powerwhip":180.5,"playrough":242.5,"trailblaze":62.0},"Happiness":{"255":242.5},"Teammates":{"Weezing-Galar":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":174.96573712133795,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229,"Kingambit":118.38757914447383,"Iron Valiant":57.156315953728125,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Okidogi":57.156315953728125,"Raging Bolt":61.23126319074562,"Heatran":61.23126319074562,"Enamorus":61.23126319074562},"Checks and Counters":{"Gholdengo":[25.28764949511715,0.4411764705882354,0.09873912660136554],"Kingambit":[203.41682755630956,0.43510054844606944,0.03476057513249253],"Samurott-Hisui":[132.01640545244965,0.30985915492957755,0.040247330487697186],"Iron Crown":[132.76015984936484,0.27170868347338956,0.03860738990691691],"Landorus-Therian":[137.9664406277713,0.32345013477088963,0.03982601418331119],"Primarina":[134.24766864319525,0.30747922437673136,0.03982638755562527],"Dragapult":[114.16629992648467,0.2508143322475574,0.040569713625977506],"Great Tusk":[24.915772296659547,0.29850746268656714,0.09167521717932203],"Ogerpon-Wellspring":[26.03140389203236,0.34285714285714286,0.09303314474499635],"Roaring Moon":[20.45324591516828,0.5090909090909091,0.1105393962607493]},"usage":0.209119},"Gholdengo":{"Raw count":388,"Viability Ceiling":[0,0,0,0],"Abilities":{"goodasgold":194.0},"Items":{"airballoon":194.0},"Spreads":{"Timid:0/0/0/252/4/252":74.5,"Bold:252/0/160/0/0/96":119.5},"Moves":{"nastyplot":194.0,"shadowball":194.0,"dazzlinggleam":74.5,"thunderwave":74.5,"makeitrain":119.5,"recover":119.5},"Happiness":{"255":194.0},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":185.54389509820209,"Kingambit":71.8094211676097,"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":113.73447393059229,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229},"Checks and Counters":{"Gholdengo":[35.700211051930104,0.43749999999999994,0.08302615010197034],"Ogerpon-Wellspring":[25.287649495117154,0.411764705882353,0.09786916139131406],"Great Tusk":[26.40328109048997,0.3239436619718309,0.09107459283960623],"Glimmora":[23.800140701286733,0.29687500000000006,0.0936511945097517],"Roaring Moon":[28.634544281235602,0.32467532467532456,0.08750559317904749],"Kingambit":[230.19198584525714,0.4313408723747978,0.03264308633294649],"Iron Crown":[132.76015984936484,0.23809523809523833,0.036965094044152956],"Landorus-Therian":[144.28835300155055,0.2190721649484538,0.03443367796210973],"Primarina":[136.4789318339409,0.3460490463215259,0.04072007879322656],"Dragapult":[98.91933478972285,0.12781954887218064,0.0335707636724525],"Samurott-Hisui":[104.86936996504457,0.35460992907801436,0.04671563496874836],"Zamazenta":[24.172017899744336,0.27692307692307694,0.09101550252108737]},"usage":0.1671567},"Roaring Moon":{"Raw count":384,"Viability Ceiling":[0,0,0,0],"Abilities":{"protosynthesis":192.0},"Items":{"boosterenergy":192.0},"Spreads":{"Jolly:0/252/0/0/4/252":119.5,"Jolly:0/252/4/0/0/252":72.5},"Moves":{"dragondance":192.0,"knockoff":192.0,"acrobatics":192.0,"earthquake":119.5,"taunt":72.5},"Happiness":{"255":192.0},"Teammates":{"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":113.73447393059229,"Glimmora":180.72519346426955,"Darkrai":66.990719533677,"Kingambit":66.990719533677,"Zamazenta":66.990719533677,"Enamorus":66.990719533677},"Checks and Counters":{"Gholdengo":[28.634544281235602,0.4675324675324675,0.09324108439260947],"Primarina":[115.2819315218575,0.3838709677419355,0.04529474805458522],"Dragapult":[76.23482568380905,0.24878048780487813,0.049512502987383376],"Kingambit":[157.67593214602428,0.49292452830188677,0.03981473347575859],"Samurott-Hisui":[88.13489603445237,0.3080168776371308,0.04917688997570459],"Iron Crown":[94.82868560668928,0.28235294117647075,0.04622551380947119],"Landorus-Therian":[106.72875595733257,0.348432055749129,0.046120943477435054],"Great Tusk":[24.915772296659544,0.41791044776119407,0.09880964520176329],"Ogerpon-Wellspring":[20.45324591516828,0.2727272727272727,0.09847632108299152],"Roaring Moon":[22.312631907456307,0.39999999999999997,0.10371228920467039]},"usage":0.1628155},"Glimmora":{"Raw count":384,"Viability Ceiling":[0,0,0,0],"Abilities":{"toxicdebris":192.0},"Items":{"focussash":119.5,"redcard":72.5},"Spreads":{"Timid:0/0/4/252/0/252":119.5,"Timid:0/0/0/252/4/252":72.5},"Moves":{"stealthrock":192.0,"mortalspin":192.0,"powergem":192.0,"earthpower":192.0},"Happiness":{"255":192.0},"Teammates":{"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":113.73447393059229,"Roaring Moon":180.72519346426955,"Darkrai":66.990719533677,"Kingambit":66.990719533677,"Zamazenta":66.990719533677,"Enamorus":66.990719533677},"Checks and Counters":{"Gholdengo":[23.800140701286733,0.484375,0.10243964873666873],"Primarina":[82.18486085913071,0.4208144796380093,0.05445757186989978],"Landorus-Therian":[72.51605369923298,0.31794871794871815,0.05468522116973128],"Iron Crown":[74.74731688997862,0.4129353233830848,0.0569490112752547],"Dragapult":[55.03782537172557,0.2837837837837838,0.06076943932804667],"Kingambit":[130.1570194601616,0.5228571428571427,0.04378062313532253],"Samurott-Hisui":[69.91291331002978,0.4574468085106382,0.05958168242362234],"Great Tusk":[21.5688775105411,0.3793103448275862,0.10447703165901406]},"usage":0.1628155},"Zamazenta":{"Raw count":307,"Viability Ceiling":[0,0,0,0],"Abilities":{"dauntlessshield":153.5},"Items":{"leftovers":72.5,"heavydutyboots":81.0},"Spreads":{"Impish:16/0/216/0/40/236":72.5,"Jolly:80/252/0/0/0/176":81.0},"Moves":{"irondefense":72.5,"bodypress":72.5,"heavyslam":72.5,"roar":153.5,"closecombat":81.0,"stoneedge":81.0,"crunch":81.0},"Happiness":{"255":153.5},"Teammates":{"Darkrai":66.990719533677,"Kingambit":146.70949151825326,"Roaring Moon":66.990719533677,"Glimmora":66.990719533677,"Enamorus":66.990719533677,"Ting-Lu":79.71877198457608,"Dragapult":79.71877198457608,"Slowking-Galar":79.71877198457608,"Gliscor":79.71877198457608},"Checks and Counters":{"Primarina":[142.42896700926255,0.41775456919060056,0.04132515456783644],"Landorus-Therian":[124.95073868175515,0.28571428571428603,0.040414065967479075],"Dragapult":[89.62240482828275,0.2365145228215771,0.04488704337777378],"Samurott-Hisui":[104.49749276658694,0.3274021352313167,0.04590558863811119],"Iron Crown":[100.77872078201088,0.22140221402214055,0.04135834400985402],"Kingambit":[144.2883530015506,0.3917525773195876,0.04063782275623873],"Gholdengo":[24.172017899744336,0.36923076923076925,0.09815846063776015]},"usage":0.1321707},"Slowking-Galar":{"Raw count":296,"Viability Ceiling":[0,0,0,0],"Abilities":{"regenerator":148.0},"Items":{"heavydutyboots":148.0},"Spreads":{"Sassy:248/0/8/0/252/0":67.0,"Sassy:252/0/4/0/252/0":81.0},"Moves":{"toxic":67.0,"futuresight":148.0,"surf":67.0,"chillyreception":148.0,"sludgebomb":81.0,"flamethrower":81.0},"Happiness":{"255":148.0},"Teammates":{"Kingambit":145.43754396915216,"Cinderace":65.71877198457605,"Landorus-Therian":65.71877198457605,"Iron Valiant":65.71877198457605,"Kyurem":65.71877198457605,"Ting-Lu":79.71877198457608,"Dragapult":79.71877198457608,"Gliscor":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Landorus-Therian":[117.88507191106063,0.2712933753943218,0.0409511919365176],"Kingambit":[155.07279175682103,0.5635491606714627,0.039825915449428165],"Samurott-Hisui":[114.91005432339986,0.40776699029126223,0.045843030883578245],"Dragapult":[114.9100543233998,0.30097087378640786,0.04278887374205537],"Primarina":[158.41968654293947,0.37793427230046933,0.038523141957002356],"Iron Crown":[115.28193152185739,0.3096774193548387,0.04306259399153573]},"usage":0.1310248},"Okidogi":{"Raw count":271,"Viability Ceiling":[0,0,0,0],"Abilities":{"toxicchain":74.5,"guarddog":61.0},"Items":{"weaknesspolicy":74.5,"leftovers":61.0},"Spreads":{"Adamant:248/104/0/0/0/156":74.5,"Careful:252/0/0/0/128/128":61.0},"Moves":{"bulkup":135.5,"drainpunch":135.5,"icepunch":74.5,"knockoff":135.5,"taunt":61.0},"Happiness":{"255":135.5},"Teammates":{"Sudowoodo":71.8094211676097,"Gholdengo":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":71.8094211676097,"Kingambit":128.965737121338,"Iron Valiant":57.156315953728125,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125},"Checks and Counters":{"Landorus-Therian":[103.75373836967171,0.2795698924731186,0.04405946809726289],"Primarina":[105.61312436195976,0.415492957746479,0.047953218620504244],"Iron Crown":[94.08493120977403,0.28458498023715434,0.046518422478738455],"Samurott-Hisui":[101.89435237738373,0.3284671532846716,0.04652694600845839],"Kingambit":[127.92575626941601,0.37209302325581395,0.042736054180598386],"Dragapult":[87.76301883599473,0.20338983050847484,0.042966676655390265]},"usage":0.11618529999999999},"Enamorus":{"Raw count":269,"Viability Ceiling":[0,0,0,0],"Abilities":{"contrary":134.5},"Items":{"choicescarf":134.5},"Spreads":{"Timid:0/0/0/252/4/252":134.5},"Moves":{"moonblast":134.5,"earthpower":134.5,"mysticalfire":134.5,"healingwish":134.5},"Happiness":{"255":134.5},"Teammates":{"Darkrai":66.990719533677,"Kingambit":128.22198272442282,"Roaring Moon":66.990719533677,"Zamazenta":66.990719533677,"Glimmora":66.990719533677,"Ogerpon-Wellspring":61.23126319074562,"Raging Bolt":61.23126319074562,"Great Tusk":61.23126319074562,"Heatran":61.23126319074562},"Checks and Counters":{"Iron Crown":[57.26908856247122,0.4220779220779221,0.0652635697837962],"Primarina":[76.23482568380905,0.448780487804878,0.05696427423894248],"Dragapult":[49.8315445933191,0.3358208955223881,0.06690279896142898],"Kingambit":[72.51605369923301,0.5076923076923077,0.05870857261885863],"Landorus-Therian":[47.97215860103108,0.42635658914728686,0.0714024089161914],"Samurott-Hisui":[52.43468498252234,0.3829787234042553,0.06713176443549104]},"usage":0.1155153},"Iron Valiant":{"Raw count":256,"Viability Ceiling":[0,0,0,0],"Abilities":{"quarkdrive":128.0},"Items":{"boosterenergy":128.0},"Spreads":{"Jolly:0/252/0/0/4/252":61.0,"Naive:0/176/0/80/0/252":67.0},"Moves":{"swordsdance":61.0,"encore":128.0,"closecombat":128.0,"knockoff":128.0,"moonblast":67.0},"Happiness":{"255":128.0},"Teammates":{"Kingambit":122.87508793830429,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125,"Okidogi":57.156315953728125,"Cinderace":65.71877198457605,"Landorus-Therian":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Iron Crown":[78.46608887455469,0.32227488151658784,0.052759299039380314],"Dragapult":[62.84724653933527,0.2544378698224853,0.05494012815832449],"Primarina":[84.41612404987633,0.5462555066079293,0.054186474271603925],"Kingambit":[87.01926443907959,0.39316239316239315,0.052361794809536316],"Samurott-Hisui":[83.67236965296114,0.32888888888888884,0.05136068189808938],"Landorus-Therian":[88.50677323290995,0.34033613445378175,0.050364801286852286]},"usage":0.1106983},"Weezing-Galar":{"Raw count":239,"Viability Ceiling":[0,0,0,0],"Abilities":{"mistysurge":119.5},"Items":{"terrainextender":119.5},"Spreads":{"Modest:76/0/0/252/0/180":119.5},"Moves":{"strangesteam":119.5,"sludgewave":119.5,"fireblast":119.5,"taunt":119.5},"Happiness":{"255":119.5},"Teammates":{"Ogerpon-Wellspring":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":113.73447393059229,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229},"Checks and Counters":{"Kingambit":[91.48179082057084,0.4430894308943089,0.05193631074547057],"Iron Crown":[44.625263814912635,0.41666666666666663,0.07380102231286252],"Dragapult":[44.625263814912635,0.22499999999999995,0.0625103185445588],"Primarina":[42.394000624167006,0.4035087719298245,0.07534879648859062],"Landorus-Therian":[50.94717618869191,0.3211678832116789,0.06541648227185091],"Samurott-Hisui":[42.022123425709395,0.2389380530973451,0.06578299876293157]},"usage":0.1024635},"Ting-Lu":{"Raw count":162,"Viability Ceiling":[0,0,0,0],"Abilities":{"vesselofruin":81.0},"Items":{"leftovers":81.0},"Spreads":{"Impish:252/0/24/0/228/4":81.0},"Moves":{"stealthrock":81.0,"earthquake":81.0,"ruination":81.0,"whirlwind":81.0},"Happiness":{"255":81.0},"Teammates":{"Dragapult":79.71877198457608,"Slowking-Galar":79.71877198457608,"Kingambit":79.71877198457608,"Gliscor":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Dragapult":[63.591000936250445,0.1812865497076025,0.04831154472001468],"Samurott-Hisui":[70.65666770694494,0.4105263157894735,0.05852294006143736],"Iron Crown":[54.29407097481036,0.2808219178082192,0.06098984349880302],"Primarina":[85.90363284370673,0.44155844155844165,0.053576852446756716],"Landorus-Therian":[85.90363284370669,0.26406926406926434,0.04756326212999855],"Kingambit":[105.24124716350212,0.41342756183745594,0.04800290786217292]},"usage":0.0718187},"Gliscor":{"Raw count":162,"Viability Ceiling":[0,0,0,0],"Abilities":{"poisonheal":81.0},"Items":{"toxicorb":81.0},"Spreads":{"Jolly:244/0/0/0/244/20":81.0},"Moves":{"swordsdance":81.0,"earthquake":81.0,"knockoff":81.0,"protect":81.0},"Happiness":{"255":81.0},"Teammates":{"Ting-Lu":79.71877198457608,"Dragapult":79.71877198457608,"Slowking-Galar":79.71877198457608,"Kingambit":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Landorus-Therian":[82.18486085913067,0.28054298642533937,0.04955713843953276],"Samurott-Hisui":[74.00356249306341,0.3517587939698493,0.055509138260529445],"Iron Crown":[62.103492142420066,0.23952095808383242,0.05415734608852647],"Primarina":[82.18486085913071,0.40723981900452494,0.0541961850215309],"Kingambit":[126.06637027712799,0.41887905604719766,0.04394181210385527],"Dragapult":[63.59100093625047,0.1871345029239767,0.04890896229157676]},"usage":0.0718187},"Sudowoodo":{"Raw count":149,"Viability Ceiling":[0,0,0,0],"Abilities":{"sturdy":74.5},"Items":{"custapberry":74.5},"Spreads":{"Adamant:0/128/0/0/212/168":74.5},"Moves":{"stealthrock":74.5,"spikes":74.5,"headsmash":74.5,"endeavor":74.5},"Happiness":{"255":74.5},"Teammates":{"Okidogi":71.8094211676097,"Gholdengo":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":71.8094211676097,"Kingambit":71.8094211676097},"Checks and Counters":{"Iron Crown":[31.981439067354053,0.39534883720930225,0.08645570930431666],"Kingambit":[37.55959704421813,0.5247524752475249,0.0814848213168547],"Dragapult":[23.05638630437152,0.3548387096774193,0.09964465929497496],"Primarina":[37.55959704421813,0.5247524752475249,0.0814848213168547],"Landorus-Therian":[32.35331626581166,0.29885057471264365,0.08047721473090354],"Samurott-Hisui":[29.378298678150816,0.4430379746835442,0.09164735768978971]},"usage":0.06469319999999999},"Mimikyu":{"Raw count":149,"Viability Ceiling":[0,0,0,0],"Abilities":{"disguise":74.5},"Items":{"lifeorb":74.5},"Spreads":{"Jolly:0/252/0/0/4/252":74.5},"Moves":{"swordsdance":74.5,"shadowclaw":74.5,"playrough":74.5,"shadowsneak":74.5},"Happiness":{"255":74.5},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":71.8094211676097,"Gholdengo":71.8094211676097,"Great Tusk":71.8094211676097,"Kingambit":71.8094211676097},"Checks and Counters":{"Dragapult":[33.097070662726864,0.16853932584269657,0.06506938531724163],"Iron Crown":[37.55959704421813,0.31683168316831684,0.07591326988081039],"Primarina":[48.71591299794629,0.3435114503816794,0.06803756523931755],"Kingambit":[55.4097025701832,0.4295302013422818,0.06649978971187838],"Samurott-Hisui":[47.60028140257347,0.375,0.0701699040124087],"Landorus-Therian":[54.29407097481037,0.3424657534246575,0.06440084410906956]},"usage":0.06469319999999999},"Darkrai":{"Raw count":145,"Viability Ceiling":[0,0,0,0],"Abilities":{"baddreams":72.5},"Items":{"expertbelt":72.5},"Spreads":{"Timid:0/0/0/252/4/252":72.5},"Moves":{"icebeam":72.5,"sludgebomb":72.5,"darkpulse":72.5,"focusblast":72.5},"Happiness":{"255":72.5},"Teammates":{"Kingambit":66.990719533677,"Roaring Moon":66.990719533677,"Zamazenta":66.990719533677,"Glimmora":66.990719533677,"Enamorus":66.990719533677},"Checks and Counters":{"Iron Crown":[36.81584264730292,0.25252525252525243,0.07160334267321082],"Landorus-Therian":[33.097070662726864,0.21348314606741567,0.07122640671108346],"Samurott-Hisui":[41.27836902879418,0.3603603603603604,0.07472654905497385],"Kingambit":[55.781579768640796,0.46,0.06673142376630592],"Primarina":[54.29407097481037,0.3835616438356165,0.0659912278871875],"Dragapult":[34.584579456557286,0.1935483870967741,0.06718041559186871]},"usage":0.060351999999999996},"Cinderace":{"Raw count":134,"Viability Ceiling":[0,0,0,0],"Abilities":{"blaze":67.0},"Items":{"heavydutyboots":67.0},"Spreads":{"Jolly:144/112/0/0/0/252":67.0},"Moves":{"pyroball":67.0,"willowisp":67.0,"courtchange":67.0,"uturn":67.0},"Happiness":{"255":67.0},"Teammates":{"Kingambit":65.71877198457605,"Landorus-Therian":65.71877198457605,"Iron Valiant":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Kingambit":[48.71591299794629,0.41984732824427484,0.0707100952297561],"Samurott-Hisui":[39.790860234963766,0.39252336448598124,0.07741157109854288],"Primarina":[48.34403579948868,0.5384615384615384,0.07169846228590494],"Dragapult":[39.04710583804855,0.3428571428571428,0.07596124459724375],"Iron Crown":[41.27836902879419,0.4054054054054054,0.07641770333333531],"Landorus-Therian":[43.50963221953982,0.3418803418803419,0.07191124211901664]},"usage":0.0592061},"Kyurem":{"Raw count":134,"Viability Ceiling":[0,0,0,0],"Abilities":{"pressure":67.0},"Items":{"choicespecs":67.0},"Spreads":{"Timid:0/0/4/252/0/252":67.0},"Moves":{"dracometeor":67.0,"freezedry":67.0,"earthpower":67.0,"blizzard":67.0},"Happiness":{"255":67.0},"Teammates":{"Kingambit":65.71877198457605,"Cinderace":65.71877198457605,"Landorus-Therian":65.71877198457605,"Iron Valiant":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Kingambit":[52.80656218097995,0.47887323943661975,0.06874451057732847],"Primarina":[58.756597356301626,0.4113924050632912,0.06419670634911633],"Landorus-Therian":[39.04710583804855,0.27619047619047615,0.07155204838563597],"Samurott-Hisui":[31.609561868896446,0.36470588235294116,0.08561494124851676],"Dragapult":[33.097070662726864,0.22471910112359544,0.07255289694812768],"Iron Crown":[42.022123425709395,0.3716814159292035,0.07454806566175994]},"usage":0.0592061},"Raging Bolt":{"Raw count":124,"Viability Ceiling":[0,0,0,0],"Abilities":{"protosynthesis":62.0},"Items":{"choicespecs":62.0},"Spreads":{"Modest:0/0/0/252/0/252":62.0},"Moves":{"dragonpulse":62.0,"voltswitch":62.0,"dracometeor":62.0,"thunderclap":62.0},"Happiness":{"255":62.0},"Teammates":{"Ogerpon-Wellspring":61.23126319074562,"Great Tusk":61.23126319074562,"Heatran":61.23126319074562,"Enamorus":61.23126319074562,"Kingambit":61.23126319074562},"Checks and Counters":{"Samurott-Hisui":[24.543895098201943,0.2878787878787878,0.09139239340174633],"Kingambit":[47.60028140257347,0.42187499999999994,0.07158104100191803],"Iron Crown":[47.97215860103108,0.3255813953488372,0.06765500504932766],"Dragapult":[33.097070662726864,0.2696629213483146,0.07713962333911335],"Landorus-Therian":[45.36901821182784,0.19672131147540978,0.05901727288556792],"Primarina":[49.83154459331911,0.4850746268656717,0.07079853169707123]},"usage":0.0551633},"Heatran":{"Raw count":124,"Viability Ceiling":[0,0,0,0],"Abilities":{"flashfire":62.0},"Items":{"leftovers":62.0},"Spreads":{"Calm:248/0/0/0/216/44":62.0},"Moves":{"stealthrock":62.0,"magmastorm":62.0,"taunt":62.0,"earthpower":62.0},"Happiness":{"255":62.0},"Teammates":{"Ogerpon-Wellspring":61.23126319074562,"Raging Bolt":61.23126319074562,"Great Tusk":61.23126319074562,"Enamorus":61.23126319074562,"Kingambit":61.23126319074562},"Checks and Counters":{"Dragapult":[42.7658778226246,0.2260869565217391,0.06396393032132473],"Iron Crown":[45.74089541028545,0.3577235772357723,0.0708732651790369],"Kingambit":[58.75659735630163,0.34810126582278483,0.06214619614216238],"Primarina":[59.12847455475922,0.4150943396226415,0.06407933266935661],"Landorus-Therian":[49.08779019640389,0.3257575757575758,0.06689113407107421],"Samurott-Hisui":[31.23768467043884,0.42857142857142855,0.08854278228356043]},"usage":0.0551633},"Dragonite":{"Raw count":122,"Viability Ceiling":[0,0,0,0],"Abilities":{"multiscale":61.0},"Items":{"lumberry":61.0},"Spreads":{"Adamant:0/252/4/0/0/252":61.0},"Moves":{"dragondance":61.0,"extremespeed":61.0,"terablast":61.0,"earthquake":61.0},"Happiness":{"255":61.0},"Teammates":{"Kingambit":57.156315953728125,"Iron Valiant":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125,"Okidogi":57.156315953728125},"Checks and Counters":{"Samurott-Hisui":[46.48464980720066,0.38399999999999995,0.07133475705360352],"Kingambit":[46.48464980720066,0.44,0.07280573154447159],"Primarina":[37.55959704421813,0.45544554455445546,0.081260300618832],"Iron Crown":[39.79086023496376,0.308411214953271,0.07321454841550859],"Landorus-Therian":[47.972158601031055,0.24806201550387605,0.062355751205121074],"Dragapult":[42.022123425709395,0.3805309734513274,0.07489723884010457]},"usage":0.051492199999999995},"Iron Treads":{"Raw count":122,"Viability Ceiling":[0,0,0,0],"Abilities":{"quarkdrive":61.0},"Items":{"boosterenergy":61.0},"Spreads":{"Jolly:0/252/0/0/4/252":61.0},"Moves":{"stealthrock":61.0,"earthquake":61.0,"stoneedge":61.0,"rapidspin":61.0},"Happiness":{"255":61.0},"Teammates":{"Kingambit":57.156315953728125,"Iron Valiant":57.156315953728125,"Dragonite":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125,"Okidogi":57.156315953728125},"Checks and Counters":{"Dragapult":[38.303351441133344,0.29126213592233,0.07341189674515528],"Samurott-Hisui":[35.700211051930104,0.4583333333333333,0.08339142309349773],"Primarina":[43.13775502108221,0.39655172413793105,0.07448025874869738],"Landorus-Therian":[40.90649183033658,0.32727272727272727,0.07336320690095577],"Iron Crown":[34.95645665501489,0.32978723404255317,0.07951692296217314],"Kingambit":[44.25338661645503,0.3949579831932772,0.07348436739679236]},"usage":0.051492199999999995}}} \ No newline at end of file diff --git a/Stats/gen9ou-1500.txt b/Stats/gen9ou-1500.txt new file mode 100644 index 0000000..8ac6e1d --- /dev/null +++ b/Stats/gen9ou-1500.txt @@ -0,0 +1,34 @@ + Total battles: 1110 + Avg. weight/team: 0.5 + + ---- + ------------------ + --------- + ------ + ------- + ------ + ------- + + | Rank | Pokemon | Usage % | Raw | % | Real | % | + + ---- + ------------------ + --------- + ------ + ------- + ------ + ------- + + | 1 | Kingambit | 89.75365% | 1981 | 89.234% | 1946 | 90.386% | + | 2 | Dragapult | 60.66298% | 1307 | 58.874% | 1217 | 56.526% | + | 3 | Landorus-Therian | 59.40171% | 1279 | 57.613% | 1257 | 58.384% | + | 4 | Primarina | 53.48110% | 1145 | 51.577% | 1132 | 52.578% | + | 5 | Iron Crown | 53.48110% | 1145 | 51.577% | 1111 | 51.602% | + | 6 | Samurott-Hisui | 53.48110% | 1145 | 51.577% | 1092 | 50.720% | + | 7 | Great Tusk | 22.23200% | 512 | 23.063% | 497 | 23.084% | + | 8 | Ogerpon-Wellspring | 20.91190% | 485 | 21.847% | 479 | 22.248% | + | 9 | Gholdengo | 16.71567% | 388 | 17.477% | 386 | 17.928% | + | 10 | Roaring Moon | 16.28155% | 384 | 17.297% | 368 | 17.092% | + | 11 | Glimmora | 16.28155% | 384 | 17.297% | 368 | 17.092% | + | 12 | Zamazenta | 13.21707% | 307 | 13.829% | 304 | 14.120% | + | 13 | Slowking-Galar | 13.10248% | 296 | 13.333% | 291 | 13.516% | + | 14 | Okidogi | 11.61853% | 271 | 12.207% | 265 | 12.308% | + | 15 | Enamorus | 11.55153% | 269 | 12.117% | 248 | 11.519% | + | 16 | Iron Valiant | 11.06983% | 256 | 11.532% | 239 | 11.101% | + | 17 | Weezing-Galar | 10.24635% | 239 | 10.766% | 228 | 10.590% | + | 18 | Ting-Lu | 7.18187% | 162 | 7.297% | 162 | 7.524% | + | 19 | Gliscor | 7.18187% | 162 | 7.297% | 159 | 7.385% | + | 20 | Sudowoodo | 6.46932% | 149 | 6.712% | 143 | 6.642% | + | 21 | Mimikyu | 6.46932% | 149 | 6.712% | 148 | 6.874% | + | 22 | Darkrai | 6.03520% | 145 | 6.532% | 138 | 6.410% | + | 23 | Cinderace | 5.92061% | 134 | 6.036% | 133 | 6.177% | + | 24 | Kyurem | 5.92061% | 134 | 6.036% | 129 | 5.992% | + | 25 | Raging Bolt | 5.51633% | 124 | 5.586% | 118 | 5.481% | + | 26 | Heatran | 5.51633% | 124 | 5.586% | 122 | 5.667% | + | 27 | Dragonite | 5.14922% | 122 | 5.495% | 118 | 5.481% | + | 28 | Iron Treads | 5.14922% | 122 | 5.495% | 120 | 5.574% | + + ---- + ------------------ + --------- + ------ + ------- + ------ + ------- + diff --git a/Stats/leads/gen9ou-1500.txt b/Stats/leads/gen9ou-1500.txt new file mode 100644 index 0000000..5eee3d5 --- /dev/null +++ b/Stats/leads/gen9ou-1500.txt @@ -0,0 +1,33 @@ + Total leads: 2220 + + ---- + ------------------ + --------- + ------ + ------- + + | Rank | Pokemon | Usage % | Raw | % | + + ---- + ------------------ + --------- + ------ + ------- + + | 1 | Kingambit | 15.58108% | 350 | 15.766% | + | 2 | Landorus-Therian | 10.62697% | 229 | 10.315% | + | 3 | Dragapult | 9.88541% | 211 | 9.505% | + | 4 | Samurott-Hisui | 9.17736% | 194 | 8.739% | + | 5 | Iron Crown | 8.54223% | 184 | 8.288% | + | 6 | Primarina | 7.82376% | 166 | 7.477% | + | 7 | Ogerpon-Wellspring | 4.56701% | 106 | 4.775% | + | 8 | Glimmora | 3.46284% | 82 | 3.694% | + | 9 | Great Tusk | 2.89922% | 70 | 3.153% | + | 10 | Roaring Moon | 2.57911% | 57 | 2.568% | + | 11 | Gholdengo | 2.51802% | 60 | 2.703% | + | 12 | Slowking-Galar | 2.24183% | 49 | 2.207% | + | 13 | Zamazenta | 2.22692% | 52 | 2.342% | + | 14 | Iron Valiant | 1.96706% | 47 | 2.117% | + | 15 | Okidogi | 1.88964% | 44 | 1.982% | + | 16 | Enamorus | 1.75338% | 42 | 1.892% | + | 17 | Weezing-Galar | 1.69088% | 36 | 1.622% | + | 18 | Ting-Lu | 1.45411% | 31 | 1.396% | + | 19 | Mimikyu | 1.14809% | 26 | 1.171% | + | 20 | Sudowoodo | 1.09150% | 25 | 1.126% | + | 21 | Gliscor | 1.03491% | 24 | 1.081% | + | 22 | Kyurem | 0.97832% | 23 | 1.036% | + | 23 | Cinderace | 0.92399% | 20 | 0.901% | + | 24 | Raging Bolt | 0.89048% | 19 | 0.856% | + | 25 | Iron Treads | 0.87782% | 20 | 0.901% | + | 26 | Dragonite | 0.83165% | 20 | 0.901% | + | 27 | Darkrai | 0.68497% | 17 | 0.766% | + | 28 | Heatran | 0.65147% | 16 | 0.721% | + + ---- + ------------------ + --------- + ------ + ------- + diff --git a/Stats/metagame/gen9ou-1500.txt b/Stats/metagame/gen9ou-1500.txt new file mode 100644 index 0000000..b939b46 --- /dev/null +++ b/Stats/metagame/gen9ou-1500.txt @@ -0,0 +1,26 @@ + weatherless...................100.00000% + offense.......................75.27898% + voltturn......................53.48110% + balance.......................13.10248% + hyperoffense..................11.61853% + + Stalliness (mean: -0.464) + | + -1.2|### + | + -1.0|### + | + -0.8|### + |###### + -0.6| + | + -0.4| + |############################## + -0.2| + | + 0.0| + | + +0.2|### + | + more negative = more offensive, more positive = more stall + one # = 1.78% diff --git a/TA.py b/TA.py index d1325c6..4827f02 100644 --- a/TA.py +++ b/TA.py @@ -7,8 +7,7 @@ import string import sys -#import ujson as json -import json +import orjson as json import math import copy from common import keyify diff --git a/TierUpdate9Doubles.py b/TierUpdate9Doubles.py index 5d76066..c134732 100644 --- a/TierUpdate9Doubles.py +++ b/TierUpdate9Doubles.py @@ -1,7 +1,7 @@ import string import sys -import json -import cPickle as pickle +import orjson as json +import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) sys.setdefaultencoding('utf8') @@ -16,25 +16,25 @@ def getUsage(filename,col,weight,usage): def makeTable(table,name,keyLookup): - print "[HIDE="+name+"][CODE]" - print "Combined usage for "+name - print " + ---- + ------------------ + ------- + " - print " | Rank | Pokemon | Percent | " - print " + ---- + ------------------ + ------- + " - print ' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100) + print("[HIDE="+name+"][CODE]") + print("Combined usage for "+name) + print(" + ---- + ------------------ + ------- + ") + print(" | Rank | Pokemon | Percent | ") + print(" + ---- + ------------------ + ------- + ") + print(' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100)) for i in range(1,len(table)): if table[i][1] < 0.001: break - print ' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1]) - print " + ---- + ------------------ + ------- + " - print "[/CODE][/HIDE]" + print(' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1])) + print(" + ---- + ------------------ + ------- + ") + print("[/CODE][/HIDE]") tiers = ['DUber','DOU', 'DUU', 'DNU'] usageTiers = ['doublesou', 'doublesuu'] def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.load(file) + keyLookup = json.loads(file.read()) file.close() rise = [0.99999999999,0.99515839608,0.04515839608][len(months)-1] @@ -76,8 +76,8 @@ def main(months): usage = {} #track usage across all relevant tiers [OU,UU,RU,NU] - for i in xrange(len(months)): - for j in xrange(len(usageTiers)): + for i in range(len(months)): + for j in range(len(usageTiers)): n = {} u = {} @@ -165,7 +165,7 @@ def main(months): if poke not in newTiers.keys(): newTiers[poke] = tiers[-1] - print "" + print("") for poke in curTiers: if newTiers[poke] == 'New' and poke in NFE: continue @@ -176,7 +176,7 @@ def main(months): if tiers.index(newTiers[base]) < tiers.index(newTiers[poke]): #if the base is in a higher tier newTiers[poke] = newTiers[base] continue - print species+" moved from "+curTiers[poke]+" to "+newTiers[poke] + print(species+" moved from "+curTiers[poke]+" to "+newTiers[poke]) if __name__ == "__main__": main(sys.argv[1:]) diff --git a/TierUpdate9LC.py b/TierUpdate9LC.py index add9031..c244bc3 100644 --- a/TierUpdate9LC.py +++ b/TierUpdate9LC.py @@ -1,7 +1,7 @@ import string import sys -import json -import cPickle as pickle +import orjson as json +import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) sys.setdefaultencoding('utf8') @@ -28,22 +28,22 @@ def usageToTiers(usage): def makeTable(table,name,keyLookup): - print "[HIDE="+name+"][CODE]" - print "Combined usage for "+name - print " + ---- + ------------------ + ------- + " - print " | Rank | Pokemon | Percent | " - print " + ---- + ------------------ + ------- + " - print ' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100) + print("[HIDE="+name+"][CODE]") + print("Combined usage for "+name) + print(" + ---- + ------------------ + ------- + ") + print(" | Rank | Pokemon | Percent | ") + print(" + ---- + ------------------ + ------- + ") + print(' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100)) for i in range(1,len(table)): if table[i][1] < 0.001: break - print ' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1]) - print " + ---- + ------------------ + ------- + " - print "[/CODE][/HIDE]" + print(' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1])) + print(" + ---- + ------------------ + ------- + ") + print("[/CODE][/HIDE]") def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.load(file) + keyLookup = json.loads(file.read()) file.close() rise = [0.99999999999,0.99515839608,0.04515839608][len(months)-1] @@ -60,7 +60,7 @@ def main(months): remaining=24.0 - for i in xrange(len(months)): + for i in range(len(months)): tiername = 'lc' #bh @@ -98,7 +98,7 @@ def main(months): for poke in dnuBanlist: printme += keyLookup[poke]+', ' printme = printme[:-2] - print printme + print(printme) diff --git a/TierUpdate9NatDex.py b/TierUpdate9NatDex.py index 444bdb9..62eff7c 100644 --- a/TierUpdate9NatDex.py +++ b/TierUpdate9NatDex.py @@ -1,7 +1,7 @@ import string import sys -import json -import cPickle as pickle +import orjson as json +import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) sys.setdefaultencoding('utf8') @@ -16,25 +16,25 @@ def getUsage(filename,col,weight,usage): def makeTable(table,name,keyLookup): - print "[HIDE="+name+"][CODE]" - print "Combined usage for "+name - print " + ---- + ------------------ + ------- + " - print " | Rank | Pokemon | Percent | " - print " + ---- + ------------------ + ------- + " - print ' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100) + print("[HIDE="+name+"][CODE]") + print("Combined usage for "+name) + print(" + ---- + ------------------ + ------- + ") + print(" | Rank | Pokemon | Percent | ") + print(" + ---- + ------------------ + ------- + ") + print(' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100)) for i in range(1,len(table)): if table[i][1] < 0.001: break - print ' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1]) - print " + ---- + ------------------ + ------- + " - print "[/CODE][/HIDE]" + print(' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1])) + print(" + ---- + ------------------ + ------- + ") + print("[/CODE][/HIDE]") tiers = ['Uber','OU','UUBL','UU','RUBL','RU','NUBL','NU','PUBL','PU','ZUBL','ZU', 'New'] usageTiers = ['nationaldex', 'nationaldexuu'] def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.load(file) + keyLookup = json.loads(file.read()) file.close() rise = [0.08827751140,0.06715839608,0.04515839608][len(months)-1] @@ -79,8 +79,8 @@ def main(months): usage = {} #track usage across all relevant tiers [OU,UU,RU,NU] - for i in xrange(len(months)): - for j in xrange(len(usageTiers)): + for i in range(len(months)): + for j in range(len(usageTiers)): n = {} u = {} @@ -181,7 +181,7 @@ def main(months): if poke not in newTiers.keys(): newTiers[poke] = 'RU' - print "" + print("") for poke in curTiers: if newTiers[poke] == 'RU' and poke in NFE: continue @@ -192,7 +192,7 @@ def main(months): if tiers.index(newTiers[base]) < tiers.index(newTiers[poke]): #if the base is in a higher tier newTiers[poke] = newTiers[base] continue - print species+" moved from "+curTiers[poke]+" to "+newTiers[poke] + print(species+" moved from "+curTiers[poke]+" to "+newTiers[poke]) if __name__ == "__main__": main(sys.argv[1:]) diff --git a/TierUpdate9Singles.py b/TierUpdate9Singles.py index ef047a5..d027db3 100644 --- a/TierUpdate9Singles.py +++ b/TierUpdate9Singles.py @@ -1,7 +1,7 @@ import string import sys -import json -import cPickle as pickle +import orjson as json +import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) sys.setdefaultencoding('utf8') @@ -16,25 +16,25 @@ def getUsage(filename,col,weight,usage): def makeTable(table,name,keyLookup): - print "[HIDE="+name+"][CODE]" - print "Combined usage for "+name - print " + ---- + ------------------ + ------- + " - print " | Rank | Pokemon | Percent | " - print " + ---- + ------------------ + ------- + " - print ' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100) + print("[HIDE="+name+"][CODE]") + print("Combined usage for "+name) + print(" + ---- + ------------------ + ------- + ") + print(" | Rank | Pokemon | Percent | ") + print(" + ---- + ------------------ + ------- + ") + print(' | %-4d | %-18s | %6.3f%% |' % (1,keyLookup[table[0][0]],table[0][1]*100)) for i in range(1,len(table)): if table[i][1] < 0.001: break - print ' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1]) - print " + ---- + ------------------ + ------- + " - print "[/CODE][/HIDE]" + print(' | %-4d | %-18s | %6.3f%% |' % (i+1,keyLookup[table[i][0]],100.0*table[i][1])) + print(" + ---- + ------------------ + ------- + ") + print("[/CODE][/HIDE]") tiers = ['Uber','New','OU','UUBL','UU','RUBL','RU','NUBL','NU','PUBL','PU','ZUBL','ZU'] usageTiers = ['ou', 'uu', 'ru', 'nu', 'pu'] def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.load(file) + keyLookup = json.loads(file.read()) file.close() rise = [0.08827751140,0.06715839608,0.04515839608][len(months)-1] @@ -75,8 +75,8 @@ def main(months): usage = {} #track usage across all relevant tiers [OU,UU,RU,NU] - for i in xrange(len(months)): - for j in xrange(len(usageTiers)): + for i in range(len(months)): + for j in range(len(usageTiers)): n = {} u = {} @@ -264,7 +264,7 @@ def main(months): if newTiers[poke] == 'PU' and poke in ['oricorio','oricoriopau','magneton','vivillon','sneaselhisui']: newTiers[poke] = 'PUBL' - print "" + print("") for poke in curTiers: if newTiers[poke] == 'ZU' and poke in NFE: continue @@ -275,7 +275,7 @@ def main(months): if tiers.index(newTiers[base]) < tiers.index(newTiers[poke]): #if the base is in a higher tier newTiers[poke] = newTiers[base] continue - print species+" moved from "+curTiers[poke]+" to "+newTiers[poke] + print(species+" moved from "+curTiers[poke]+" to "+newTiers[poke]) if __name__ == "__main__": main(sys.argv[1:]) diff --git a/batchLogReader.py b/batchLogReader.py index f13daa8..8693948 100644 --- a/batchLogReader.py +++ b/batchLogReader.py @@ -5,23 +5,22 @@ import string import sys -#import ujson as json -import json +import orjson as json import gzip import copy -#import cPickle as pickle import math import os import ladderdev.Glicko as Glicko -import cPickle as pickle +import pickle from common import * from TA import * file = open('keylookup.json', 'rb') -keyLookup = json.load(file) +keyLookup = json.loads(file.read()) file.close() + def getTeamsFromLog(log,mrayAllowed): teams={} for team in ['p1team','p2team']: @@ -37,7 +36,7 @@ def getTeamsFromLog(log,mrayAllowed): sys.stderr.write('Problem with '+filename+'\n') return False #very odd that these == needed--I've seen ".Species", "(Species)", "species", "Species)", "SPECIES"... - if species[0] not in string.lowercase + string.uppercase: + if species[0] not in string.ascii_lowercase + string.ascii_uppercase: species=species[1:] while species[len(species)-1] in ')". ': species=species[:len(species)-1] @@ -119,7 +118,7 @@ def getTeamsFromLog(log,mrayAllowed): ability=mega[2] break - if species[0] in string.lowercase or species[1] in string.uppercase: + if species[0] in string.ascii_lowercase or species[1] in string.ascii_uppercase: species = species.title() for s in aliases: #combine appearance-only variations and weird PS quirks @@ -192,7 +191,7 @@ def LogReader(filename,tier,movesets,ratings): # return False if 'turns' not in log.keys(): - print filename+' has no turn count' + print(filename+' has no turn count') return False @@ -275,8 +274,8 @@ def LogReader(filename,tier,movesets,ratings): # os.makedirs(d) #msfile=open(outname,'ab') if keyify(poke['species']) == 'meloettapirouette': - print filename - writeme={'trainer':trainer.encode('ascii', 'ignore'), + print(filename) + writeme={'trainer':trainer, 'level':poke['level'], 'ability':poke['ability'], 'item':poke['item'], @@ -393,7 +392,7 @@ def LogReader(filename,tier,movesets,ratings): else: speciesBase = species - for i in xrange(6): + for i in range(6): if ts[i][1].startswith(speciesBase): species = ts[i][1] active[0] = i @@ -443,7 +442,7 @@ def LogReader(filename,tier,movesets,ratings): else: speciesBase = species - for i in xrange(6,12): + for i in range(6,12): if ts[i][1].startswith(speciesBase): species = ts[i][1] active[1] = i @@ -475,7 +474,7 @@ def LogReader(filename,tier,movesets,ratings): if len(line) < 2 or not line.startswith('|'): continue parsed_line = [segment.strip() for segment in line.split('|')] - #print line + #print(line) #identify what kind of message is on this line if len(parsed_line) < 2: sys.stderr.write('Problem with '+filename+'\n') @@ -557,7 +556,7 @@ def LogReader(filename,tier,movesets,ratings): sys.stderr.write(str(nicks)+"\n") return False - move = line[7+5*spacelog+len(found):string.find(line,"|",7+5*spacelog+len(found))-1*spacelog] + move = line[7+5*spacelog+len(found): line.find("|", 7+5*spacelog+len(found)) - 1*spacelog] if move in ["Roar","Whirlwind","Circle Throw","Dragon Tail"]: roar = True elif move in ["U-Turn","U-turn","Volt Switch","Baton Pass"]: @@ -565,9 +564,9 @@ def LogReader(filename,tier,movesets,ratings): elif linetype == "-enditem": #check for Red Card, Eject Button #search for relevant items - if string.rfind(line,"Red Card") > -1: + if line.rfind("Red Card") > -1: roar = True - elif string.rfind(line,"Eject Button") > -1: + elif line.rfind("Eject Button") > -1: uturn = True elif linetype == "faint": #KO @@ -626,7 +625,7 @@ def LogReader(filename,tier,movesets,ratings): else: speciesBase = species - for i in xrange(6*(int(line[p])-1),6*int(line[p])): + for i in range(6*(int(line[p])-1),6*int(line[p])): if ts[i][1].startswith(speciesBase): species = ts[i][1] found = True @@ -733,13 +732,13 @@ def LogReader(filename,tier,movesets,ratings): else: speciesBase = species - for i in xrange(6*(int(line[p])-1),6*int(line[p])): + for i in range(6*(int(line[p])-1),6*int(line[p])): if ts[i][1].startswith(speciesBase): species = ts[i][1] found = True break if not found: - print ts + print(ts) sys.stderr.write('Problem with '+filename+'\n') sys.stderr.write('(Pokemon not in ts) (4)\n') sys.stderr.write(str([ts[11*(int(line[p])-1)][0],species])+'\n') @@ -755,7 +754,7 @@ def LogReader(filename,tier,movesets,ratings): writeme = {} - writeme['p1'] = {'trainer':ts[0][0].encode('ascii','replace')} + writeme['p1'] = {'trainer':ts[0][0]} teamtags = teams['p1team'][len(teams['p1team'])-1] for x in teamtags.keys(): @@ -771,7 +770,7 @@ def LogReader(filename,tier,movesets,ratings): sys.stderr.write(str(ts)+"\n") return False - writeme['p2'] = {'trainer':ts[len(ts)-1][0].encode('ascii','replace')} + writeme['p2'] = {'trainer':ts[len(ts)-1][0]} teamtags = teams['p2team'][len(teams['p2team'])-1] for x in teamtags.keys(): writeme['p2'][x] = teamtags[x] @@ -818,7 +817,7 @@ def main(argv): ratings = json.loads(open(argv[4]).readline()) except: ratings = {} - print ratings + print(ratings) outname = "Raw/"+tier#+".txt" d = os.path.dirname(outname) @@ -828,7 +827,7 @@ def main(argv): movesets={} count=0 for filename in os.listdir(argv[1]): - #print filename + #print(filename) x = LogReader(argv[1]+'/'+filename,tier,movesets,ratings) if x: writeme.append(x) @@ -837,7 +836,8 @@ def main(argv): if count % 10000 == 0: outname = "Raw/"+tier#+".txt" outfile=gzip.open(outname,'ab') - outfile.write(json.dumps(writeme)+'\n') + output = json.dumps(writeme).decode('utf-8') +'\n' + outfile.write(output.encode()) outfile.close() #write to moveset file @@ -855,7 +855,8 @@ def main(argv): if writeme: outname = "Raw/"+tier#+".txt" outfile=gzip.open(outname,'ab') - outfile.write(json.dumps(writeme)+'\n') + output = json.dumps(writeme).decode('utf-8')+'\n' + outfile.write(output.encode()) outfile.close() #write to moveset file @@ -872,7 +873,7 @@ def main(argv): for player in ratings.keys(): Glicko.newRatingPeriod(ratings[player]) ratingfile=open(argv[4],'w+') - ratingfile.write(json.dumps(ratings)) + ratingfile.write(json.dumps(ratings).decode('utf-8')) ratingfile.close() if __name__ == "__main__": diff --git a/batchMovesetCounter.py b/batchMovesetCounter.py index 166418f..0701210 100644 --- a/batchMovesetCounter.py +++ b/batchMovesetCounter.py @@ -5,9 +5,8 @@ import string import sys import math -import cPickle as pickle -#import ujson as json -import json +import pickle +import orjson as json import gzip import os import math @@ -17,7 +16,7 @@ def movesetCounter(filename, cutoff, teamtype, usage): file = gzip.open(filename,'rb') - raw = file.read() + raw = file.read().decode('utf-8') file.close() raw=raw.split('][') @@ -27,7 +26,7 @@ def movesetCounter(filename, cutoff, teamtype, usage): if (i0: line = line+str(sum(weights)/len(weights)) @@ -206,14 +205,14 @@ def movesetCounter(filename, cutoff, teamtype, usage): while len(line) < tablewidth+2: line = line + ' ' line = line + '| ' - print line + print(line) line = ' | Viability Ceiling: %d'%(maxGXE[1]) while len(line) < tablewidth+2: line = line + ' ' line = line + '| ' - print line + print(line) - print separator + print(separator) for x in ['Abilities','Items','Spreads','Moves','Teammates','Checks and Counters']: table = [] @@ -221,26 +220,26 @@ def movesetCounter(filename, cutoff, teamtype, usage): while len(line) < tablewidth+2: line = line + ' ' line = line + '| ' - print line + print(line) for i in stuff[x]: if (x in ['Spreads', 'Teammates','Checks and Counters']): table.append([i,stuff[x][i]]) else: table.append([keyLookup[i],stuff[x][i]]) - if x is 'Checks and Counters': + if x == 'Checks and Counters': table=sorted(table, key=lambda table:-(table[1][1]-4.0*table[1][2])) else: table=sorted(table, key=lambda table:-table[1]) total = 0.0 for i in range(len(table)): - if (total > .95 and x is not 'Abilities') or (x is 'Abilities' and i>5) or (x is 'Spreads' and i>5) or (x is 'Teammates' and i>10) or (x is 'Checks and Counters' and i>11): - if x is 'Moves': + if (total > .95 and x != 'Abilities') or (x == 'Abilities' and i>5) or (x == 'Spreads' and i>5) or (x == 'Teammates' and i>10) or (x == 'Checks and Counters' and i>11): + if x == 'Moves': line = ' | %s %6.3f%%' % ('Other',400.0*(1.0-total)) elif x not in ['Teammates','Checks and Counters']: line = ' | %s %6.3f%%' % ('Other',100.0*(1.0-total)) else: - if x is 'Checks and Counters': + if x == 'Checks and Counters': matchup = encounterMatrix[species][table[i][0]] n=sum(matchup[0:6]) score=float(table[i][1][1])-4.0*table[i][1][2] @@ -255,7 +254,7 @@ def movesetCounter(filename, cutoff, teamtype, usage): line = line+' ' if float(100.0*matchup[3])/n < 10.0: line = line+' ' - elif x is 'Teammates': + elif x == 'Teammates': line = ' | %s %6.3f%%' % (table[i][0],100.0*table[i][1]/count) if table[i][1] < 0.005*count: break @@ -264,20 +263,20 @@ def movesetCounter(filename, cutoff, teamtype, usage): while len(line) < tablewidth+2: line = line + ' ' line = line + '| ' - print line.encode('utf8') - if (total > .95 and x is not 'Abilities') or (x is 'Abilities' and i>5) or (x is 'Spreads' and i>5) or (x is 'Teammates' and i>9) or (x is 'Checks and Counters' and i>10): + print(line) + if (total > .95 and x != 'Abilities') or (x == 'Abilities' and i>5) or (x == 'Spreads' and i>5) or (x == 'Teammates' and i>9) or (x == 'Checks and Counters' and i>10): break - if x is 'Moves': + if x == 'Moves': total = total + float(table[i][1])/count/4.0 - elif x is 'Teammates': + elif x == 'Teammates': total = total + float(table[i][1])/count/5.0 - elif x is not 'Checks and Counters': + elif x != 'Checks and Counters': total = total + float(table[i][1])/count - print separator + print(separator) return stuff file = open('keylookup.json', 'rb') -keyLookup = json.load(file) +keyLookup = json.loads(file.read()) file.close() keyLookup['nothing']='Nothing' keyLookup['']='Nothing' @@ -296,11 +295,11 @@ def movesetCounter(filename, cutoff, teamtype, usage): specs += teamtype+'-' specs += '{:.0f}'.format(cutoff) -file = open('Raw/moveset/'+str(sys.argv[1])+'/teammate'+specs+'.pickle') +file = open('Raw/moveset/'+str(sys.argv[1])+'/teammate'+specs+'.pickle', 'rb') teammateMatrix = pickle.load(file) file.close() -file = open('Raw/moveset/'+str(sys.argv[1])+'/encounterMatrix'+specs+'.pickle') +file = open('Raw/moveset/'+str(sys.argv[1])+'/encounterMatrix'+specs+'.pickle', 'rb') encounterMatrix = pickle.load(file) file.close() @@ -333,5 +332,5 @@ def movesetCounter(filename, cutoff, teamtype, usage): if not os.path.exists(d): os.makedirs(d) file=open(filename,'w') -file.write(json.dumps(chaos)) +file.write(json.dumps(chaos, option=json.OPT_NON_STR_KEYS).decode('utf-8')) file.close() diff --git a/common.py b/common.py index fd2b3be..0bafd9a 100644 --- a/common.py +++ b/common.py @@ -3,15 +3,15 @@ import string import math import js2py -import urllib2 -import ujson as json +import urllib +import orjson as json def keyify(s): sout = '' for c in s: - if c in string.uppercase: + if c in string.ascii_uppercase: sout = sout + c.lower() - elif c in string.lowercase + '1234567890': + elif c in string.ascii_lowercase + '1234567890': sout = sout + c return sout @@ -61,16 +61,16 @@ def readTable(filename): def getFormats(): - js=urllib2.urlopen("https://raw.githubusercontent.com/Zarel/Pokemon-Showdown/master/config/formats.js").read() - print 'Updating tiers' + js=urllib.request.urlopen("https://raw.githubusercontent.com/Zarel/Pokemon-Showdown/master/config/formats.js").read() + print('Updating tiers') return json.loads(js2py.eval_js('exports={},'+js+'JSON.stringify(exports.Formats)')) def getBattleFormatsData(): - #js=urllib2.urlopen("https://play.pokemonshowdown.com/data/formats-data.js").read() + #js=urllib.request.urlopen("https://play.pokemonshowdown.com/data/formats-data.js").read() file = open('formats-data.js') js = file.read() file.close() - #print 'Updating tiers' + #print('Updating tiers') return json.loads(js2py.eval_js('exports={},'+js+'JSON.stringify(exports.BattleFormatsData)')) aliases={ diff --git a/compare.py b/compare.py index bb8f91e..5533505 100644 --- a/compare.py +++ b/compare.py @@ -22,13 +22,13 @@ printme = " Up %5.2f%%" % (100*float(nnew-nold)/nold) else: printme = " Down %5.2f%%" % (100*float(nold-nnew)/nold) - print printme -print " + ------------------ + --------- + " -print " | Pokemon | Diff (%) | " -print " + ------------------ + --------- + " + print(printme) +print(" + ------------------ + --------- + ") +print(" | Pokemon | Diff (%) | ") +print(" + ------------------ + --------- + ") for i in range(0,len(pokes)): if abs(pokes[i][1]) > 0.001: - print ' | %-18s | %+8.5f%% | ' % (pokes[i][0],pokes[i][1]*100.0) + print(' | %-18s | %+8.5f%% | ' % (pokes[i][0],pokes[i][1]*100.0)) -print " + ------------------ + --------- + " +print(" + ------------------ + --------- + ") diff --git a/environment.yml b/environment.yml index 92e3391..fc463d1 100644 --- a/environment.yml +++ b/environment.yml @@ -1,7 +1,7 @@ -name: sus-env2 +name: sus-env3 dependencies: - ipython -- python=2 -- ujson -- pip: - - js2py +- python=3.11 +- orjson +- pip +- js2py diff --git a/ladderdev/BattleOutcomeExtractor.py b/ladderdev/BattleOutcomeExtractor.py index dd17461..4b788a6 100644 --- a/ladderdev/BattleOutcomeExtractor.py +++ b/ladderdev/BattleOutcomeExtractor.py @@ -4,7 +4,7 @@ #should be much more efficient, as TA.py and the files it requires need only be loaded once per run. import sys -import json +import orjson as json import os def LogReader(filename): @@ -41,4 +41,4 @@ def LogReader(filename): p1,p2,team1,team2,whowon,endType,turns=LogReader(sys.argv[1]+folder+'/'+filename) except: continue - print folder+','+p1.encode('utf-8')+','+str(team1)+','+p2.encode('utf-8')+','+str(team2)+','+str(whowon)+','+endType.encode('utf-8')+','+str(turns) + print(folder+','+p1.encode('utf-8')+','+str(team1)+','+p2.encode('utf-8')+','+str(team2)+','+str(whowon)+','+endType.encode('utf-8')+','+str(turns)) diff --git a/ladderdev/Glicko.py b/ladderdev/Glicko.py index 7783e2d..e5b3ae0 100644 --- a/ladderdev/Glicko.py +++ b/ladderdev/Glicko.py @@ -48,8 +48,8 @@ def newRatingPeriod(rating): if rating['d2'] == 0.0: if rating['A'] != 0: - print 'WTF?' - print rating['A'],rating['d2'] + print('WTF?') + print(rating['A'],rating['d2']) rating['RD']=math.sqrt(pow(rating['RD'],2)+c*c) else: d2=pow(q*q*rating['d2'],-1.0) @@ -64,7 +64,7 @@ def newRatingPeriod(rating): rating['A']=0 rating['d2']=0 - #print rating['RD'] + #print(rating['RD']) return rating def provisional(rating): diff --git a/ladderdev/Glicko2.py b/ladderdev/Glicko2.py index bc1852e..122a54e 100644 --- a/ladderdev/Glicko2.py +++ b/ladderdev/Glicko2.py @@ -51,8 +51,8 @@ def newRatingPeriod(rating): if rating['v'] == 0.0: if rating['Delta'] != 0: - print 'WTF?' - print rating['v'],rating['Delta'] + print('WTF?') + print(rating['v'],rating['Delta']) p=math.sqrt(pow(phi(rating['RD']),2)+pow(rating['sigma'],2)) rating['RD']=173.7178*p else: diff --git a/ladderdev/RatingSystemTester.py b/ladderdev/RatingSystemTester.py index 2adfc75..7a8bdcd 100644 --- a/ladderdev/RatingSystemTester.py +++ b/ladderdev/RatingSystemTester.py @@ -3,9 +3,9 @@ import sys import gzip -import json +import orjson as json import math -import cPickle as pickle +import pickle def incorrectSyntax(): sys.stderr.write('Incorrect syntax.\n') @@ -114,10 +114,10 @@ def incorrectSyntax(): printme='Username,nBattles,nWins' for system in systems: printme+=','+ratingSystems[system].headers() -print printme +print(printme) for player in ratings.keys(): printme=player+','+str(ratings[player]['nBattles'])+','+str(ratings[player]['nWins']) for system in systems: printme+=','+ratingSystems[system].printRating(ratings[player][system]) - print printme + print(printme) diff --git a/ladderdev/RatingValidator.py b/ladderdev/RatingValidator.py index d4a328b..2960b1f 100644 --- a/ladderdev/RatingValidator.py +++ b/ladderdev/RatingValidator.py @@ -3,7 +3,7 @@ import gzip import sys -import json +import orjson as json from common import * @@ -49,7 +49,7 @@ else: probWin = victoryChance(battle['p2']['rating']['r'],battle['p2']['rating']['rd'],battle['p1']['rating']['r'],battle['p1']['rating']['rd']) betterPlayer='p2' - for i in xrange(len(bins)): + for i in range(len(bins)): if probWin < bins[i][0]+binSize/2: bins[i][1]=bins[i][1]+probWin if battle[betterPlayer]['outcome'] == 'win': @@ -57,5 +57,5 @@ break for bin in bins: - print bin[0],bin[1],bin[2] + print(bin[0],bin[1],bin[2]) diff --git a/ladderdev/RatingValidator2.py b/ladderdev/RatingValidator2.py index 66c4f31..9921176 100644 --- a/ladderdev/RatingValidator2.py +++ b/ladderdev/RatingValidator2.py @@ -27,7 +27,7 @@ continue #probWin = 1.0-probWin #outcome = 1.0-outcome - for i in xrange(len(bins)): + for i in range(len(bins)): if probWin < bins[i][0]+binSize/2: bins[i][1]+=1 bins[i][2]+=probWin @@ -36,6 +36,6 @@ for bin in bins: if bin[1] > 0: - print bin[0],bin[1],bin[2],bin[3],bin[2]/bin[1],pow(bin[2],0.5)/bin[1],bin[3]/bin[1] + print(bin[0],bin[1],bin[2],bin[3],bin[2]/bin[1],pow(bin[2],0.5)/bin[1],bin[3]/bin[1]) else: - print bin[0],bin[1],bin[2],bin[3],'--','--','--' + print(bin[0],bin[1],bin[2],bin[3],'--','--','--') diff --git a/ladderdev/ladderRatingTester.py b/ladderdev/ladderRatingTester.py index 19c9d1a..f6ab4da 100644 --- a/ladderdev/ladderRatingTester.py +++ b/ladderdev/ladderRatingTester.py @@ -3,9 +3,9 @@ import sys import gzip -import json +import orjson as json import math -import cPickle as pickle +import pickle systems = sys.argv[1].split(',') try: @@ -111,7 +111,7 @@ for system in systems: printme+=','+system x.append(system) -print printme +print(printme) for player in ladder.keys(): r=ladder[player]['rating']['r'] rd=ladder[player]['rating']['rd'] @@ -122,4 +122,4 @@ printme=player+','+str(len(trajectories[player]))+','+str(wltCounts[player][0])+','+str(r)+','+str(rd)+','+str(rpr)+','+str(rprd)+','+str(acre)+','+str(gxe) for system in x: #probably could just do system in systems, but this is safer printme+=','+str(ladderRatingSystem[system].getSortable(ladder[player]['scores'][system])) - print printme + print(printme) From 3362aaad2a2c45e3657281fac44ace81e25b03b0 Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:32:06 -0400 Subject: [PATCH 02/13] Remove Stats/ dir --- Stats/chaos/gen9ou-1500.json | 1 - Stats/gen9ou-1500.txt | 34 ---------------------------------- Stats/leads/gen9ou-1500.txt | 33 --------------------------------- Stats/metagame/gen9ou-1500.txt | 26 -------------------------- 4 files changed, 94 deletions(-) delete mode 100644 Stats/chaos/gen9ou-1500.json delete mode 100644 Stats/gen9ou-1500.txt delete mode 100644 Stats/leads/gen9ou-1500.txt delete mode 100644 Stats/metagame/gen9ou-1500.txt diff --git a/Stats/chaos/gen9ou-1500.json b/Stats/chaos/gen9ou-1500.json deleted file mode 100644 index 18cbab6..0000000 --- a/Stats/chaos/gen9ou-1500.json +++ /dev/null @@ -1 +0,0 @@ -{"info":{"metagame":"gen9ou","cutoff":1500,"cutoff deviation":0,"team type":null,"number of battles":1110},"data":{"Kingambit":{"Raw count":1981,"Viability Ceiling":[0,0,0,0],"Abilities":{"supremeoverlord":990.5},"Items":{"airballoon":270.0,"leftovers":720.5},"Spreads":{"Adamant:0/252/0/0/4/252":74.5,"Adamant:220/252/0/0/0/36":61.0,"Adamant:208/252/0/0/0/48":572.5,"Adamant:160/252/0/0/0/96":67.0,"Adamant:112/252/0/0/0/144":72.5,"Adamant:232/252/0/0/0/24":81.0,"Adamant:248/252/0/0/0/8":62.0},"Moves":{"swordsdance":990.5,"kowtowcleave":990.5,"ironhead":928.5,"suckerpunch":990.5,"lowkick":62.0},"Happiness":{"255":990.5},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":128.965737121338,"Gholdengo":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":133.04068435835543,"Iron Valiant":122.87508793830429,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":118.38757914447383,"Dragapult":673.3590342390729,"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Landorus-Therian":659.359034239073,"Cinderace":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":145.43754396915216,"Darkrai":66.990719533677,"Roaring Moon":66.990719533677,"Zamazenta":146.70949151825326,"Glimmora":66.990719533677,"Enamorus":128.22198272442282,"Ting-Lu":79.71877198457608,"Gliscor":79.71877198457608,"Raging Bolt":61.23126319074562,"Heatran":61.23126319074562},"Checks and Counters":{"Ogerpon-Wellspring":[203.41682755630956,0.32175502742230366,0.032753862681919016],"Gholdengo":[230.19198584525714,0.36348949919224594,0.03170323801172089],"Dragonite":[46.48464980720066,0.34400000000000003,0.0696749008232859],"Landorus-Therian":[535.1312885804966,0.293259207783182,0.01968002907741305],"Samurott-Hisui":[441.79011176763663,0.31649831649831656,0.02212827198559609],"Dragapult":[430.6337958139084,0.19775474956821998,0.01919388921661698],"Kingambit":[1057.6187524134314,0.3913502109704633,0.0150072788679165],"Okidogi":[127.925756269416,0.4273255813953489,0.04373753885759623],"Cinderace":[48.7159129979463,0.2519083969465648,0.06219611945958876],"Primarina":[558.1876748848681,0.35309793471019274,0.02022910814392847],"Kyurem":[52.80656218097995,0.28873239436619713,0.06236204142567437],"Slowking-Galar":[155.07279175682103,0.21342925659472434,0.03290243709232959],"Iron Crown":[429.51816421853505,0.2640692640692629,0.021270937470863564],"Sudowoodo":[37.55959704421813,0.29702970297029707,0.07456035476739865],"Great Tusk":[200.06993277019117,0.3754646840148699,0.03423514208544264],"Iron Valiant":[87.01926443907959,0.44444444444444425,0.053267802937776276],"Darkrai":[55.781579768640796,0.3466666666666666,0.06372033433094787],"Gliscor":[126.06637027712799,0.40707964601769886,0.04375606404581485],"Zamazenta":[144.28835300155058,0.4304123711340206,0.04121990711053138],"Roaring Moon":[157.67593214602428,0.3160377358490567,0.03702566249005062],"Weezing-Galar":[91.48179082057084,0.3130081300813008,0.04848264209389185],"Glimmora":[130.1570194601616,0.2685714285714287,0.03884919889245439],"Raging Bolt":[47.60028140257347,0.38281250000000006,0.07045257256305058],"Enamorus":[72.51605369923301,0.25641025641025644,0.05127637452391057],"Heatran":[58.75659735630163,0.42405063291139244,0.06447222996003318],"Ting-Lu":[105.24124716350212,0.3250883392226148,0.04565950182490163],"Mimikyu":[55.4097025701832,0.3154362416107382,0.062426622249300144],"Iron Treads":[44.25338661645503,0.3865546218487395,0.07320152496270171]},"usage":0.8975365},"Dragapult":{"Raw count":1307,"Viability Ceiling":[0,0,0,0],"Abilities":{"clearbody":572.5,"infiltrator":81.0},"Items":{"choiceband":572.5,"heavydutyboots":81.0},"Spreads":{"Jolly:0/252/0/0/4/252":572.5,"Timid:0/0/4/252/0/252":81.0},"Moves":{"dragondarts":572.5,"uturn":653.5,"quickattack":572.5,"terablast":572.5,"dracometeor":81.0,"hex":81.0,"willowisp":81.0},"Happiness":{"255":653.5},"Teammates":{"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":673.3590342390729,"Landorus-Therian":593.6402622544969,"Ting-Lu":79.71877198457608,"Slowking-Galar":79.71877198457608,"Gliscor":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Iron Treads":[38.30335144113334,0.47572815533980595,0.08069364021418754],"Iron Valiant":[62.84724653933527,0.4733727810650886,0.06298108884343323],"Kingambit":[430.6337958139084,0.5595854922279803,0.023922688021714635],"Cinderace":[39.04710583804855,0.24761904761904757,0.06907430052391886],"Slowking-Galar":[114.9100543233998,0.32686084142394833,0.04375773763294399],"Landorus-Therian":[128.66951066633118,0.32658959537572246,0.04134312102825118],"Primarina":[140.9414582154321,0.5488126649076516,0.04191516040109586],"Samurott-Hisui":[104.86936996504457,0.47517730496453886,0.04876517859965135],"Gholdengo":[98.91933478972285,0.6165413533834584,0.04888771958958496],"Okidogi":[87.76301883599473,0.4957627118644066,0.05337017561389956],"Mimikyu":[33.097070662726864,0.5955056179775282,0.08531087570378859],"Sudowoodo":[23.05638630437152,0.3225806451612903,0.09735367123073488],"Kyurem":[33.097070662726864,0.4831460674157304,0.0868617067123218],"Enamorus":[49.8315445933191,0.30597014925373134,0.0652794414516412],"Roaring Moon":[76.23482568380905,0.5121951219512193,0.05724849613973768],"Darkrai":[34.58457945655729,0.5053763440860215,0.0850165831881181],"Zamazenta":[89.62240482828275,0.4771784232365142,0.05276049404668293],"Ting-Lu":[63.591000936250445,0.4327485380116958,0.06213092024200442],"Dragapult":[130.90077385707684,0.32386363636363663,0.04090036029008342],"Great Tusk":[105.24124716350212,0.4134275618374559,0.048002907862172914],"Glimmora":[55.03782537172557,0.39189189189189183,0.06580257716560303],"Heatran":[42.7658778226246,0.4173913043478261,0.07540696894183618],"Weezing-Galar":[44.625263814912635,0.5583333333333333,0.0743367708782102],"Ogerpon-Wellspring":[114.16629992648467,0.4918566775244298,0.04678896455792427],"Raging Bolt":[33.097070662726864,0.50561797752809,0.08690560952367302],"Dragonite":[42.022123425709395,0.336283185840708,0.0728794337270593],"Iron Crown":[96.68807159897723,0.36923076923076914,0.049079230318880104],"Gliscor":[63.59100093625047,0.5263157894736841,0.06261376562969842]},"usage":0.6066298},"Landorus-Therian":{"Raw count":1279,"Viability Ceiling":[0,0,0,0],"Abilities":{"intimidate":639.5},"Items":{"rockyhelmet":639.5},"Spreads":{"Bold:252/0/252/0/0/4":572.5,"Bold:248/0/244/0/0/16":67.0},"Moves":{"stealthrock":639.5,"earthpower":639.5,"uturn":639.5,"grassknot":572.5,"taunt":67.0},"Happiness":{"255":639.5},"Teammates":{"Dragapult":593.6402622544969,"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":659.359034239073,"Cinderace":65.71877198457605,"Iron Valiant":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Okidogi":[103.75373836967171,0.45519713261648725,0.048889722733493145],"Kingambit":[535.1312885804966,0.4218207088255737,0.021348385795153347],"Ogerpon-Wellspring":[137.9664406277713,0.3989218328840971,0.04168911248066211],"Slowking-Galar":[117.88507191106063,0.3880126182965301,0.04488123016016134],"Samurott-Hisui":[121.97572109409433,0.4085365853658536,0.044508475929172765],"Kyurem":[39.04710583804855,0.4380952380952381,0.0794001271298748],"Landorus-Therian":[174.03852887815884,0.3226495726495727,0.0354363962951393],"Dragapult":[128.66951066633118,0.3179190751445089,0.04105238759271011],"Primarina":[171.4353884889556,0.5292841648590021,0.03812181915109392],"Iron Crown":[131.644528253992,0.3502824858757064,0.04157862204317994],"Great Tusk":[130.5288966586192,0.38176638176638167,0.042522796313264596],"Gholdengo":[144.28835300155055,0.5489690721649483,0.04142489939915939],"Cinderace":[43.50963221953982,0.3162393162393162,0.07049645648176618],"Darkrai":[33.097070662726864,0.5393258426966293,0.0866418589623908],"Zamazenta":[124.95073868175515,0.39583333333333315,0.04374869956396304],"Gliscor":[82.18486085913065,0.4570135746606334,0.05494942144043064],"Glimmora":[72.51605369923298,0.4307692307692305,0.058149962649693694],"Heatran":[49.08779019640389,0.4545454545454544,0.07106916310758646],"Raging Bolt":[45.36901821182784,0.43442622950819676,0.07359070421985059],"Enamorus":[47.97215860103108,0.27906976744186035,0.06476023021413692],"Ting-Lu":[85.90363284370669,0.4718614718614715,0.05386112486371701],"Weezing-Galar":[50.94717618869191,0.4525547445255473,0.06973420440911353],"Mimikyu":[54.29407097481036,0.38356164383561636,0.0659912278871875],"Iron Treads":[40.90649183033658,0.390909090909091,0.07629267211732846],"Dragonite":[47.972158601031055,0.5271317829457363,0.07208336183587703],"Sudowoodo":[32.35331626581166,0.3908045977011495,0.0857825079381537],"Roaring Moon":[106.72875595733257,0.3519163763066201,0.046226875330228984],"Iron Valiant":[88.50677323290995,0.36134453781512604,0.05106293913147709]},"usage":0.5940171},"Primarina":{"Raw count":1145,"Viability Ceiling":[0,0,0,0],"Abilities":{"torrent":572.5},"Items":{"heavydutyboots":572.5},"Spreads":{"Modest:248/0/0/80/0/180":572.5},"Moves":{"calmmind":572.5,"surf":572.5,"moonblast":572.5,"psychicnoise":572.5},"Happiness":{"255":572.5},"Teammates":{"Dragapult":593.6402622544969,"Iron Crown":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":593.6402622544969,"Landorus-Therian":593.6402622544969},"Checks and Counters":{"Okidogi":[105.61312436195976,0.3556338028169014,0.04658101487587763],"Dragonite":[37.55959704421813,0.3465346534653465,0.07764690581195438],"Cinderace":[48.34403579948868,0.21538461538461537,0.059124066639830074],"Iron Valiant":[84.41612404987633,0.28193832599118956,0.04897170538886287],"Kingambit":[558.1876748848681,0.43437708194537,0.020980064998726775],"Kyurem":[58.756597356301626,0.2848101265822785,0.05887895222222776],"Landorus-Therian":[171.43538848895562,0.2060737527114969,0.03089236674339984],"Iron Crown":[104.12561556812932,0.2857142857142859,0.04427139114178026],"Primarina":[148.0071249861266,0.40954773869346733,0.04042065529418772],"Dragapult":[140.9414582154321,0.17414248021108208,0.031943724111128335],"Gholdengo":[136.47893183394086,0.4386920980926431,0.04247639752141428],"Mimikyu":[48.71591299794629,0.43511450381679395,0.07103077757893729],"Slowking-Galar":[158.41968654293947,0.3568075117370894,0.038061237227688685],"Darkrai":[54.29407097481037,0.3835616438356165,0.0659912278871875],"Roaring Moon":[115.2819315218575,0.4193548387096774,0.045958475343477426],"Zamazenta":[142.42896700926255,0.34464751958224543,0.039822258768930675],"Glimmora":[82.18486085913071,0.3122171945701357,0.05111615207652622],"Enamorus":[76.23482568380905,0.2585365853658538,0.05014517622859521],"Gliscor":[82.18486085913071,0.3393665158371041,0.05222986145071247],"Ting-Lu":[85.90363284370673,0.2770562770562771,0.04828702816272456],"Great Tusk":[134.24766864319525,0.27700831024930767,0.03862421585714458],"Ogerpon-Wellspring":[134.24766864319525,0.4958448753462602,0.04315206977617981],"Heatran":[59.12847455475922,0.4150943396226415,0.06407933266935661],"Weezing-Galar":[42.394000624167,0.34210526315789475,0.07286280444144982],"Raging Bolt":[49.83154459331911,0.2686567164179104,0.0627924336578101],"Iron Treads":[43.13775502108221,0.36206896551724144,0.07317348609288175],"Sudowoodo":[37.55959704421813,0.2475247524752475,0.07041982873954857],"Samurott-Hisui":[109.33189634653581,0.32653061224489804,0.04484845027946966]},"usage":0.5348109999999999},"Iron Crown":{"Raw count":1145,"Viability Ceiling":[0,0,0,0],"Abilities":{"quarkdrive":572.5},"Items":{"assaultvest":572.5},"Spreads":{"Timid:0/0/0/252/4/252":572.5},"Moves":{"futuresight":572.5,"tachyoncutter":572.5,"voltswitch":572.5,"focusblast":572.5},"Happiness":{"255":572.5},"Teammates":{"Dragapult":593.6402622544969,"Primarina":593.6402622544969,"Samurott-Hisui":593.6402622544969,"Kingambit":593.6402622544969,"Landorus-Therian":593.6402622544969},"Checks and Counters":{"Ogerpon-Wellspring":[132.76015984936484,0.45098039215686275,0.04318559168728309],"Okidogi":[94.08493120977403,0.48221343873517775,0.051515154437127446],"Iron Valiant":[78.46608887455469,0.37440758293838866,0.054635768103156616],"Kingambit":[429.51816421853505,0.509956709956711,0.024120877961237294],"Primarina":[104.12561556812932,0.4607142857142856,0.048847968457123116],"Iron Crown":[78.09421167609702,0.3619047619047619,0.05437890747657196],"Landorus-Therian":[131.644528253992,0.2542372881355933,0.03795059155473639],"Samurott-Hisui":[84.04424685141875,0.4778761061946902,0.054486692705265176],"Sudowoodo":[31.981439067354053,0.32558139534883723,0.08286012045813612],"Great Tusk":[119.00070350643354,0.403125,0.044966262975305066],"Gholdengo":[132.76015984936484,0.5406162464985992,0.04325123163653305],"Mimikyu":[37.55959704421813,0.40594059405940597,0.08012826102430397],"Slowking-Galar":[115.28193152185739,0.38387096774193546,0.04529474805458525],"Cinderace":[41.27836902879418,0.3063063063063063,0.07174647651930531],"Darkrai":[36.81584264730292,0.5555555555555556,0.08189457167894801],"Enamorus":[57.26908856247122,0.29870129870129863,0.06047974300515283],"Zamazenta":[100.77872078201088,0.4280442804428044,0.04928799277455697],"Ting-Lu":[54.29407097481036,0.40410958904109584,0.06659729247159153],"Gliscor":[62.103492142420066,0.5508982035928143,0.06311753991769771],"Glimmora":[74.74731688997862,0.35323383084577087,0.05528495865170501],"Weezing-Galar":[44.625263814912635,0.34166666666666673,0.07099599165151739],"Heatran":[45.74089541028545,0.4715447154471544,0.07380966474120465],"Raging Bolt":[47.97215860103108,0.372093023255814,0.06978768424160121],"Roaring Moon":[94.82868560668928,0.48627450980392134,0.05132588475737178],"Dragonite":[39.79086023496376,0.45794392523364497,0.07898354005769213],"Kyurem":[42.022123425709395,0.2743362831858407,0.0688288213526809],"Dragapult":[96.68807159897722,0.2653846153846157,0.04490362804291023],"Iron Treads":[34.95645665501489,0.40425531914893614,0.08300308918898433]},"usage":0.5348109999999999},"Samurott-Hisui":{"Raw count":1145,"Viability Ceiling":[0,0,0,0],"Abilities":{"sharpness":572.5},"Items":{"heavydutyboots":572.5},"Spreads":{"Jolly:0/252/0/0/4/252":572.5},"Moves":{"ceaselessedge":572.5,"razorshell":572.5,"knockoff":572.5,"encore":572.5},"Happiness":{"255":572.5},"Teammates":{"Dragapult":593.6402622544969,"Primarina":593.6402622544969,"Iron Crown":593.6402622544969,"Kingambit":593.6402622544969,"Landorus-Therian":593.6402622544969},"Checks and Counters":{"Iron Treads":[35.700211051930104,0.32291666666666663,0.0782583884576369],"Dragonite":[46.48464980720066,0.40800000000000003,0.07208354773035562],"Kingambit":[441.79011176763663,0.43771043771043744,0.0236029054583266],"Ogerpon-Wellspring":[132.01640545244965,0.4676056338028168,0.043425281385810297],"Okidogi":[101.89435237738373,0.47810218978102176,0.049485509610158546],"Landorus-Therian":[121.97572109409433,0.30487804878048796,0.04168279981768135],"Cinderace":[39.790860234963766,0.2523364485981308,0.06885752901414859],"Slowking-Galar":[114.91005432339986,0.30420711974110043,0.04291861141077213],"Samurott-Hisui":[84.78800124833394,0.368421052631579,0.05238643481314187],"Dragapult":[104.86936996504457,0.2517730496453904,0.042383514313694234],"Iron Crown":[84.04424685141873,0.26991150442477896,0.04842219313872226],"Gholdengo":[104.86936996504457,0.42198581560283677,0.048227399551611004],"Kyurem":[31.609561868896446,0.44705882352941173,0.088432634529684],"Iron Valiant":[83.67236965296114,0.4755555555555555,0.05459581331398245],"Darkrai":[41.27836902879418,0.43243243243243246,0.07710928035569592],"Zamazenta":[104.49749276658694,0.4555160142348755,0.048718223685415805],"Ting-Lu":[70.65666770694494,0.3684210526315789,0.057386464108863465],"Gliscor":[74.00356249306341,0.4120603015075374,0.057216391863188304],"Roaring Moon":[88.13489603445237,0.4514767932489452,0.05300798195719932],"Great Tusk":[116.39756311723028,0.4089456869009585,0.04556953189987074],"Raging Bolt":[24.543895098201943,0.43939393939393934,0.10018072778718708],"Heatran":[31.23768467043884,0.3928571428571429,0.08738227625503364],"Mimikyu":[47.60028140257348,0.42187499999999994,0.07158104100191802],"Weezing-Galar":[42.022123425709395,0.46902654867256643,0.07698322833065611],"Glimmora":[69.91291331002978,0.3297872340425533,0.05622695544564092],"Primarina":[109.33189634653581,0.4693877551020407,0.047728861108973196],"Enamorus":[52.434684982522356,0.34751773049645385,0.06576025815370139],"Sudowoodo":[29.378298678150813,0.3037974683544304,0.08484896584025182]},"usage":0.5348109999999999},"Great Tusk":{"Raw count":512,"Viability Ceiling":[0,0,0,0],"Abilities":{"protosynthesis":256.0},"Items":{"boosterenergy":194.0,"rockyhelmet":62.0},"Spreads":{"Jolly:252/4/0/0/0/252":256.0},"Moves":{"bulkup":194.0,"headlongrush":256.0,"icespinner":256.0,"rapidspin":256.0,"taunt":62.0},"Happiness":{"255":256.0},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":71.8094211676097,"Gholdengo":185.54389509820209,"Mimikyu":71.8094211676097,"Kingambit":133.04068435835543,"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":174.96573712133795,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229,"Raging Bolt":61.23126319074562,"Heatran":61.23126319074562,"Enamorus":61.23126319074562},"Checks and Counters":{"Gholdengo":[26.40328109048997,0.5352112676056339,0.0970647342635459],"Landorus-Therian":[130.5288966586192,0.3646723646723649,0.04213053425066309],"Kingambit":[200.06993277019117,0.3921933085501858,0.03451770519190531],"Iron Crown":[119.00070350643354,0.3281250000000002,0.043041672309552345],"Samurott-Hisui":[116.39756311723028,0.3610223642172523,0.04451823503225071],"Dragapult":[105.24124716350215,0.2614840989399295,0.042836065539285074],"Primarina":[134.24766864319525,0.5373961218836563,0.04303269272147454],"Ogerpon-Wellspring":[24.915772296659547,0.5671641791044776,0.09926103926094558],"Roaring Moon":[24.915772296659547,0.41791044776119407,0.09880964520176327],"Glimmora":[21.5688775105411,0.3620689655172414,0.10348293643867244],"Great Tusk":[25.287649495117154,0.3676470588235294,0.09588288386190676]},"usage":0.22232},"Ogerpon-Wellspring":{"Raw count":485,"Viability Ceiling":[0,0,0,0],"Abilities":{"waterabsorb":242.5},"Items":{"wellspringmask":242.5},"Spreads":{"Jolly:0/252/0/0/4/252":242.5},"Moves":{"swordsdance":242.5,"ivycudgel":242.5,"powerwhip":180.5,"playrough":242.5,"trailblaze":62.0},"Happiness":{"255":242.5},"Teammates":{"Weezing-Galar":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":174.96573712133795,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229,"Kingambit":118.38757914447383,"Iron Valiant":57.156315953728125,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Okidogi":57.156315953728125,"Raging Bolt":61.23126319074562,"Heatran":61.23126319074562,"Enamorus":61.23126319074562},"Checks and Counters":{"Gholdengo":[25.28764949511715,0.4411764705882354,0.09873912660136554],"Kingambit":[203.41682755630956,0.43510054844606944,0.03476057513249253],"Samurott-Hisui":[132.01640545244965,0.30985915492957755,0.040247330487697186],"Iron Crown":[132.76015984936484,0.27170868347338956,0.03860738990691691],"Landorus-Therian":[137.9664406277713,0.32345013477088963,0.03982601418331119],"Primarina":[134.24766864319525,0.30747922437673136,0.03982638755562527],"Dragapult":[114.16629992648467,0.2508143322475574,0.040569713625977506],"Great Tusk":[24.915772296659547,0.29850746268656714,0.09167521717932203],"Ogerpon-Wellspring":[26.03140389203236,0.34285714285714286,0.09303314474499635],"Roaring Moon":[20.45324591516828,0.5090909090909091,0.1105393962607493]},"usage":0.209119},"Gholdengo":{"Raw count":388,"Viability Ceiling":[0,0,0,0],"Abilities":{"goodasgold":194.0},"Items":{"airballoon":194.0},"Spreads":{"Timid:0/0/0/252/4/252":74.5,"Bold:252/0/160/0/0/96":119.5},"Moves":{"nastyplot":194.0,"shadowball":194.0,"dazzlinggleam":74.5,"thunderwave":74.5,"makeitrain":119.5,"recover":119.5},"Happiness":{"255":194.0},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":185.54389509820209,"Kingambit":71.8094211676097,"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":113.73447393059229,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229},"Checks and Counters":{"Gholdengo":[35.700211051930104,0.43749999999999994,0.08302615010197034],"Ogerpon-Wellspring":[25.287649495117154,0.411764705882353,0.09786916139131406],"Great Tusk":[26.40328109048997,0.3239436619718309,0.09107459283960623],"Glimmora":[23.800140701286733,0.29687500000000006,0.0936511945097517],"Roaring Moon":[28.634544281235602,0.32467532467532456,0.08750559317904749],"Kingambit":[230.19198584525714,0.4313408723747978,0.03264308633294649],"Iron Crown":[132.76015984936484,0.23809523809523833,0.036965094044152956],"Landorus-Therian":[144.28835300155055,0.2190721649484538,0.03443367796210973],"Primarina":[136.4789318339409,0.3460490463215259,0.04072007879322656],"Dragapult":[98.91933478972285,0.12781954887218064,0.0335707636724525],"Samurott-Hisui":[104.86936996504457,0.35460992907801436,0.04671563496874836],"Zamazenta":[24.172017899744336,0.27692307692307694,0.09101550252108737]},"usage":0.1671567},"Roaring Moon":{"Raw count":384,"Viability Ceiling":[0,0,0,0],"Abilities":{"protosynthesis":192.0},"Items":{"boosterenergy":192.0},"Spreads":{"Jolly:0/252/0/0/4/252":119.5,"Jolly:0/252/4/0/0/252":72.5},"Moves":{"dragondance":192.0,"knockoff":192.0,"acrobatics":192.0,"earthquake":119.5,"taunt":72.5},"Happiness":{"255":192.0},"Teammates":{"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":113.73447393059229,"Glimmora":180.72519346426955,"Darkrai":66.990719533677,"Kingambit":66.990719533677,"Zamazenta":66.990719533677,"Enamorus":66.990719533677},"Checks and Counters":{"Gholdengo":[28.634544281235602,0.4675324675324675,0.09324108439260947],"Primarina":[115.2819315218575,0.3838709677419355,0.04529474805458522],"Dragapult":[76.23482568380905,0.24878048780487813,0.049512502987383376],"Kingambit":[157.67593214602428,0.49292452830188677,0.03981473347575859],"Samurott-Hisui":[88.13489603445237,0.3080168776371308,0.04917688997570459],"Iron Crown":[94.82868560668928,0.28235294117647075,0.04622551380947119],"Landorus-Therian":[106.72875595733257,0.348432055749129,0.046120943477435054],"Great Tusk":[24.915772296659544,0.41791044776119407,0.09880964520176329],"Ogerpon-Wellspring":[20.45324591516828,0.2727272727272727,0.09847632108299152],"Roaring Moon":[22.312631907456307,0.39999999999999997,0.10371228920467039]},"usage":0.1628155},"Glimmora":{"Raw count":384,"Viability Ceiling":[0,0,0,0],"Abilities":{"toxicdebris":192.0},"Items":{"focussash":119.5,"redcard":72.5},"Spreads":{"Timid:0/0/4/252/0/252":119.5,"Timid:0/0/0/252/4/252":72.5},"Moves":{"stealthrock":192.0,"mortalspin":192.0,"powergem":192.0,"earthpower":192.0},"Happiness":{"255":192.0},"Teammates":{"Weezing-Galar":113.73447393059229,"Ogerpon-Wellspring":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":113.73447393059229,"Roaring Moon":180.72519346426955,"Darkrai":66.990719533677,"Kingambit":66.990719533677,"Zamazenta":66.990719533677,"Enamorus":66.990719533677},"Checks and Counters":{"Gholdengo":[23.800140701286733,0.484375,0.10243964873666873],"Primarina":[82.18486085913071,0.4208144796380093,0.05445757186989978],"Landorus-Therian":[72.51605369923298,0.31794871794871815,0.05468522116973128],"Iron Crown":[74.74731688997862,0.4129353233830848,0.0569490112752547],"Dragapult":[55.03782537172557,0.2837837837837838,0.06076943932804667],"Kingambit":[130.1570194601616,0.5228571428571427,0.04378062313532253],"Samurott-Hisui":[69.91291331002978,0.4574468085106382,0.05958168242362234],"Great Tusk":[21.5688775105411,0.3793103448275862,0.10447703165901406]},"usage":0.1628155},"Zamazenta":{"Raw count":307,"Viability Ceiling":[0,0,0,0],"Abilities":{"dauntlessshield":153.5},"Items":{"leftovers":72.5,"heavydutyboots":81.0},"Spreads":{"Impish:16/0/216/0/40/236":72.5,"Jolly:80/252/0/0/0/176":81.0},"Moves":{"irondefense":72.5,"bodypress":72.5,"heavyslam":72.5,"roar":153.5,"closecombat":81.0,"stoneedge":81.0,"crunch":81.0},"Happiness":{"255":153.5},"Teammates":{"Darkrai":66.990719533677,"Kingambit":146.70949151825326,"Roaring Moon":66.990719533677,"Glimmora":66.990719533677,"Enamorus":66.990719533677,"Ting-Lu":79.71877198457608,"Dragapult":79.71877198457608,"Slowking-Galar":79.71877198457608,"Gliscor":79.71877198457608},"Checks and Counters":{"Primarina":[142.42896700926255,0.41775456919060056,0.04132515456783644],"Landorus-Therian":[124.95073868175515,0.28571428571428603,0.040414065967479075],"Dragapult":[89.62240482828275,0.2365145228215771,0.04488704337777378],"Samurott-Hisui":[104.49749276658694,0.3274021352313167,0.04590558863811119],"Iron Crown":[100.77872078201088,0.22140221402214055,0.04135834400985402],"Kingambit":[144.2883530015506,0.3917525773195876,0.04063782275623873],"Gholdengo":[24.172017899744336,0.36923076923076925,0.09815846063776015]},"usage":0.1321707},"Slowking-Galar":{"Raw count":296,"Viability Ceiling":[0,0,0,0],"Abilities":{"regenerator":148.0},"Items":{"heavydutyboots":148.0},"Spreads":{"Sassy:248/0/8/0/252/0":67.0,"Sassy:252/0/4/0/252/0":81.0},"Moves":{"toxic":67.0,"futuresight":148.0,"surf":67.0,"chillyreception":148.0,"sludgebomb":81.0,"flamethrower":81.0},"Happiness":{"255":148.0},"Teammates":{"Kingambit":145.43754396915216,"Cinderace":65.71877198457605,"Landorus-Therian":65.71877198457605,"Iron Valiant":65.71877198457605,"Kyurem":65.71877198457605,"Ting-Lu":79.71877198457608,"Dragapult":79.71877198457608,"Gliscor":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Landorus-Therian":[117.88507191106063,0.2712933753943218,0.0409511919365176],"Kingambit":[155.07279175682103,0.5635491606714627,0.039825915449428165],"Samurott-Hisui":[114.91005432339986,0.40776699029126223,0.045843030883578245],"Dragapult":[114.9100543233998,0.30097087378640786,0.04278887374205537],"Primarina":[158.41968654293947,0.37793427230046933,0.038523141957002356],"Iron Crown":[115.28193152185739,0.3096774193548387,0.04306259399153573]},"usage":0.1310248},"Okidogi":{"Raw count":271,"Viability Ceiling":[0,0,0,0],"Abilities":{"toxicchain":74.5,"guarddog":61.0},"Items":{"weaknesspolicy":74.5,"leftovers":61.0},"Spreads":{"Adamant:248/104/0/0/0/156":74.5,"Careful:252/0/0/0/128/128":61.0},"Moves":{"bulkup":135.5,"drainpunch":135.5,"icepunch":74.5,"knockoff":135.5,"taunt":61.0},"Happiness":{"255":135.5},"Teammates":{"Sudowoodo":71.8094211676097,"Gholdengo":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":71.8094211676097,"Kingambit":128.965737121338,"Iron Valiant":57.156315953728125,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125},"Checks and Counters":{"Landorus-Therian":[103.75373836967171,0.2795698924731186,0.04405946809726289],"Primarina":[105.61312436195976,0.415492957746479,0.047953218620504244],"Iron Crown":[94.08493120977403,0.28458498023715434,0.046518422478738455],"Samurott-Hisui":[101.89435237738373,0.3284671532846716,0.04652694600845839],"Kingambit":[127.92575626941601,0.37209302325581395,0.042736054180598386],"Dragapult":[87.76301883599473,0.20338983050847484,0.042966676655390265]},"usage":0.11618529999999999},"Enamorus":{"Raw count":269,"Viability Ceiling":[0,0,0,0],"Abilities":{"contrary":134.5},"Items":{"choicescarf":134.5},"Spreads":{"Timid:0/0/0/252/4/252":134.5},"Moves":{"moonblast":134.5,"earthpower":134.5,"mysticalfire":134.5,"healingwish":134.5},"Happiness":{"255":134.5},"Teammates":{"Darkrai":66.990719533677,"Kingambit":128.22198272442282,"Roaring Moon":66.990719533677,"Zamazenta":66.990719533677,"Glimmora":66.990719533677,"Ogerpon-Wellspring":61.23126319074562,"Raging Bolt":61.23126319074562,"Great Tusk":61.23126319074562,"Heatran":61.23126319074562},"Checks and Counters":{"Iron Crown":[57.26908856247122,0.4220779220779221,0.0652635697837962],"Primarina":[76.23482568380905,0.448780487804878,0.05696427423894248],"Dragapult":[49.8315445933191,0.3358208955223881,0.06690279896142898],"Kingambit":[72.51605369923301,0.5076923076923077,0.05870857261885863],"Landorus-Therian":[47.97215860103108,0.42635658914728686,0.0714024089161914],"Samurott-Hisui":[52.43468498252234,0.3829787234042553,0.06713176443549104]},"usage":0.1155153},"Iron Valiant":{"Raw count":256,"Viability Ceiling":[0,0,0,0],"Abilities":{"quarkdrive":128.0},"Items":{"boosterenergy":128.0},"Spreads":{"Jolly:0/252/0/0/4/252":61.0,"Naive:0/176/0/80/0/252":67.0},"Moves":{"swordsdance":61.0,"encore":128.0,"closecombat":128.0,"knockoff":128.0,"moonblast":67.0},"Happiness":{"255":128.0},"Teammates":{"Kingambit":122.87508793830429,"Dragonite":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125,"Okidogi":57.156315953728125,"Cinderace":65.71877198457605,"Landorus-Therian":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Iron Crown":[78.46608887455469,0.32227488151658784,0.052759299039380314],"Dragapult":[62.84724653933527,0.2544378698224853,0.05494012815832449],"Primarina":[84.41612404987633,0.5462555066079293,0.054186474271603925],"Kingambit":[87.01926443907959,0.39316239316239315,0.052361794809536316],"Samurott-Hisui":[83.67236965296114,0.32888888888888884,0.05136068189808938],"Landorus-Therian":[88.50677323290995,0.34033613445378175,0.050364801286852286]},"usage":0.1106983},"Weezing-Galar":{"Raw count":239,"Viability Ceiling":[0,0,0,0],"Abilities":{"mistysurge":119.5},"Items":{"terrainextender":119.5},"Spreads":{"Modest:76/0/0/252/0/180":119.5},"Moves":{"strangesteam":119.5,"sludgewave":119.5,"fireblast":119.5,"taunt":119.5},"Happiness":{"255":119.5},"Teammates":{"Ogerpon-Wellspring":113.73447393059229,"Gholdengo":113.73447393059229,"Great Tusk":113.73447393059229,"Roaring Moon":113.73447393059229,"Glimmora":113.73447393059229},"Checks and Counters":{"Kingambit":[91.48179082057084,0.4430894308943089,0.05193631074547057],"Iron Crown":[44.625263814912635,0.41666666666666663,0.07380102231286252],"Dragapult":[44.625263814912635,0.22499999999999995,0.0625103185445588],"Primarina":[42.394000624167006,0.4035087719298245,0.07534879648859062],"Landorus-Therian":[50.94717618869191,0.3211678832116789,0.06541648227185091],"Samurott-Hisui":[42.022123425709395,0.2389380530973451,0.06578299876293157]},"usage":0.1024635},"Ting-Lu":{"Raw count":162,"Viability Ceiling":[0,0,0,0],"Abilities":{"vesselofruin":81.0},"Items":{"leftovers":81.0},"Spreads":{"Impish:252/0/24/0/228/4":81.0},"Moves":{"stealthrock":81.0,"earthquake":81.0,"ruination":81.0,"whirlwind":81.0},"Happiness":{"255":81.0},"Teammates":{"Dragapult":79.71877198457608,"Slowking-Galar":79.71877198457608,"Kingambit":79.71877198457608,"Gliscor":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Dragapult":[63.591000936250445,0.1812865497076025,0.04831154472001468],"Samurott-Hisui":[70.65666770694494,0.4105263157894735,0.05852294006143736],"Iron Crown":[54.29407097481036,0.2808219178082192,0.06098984349880302],"Primarina":[85.90363284370673,0.44155844155844165,0.053576852446756716],"Landorus-Therian":[85.90363284370669,0.26406926406926434,0.04756326212999855],"Kingambit":[105.24124716350212,0.41342756183745594,0.04800290786217292]},"usage":0.0718187},"Gliscor":{"Raw count":162,"Viability Ceiling":[0,0,0,0],"Abilities":{"poisonheal":81.0},"Items":{"toxicorb":81.0},"Spreads":{"Jolly:244/0/0/0/244/20":81.0},"Moves":{"swordsdance":81.0,"earthquake":81.0,"knockoff":81.0,"protect":81.0},"Happiness":{"255":81.0},"Teammates":{"Ting-Lu":79.71877198457608,"Dragapult":79.71877198457608,"Slowking-Galar":79.71877198457608,"Kingambit":79.71877198457608,"Zamazenta":79.71877198457608},"Checks and Counters":{"Landorus-Therian":[82.18486085913067,0.28054298642533937,0.04955713843953276],"Samurott-Hisui":[74.00356249306341,0.3517587939698493,0.055509138260529445],"Iron Crown":[62.103492142420066,0.23952095808383242,0.05415734608852647],"Primarina":[82.18486085913071,0.40723981900452494,0.0541961850215309],"Kingambit":[126.06637027712799,0.41887905604719766,0.04394181210385527],"Dragapult":[63.59100093625047,0.1871345029239767,0.04890896229157676]},"usage":0.0718187},"Sudowoodo":{"Raw count":149,"Viability Ceiling":[0,0,0,0],"Abilities":{"sturdy":74.5},"Items":{"custapberry":74.5},"Spreads":{"Adamant:0/128/0/0/212/168":74.5},"Moves":{"stealthrock":74.5,"spikes":74.5,"headsmash":74.5,"endeavor":74.5},"Happiness":{"255":74.5},"Teammates":{"Okidogi":71.8094211676097,"Gholdengo":71.8094211676097,"Mimikyu":71.8094211676097,"Great Tusk":71.8094211676097,"Kingambit":71.8094211676097},"Checks and Counters":{"Iron Crown":[31.981439067354053,0.39534883720930225,0.08645570930431666],"Kingambit":[37.55959704421813,0.5247524752475249,0.0814848213168547],"Dragapult":[23.05638630437152,0.3548387096774193,0.09964465929497496],"Primarina":[37.55959704421813,0.5247524752475249,0.0814848213168547],"Landorus-Therian":[32.35331626581166,0.29885057471264365,0.08047721473090354],"Samurott-Hisui":[29.378298678150816,0.4430379746835442,0.09164735768978971]},"usage":0.06469319999999999},"Mimikyu":{"Raw count":149,"Viability Ceiling":[0,0,0,0],"Abilities":{"disguise":74.5},"Items":{"lifeorb":74.5},"Spreads":{"Jolly:0/252/0/0/4/252":74.5},"Moves":{"swordsdance":74.5,"shadowclaw":74.5,"playrough":74.5,"shadowsneak":74.5},"Happiness":{"255":74.5},"Teammates":{"Sudowoodo":71.8094211676097,"Okidogi":71.8094211676097,"Gholdengo":71.8094211676097,"Great Tusk":71.8094211676097,"Kingambit":71.8094211676097},"Checks and Counters":{"Dragapult":[33.097070662726864,0.16853932584269657,0.06506938531724163],"Iron Crown":[37.55959704421813,0.31683168316831684,0.07591326988081039],"Primarina":[48.71591299794629,0.3435114503816794,0.06803756523931755],"Kingambit":[55.4097025701832,0.4295302013422818,0.06649978971187838],"Samurott-Hisui":[47.60028140257347,0.375,0.0701699040124087],"Landorus-Therian":[54.29407097481037,0.3424657534246575,0.06440084410906956]},"usage":0.06469319999999999},"Darkrai":{"Raw count":145,"Viability Ceiling":[0,0,0,0],"Abilities":{"baddreams":72.5},"Items":{"expertbelt":72.5},"Spreads":{"Timid:0/0/0/252/4/252":72.5},"Moves":{"icebeam":72.5,"sludgebomb":72.5,"darkpulse":72.5,"focusblast":72.5},"Happiness":{"255":72.5},"Teammates":{"Kingambit":66.990719533677,"Roaring Moon":66.990719533677,"Zamazenta":66.990719533677,"Glimmora":66.990719533677,"Enamorus":66.990719533677},"Checks and Counters":{"Iron Crown":[36.81584264730292,0.25252525252525243,0.07160334267321082],"Landorus-Therian":[33.097070662726864,0.21348314606741567,0.07122640671108346],"Samurott-Hisui":[41.27836902879418,0.3603603603603604,0.07472654905497385],"Kingambit":[55.781579768640796,0.46,0.06673142376630592],"Primarina":[54.29407097481037,0.3835616438356165,0.0659912278871875],"Dragapult":[34.584579456557286,0.1935483870967741,0.06718041559186871]},"usage":0.060351999999999996},"Cinderace":{"Raw count":134,"Viability Ceiling":[0,0,0,0],"Abilities":{"blaze":67.0},"Items":{"heavydutyboots":67.0},"Spreads":{"Jolly:144/112/0/0/0/252":67.0},"Moves":{"pyroball":67.0,"willowisp":67.0,"courtchange":67.0,"uturn":67.0},"Happiness":{"255":67.0},"Teammates":{"Kingambit":65.71877198457605,"Landorus-Therian":65.71877198457605,"Iron Valiant":65.71877198457605,"Kyurem":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Kingambit":[48.71591299794629,0.41984732824427484,0.0707100952297561],"Samurott-Hisui":[39.790860234963766,0.39252336448598124,0.07741157109854288],"Primarina":[48.34403579948868,0.5384615384615384,0.07169846228590494],"Dragapult":[39.04710583804855,0.3428571428571428,0.07596124459724375],"Iron Crown":[41.27836902879419,0.4054054054054054,0.07641770333333531],"Landorus-Therian":[43.50963221953982,0.3418803418803419,0.07191124211901664]},"usage":0.0592061},"Kyurem":{"Raw count":134,"Viability Ceiling":[0,0,0,0],"Abilities":{"pressure":67.0},"Items":{"choicespecs":67.0},"Spreads":{"Timid:0/0/4/252/0/252":67.0},"Moves":{"dracometeor":67.0,"freezedry":67.0,"earthpower":67.0,"blizzard":67.0},"Happiness":{"255":67.0},"Teammates":{"Kingambit":65.71877198457605,"Cinderace":65.71877198457605,"Landorus-Therian":65.71877198457605,"Iron Valiant":65.71877198457605,"Slowking-Galar":65.71877198457605},"Checks and Counters":{"Kingambit":[52.80656218097995,0.47887323943661975,0.06874451057732847],"Primarina":[58.756597356301626,0.4113924050632912,0.06419670634911633],"Landorus-Therian":[39.04710583804855,0.27619047619047615,0.07155204838563597],"Samurott-Hisui":[31.609561868896446,0.36470588235294116,0.08561494124851676],"Dragapult":[33.097070662726864,0.22471910112359544,0.07255289694812768],"Iron Crown":[42.022123425709395,0.3716814159292035,0.07454806566175994]},"usage":0.0592061},"Raging Bolt":{"Raw count":124,"Viability Ceiling":[0,0,0,0],"Abilities":{"protosynthesis":62.0},"Items":{"choicespecs":62.0},"Spreads":{"Modest:0/0/0/252/0/252":62.0},"Moves":{"dragonpulse":62.0,"voltswitch":62.0,"dracometeor":62.0,"thunderclap":62.0},"Happiness":{"255":62.0},"Teammates":{"Ogerpon-Wellspring":61.23126319074562,"Great Tusk":61.23126319074562,"Heatran":61.23126319074562,"Enamorus":61.23126319074562,"Kingambit":61.23126319074562},"Checks and Counters":{"Samurott-Hisui":[24.543895098201943,0.2878787878787878,0.09139239340174633],"Kingambit":[47.60028140257347,0.42187499999999994,0.07158104100191803],"Iron Crown":[47.97215860103108,0.3255813953488372,0.06765500504932766],"Dragapult":[33.097070662726864,0.2696629213483146,0.07713962333911335],"Landorus-Therian":[45.36901821182784,0.19672131147540978,0.05901727288556792],"Primarina":[49.83154459331911,0.4850746268656717,0.07079853169707123]},"usage":0.0551633},"Heatran":{"Raw count":124,"Viability Ceiling":[0,0,0,0],"Abilities":{"flashfire":62.0},"Items":{"leftovers":62.0},"Spreads":{"Calm:248/0/0/0/216/44":62.0},"Moves":{"stealthrock":62.0,"magmastorm":62.0,"taunt":62.0,"earthpower":62.0},"Happiness":{"255":62.0},"Teammates":{"Ogerpon-Wellspring":61.23126319074562,"Raging Bolt":61.23126319074562,"Great Tusk":61.23126319074562,"Enamorus":61.23126319074562,"Kingambit":61.23126319074562},"Checks and Counters":{"Dragapult":[42.7658778226246,0.2260869565217391,0.06396393032132473],"Iron Crown":[45.74089541028545,0.3577235772357723,0.0708732651790369],"Kingambit":[58.75659735630163,0.34810126582278483,0.06214619614216238],"Primarina":[59.12847455475922,0.4150943396226415,0.06407933266935661],"Landorus-Therian":[49.08779019640389,0.3257575757575758,0.06689113407107421],"Samurott-Hisui":[31.23768467043884,0.42857142857142855,0.08854278228356043]},"usage":0.0551633},"Dragonite":{"Raw count":122,"Viability Ceiling":[0,0,0,0],"Abilities":{"multiscale":61.0},"Items":{"lumberry":61.0},"Spreads":{"Adamant:0/252/4/0/0/252":61.0},"Moves":{"dragondance":61.0,"extremespeed":61.0,"terablast":61.0,"earthquake":61.0},"Happiness":{"255":61.0},"Teammates":{"Kingambit":57.156315953728125,"Iron Valiant":57.156315953728125,"Iron Treads":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125,"Okidogi":57.156315953728125},"Checks and Counters":{"Samurott-Hisui":[46.48464980720066,0.38399999999999995,0.07133475705360352],"Kingambit":[46.48464980720066,0.44,0.07280573154447159],"Primarina":[37.55959704421813,0.45544554455445546,0.081260300618832],"Iron Crown":[39.79086023496376,0.308411214953271,0.07321454841550859],"Landorus-Therian":[47.972158601031055,0.24806201550387605,0.062355751205121074],"Dragapult":[42.022123425709395,0.3805309734513274,0.07489723884010457]},"usage":0.051492199999999995},"Iron Treads":{"Raw count":122,"Viability Ceiling":[0,0,0,0],"Abilities":{"quarkdrive":61.0},"Items":{"boosterenergy":61.0},"Spreads":{"Jolly:0/252/0/0/4/252":61.0},"Moves":{"stealthrock":61.0,"earthquake":61.0,"stoneedge":61.0,"rapidspin":61.0},"Happiness":{"255":61.0},"Teammates":{"Kingambit":57.156315953728125,"Iron Valiant":57.156315953728125,"Dragonite":57.156315953728125,"Ogerpon-Wellspring":57.156315953728125,"Okidogi":57.156315953728125},"Checks and Counters":{"Dragapult":[38.303351441133344,0.29126213592233,0.07341189674515528],"Samurott-Hisui":[35.700211051930104,0.4583333333333333,0.08339142309349773],"Primarina":[43.13775502108221,0.39655172413793105,0.07448025874869738],"Landorus-Therian":[40.90649183033658,0.32727272727272727,0.07336320690095577],"Iron Crown":[34.95645665501489,0.32978723404255317,0.07951692296217314],"Kingambit":[44.25338661645503,0.3949579831932772,0.07348436739679236]},"usage":0.051492199999999995}}} \ No newline at end of file diff --git a/Stats/gen9ou-1500.txt b/Stats/gen9ou-1500.txt deleted file mode 100644 index 8ac6e1d..0000000 --- a/Stats/gen9ou-1500.txt +++ /dev/null @@ -1,34 +0,0 @@ - Total battles: 1110 - Avg. weight/team: 0.5 - + ---- + ------------------ + --------- + ------ + ------- + ------ + ------- + - | Rank | Pokemon | Usage % | Raw | % | Real | % | - + ---- + ------------------ + --------- + ------ + ------- + ------ + ------- + - | 1 | Kingambit | 89.75365% | 1981 | 89.234% | 1946 | 90.386% | - | 2 | Dragapult | 60.66298% | 1307 | 58.874% | 1217 | 56.526% | - | 3 | Landorus-Therian | 59.40171% | 1279 | 57.613% | 1257 | 58.384% | - | 4 | Primarina | 53.48110% | 1145 | 51.577% | 1132 | 52.578% | - | 5 | Iron Crown | 53.48110% | 1145 | 51.577% | 1111 | 51.602% | - | 6 | Samurott-Hisui | 53.48110% | 1145 | 51.577% | 1092 | 50.720% | - | 7 | Great Tusk | 22.23200% | 512 | 23.063% | 497 | 23.084% | - | 8 | Ogerpon-Wellspring | 20.91190% | 485 | 21.847% | 479 | 22.248% | - | 9 | Gholdengo | 16.71567% | 388 | 17.477% | 386 | 17.928% | - | 10 | Roaring Moon | 16.28155% | 384 | 17.297% | 368 | 17.092% | - | 11 | Glimmora | 16.28155% | 384 | 17.297% | 368 | 17.092% | - | 12 | Zamazenta | 13.21707% | 307 | 13.829% | 304 | 14.120% | - | 13 | Slowking-Galar | 13.10248% | 296 | 13.333% | 291 | 13.516% | - | 14 | Okidogi | 11.61853% | 271 | 12.207% | 265 | 12.308% | - | 15 | Enamorus | 11.55153% | 269 | 12.117% | 248 | 11.519% | - | 16 | Iron Valiant | 11.06983% | 256 | 11.532% | 239 | 11.101% | - | 17 | Weezing-Galar | 10.24635% | 239 | 10.766% | 228 | 10.590% | - | 18 | Ting-Lu | 7.18187% | 162 | 7.297% | 162 | 7.524% | - | 19 | Gliscor | 7.18187% | 162 | 7.297% | 159 | 7.385% | - | 20 | Sudowoodo | 6.46932% | 149 | 6.712% | 143 | 6.642% | - | 21 | Mimikyu | 6.46932% | 149 | 6.712% | 148 | 6.874% | - | 22 | Darkrai | 6.03520% | 145 | 6.532% | 138 | 6.410% | - | 23 | Cinderace | 5.92061% | 134 | 6.036% | 133 | 6.177% | - | 24 | Kyurem | 5.92061% | 134 | 6.036% | 129 | 5.992% | - | 25 | Raging Bolt | 5.51633% | 124 | 5.586% | 118 | 5.481% | - | 26 | Heatran | 5.51633% | 124 | 5.586% | 122 | 5.667% | - | 27 | Dragonite | 5.14922% | 122 | 5.495% | 118 | 5.481% | - | 28 | Iron Treads | 5.14922% | 122 | 5.495% | 120 | 5.574% | - + ---- + ------------------ + --------- + ------ + ------- + ------ + ------- + diff --git a/Stats/leads/gen9ou-1500.txt b/Stats/leads/gen9ou-1500.txt deleted file mode 100644 index 5eee3d5..0000000 --- a/Stats/leads/gen9ou-1500.txt +++ /dev/null @@ -1,33 +0,0 @@ - Total leads: 2220 - + ---- + ------------------ + --------- + ------ + ------- + - | Rank | Pokemon | Usage % | Raw | % | - + ---- + ------------------ + --------- + ------ + ------- + - | 1 | Kingambit | 15.58108% | 350 | 15.766% | - | 2 | Landorus-Therian | 10.62697% | 229 | 10.315% | - | 3 | Dragapult | 9.88541% | 211 | 9.505% | - | 4 | Samurott-Hisui | 9.17736% | 194 | 8.739% | - | 5 | Iron Crown | 8.54223% | 184 | 8.288% | - | 6 | Primarina | 7.82376% | 166 | 7.477% | - | 7 | Ogerpon-Wellspring | 4.56701% | 106 | 4.775% | - | 8 | Glimmora | 3.46284% | 82 | 3.694% | - | 9 | Great Tusk | 2.89922% | 70 | 3.153% | - | 10 | Roaring Moon | 2.57911% | 57 | 2.568% | - | 11 | Gholdengo | 2.51802% | 60 | 2.703% | - | 12 | Slowking-Galar | 2.24183% | 49 | 2.207% | - | 13 | Zamazenta | 2.22692% | 52 | 2.342% | - | 14 | Iron Valiant | 1.96706% | 47 | 2.117% | - | 15 | Okidogi | 1.88964% | 44 | 1.982% | - | 16 | Enamorus | 1.75338% | 42 | 1.892% | - | 17 | Weezing-Galar | 1.69088% | 36 | 1.622% | - | 18 | Ting-Lu | 1.45411% | 31 | 1.396% | - | 19 | Mimikyu | 1.14809% | 26 | 1.171% | - | 20 | Sudowoodo | 1.09150% | 25 | 1.126% | - | 21 | Gliscor | 1.03491% | 24 | 1.081% | - | 22 | Kyurem | 0.97832% | 23 | 1.036% | - | 23 | Cinderace | 0.92399% | 20 | 0.901% | - | 24 | Raging Bolt | 0.89048% | 19 | 0.856% | - | 25 | Iron Treads | 0.87782% | 20 | 0.901% | - | 26 | Dragonite | 0.83165% | 20 | 0.901% | - | 27 | Darkrai | 0.68497% | 17 | 0.766% | - | 28 | Heatran | 0.65147% | 16 | 0.721% | - + ---- + ------------------ + --------- + ------ + ------- + diff --git a/Stats/metagame/gen9ou-1500.txt b/Stats/metagame/gen9ou-1500.txt deleted file mode 100644 index b939b46..0000000 --- a/Stats/metagame/gen9ou-1500.txt +++ /dev/null @@ -1,26 +0,0 @@ - weatherless...................100.00000% - offense.......................75.27898% - voltturn......................53.48110% - balance.......................13.10248% - hyperoffense..................11.61853% - - Stalliness (mean: -0.464) - | - -1.2|### - | - -1.0|### - | - -0.8|### - |###### - -0.6| - | - -0.4| - |############################## - -0.2| - | - 0.0| - | - +0.2|### - | - more negative = more offensive, more positive = more stall - one # = 1.78% From bee427365f25e3b86459881524532c989985d0d6 Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Thu, 22 Aug 2024 13:49:22 -0400 Subject: [PATCH 03/13] Remove superfluous encode stuff --- ladderdev/BattleOutcomeExtractor.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ladderdev/BattleOutcomeExtractor.py b/ladderdev/BattleOutcomeExtractor.py index 4b788a6..bebc564 100644 --- a/ladderdev/BattleOutcomeExtractor.py +++ b/ladderdev/BattleOutcomeExtractor.py @@ -41,4 +41,4 @@ def LogReader(filename): p1,p2,team1,team2,whowon,endType,turns=LogReader(sys.argv[1]+folder+'/'+filename) except: continue - print(folder+','+p1.encode('utf-8')+','+str(team1)+','+p2.encode('utf-8')+','+str(team2)+','+str(whowon)+','+endType.encode('utf-8')+','+str(turns)) + print(folder+','+p1+','+str(team1)+','+p2+','+str(team2)+','+str(whowon)+','+endType+','+str(turns)) From 9ddc3ce3903e1dadf04feb4e857343cb354e0712 Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Fri, 23 Aug 2024 14:26:53 -0400 Subject: [PATCH 04/13] Remove orjson --- MegaCounter.py | 2 +- PS-Extractor.py | 2 +- StatCounter.py | 2 +- TA.py | 2 +- TierUpdate9Doubles.py | 2 +- TierUpdate9LC.py | 2 +- TierUpdate9NatDex.py | 2 +- TierUpdate9Singles.py | 2 +- batchLogReader.py | 11 ++++------- batchMovesetCounter.py | 4 ++-- common.py | 2 +- environment.yml | 1 - ladderdev/BattleOutcomeExtractor.py | 2 +- ladderdev/RatingSystemTester.py | 2 +- ladderdev/RatingValidator.py | 2 +- ladderdev/ladderRatingTester.py | 2 +- 16 files changed, 19 insertions(+), 23 deletions(-) diff --git a/MegaCounter.py b/MegaCounter.py index ae138ea..dfd11cc 100644 --- a/MegaCounter.py +++ b/MegaCounter.py @@ -1,7 +1,7 @@ #!/usr/bin/python import sys -import orjson as json +import json from TA import megas from common import keyify diff --git a/PS-Extractor.py b/PS-Extractor.py index ff61fdf..7b26175 100644 --- a/PS-Extractor.py +++ b/PS-Extractor.py @@ -3,7 +3,7 @@ """The goal of this script is to take a json version of the "exports" object used on Pokemon Showdown and pull out the data that's needed for the scripts.""" -import orjson as json +import json import pickle from onix import contexts diff --git a/StatCounter.py b/StatCounter.py index b31924d..1895de3 100644 --- a/StatCounter.py +++ b/StatCounter.py @@ -25,7 +25,7 @@ import math import pickle import os -import orjson as json +import json import gzip from common import * diff --git a/TA.py b/TA.py index 4827f02..09f811d 100644 --- a/TA.py +++ b/TA.py @@ -7,7 +7,7 @@ import string import sys -import orjson as json +import json import math import copy from common import keyify diff --git a/TierUpdate9Doubles.py b/TierUpdate9Doubles.py index c134732..b413e06 100644 --- a/TierUpdate9Doubles.py +++ b/TierUpdate9Doubles.py @@ -1,6 +1,6 @@ import string import sys -import orjson as json +import json import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) diff --git a/TierUpdate9LC.py b/TierUpdate9LC.py index c244bc3..29e7d94 100644 --- a/TierUpdate9LC.py +++ b/TierUpdate9LC.py @@ -1,6 +1,6 @@ import string import sys -import orjson as json +import json import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) diff --git a/TierUpdate9NatDex.py b/TierUpdate9NatDex.py index 62eff7c..e740209 100644 --- a/TierUpdate9NatDex.py +++ b/TierUpdate9NatDex.py @@ -1,6 +1,6 @@ import string import sys -import orjson as json +import json import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) diff --git a/TierUpdate9Singles.py b/TierUpdate9Singles.py index d027db3..e69858f 100644 --- a/TierUpdate9Singles.py +++ b/TierUpdate9Singles.py @@ -1,6 +1,6 @@ import string import sys -import orjson as json +import json import pickle from common import keyify,readTable,getBattleFormatsData reload(sys) diff --git a/batchLogReader.py b/batchLogReader.py index 8693948..71c3b1c 100644 --- a/batchLogReader.py +++ b/batchLogReader.py @@ -5,7 +5,7 @@ import string import sys -import orjson as json +import json import gzip import copy import math @@ -20,7 +20,6 @@ keyLookup = json.loads(file.read()) file.close() - def getTeamsFromLog(log,mrayAllowed): teams={} for team in ['p1team','p2team']: @@ -836,8 +835,7 @@ def main(argv): if count % 10000 == 0: outname = "Raw/"+tier#+".txt" outfile=gzip.open(outname,'ab') - output = json.dumps(writeme).decode('utf-8') +'\n' - outfile.write(output.encode()) + outfile.write(json.dumps(writeme) +'\n') outfile.close() #write to moveset file @@ -855,8 +853,7 @@ def main(argv): if writeme: outname = "Raw/"+tier#+".txt" outfile=gzip.open(outname,'ab') - output = json.dumps(writeme).decode('utf-8')+'\n' - outfile.write(output.encode()) + outfile.write(json.dumps(writeme)+'\n') outfile.close() #write to moveset file @@ -873,7 +870,7 @@ def main(argv): for player in ratings.keys(): Glicko.newRatingPeriod(ratings[player]) ratingfile=open(argv[4],'w+') - ratingfile.write(json.dumps(ratings).decode('utf-8')) + ratingfile.write(json.dumps(ratings)) ratingfile.close() if __name__ == "__main__": diff --git a/batchMovesetCounter.py b/batchMovesetCounter.py index 0701210..4b49534 100644 --- a/batchMovesetCounter.py +++ b/batchMovesetCounter.py @@ -6,7 +6,7 @@ import sys import math import pickle -import orjson as json +import json import gzip import os import math @@ -332,5 +332,5 @@ def movesetCounter(filename, cutoff, teamtype, usage): if not os.path.exists(d): os.makedirs(d) file=open(filename,'w') -file.write(json.dumps(chaos, option=json.OPT_NON_STR_KEYS).decode('utf-8')) +file.write(json.dumps(chaos)) file.close() diff --git a/common.py b/common.py index 0bafd9a..1abe181 100644 --- a/common.py +++ b/common.py @@ -4,7 +4,7 @@ import math import js2py import urllib -import orjson as json +import json def keyify(s): sout = '' diff --git a/environment.yml b/environment.yml index fc463d1..553cdfd 100644 --- a/environment.yml +++ b/environment.yml @@ -2,6 +2,5 @@ name: sus-env3 dependencies: - ipython - python=3.11 -- orjson - pip - js2py diff --git a/ladderdev/BattleOutcomeExtractor.py b/ladderdev/BattleOutcomeExtractor.py index bebc564..96d57fe 100644 --- a/ladderdev/BattleOutcomeExtractor.py +++ b/ladderdev/BattleOutcomeExtractor.py @@ -4,7 +4,7 @@ #should be much more efficient, as TA.py and the files it requires need only be loaded once per run. import sys -import orjson as json +import json import os def LogReader(filename): diff --git a/ladderdev/RatingSystemTester.py b/ladderdev/RatingSystemTester.py index 7a8bdcd..f80c0b0 100644 --- a/ladderdev/RatingSystemTester.py +++ b/ladderdev/RatingSystemTester.py @@ -3,7 +3,7 @@ import sys import gzip -import orjson as json +import json import math import pickle diff --git a/ladderdev/RatingValidator.py b/ladderdev/RatingValidator.py index 2960b1f..3ef6b30 100644 --- a/ladderdev/RatingValidator.py +++ b/ladderdev/RatingValidator.py @@ -3,7 +3,7 @@ import gzip import sys -import orjson as json +import json from common import * diff --git a/ladderdev/ladderRatingTester.py b/ladderdev/ladderRatingTester.py index f6ab4da..2bebcfa 100644 --- a/ladderdev/ladderRatingTester.py +++ b/ladderdev/ladderRatingTester.py @@ -3,7 +3,7 @@ import sys import gzip -import orjson as json +import json import math import pickle From 55ab7d55fc07a7a58ef2b9d863b0bd4769cc1544 Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Fri, 23 Aug 2024 15:29:33 -0400 Subject: [PATCH 05/13] Catch cases where trainer names have Unicode --- batchLogReader.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/batchLogReader.py b/batchLogReader.py index 71c3b1c..a5db940 100644 --- a/batchLogReader.py +++ b/batchLogReader.py @@ -274,7 +274,7 @@ def LogReader(filename,tier,movesets,ratings): #msfile=open(outname,'ab') if keyify(poke['species']) == 'meloettapirouette': print(filename) - writeme={'trainer':trainer, + writeme={'trainer':trainer.encode('ascii', 'ignore').decode('utf-8'), 'level':poke['level'], 'ability':poke['ability'], 'item':poke['item'], @@ -835,7 +835,7 @@ def main(argv): if count % 10000 == 0: outname = "Raw/"+tier#+".txt" outfile=gzip.open(outname,'ab') - outfile.write(json.dumps(writeme) +'\n') + outfile.write((json.dumps(writeme) +'\n').encode('utf-8')) outfile.close() #write to moveset file @@ -845,7 +845,7 @@ def main(argv): if not os.path.exists(d): os.makedirs(d) msfile=gzip.open(outname,'ab') - msfile.write(json.dumps(movesets[species])) + msfile.write(json.dumps(movesets[species]).encode('utf-8')) msfile.close() writeme = [] @@ -853,7 +853,7 @@ def main(argv): if writeme: outname = "Raw/"+tier#+".txt" outfile=gzip.open(outname,'ab') - outfile.write(json.dumps(writeme)+'\n') + outfile.write((json.dumps(writeme)+'\n').encode('utf-8')) outfile.close() #write to moveset file @@ -863,7 +863,7 @@ def main(argv): if not os.path.exists(d): os.makedirs(d) msfile=gzip.open(outname,'ab') - msfile.write(json.dumps(movesets[species])) + msfile.write(json.dumps(movesets[species]).encode('utf-8')) msfile.close() if ratings != None: From 5024235ca05c3cb80d2c4b4676d05ab96d6e2975 Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 00:12:49 -0400 Subject: [PATCH 06/13] Remove Python 2 bug --- StatCounter.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/StatCounter.py b/StatCounter.py index 1895de3..563c930 100644 --- a/StatCounter.py +++ b/StatCounter.py @@ -351,7 +351,12 @@ nbins = len(histogram) for start in range(len(stallCounter)): - if stallCounter[start][0] >= histogram[0][0]-binSize/2: + # In Python 2, you could compare a list to a number, and the + # list would always be greater than or equal to the number. + # In other words, the commented statement (which would fail in + # Python 3) would always return True. + # if stallCounter[start] >= histogram[0][0]-binSize/2: + if True: break j=0 From 6b84431d90abc947d4c4ab46ccdd89ad6e557613 Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 00:50:40 -0400 Subject: [PATCH 07/13] Convert `json.loads(file.read())` to `json.load(file)` --- MegaCounter.py | 2 +- TierUpdate9Doubles.py | 2 +- TierUpdate9LC.py | 2 +- TierUpdate9NatDex.py | 2 +- TierUpdate9Singles.py | 2 +- batchLogReader.py | 2 +- batchMovesetCounter.py | 2 +- 7 files changed, 7 insertions(+), 7 deletions(-) diff --git a/MegaCounter.py b/MegaCounter.py index dfd11cc..e3fae5e 100644 --- a/MegaCounter.py +++ b/MegaCounter.py @@ -6,7 +6,7 @@ from common import keyify file = open(sys.argv[1]) -stats=json.loads(file.read()) +stats=json.load(file) file.close() megastats=[] diff --git a/TierUpdate9Doubles.py b/TierUpdate9Doubles.py index b413e06..c548f9d 100644 --- a/TierUpdate9Doubles.py +++ b/TierUpdate9Doubles.py @@ -34,7 +34,7 @@ def makeTable(table,name,keyLookup): def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.loads(file.read()) + keyLookup = json.load(file) file.close() rise = [0.99999999999,0.99515839608,0.04515839608][len(months)-1] diff --git a/TierUpdate9LC.py b/TierUpdate9LC.py index 29e7d94..04bd39f 100644 --- a/TierUpdate9LC.py +++ b/TierUpdate9LC.py @@ -43,7 +43,7 @@ def makeTable(table,name,keyLookup): def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.loads(file.read()) + keyLookup = json.load(file) file.close() rise = [0.99999999999,0.99515839608,0.04515839608][len(months)-1] diff --git a/TierUpdate9NatDex.py b/TierUpdate9NatDex.py index e740209..d93afe7 100644 --- a/TierUpdate9NatDex.py +++ b/TierUpdate9NatDex.py @@ -34,7 +34,7 @@ def makeTable(table,name,keyLookup): def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.loads(file.read()) + keyLookup = json.load(file) file.close() rise = [0.08827751140,0.06715839608,0.04515839608][len(months)-1] diff --git a/TierUpdate9Singles.py b/TierUpdate9Singles.py index e69858f..a3f36a5 100644 --- a/TierUpdate9Singles.py +++ b/TierUpdate9Singles.py @@ -34,7 +34,7 @@ def makeTable(table,name,keyLookup): def main(months): file = open('keylookup.json', 'rb') - keyLookup = json.loads(file.read()) + keyLookup = json.load(file) file.close() rise = [0.08827751140,0.06715839608,0.04515839608][len(months)-1] diff --git a/batchLogReader.py b/batchLogReader.py index a5db940..6a67190 100644 --- a/batchLogReader.py +++ b/batchLogReader.py @@ -17,7 +17,7 @@ from TA import * file = open('keylookup.json', 'rb') -keyLookup = json.loads(file.read()) +keyLookup = json.load(file) file.close() def getTeamsFromLog(log,mrayAllowed): diff --git a/batchMovesetCounter.py b/batchMovesetCounter.py index 4b49534..84e0b28 100644 --- a/batchMovesetCounter.py +++ b/batchMovesetCounter.py @@ -276,7 +276,7 @@ def movesetCounter(filename, cutoff, teamtype, usage): return stuff file = open('keylookup.json', 'rb') -keyLookup = json.loads(file.read()) +keyLookup = json.load(file) file.close() keyLookup['nothing']='Nothing' keyLookup['']='Nothing' From 4af799ae72c7c62b1339c767e1723b9bb9a2d722 Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 09:56:55 -0400 Subject: [PATCH 08/13] Clarifying why we have extra encodes and decodes --- batchLogReader.py | 1 + 1 file changed, 1 insertion(+) diff --git a/batchLogReader.py b/batchLogReader.py index 6a67190..a9d0d88 100644 --- a/batchLogReader.py +++ b/batchLogReader.py @@ -274,6 +274,7 @@ def LogReader(filename,tier,movesets,ratings): #msfile=open(outname,'ab') if keyify(poke['species']) == 'meloettapirouette': print(filename) + # This sequence removes Unicode characters from trainer names. writeme={'trainer':trainer.encode('ascii', 'ignore').decode('utf-8'), 'level':poke['level'], 'ability':poke['ability'], From 444ca7ebf4b4fc44fd9c5fa47340ff3c14f94f3f Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 10:01:39 -0400 Subject: [PATCH 09/13] Add correct file opening options --- PS-Extractor.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/PS-Extractor.py b/PS-Extractor.py index 7b26175..95a21fc 100644 --- a/PS-Extractor.py +++ b/PS-Extractor.py @@ -30,6 +30,6 @@ for k, v in ctx.natures.items(): keyLookup[k] = v['name'] -json.dump(baseStats, open('baseStats.json', 'w+')) -json.dump(types, open('types.json', 'w+')) -pickle.dump(keyLookup, open('keylookup.pickle', 'w+')) +json.dump(baseStats, open('baseStats.json', 'w')) +json.dump(types, open('types.json', 'w')) +pickle.dump(keyLookup, open('keylookup.pickle', 'wb')) From 81e05b4d926a1db99cce9fe33c2dab46babe0e4b Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 10:02:01 -0400 Subject: [PATCH 10/13] Revert file context code; will just be done later --- StatCounter.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/StatCounter.py b/StatCounter.py index 563c930..8faee53 100644 --- a/StatCounter.py +++ b/StatCounter.py @@ -243,11 +243,12 @@ #write teammates and encounter matrix to file filename="Raw/moveset/"+tier+"/teammate"+specs+".pickle" teammatefile=open(filename,'wb') -with open(filename, 'wb') as teammate_file: - pickle.dump(teammateMatrix, teammate_file) +pickle.dump(teammateMatrix, teammate_file) +teammatefile.close() filename="Raw/moveset/"+tier+"/encounterMatrix"+specs+".pickle" -with open(filename, 'wb') as encounter_file: - pickle.dump(encounterMatrix, encounter_file) +encounter_file = open(filename, 'wb') +pickle.dump(encounterMatrix, encounter_file) +encounter_file.close() #sort by weighted usage if tier in ['challengecup1v1','1v1']: From 07d5af05bc7d27e8aefc53357087eab873f44e3c Mon Sep 17 00:00:00 2001 From: Shriansh Chari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 10:04:18 -0400 Subject: [PATCH 11/13] Fix variable names --- StatCounter.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/StatCounter.py b/StatCounter.py index 8faee53..684998d 100644 --- a/StatCounter.py +++ b/StatCounter.py @@ -243,12 +243,12 @@ #write teammates and encounter matrix to file filename="Raw/moveset/"+tier+"/teammate"+specs+".pickle" teammatefile=open(filename,'wb') -pickle.dump(teammateMatrix, teammate_file) +pickle.dump(teammateMatrix, teammatefile) teammatefile.close() filename="Raw/moveset/"+tier+"/encounterMatrix"+specs+".pickle" -encounter_file = open(filename, 'wb') -pickle.dump(encounterMatrix, encounter_file) -encounter_file.close() +encounterfile = open(filename, 'wb') +pickle.dump(encounterMatrix, encounterfile) +encounterfile.close() #sort by weighted usage if tier in ['challengecup1v1','1v1']: From 0c849ff7c709cfb9f3e963bedff7de4fd5c1d116 Mon Sep 17 00:00:00 2001 From: shrianshChari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 15:01:22 -0400 Subject: [PATCH 12/13] Update batchLogReader.py Co-authored-by: Christopher Monsanto --- batchLogReader.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/batchLogReader.py b/batchLogReader.py index a9d0d88..5ed2e4e 100644 --- a/batchLogReader.py +++ b/batchLogReader.py @@ -274,7 +274,7 @@ def LogReader(filename,tier,movesets,ratings): #msfile=open(outname,'ab') if keyify(poke['species']) == 'meloettapirouette': print(filename) - # This sequence removes Unicode characters from trainer names. + # The Python 2 version of this code removed Unicode characters from the trainer names; it's unclear if this is required by downstream processing, but just in case preserve the behavior. writeme={'trainer':trainer.encode('ascii', 'ignore').decode('utf-8'), 'level':poke['level'], 'ability':poke['ability'], From 17b247d785c6ed3d2b453053c3895bef69d14df7 Mon Sep 17 00:00:00 2001 From: shrianshChari <30420527+shrianshChari@users.noreply.github.com> Date: Sat, 24 Aug 2024 21:32:49 -0400 Subject: [PATCH 13/13] Update environment.yml Co-authored-by: Christopher Monsanto --- environment.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment.yml b/environment.yml index 553cdfd..d8267fa 100644 --- a/environment.yml +++ b/environment.yml @@ -1,6 +1,6 @@ name: sus-env3 dependencies: - ipython -- python=3.11 +- python=3.12 - pip - js2py