From 4ef9d7e24c5dc228068c4b70a7af22a8ded902ac Mon Sep 17 00:00:00 2001 From: BrianWeiHaoMa Date: Sun, 15 Dec 2024 17:01:55 -0500 Subject: [PATCH] Updated some example urls and example datetimes. --- MISOReports/MISOReports.py | 65 ++++++++++++++++++------------------- MISOReports/parsers.py | 3 ++ pytest_res.txt | Bin 0 -> 213074 bytes 3 files changed, 35 insertions(+), 33 deletions(-) create mode 100644 pytest_res.txt diff --git a/MISOReports/MISOReports.py b/MISOReports/MISOReports.py index 64a47d8..a5f842a 100644 --- a/MISOReports/MISOReports.py +++ b/MISOReports/MISOReports.py @@ -575,8 +575,8 @@ def add_to_datetime( ), type_to_parse="xlsx", parser=parsers.parse_Resource_Uplift_by_Commitment_Reason, - example_url="https://docs.misoenergy.org/marketreports/20220109_Resource_Uplift_by_Commitment_Reason.xlsx", - example_datetime=datetime.datetime(year=2022, month=1, day=9), + example_url="https://docs.misoenergy.org/marketreports/20240109_Resource_Uplift_by_Commitment_Reason.xlsx", + example_datetime=datetime.datetime(year=2024, month=1, day=9), ), "rt_rpe": Report( # Checked 2024-11-24. @@ -588,8 +588,8 @@ def add_to_datetime( ), type_to_parse="xls", parser=parsers.parse_rt_rpe, - example_url="https://docs.misoenergy.org/marketreports/20220101_rt_rpe.xls", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20241029_rt_rpe.xls", + example_datetime=datetime.datetime(year=2024, month=10, day=29), ), "Historical_RT_RSG_Commitment": Report( # Checked 2024-11-24. @@ -718,8 +718,8 @@ def add_to_datetime( ), type_to_parse="csv", parser=parsers.parse_rt_pbc, - example_url="https://docs.misoenergy.org/marketreports/20220101_rt_pbc.csv", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240601_rt_pbc.csv", + example_datetime=datetime.datetime(year=2024, month=6, day=1), ), "rt_bc": Report( # Checked 2024-11-24. @@ -744,8 +744,8 @@ def add_to_datetime( ), type_to_parse="xls", parser=parsers.parse_rt_or, - example_url="https://docs.misoenergy.org/marketreports/20220101_rt_or.xls", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240601_rt_or.xls", + example_datetime=datetime.datetime(year=2024, month=6, day=1), ), "rt_fuel_on_margin": Report( # Checked 2024-11-24. @@ -809,8 +809,8 @@ def add_to_datetime( ), type_to_parse="xlsx", parser=parsers.parse_ms_rnu_srw, - example_url="https://docs.misoenergy.org/marketreports/20220101_ms_rnu_srw.xlsx", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240101_ms_rnu_srw.xlsx", + example_datetime=datetime.datetime(year=2024, month=1, day=1), ), "ms_ri_srw": Report( # Checked 2024-11-26. @@ -1560,8 +1560,8 @@ def add_to_datetime( ), type_to_parse="xlsx", parser=parsers.parse_da_exante_str_mcp, - example_url="https://docs.misoenergy.org/marketreports/20220101_da_exante_str_mcp.xlsx", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240601_da_exante_str_mcp.xlsx", + example_datetime=datetime.datetime(year=2024, month=6, day=1), ), "da_expost_ramp_mcp": Report( # Checked 2024-11-29. @@ -1586,8 +1586,8 @@ def add_to_datetime( ), type_to_parse="xlsx", parser=parsers.parse_da_expost_str_mcp, - example_url="https://docs.misoenergy.org/marketreports/20220101_da_expost_str_mcp.xlsx", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240601_da_expost_str_mcp.xlsx", + example_datetime=datetime.datetime(year=2024, month=6, day=1), ), "rt_expost_ramp_5min_mcp": Report( # Checked 2024-11-29. @@ -1625,8 +1625,8 @@ def add_to_datetime( ), type_to_parse="xlsx", parser=parsers.parse_rt_expost_str_5min_mcp, - example_url="https://docs.misoenergy.org/marketreports/202201_rt_expost_str_5min_mcp.xlsx", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/202401_rt_expost_str_5min_mcp.xlsx", + example_datetime=datetime.datetime(year=2024, month=1, day=1), ), "rt_expost_str_mcp": Report( # Checked 2024-11-29. @@ -1638,8 +1638,8 @@ def add_to_datetime( ), type_to_parse="xlsx", parser=parsers.parse_rt_expost_str_mcp, - example_url="https://docs.misoenergy.org/marketreports/202201_rt_expost_str_mcp.xlsx", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/202401_rt_expost_str_mcp.xlsx", + example_datetime=datetime.datetime(year=2024, month=1, day=1), ), "Allocation_on_MISO_Flowgates": Report( # Checked 2024-11-29. @@ -1730,8 +1730,8 @@ def add_to_datetime( ), type_to_parse="zip", parser=parsers.parse_asm_da_co, - example_url="https://docs.misoenergy.org/marketreports/20220101_asm_da_co.zip", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240729_asm_da_co.zip", + example_datetime=datetime.datetime(year=2024, month=7, day=29), ), "asm_rt_co": Report( # Checked 2024-12-15. @@ -1743,8 +1743,8 @@ def add_to_datetime( ), type_to_parse="zip", parser=parsers.parse_asm_rt_co, - example_url="https://docs.misoenergy.org/marketreports/20220101_asm_rt_co.zip", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240820_asm_rt_co.zip", + example_datetime=datetime.datetime(year=2024, month=8, day=20), ), "Dead_Node_Report": Report( # Checked 2024-12-15. @@ -1769,8 +1769,8 @@ def add_to_datetime( ), type_to_parse="zip", parser=parsers.parse_rt_co, - example_url="https://docs.misoenergy.org/marketreports/20220101_rt_co.zip", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20240808_rt_co.zip", + example_datetime=datetime.datetime(year=2024, month=8, day=8), ), "da_co": Report( # Checked 2024-12-15. @@ -1782,8 +1782,8 @@ def add_to_datetime( ), type_to_parse="zip", parser=parsers.parse_da_co, - example_url="https://docs.misoenergy.org/marketreports/20220101_da_co.zip", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20241007_da_rpe.xls", + example_datetime=datetime.datetime(year=2024, month=10, day=7), ), "cpnode_reszone": Report( # Checked 2024-12-15. @@ -1886,8 +1886,8 @@ def add_to_datetime( ), type_to_parse="xls", parser=parsers.parse_da_rpe, - example_url="https://docs.misoenergy.org/marketreports/20220101_da_rpe.xls", - example_datetime=datetime.datetime(year=2022, month=1, day=1), + example_url="https://docs.misoenergy.org/marketreports/20241020_da_rpe.xls", + example_datetime=datetime.datetime(year=2024, month=10, day=20), ), "RT_LMPs": Report( @@ -1899,8 +1899,8 @@ def add_to_datetime( ), type_to_parse="zip", parser=parsers.parse_RT_LMPs, - example_url="https://docs.misoenergy.org/marketreports/2021_Oct-Dec_RT_LMPs.zip", - example_datetime=datetime.datetime(year=2021, month=10, day=1), + example_url="https://docs.misoenergy.org/marketreports/2023_Oct-Dec_RT_LMPs.zip", + example_datetime=datetime.datetime(year=2023, month=10, day=1), ), "sr_gfm": Report( @@ -2068,10 +2068,9 @@ def add_to_datetime( ), type_to_parse="xml", parser=parsers.parse_MISOdaily, - example_url="https://docs.misoenergy.org/marketreports/MISOdaily0562015.xml", - example_datetime=datetime.datetime(year=2015, month=2, day=25), + example_url="https://docs.misoenergy.org/marketreports/MISOdaily2512024.xml", + example_datetime=datetime.datetime(year=2024, month=9, day=7), ), - "MISOsamedaydemand": Report( # Checked 2024-11-29. url_builder=MISOMarketReportsURLBuilder( diff --git a/MISOReports/parsers.py b/MISOReports/parsers.py index abbd9bd..e75e8c9 100644 --- a/MISOReports/parsers.py +++ b/MISOReports/parsers.py @@ -99,6 +99,9 @@ def parse_Resource_Uplift_by_Commitment_Reason( } ).iloc[:-2] + print(df) + exit(1) + df[["ECONOMIC MAX"]] = df[["ECONOMIC MAX"]].astype("Float64") df[["LOCAL RESOURCE ZONE"]] = df[["LOCAL RESOURCE ZONE"]].astype("Int64") df[["STARTTIME"]] = df[["STARTTIME"]].apply(pd.to_datetime, format="%Y/%m/%d %I:%M:%S %p") diff --git a/pytest_res.txt b/pytest_res.txt new file mode 100644 index 0000000000000000000000000000000000000000..4947ba8454be0b17f33032b5a97c88df7d2b201f GIT binary patch literal 213074 zcmeIbX>(l1vFF{dCt|(>hK}bUeQiPnNpMk^o(plYXp2jLkacZPgQ2*ISKNl6B+?pv z^_j_E{X0=rr>oA==ms0m2?WsSb85}X%F3-W|L^~~HktQlZSsEdbh2-M*X%FnJ~=n}qrH6_-fFC8Cs*t_?=DQ=y`20wd2T-+t)&fnz8UIy z%hxBLPaaOb4l{gbe;-=!Pp$v&ZA=d*_iP+bCpTu83W|GJg>V86ibvGwxU#`@Iye_=H~H)yP9@YqYrP=nFDu~uXGRe^x!1LU6B zT%L!&FKuSbDP7@pd;8jcz5Gjqv!KiK=K%ui28A`7`5SxZZ-LR8VZf!yMf-eVFnDUK zxF6b~t@65j7Rs>;_9`U=@6T`cC~-fo0(JTi!Y zp+M}N?aC62zB_U z8$8b1e%2m8Yb)~Je%{*m&nKVRkJ?_hb$AiVFec^#{aFuier}~ABvk^orwA9Utkciqgcp4wQNtXca}9Sc z98=tRZKpQe-|UI7IDVpi*PUF*<>yfUJ;tf)6t{+N7f&$0&2vt@Gz|V=oP3$fKe^EA zOV|2i9~AzBofmEJ+&mKO`@(bysUBfDQWN@)cR^A>)A%a^)D|I$}&-FyW_FuM7-`c02 zlCGb4Vxt3VyEGK&kz8|yjv#6((Mz<=de8K>=j`{Q>Du^2=c>`v*7@>M_sJsG8BLsM z+M_A;+cWzADnPjJ8pE>;TVwQ~XsF7o+@^V0#46{jc**8phr;@luAhVz2GgbQ9lFBk z0~Wc$v{ySXm%YMGD0Hpxm6hMaPPOhBjUGaq;r9BhDwY&aI zxZ)VX_>Klc;C;}9|JAS^3)M-(5Nx&L10sFotYE)x+FnLBVoyIF#2IY%#2>gnEP8ER z0d2W#x*YD$=>go`p3S^JMAi>RR^}6EahbNpMR0<5jQ8E1{LMK19h*It(jEKx%0BPd z@7?eetltSd@&haTjjc#u9`RBKCLozbyYSf{YhYho?*5)<&h4kcxYCygt~63#F6Gg} zGO7A9R(-j40kHE*qhu6WqvmA3GKTfGQ-v0>#j4s zTc<;d%fx|sVG{9TFX(&te$_NS8f)#GUk;AQyNC1fnXM|Jco7<{BrQ2L0W_6ezd>P065wwVHMIkaC@o8)wzm=1%Jh5?2E$o@hGWeVBbgt@!>MWOI%R2n3;ybu! zUV=C5wB9p*8^1@q2l1mt8-Lv}dOz&``}X&pK|`7u`Nwr(`Nd-h53CMvf)qZ7nuV{Z`Pe~17K*oq>5n_t z`AT(m%h6>Yew{VDK6ATzjOVs*)T#?J(I3=!%jM{q55Icz$kW|$sPSTG=~j~#Lw#S_ z4uuQjoYrlhC*kao4`%nQYaH3?&ia+jZ_hZBmqw!_PlldB8p8H73F)DX@7UK@bDba9 zI%_>|g_DUpI_|U3HQO5RwYsy-Egjt$EFNn1zRme1=}!(%zr;hy_Rxny*Z8ROD=P_W zhOc^^KQ-QH)n~_zrf%%4@kV&{tR}UQ&PV=;UDTz<9i2BD-fGV7UC?OtnH?u!?W9=M z*@>_1C!KKu)aJLU(x>LvXXiovkLT=$>6)ODwRx_pl#NXv`zzXD?B3{F{$<}~e{H8Z z(9PO>S6kX-UR~z}bd%Z5YJ|?)ZTwZGsILF-o?V@jSyfr{hGC~XlHD5_O;GgW?VfX; zzgg8eBU|7fBQCBV-q!e>3o9!<`z&>)^qXak-?^}|vSS~MbQcb@hGm+&`tzQ(JrltJ z4Z@oq(h2jc&3tt&ukt~-Wv9r^&J%~&Fvo3%^IF)u@w~=MU088RyPux^!jyNKGYj)-K;%Fh0LVk5^SH&u1L(b@iQbovT_^2^KE^tPk8<1E28-cwzFa z^A*obLg2nx*J@vE;jC7D?yU1`^N^5@eBSwszba9+Rh4(+Ods2-cdu}rzgkuKZ!>uB z-8HQK%Kp3GV~%ycX;tSapN{%{<8~^2v8sh)N3Z6&gr1GP>M`(SHzs-^zMc4Ei;F}L zr<*u>p!4;`yn;f^ajSpRw8P}6X6hkG^gq8!7o3;%0;*~OK$x?;Cg1i|R5j)xyn z40*S2_>TuOx-ama|F|J0A4t5H`|N`n_qMul5tp9xs(ur%9|w2Q{M5@l>%|q9o6EC~ z{A|DZZ&tau<28RGn8MM%82m%I5I+Xx89e;q?`p z++%wCQ*;+#1N;qoiY^&;b5iH_R#i&B8}3we&#ca`t?JBnY<1yTxtUP9m4bCTy}Qy4 zgF5%Ns?z&o)1q=S5&ooWewV7;8GPGnaw%mW=kA%-td*-fQ@0LywD5M0^HSAX2`{>u zYw5ADyJl9?p{?%Bl!v1mD{EZS=E~{{z6lzDCuTv%HrL={bla{O*SVxsl|Jeabv(7YZ{`}ouhl|c(mzuOubUo5M5eX z37i|Z(&zS#Fmx)+@2{+Z*q)U)uxp)b{L(5z;AgYQ#F!P` z6sg83p=VmnRmP8u?5c{RL}t})ubC?*vz7fvR(GDs-^S%I8{5du=y*Bsv)fA_?G_slv>TtD*pDknx;1kS519MMt8q_1q8@>j(( z&ts3`W6#-8k3Px`Kdmah`OF=9gqN#FFZCP}L@Jf7jjX*t+I!$dTw=~-dg>RG^wN>s z&ORD=5aIEW<&FL_;K@77ua3lo-1Nde>#(VFmPaA&9t~{#-UpO_HtsQgHS#4Tg6|hq zERr^F_Ra$u+~uF@s|TsADx_o+{VhXEdJA#Q(Qmm%pTrZF;B^$%@uR`4Eu++rjTUw1 z87|ZC8c&T);iT+7+03vp)G(#SabG?XUB}U2ibr@r+x5zD2G8c)?o!5(8lR3;;-p|m z2{znzaQj;sGBqCmBtj;?8^Ded4%K#4O*XiEBpR8c*-?@IN$-B@j1sR7&nyW;95}fZ z%edr`XG^EmQD`?-6=KL`HHg)C?8`@@4_Z}-U1)(=&2oPENc;qj24a%&<&B5^wT3-4 z55toL3wc?zaXuSHkIUM|%SWQAIvSkFJ&4=28XHDEfJliFpBz2U4LiY=m8I-A&t32s z@jv&W-<$l?-YPy}ZFh;IKG`sgHe<9O#Ko&qn>rVLa`ZvYMduzr-Mr#P)py|Xk@&zI z4Gq${^xQP5__)>fjriu-eS&v&z`w zF^f+&r0#?qg6O$oe4TC6y}Rd59Xd75GF}lUXD>;{+zsXV1v?Ry&hxTHz~4qLq4YW5e>gXTSbmwD04K^e9-c z_iTR3`HlAjvqaicoi&Scwq+TF$U^Qp`0z?v{+Sua+~w1N7Xviy2b<|Ln+bkaPp7td zvJs+%bq=8<%U@ZNcEj`h-Z5ytv(b_5IptRN?UwqsMUwl%{40>ZiTcmjksk59L8gqE z*gZPgu2J8!wia9Vt{$bWZ}#YO*4B^KD|hDeI8cJ4XOD&h?am-fYs<_R-ahM?Cm0Pn z=U01%_~W+jvKVkukYv40V@6K}WKEb+9r%)HS^f$(Qq)yva8QHDZ$ zR_H5B@ zN0)nUk>b_^eSU7`B+-g0rWAVL-nFfG6AE1`z8sy}vR3@8VR@wP?%CgWXJhZ_v(ESl zQVzHi#}aQoxSaR4ns5WkOztPpd-HAMB#LE_GvS#zqdBo+jdn`G_?CG-INqGK(@~a= zzuG)s+X(&S5JbDqh2w=YoVxk^&f5NimvgR1xvDueSTWs=5myT@vC0_3_>Kl+$YKLM z`>WygP>jJJco`h=@~8|uQ5He4BGOckfEMrUx^G8cjN;B*AB=*d)XnxfXF*#ZjMD7e z-{qb(=S&7bQh*lrgUI^9$jUa;9#hJzEn`X5FaHTp)6=f41w3aRH>XQ72yLU|Y>~k3$-Vh!- zMlYG2IW?LyulXk)pP5G<(X|h=GeB9xj!T?US34@x)-_=iMdFprW&C3CmWH-3ACR}Rv(W^_+(_`U6hQVHo){;0l zd&bYcu%~D~u_SWBD+eF9qVrfAyVE-L)BGsBg6AK1ojxr`_sAW^m(CQ}EytK;zATj_$F+zwGmU-AW*bu`^y-DOm}yUgOz|T!`$|79&Bpwio8WJW?A^v={)X zwaMv)jp}shuYF|d^OwmP>-Xm5x=FTo?U%Fkx{U=L(0|yQKTdvc7Ol0(pNv*uL*N#P z@&~NhC)oNdNW)0NP?Yy(-Fj>ASqrl9n&H`pfNfyhIg>@oyKv}U@D8|cBV02dd&YRP*Qme<@C8i4Hp9r)!%t}r()Y#~5W{9c z{@8RD4<nqkdEG;@S_l%hH(6yasMWFyd}QrNEngAWWTbKzM^G{c&!SRbZxv1 z{~QX9YjeP_t^c8W<=Wug^~Vewecr-RM&_~*XO!=f{mH`wU&|%fg&%F5;W;k^icf2t zx~u!Ui20I%jq?qP$gZwqak}nczVN;V&2$Hdl9fw7tgM)?2brTTCnHST%|`_7ebjqY zDt(xdku&5{ab#*cADzQ1-R#P5|aDZCVN;-3vq&rh+n)Gqy=o%08nkRw&IN58)o#*GIU*+bz=6c1`` z&K?*UBXnwC{+#7HDc6sqrlh#z*|y=s@qLE(7FQm>-8Md+k)1mjn|zPZEN&RY&)S;} zd&l3;?eDqi-`QSfpI~29yK!Xr_pDi;U@I9{1#P64ygqlh#eveherh8-|A|I+zH?+y zu1^883!Njo_=!e#v2$dbpJ-&@sAF3DXT;|Aa_Nq2uTy%fXY5TfB4`&hcff`49GU#n z;29&+E+~(Tr=MwJ_pbZ}4q6(e{j+h(C*z_jiNLDGgAM+jScUT=D5nE$d=5l%qZnZ*b{(M|~hT zIO+qX^_7ih)CVHvV}*1L%5l>N4m%aW{^m*3-#S8HLp8oSn`f;f(XLR}K$a~cE=81i z0W>B$JIb14uRRnBt}}�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 literal 0 HcmV?d00001