D: [iurt_root_command] chroot
warning: Found bdb_ro Packages database while attempting sqlite backend: using bdb_ro backend.
warning: extra tokens at the end of %endif directive in line 19:  %endif # if with_python3

warning: extra tokens at the end of %endif directive in line 30:  %endif # with_python3

warning: extra tokens at the end of %endif directive in line 45:  %endif # with_python3

warning: extra tokens at the end of %endif directive in line 51:  %endif # with_python3

warning: extra tokens at the end of %endif directive in line 58:  %endif # with_python3

warning: extra tokens at the end of %endif directive in line 66:  %endif # with_python3

Installing /home/iurt/rpmbuild/SRPMS/python-qstk-0.2.8-11.mga9.src.rpm
Building target platforms: aarch64
Building for target aarch64
Executing(%prep): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.5LQf9A
+ umask 022
+ cd /home/iurt/rpmbuild/BUILD
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ cd /home/iurt/rpmbuild/BUILD
+ rm -rf QSTK-0.2.8
+ /usr/bin/gzip -dc /home/iurt/rpmbuild/SOURCES/QSTK-0.2.8.tar.gz
+ /usr/bin/tar -xof -
+ STATUS=0
+ '[' 0 -ne 0 ']'
+ cd QSTK-0.2.8
+ /usr/bin/chmod -Rf a+rX,u+w,g-w,o-w .
+ rm -rf QSTK.egg-info
+ sed -i -e 's!python-dateutil == 1.5!python-dateutil >= 1.5!' setup.py
+ rm -rf 'QSTK/QSData/Yahoo/$DJI.csv' 'QSTK/QSData/Yahoo/$SPX.csv' 'QSTK/QSData/Yahoo/$VIX.csv' QSTK/QSData/Yahoo/A.csv QSTK/QSData/Yahoo/AA.csv QSTK/QSData/Yahoo/AAPL.csv QSTK/QSData/Yahoo/ABC.csv QSTK/QSData/Yahoo/ABI.csv QSTK/QSData/Yahoo/ABKFQ.csv QSTK/QSData/Yahoo/ABT.csv QSTK/QSData/Yahoo/ACAS.csv QSTK/QSData/Yahoo/ACE.csv QSTK/QSData/Yahoo/ACN.csv QSTK/QSData/Yahoo/ACS.csv QSTK/QSData/Yahoo/ADBE.csv QSTK/QSData/Yahoo/ADI.csv QSTK/QSData/Yahoo/ADM.csv QSTK/QSData/Yahoo/ADP.csv QSTK/QSData/Yahoo/ADSK.csv QSTK/QSData/Yahoo/AEE.csv QSTK/QSData/Yahoo/AEP.csv QSTK/QSData/Yahoo/AES.csv QSTK/QSData/Yahoo/AET.csv QSTK/QSData/Yahoo/AFL.csv QSTK/QSData/Yahoo/AGN.csv QSTK/QSData/Yahoo/AIG.csv QSTK/QSData/Yahoo/AIV.csv QSTK/QSData/Yahoo/AIZ.csv QSTK/QSData/Yahoo/AKAM.csv QSTK/QSData/Yahoo/ALL.csv QSTK/QSData/Yahoo/ALTR.csv QSTK/QSData/Yahoo/ALXN.csv QSTK/QSData/Yahoo/AMAT.csv QSTK/QSData/Yahoo/AMD.csv QSTK/QSData/Yahoo/AMGN.csv QSTK/QSData/Yahoo/AMP.csv QSTK/QSData/Yahoo/AMT.csv QSTK/QSData/Yahoo/AMZN.csv QSTK/QSData/Yahoo/AN.csv QSTK/QSData/Yahoo/ANF.csv QSTK/QSData/Yahoo/ANR.csv QSTK/QSData/Yahoo/AON.csv QSTK/QSData/Yahoo/APA.csv QSTK/QSData/Yahoo/APC.csv QSTK/QSData/Yahoo/APD.csv QSTK/QSData/Yahoo/APH.csv QSTK/QSData/Yahoo/APOL.csv QSTK/QSData/Yahoo/ARG.csv QSTK/QSData/Yahoo/ASH.csv QSTK/QSData/Yahoo/ATI.csv QSTK/QSData/Yahoo/AVB.csv QSTK/QSData/Yahoo/AVP.csv QSTK/QSData/Yahoo/AVY.csv QSTK/QSData/Yahoo/AXP.csv QSTK/QSData/Yahoo/AYE.csv QSTK/QSData/Yahoo/AZO.csv QSTK/QSData/Yahoo/BA.csv QSTK/QSData/Yahoo/BAC.csv QSTK/QSData/Yahoo/BAX.csv QSTK/QSData/Yahoo/BBBY.csv QSTK/QSData/Yahoo/BBT.csv QSTK/QSData/Yahoo/BBY.csv QSTK/QSData/Yahoo/BC.csv QSTK/QSData/Yahoo/BCR.csv QSTK/QSData/Yahoo/BDK.csv QSTK/QSData/Yahoo/BDX.csv QSTK/QSData/Yahoo/BEAM.csv QSTK/QSData/Yahoo/BEN.csv QSTK/QSData/Yahoo/BF.B.csv QSTK/QSData/Yahoo/BHI.csv QSTK/QSData/Yahoo/BIG.csv QSTK/QSData/Yahoo/BIIB.csv QSTK/QSData/Yahoo/BJS.csv QSTK/QSData/Yahoo/BK.csv QSTK/QSData/Yahoo/BLK.csv QSTK/QSData/Yahoo/BLL.csv QSTK/QSData/Yahoo/BMC.csv QSTK/QSData/Yahoo/BMS.csv QSTK/QSData/Yahoo/BMY.csv QSTK/QSData/Yahoo/BRCM.csv QSTK/QSData/Yahoo/BRK.B.csv QSTK/QSData/Yahoo/BRLI.csv QSTK/QSData/Yahoo/BSC.csv QSTK/QSData/Yahoo/BSX.csv QSTK/QSData/Yahoo/BTU.csv QSTK/QSData/Yahoo/BUD.csv QSTK/QSData/Yahoo/BWA.csv QSTK/QSData/Yahoo/BXP.csv QSTK/QSData/Yahoo/C.csv QSTK/QSData/Yahoo/CA.csv QSTK/QSData/Yahoo/CAG.csv QSTK/QSData/Yahoo/CAH.csv QSTK/QSData/Yahoo/CAM.csv QSTK/QSData/Yahoo/CAT.csv QSTK/QSData/Yahoo/CB.csv QSTK/QSData/Yahoo/CBE.csv QSTK/QSData/Yahoo/CBG.csv QSTK/QSData/Yahoo/CBS.csv QSTK/QSData/Yahoo/CBSH.csv QSTK/QSData/Yahoo/CCE.csv QSTK/QSData/Yahoo/CCI.csv QSTK/QSData/Yahoo/CCL.csv QSTK/QSData/Yahoo/CCMO.csv QSTK/QSData/Yahoo/CCT.csv QSTK/QSData/Yahoo/CEG.csv QSTK/QSData/Yahoo/CELG.csv QSTK/QSData/Yahoo/CERN.csv QSTK/QSData/Yahoo/CF.csv QSTK/QSData/Yahoo/CFC+A.csv QSTK/QSData/Yahoo/CFN.csv QSTK/QSData/Yahoo/CHK.csv QSTK/QSData/Yahoo/CHRW.csv QSTK/QSData/Yahoo/CI.csv QSTK/QSData/Yahoo/CIEN.csv QSTK/QSData/Yahoo/CINF.csv QSTK/QSData/Yahoo/CIT.csv QSTK/QSData/Yahoo/CL.csv QSTK/QSData/Yahoo/CLF.csv QSTK/QSData/Yahoo/CLX.csv QSTK/QSData/Yahoo/CMA.csv QSTK/QSData/Yahoo/CMCSA.csv QSTK/QSData/Yahoo/CME.csv QSTK/QSData/Yahoo/CMG.csv QSTK/QSData/Yahoo/CMI.csv QSTK/QSData/Yahoo/CMS.csv QSTK/QSData/Yahoo/CNP.csv QSTK/QSData/Yahoo/CNX.csv QSTK/QSData/Yahoo/COF.csv QSTK/QSData/Yahoo/COG.csv QSTK/QSData/Yahoo/COH.csv QSTK/QSData/Yahoo/COL.csv QSTK/QSData/Yahoo/COP.csv QSTK/QSData/Yahoo/COST.csv QSTK/QSData/Yahoo/COV.csv QSTK/QSData/Yahoo/CPB.csv QSTK/QSData/Yahoo/CPWR.csv QSTK/QSData/Yahoo/CRM.csv QSTK/QSData/Yahoo/CSC.csv QSTK/QSData/Yahoo/CSCO.csv QSTK/QSData/Yahoo/CSX.csv QSTK/QSData/Yahoo/CTAS.csv QSTK/QSData/Yahoo/CTL.csv QSTK/QSData/Yahoo/CTSH.csv QSTK/QSData/Yahoo/CTX.csv QSTK/QSData/Yahoo/CTXS.csv QSTK/QSData/Yahoo/CVC.csv QSTK/QSData/Yahoo/CVG.csv QSTK/QSData/Yahoo/CVH.csv QSTK/QSData/Yahoo/CVS.csv QSTK/QSData/Yahoo/CVX.csv QSTK/QSData/Yahoo/D.csv QSTK/QSData/Yahoo/DD.csv QSTK/QSData/Yahoo/DDR.csv QSTK/QSData/Yahoo/DDS.csv QSTK/QSData/Yahoo/DE.csv QSTK/QSData/Yahoo/DELL.csv QSTK/QSData/Yahoo/DF.csv QSTK/QSData/Yahoo/DFS.csv QSTK/QSData/Yahoo/DGX.csv QSTK/QSData/Yahoo/DHI.csv QSTK/QSData/Yahoo/DHR.csv QSTK/QSData/Yahoo/DIS.csv QSTK/QSData/Yahoo/DISCA.csv QSTK/QSData/Yahoo/DLTR.csv QSTK/QSData/Yahoo/DNB.csv QSTK/QSData/Yahoo/DNR.csv QSTK/QSData/Yahoo/DO.csv QSTK/QSData/Yahoo/DOV.csv QSTK/QSData/Yahoo/DOW.csv QSTK/QSData/Yahoo/DPS.csv QSTK/QSData/Yahoo/DRI.csv QSTK/QSData/Yahoo/DTE.csv QSTK/QSData/Yahoo/DTV.csv QSTK/QSData/Yahoo/DUK.csv QSTK/QSData/Yahoo/DV.csv QSTK/QSData/Yahoo/DVA.csv QSTK/QSData/Yahoo/DVN.csv QSTK/QSData/Yahoo/DYN.csv QSTK/QSData/Yahoo/EA.csv QSTK/QSData/Yahoo/EBAY.csv QSTK/QSData/Yahoo/ECL.csv QSTK/QSData/Yahoo/ED.csv QSTK/QSData/Yahoo/EDS.csv QSTK/QSData/Yahoo/EFX.csv QSTK/QSData/Yahoo/EIX.csv QSTK/QSData/Yahoo/EK.csv QSTK/QSData/Yahoo/EL.csv QSTK/QSData/Yahoo/EMC.csv QSTK/QSData/Yahoo/EMN.csv QSTK/QSData/Yahoo/EMR.csv QSTK/QSData/Yahoo/EOG.csv QSTK/QSData/Yahoo/EP.csv QSTK/QSData/Yahoo/EQ.csv QSTK/QSData/Yahoo/EQR.csv QSTK/QSData/Yahoo/EQT.csv QSTK/QSData/Yahoo/ERTS.csv QSTK/QSData/Yahoo/ESRX.csv QSTK/QSData/Yahoo/ESV.csv QSTK/QSData/Yahoo/ETFC.csv QSTK/QSData/Yahoo/ETN.csv QSTK/QSData/Yahoo/ETR.csv QSTK/QSData/Yahoo/EW.csv QSTK/QSData/Yahoo/EXC.csv QSTK/QSData/Yahoo/EXPD.csv QSTK/QSData/Yahoo/EXPE.csv QSTK/QSData/Yahoo/F.csv QSTK/QSData/Yahoo/FAST.csv QSTK/QSData/Yahoo/FCX.csv QSTK/QSData/Yahoo/FDO.csv QSTK/QSData/Yahoo/FDX.csv QSTK/QSData/Yahoo/FE.csv QSTK/QSData/Yahoo/FFIV.csv QSTK/QSData/Yahoo/FHN.csv QSTK/QSData/Yahoo/FII.csv QSTK/QSData/Yahoo/FIS.csv QSTK/QSData/Yahoo/FISV.csv QSTK/QSData/Yahoo/FITB.csv QSTK/QSData/Yahoo/FLIR.csv QSTK/QSData/Yahoo/FLR.csv QSTK/QSData/Yahoo/FLS.csv QSTK/QSData/Yahoo/FMC.csv QSTK/QSData/Yahoo/FMCC.csv QSTK/QSData/Yahoo/FNMA.csv QSTK/QSData/Yahoo/FOSL.csv QSTK/QSData/Yahoo/FRX.csv QSTK/QSData/Yahoo/FSLR.csv QSTK/QSData/Yahoo/FTI.csv QSTK/QSData/Yahoo/FTR.csv QSTK/QSData/Yahoo/GAS.csv QSTK/QSData/Yahoo/GCI.csv QSTK/QSData/Yahoo/GD.csv QSTK/QSData/Yahoo/GE.csv QSTK/QSData/Yahoo/GENZ.csv QSTK/QSData/Yahoo/GGP.csv QSTK/QSData/Yahoo/GILD.csv QSTK/QSData/Yahoo/GIS.csv QSTK/QSData/Yahoo/GLD.csv QSTK/QSData/Yahoo/GLW.csv QSTK/QSData/Yahoo/GM.csv QSTK/QSData/Yahoo/GME.csv QSTK/QSData/Yahoo/GNW.csv QSTK/QSData/Yahoo/GOOG.csv QSTK/QSData/Yahoo/GPC.csv QSTK/QSData/Yahoo/GPS.csv QSTK/QSData/Yahoo/GR.csv QSTK/QSData/Yahoo/GS.csv QSTK/QSData/Yahoo/GT.csv QSTK/QSData/Yahoo/GWW.csv QSTK/QSData/Yahoo/HAL.csv QSTK/QSData/Yahoo/HAR.csv QSTK/QSData/Yahoo/HAS.csv QSTK/QSData/Yahoo/HBAN.csv QSTK/QSData/Yahoo/HCBK.csv QSTK/QSData/Yahoo/HCN.csv QSTK/QSData/Yahoo/HCP.csv QSTK/QSData/Yahoo/HD.csv QSTK/QSData/Yahoo/HES.csv QSTK/QSData/Yahoo/HIG.csv QSTK/QSData/Yahoo/HNZ.csv QSTK/QSData/Yahoo/HOG.csv QSTK/QSData/Yahoo/HON.csv QSTK/QSData/Yahoo/HOT.csv QSTK/QSData/Yahoo/HP.csv QSTK/QSData/Yahoo/HPCCP.csv QSTK/QSData/Yahoo/HPQ.csv QSTK/QSData/Yahoo/HRB.csv QSTK/QSData/Yahoo/HRL.csv QSTK/QSData/Yahoo/HRS.csv QSTK/QSData/Yahoo/HSP.csv QSTK/QSData/Yahoo/HST.csv QSTK/QSData/Yahoo/HSY.csv QSTK/QSData/Yahoo/HUM.csv QSTK/QSData/Yahoo/IACI.csv QSTK/QSData/Yahoo/IBM.csv QSTK/QSData/Yahoo/ICE.csv QSTK/QSData/Yahoo/IFF.csv QSTK/QSData/Yahoo/IGT.csv QSTK/QSData/Yahoo/INTC.csv QSTK/QSData/Yahoo/INTU.csv QSTK/QSData/Yahoo/IP.csv QSTK/QSData/Yahoo/IPG.csv QSTK/QSData/Yahoo/IR.csv QSTK/QSData/Yahoo/IRM.csv QSTK/QSData/Yahoo/ISRG.csv QSTK/QSData/Yahoo/ITT.csv QSTK/QSData/Yahoo/ITW.csv QSTK/QSData/Yahoo/IVZ.csv QSTK/QSData/Yahoo/IYR.csv QSTK/QSData/Yahoo/JAVA.csv QSTK/QSData/Yahoo/JBL.csv QSTK/QSData/Yahoo/JCI.csv QSTK/QSData/Yahoo/JCP.csv QSTK/QSData/Yahoo/JDSU.csv QSTK/QSData/Yahoo/JEC.csv QSTK/QSData/Yahoo/JNJ.csv QSTK/QSData/Yahoo/JNPR.csv QSTK/QSData/Yahoo/JNS.csv QSTK/QSData/Yahoo/JNY.csv QSTK/QSData/Yahoo/JOY.csv QSTK/QSData/Yahoo/JPM.csv QSTK/QSData/Yahoo/JWN.csv QSTK/QSData/Yahoo/K.csv QSTK/QSData/Yahoo/KBH.csv QSTK/QSData/Yahoo/KEY.csv QSTK/QSData/Yahoo/KFT.csv QSTK/QSData/Yahoo/KG.csv QSTK/QSData/Yahoo/KIM.csv QSTK/QSData/Yahoo/KLAC.csv QSTK/QSData/Yahoo/KMB.csv QSTK/QSData/Yahoo/KMI.csv QSTK/QSData/Yahoo/KMX.csv QSTK/QSData/Yahoo/KO.csv QSTK/QSData/Yahoo/KR.csv QSTK/QSData/Yahoo/KSS.csv QSTK/QSData/Yahoo/L.csv QSTK/QSData/Yahoo/LEG.csv QSTK/QSData/Yahoo/LEHMQ.csv QSTK/QSData/Yahoo/LEN.csv QSTK/QSData/Yahoo/LH.csv QSTK/QSData/Yahoo/LIFE.csv QSTK/QSData/Yahoo/LIZ.csv QSTK/QSData/Yahoo/LLL.csv QSTK/QSData/Yahoo/LLTC.csv QSTK/QSData/Yahoo/LLY.csv QSTK/QSData/Yahoo/LM.csv QSTK/QSData/Yahoo/LMT.csv QSTK/QSData/Yahoo/LNC.csv QSTK/QSData/Yahoo/LO.csv QSTK/QSData/Yahoo/LOW.csv QSTK/QSData/Yahoo/LRCX.csv QSTK/QSData/Yahoo/LSI.csv QSTK/QSData/Yahoo/LTD.csv QSTK/QSData/Yahoo/LUK.csv QSTK/QSData/Yahoo/LUV.csv QSTK/QSData/Yahoo/LXK.csv QSTK/QSData/Yahoo/LYB.csv QSTK/QSData/Yahoo/M.csv QSTK/QSData/Yahoo/MA.csv QSTK/QSData/Yahoo/MAR.csv QSTK/QSData/Yahoo/MAS.csv QSTK/QSData/Yahoo/MAT.csv QSTK/QSData/Yahoo/MBI.csv QSTK/QSData/Yahoo/MCD.csv QSTK/QSData/Yahoo/MCHP.csv QSTK/QSData/Yahoo/MCK.csv QSTK/QSData/Yahoo/MCO.csv QSTK/QSData/Yahoo/MDP.csv QSTK/QSData/Yahoo/MDT.csv QSTK/QSData/Yahoo/MET.csv QSTK/QSData/Yahoo/MHP.csv QSTK/QSData/Yahoo/MHS.csv QSTK/QSData/Yahoo/MI.csv QSTK/QSData/Yahoo/MIL.csv QSTK/QSData/Yahoo/MJN.csv QSTK/QSData/Yahoo/MKC.csv QSTK/QSData/Yahoo/ML4T-000.csv QSTK/QSData/Yahoo/ML4T-001.csv QSTK/QSData/Yahoo/ML4T-002.csv QSTK/QSData/Yahoo/ML4T-003.csv QSTK/QSData/Yahoo/ML4T-004.csv QSTK/QSData/Yahoo/ML4T-005.csv QSTK/QSData/Yahoo/ML4T-006.csv QSTK/QSData/Yahoo/ML4T-007.csv QSTK/QSData/Yahoo/ML4T-008.csv QSTK/QSData/Yahoo/ML4T-009.csv QSTK/QSData/Yahoo/ML4T-010.csv QSTK/QSData/Yahoo/ML4T-011.csv QSTK/QSData/Yahoo/ML4T-012.csv QSTK/QSData/Yahoo/ML4T-013.csv QSTK/QSData/Yahoo/ML4T-014.csv QSTK/QSData/Yahoo/ML4T-015.csv QSTK/QSData/Yahoo/ML4T-016.csv QSTK/QSData/Yahoo/ML4T-017.csv QSTK/QSData/Yahoo/ML4T-018.csv QSTK/QSData/Yahoo/ML4T-019.csv QSTK/QSData/Yahoo/ML4T-020.csv QSTK/QSData/Yahoo/ML4T-021.csv QSTK/QSData/Yahoo/ML4T-022.csv QSTK/QSData/Yahoo/ML4T-023.csv QSTK/QSData/Yahoo/ML4T-024.csv QSTK/QSData/Yahoo/ML4T-025.csv QSTK/QSData/Yahoo/ML4T-026.csv QSTK/QSData/Yahoo/ML4T-027.csv QSTK/QSData/Yahoo/ML4T-028.csv QSTK/QSData/Yahoo/ML4T-029.csv QSTK/QSData/Yahoo/ML4T-030.csv QSTK/QSData/Yahoo/ML4T-031.csv QSTK/QSData/Yahoo/ML4T-032.csv QSTK/QSData/Yahoo/ML4T-033.csv QSTK/QSData/Yahoo/ML4T-034.csv QSTK/QSData/Yahoo/ML4T-035.csv QSTK/QSData/Yahoo/ML4T-036.csv QSTK/QSData/Yahoo/ML4T-037.csv QSTK/QSData/Yahoo/ML4T-038.csv QSTK/QSData/Yahoo/ML4T-039.csv QSTK/QSData/Yahoo/ML4T-040.csv QSTK/QSData/Yahoo/ML4T-041.csv QSTK/QSData/Yahoo/ML4T-042.csv QSTK/QSData/Yahoo/ML4T-043.csv QSTK/QSData/Yahoo/ML4T-044.csv QSTK/QSData/Yahoo/ML4T-045.csv QSTK/QSData/Yahoo/ML4T-046.csv QSTK/QSData/Yahoo/ML4T-047.csv QSTK/QSData/Yahoo/ML4T-048.csv QSTK/QSData/Yahoo/ML4T-049.csv QSTK/QSData/Yahoo/ML4T-050.csv QSTK/QSData/Yahoo/ML4T-051.csv QSTK/QSData/Yahoo/ML4T-052.csv QSTK/QSData/Yahoo/ML4T-053.csv QSTK/QSData/Yahoo/ML4T-054.csv QSTK/QSData/Yahoo/ML4T-055.csv QSTK/QSData/Yahoo/ML4T-056.csv QSTK/QSData/Yahoo/ML4T-057.csv QSTK/QSData/Yahoo/ML4T-058.csv QSTK/QSData/Yahoo/ML4T-059.csv QSTK/QSData/Yahoo/ML4T-060.csv QSTK/QSData/Yahoo/ML4T-061.csv QSTK/QSData/Yahoo/ML4T-062.csv QSTK/QSData/Yahoo/ML4T-063.csv QSTK/QSData/Yahoo/ML4T-064.csv QSTK/QSData/Yahoo/ML4T-065.csv QSTK/QSData/Yahoo/ML4T-066.csv QSTK/QSData/Yahoo/ML4T-067.csv QSTK/QSData/Yahoo/ML4T-068.csv QSTK/QSData/Yahoo/ML4T-069.csv QSTK/QSData/Yahoo/ML4T-070.csv QSTK/QSData/Yahoo/ML4T-071.csv QSTK/QSData/Yahoo/ML4T-072.csv QSTK/QSData/Yahoo/ML4T-073.csv QSTK/QSData/Yahoo/ML4T-074.csv QSTK/QSData/Yahoo/ML4T-075.csv QSTK/QSData/Yahoo/ML4T-076.csv QSTK/QSData/Yahoo/ML4T-077.csv QSTK/QSData/Yahoo/ML4T-078.csv QSTK/QSData/Yahoo/ML4T-079.csv QSTK/QSData/Yahoo/ML4T-080.csv QSTK/QSData/Yahoo/ML4T-081.csv QSTK/QSData/Yahoo/ML4T-082.csv QSTK/QSData/Yahoo/ML4T-083.csv QSTK/QSData/Yahoo/ML4T-084.csv QSTK/QSData/Yahoo/ML4T-085.csv QSTK/QSData/Yahoo/ML4T-086.csv QSTK/QSData/Yahoo/ML4T-087.csv QSTK/QSData/Yahoo/ML4T-088.csv QSTK/QSData/Yahoo/ML4T-089.csv QSTK/QSData/Yahoo/ML4T-090.csv QSTK/QSData/Yahoo/ML4T-091.csv QSTK/QSData/Yahoo/ML4T-092.csv QSTK/QSData/Yahoo/ML4T-093.csv QSTK/QSData/Yahoo/ML4T-094.csv QSTK/QSData/Yahoo/ML4T-095.csv QSTK/QSData/Yahoo/ML4T-096.csv QSTK/QSData/Yahoo/ML4T-097.csv QSTK/QSData/Yahoo/ML4T-098.csv QSTK/QSData/Yahoo/ML4T-099.csv QSTK/QSData/Yahoo/ML4T-100.csv QSTK/QSData/Yahoo/ML4T-101.csv QSTK/QSData/Yahoo/ML4T-102.csv QSTK/QSData/Yahoo/ML4T-103.csv QSTK/QSData/Yahoo/ML4T-104.csv QSTK/QSData/Yahoo/ML4T-105.csv QSTK/QSData/Yahoo/ML4T-106.csv QSTK/QSData/Yahoo/ML4T-107.csv QSTK/QSData/Yahoo/ML4T-108.csv QSTK/QSData/Yahoo/ML4T-109.csv QSTK/QSData/Yahoo/ML4T-110.csv QSTK/QSData/Yahoo/ML4T-111.csv QSTK/QSData/Yahoo/ML4T-112.csv QSTK/QSData/Yahoo/ML4T-113.csv QSTK/QSData/Yahoo/ML4T-114.csv QSTK/QSData/Yahoo/ML4T-115.csv QSTK/QSData/Yahoo/ML4T-116.csv QSTK/QSData/Yahoo/ML4T-117.csv QSTK/QSData/Yahoo/ML4T-118.csv QSTK/QSData/Yahoo/ML4T-119.csv QSTK/QSData/Yahoo/ML4T-120.csv QSTK/QSData/Yahoo/ML4T-121.csv QSTK/QSData/Yahoo/ML4T-122.csv QSTK/QSData/Yahoo/ML4T-123.csv QSTK/QSData/Yahoo/ML4T-124.csv QSTK/QSData/Yahoo/ML4T-125.csv QSTK/QSData/Yahoo/ML4T-126.csv QSTK/QSData/Yahoo/ML4T-127.csv QSTK/QSData/Yahoo/ML4T-128.csv QSTK/QSData/Yahoo/ML4T-129.csv QSTK/QSData/Yahoo/ML4T-130.csv QSTK/QSData/Yahoo/ML4T-131.csv QSTK/QSData/Yahoo/ML4T-132.csv QSTK/QSData/Yahoo/ML4T-133.csv QSTK/QSData/Yahoo/ML4T-134.csv QSTK/QSData/Yahoo/ML4T-135.csv QSTK/QSData/Yahoo/ML4T-136.csv QSTK/QSData/Yahoo/ML4T-137.csv QSTK/QSData/Yahoo/ML4T-138.csv QSTK/QSData/Yahoo/ML4T-139.csv QSTK/QSData/Yahoo/ML4T-140.csv QSTK/QSData/Yahoo/ML4T-141.csv QSTK/QSData/Yahoo/ML4T-142.csv QSTK/QSData/Yahoo/ML4T-143.csv QSTK/QSData/Yahoo/ML4T-144.csv QSTK/QSData/Yahoo/ML4T-145.csv QSTK/QSData/Yahoo/ML4T-146.csv QSTK/QSData/Yahoo/ML4T-147.csv QSTK/QSData/Yahoo/ML4T-148.csv QSTK/QSData/Yahoo/ML4T-149.csv QSTK/QSData/Yahoo/ML4T-150.csv QSTK/QSData/Yahoo/ML4T-151.csv QSTK/QSData/Yahoo/ML4T-152.csv QSTK/QSData/Yahoo/ML4T-153.csv QSTK/QSData/Yahoo/ML4T-154.csv QSTK/QSData/Yahoo/ML4T-155.csv QSTK/QSData/Yahoo/ML4T-156.csv QSTK/QSData/Yahoo/ML4T-157.csv QSTK/QSData/Yahoo/ML4T-158.csv QSTK/QSData/Yahoo/ML4T-159.csv QSTK/QSData/Yahoo/ML4T-160.csv QSTK/QSData/Yahoo/ML4T-161.csv QSTK/QSData/Yahoo/ML4T-162.csv QSTK/QSData/Yahoo/ML4T-163.csv QSTK/QSData/Yahoo/ML4T-164.csv QSTK/QSData/Yahoo/ML4T-165.csv QSTK/QSData/Yahoo/ML4T-166.csv QSTK/QSData/Yahoo/ML4T-167.csv QSTK/QSData/Yahoo/ML4T-168.csv QSTK/QSData/Yahoo/ML4T-169.csv QSTK/QSData/Yahoo/ML4T-170.csv QSTK/QSData/Yahoo/ML4T-171.csv QSTK/QSData/Yahoo/ML4T-172.csv QSTK/QSData/Yahoo/ML4T-173.csv QSTK/QSData/Yahoo/ML4T-174.csv QSTK/QSData/Yahoo/ML4T-175.csv QSTK/QSData/Yahoo/ML4T-176.csv QSTK/QSData/Yahoo/ML4T-177.csv QSTK/QSData/Yahoo/ML4T-178.csv QSTK/QSData/Yahoo/ML4T-179.csv QSTK/QSData/Yahoo/ML4T-180.csv QSTK/QSData/Yahoo/ML4T-181.csv QSTK/QSData/Yahoo/ML4T-182.csv QSTK/QSData/Yahoo/ML4T-183.csv QSTK/QSData/Yahoo/ML4T-184.csv QSTK/QSData/Yahoo/ML4T-185.csv QSTK/QSData/Yahoo/ML4T-186.csv QSTK/QSData/Yahoo/ML4T-187.csv QSTK/QSData/Yahoo/ML4T-188.csv QSTK/QSData/Yahoo/ML4T-189.csv QSTK/QSData/Yahoo/ML4T-190.csv QSTK/QSData/Yahoo/ML4T-191.csv QSTK/QSData/Yahoo/ML4T-192.csv QSTK/QSData/Yahoo/ML4T-193.csv QSTK/QSData/Yahoo/ML4T-194.csv QSTK/QSData/Yahoo/ML4T-195.csv QSTK/QSData/Yahoo/ML4T-196.csv QSTK/QSData/Yahoo/ML4T-197.csv QSTK/QSData/Yahoo/ML4T-198.csv QSTK/QSData/Yahoo/ML4T-199.csv QSTK/QSData/Yahoo/ML4T-200.csv QSTK/QSData/Yahoo/ML4T-201.csv QSTK/QSData/Yahoo/ML4T-202.csv QSTK/QSData/Yahoo/ML4T-203.csv QSTK/QSData/Yahoo/ML4T-204.csv QSTK/QSData/Yahoo/ML4T-205.csv QSTK/QSData/Yahoo/ML4T-206.csv QSTK/QSData/Yahoo/ML4T-207.csv QSTK/QSData/Yahoo/ML4T-208.csv QSTK/QSData/Yahoo/ML4T-209.csv QSTK/QSData/Yahoo/ML4T-210.csv QSTK/QSData/Yahoo/ML4T-211.csv QSTK/QSData/Yahoo/ML4T-212.csv QSTK/QSData/Yahoo/ML4T-213.csv QSTK/QSData/Yahoo/ML4T-214.csv QSTK/QSData/Yahoo/ML4T-215.csv QSTK/QSData/Yahoo/ML4T-216.csv QSTK/QSData/Yahoo/ML4T-217.csv QSTK/QSData/Yahoo/ML4T-218.csv QSTK/QSData/Yahoo/ML4T-219.csv QSTK/QSData/Yahoo/ML4T-220.csv QSTK/QSData/Yahoo/ML4T-221.csv QSTK/QSData/Yahoo/ML4T-222.csv QSTK/QSData/Yahoo/ML4T-223.csv QSTK/QSData/Yahoo/ML4T-224.csv QSTK/QSData/Yahoo/ML4T-225.csv QSTK/QSData/Yahoo/ML4T-226.csv QSTK/QSData/Yahoo/ML4T-227.csv QSTK/QSData/Yahoo/ML4T-228.csv QSTK/QSData/Yahoo/ML4T-229.csv QSTK/QSData/Yahoo/ML4T-230.csv QSTK/QSData/Yahoo/ML4T-231.csv QSTK/QSData/Yahoo/ML4T-232.csv QSTK/QSData/Yahoo/ML4T-233.csv QSTK/QSData/Yahoo/ML4T-234.csv QSTK/QSData/Yahoo/ML4T-235.csv QSTK/QSData/Yahoo/ML4T-236.csv QSTK/QSData/Yahoo/ML4T-237.csv QSTK/QSData/Yahoo/ML4T-238.csv QSTK/QSData/Yahoo/ML4T-239.csv QSTK/QSData/Yahoo/ML4T-240.csv QSTK/QSData/Yahoo/ML4T-241.csv QSTK/QSData/Yahoo/ML4T-242.csv QSTK/QSData/Yahoo/ML4T-243.csv QSTK/QSData/Yahoo/ML4T-244.csv QSTK/QSData/Yahoo/ML4T-245.csv QSTK/QSData/Yahoo/ML4T-246.csv QSTK/QSData/Yahoo/ML4T-247.csv QSTK/QSData/Yahoo/ML4T-248.csv QSTK/QSData/Yahoo/ML4T-249.csv QSTK/QSData/Yahoo/ML4T-250.csv QSTK/QSData/Yahoo/ML4T-251.csv QSTK/QSData/Yahoo/ML4T-252.csv QSTK/QSData/Yahoo/ML4T-253.csv QSTK/QSData/Yahoo/ML4T-254.csv QSTK/QSData/Yahoo/ML4T-255.csv QSTK/QSData/Yahoo/ML4T-256.csv QSTK/QSData/Yahoo/ML4T-257.csv QSTK/QSData/Yahoo/ML4T-258.csv QSTK/QSData/Yahoo/ML4T-259.csv QSTK/QSData/Yahoo/ML4T-260.csv QSTK/QSData/Yahoo/ML4T-261.csv QSTK/QSData/Yahoo/ML4T-262.csv QSTK/QSData/Yahoo/ML4T-263.csv QSTK/QSData/Yahoo/ML4T-264.csv QSTK/QSData/Yahoo/ML4T-265.csv QSTK/QSData/Yahoo/ML4T-266.csv QSTK/QSData/Yahoo/ML4T-267.csv QSTK/QSData/Yahoo/ML4T-268.csv QSTK/QSData/Yahoo/ML4T-269.csv QSTK/QSData/Yahoo/ML4T-270.csv QSTK/QSData/Yahoo/ML4T-271.csv QSTK/QSData/Yahoo/ML4T-272.csv QSTK/QSData/Yahoo/ML4T-273.csv QSTK/QSData/Yahoo/ML4T-274.csv QSTK/QSData/Yahoo/ML4T-275.csv QSTK/QSData/Yahoo/ML4T-276.csv QSTK/QSData/Yahoo/ML4T-277.csv QSTK/QSData/Yahoo/ML4T-278.csv QSTK/QSData/Yahoo/ML4T-279.csv QSTK/QSData/Yahoo/ML4T-280.csv QSTK/QSData/Yahoo/ML4T-281.csv QSTK/QSData/Yahoo/ML4T-282.csv QSTK/QSData/Yahoo/ML4T-283.csv QSTK/QSData/Yahoo/ML4T-284.csv QSTK/QSData/Yahoo/ML4T-285.csv QSTK/QSData/Yahoo/ML4T-286.csv QSTK/QSData/Yahoo/ML4T-287.csv QSTK/QSData/Yahoo/ML4T-288.csv QSTK/QSData/Yahoo/ML4T-289.csv QSTK/QSData/Yahoo/ML4T-290.csv QSTK/QSData/Yahoo/ML4T-291.csv QSTK/QSData/Yahoo/ML4T-292.csv QSTK/QSData/Yahoo/ML4T-293.csv QSTK/QSData/Yahoo/ML4T-294.csv QSTK/QSData/Yahoo/ML4T-295.csv QSTK/QSData/Yahoo/ML4T-296.csv QSTK/QSData/Yahoo/ML4T-297.csv QSTK/QSData/Yahoo/ML4T-298.csv QSTK/QSData/Yahoo/ML4T-299.csv QSTK/QSData/Yahoo/ML4T-300.csv QSTK/QSData/Yahoo/ML4T-301.csv QSTK/QSData/Yahoo/ML4T-302.csv QSTK/QSData/Yahoo/ML4T-303.csv QSTK/QSData/Yahoo/ML4T-304.csv QSTK/QSData/Yahoo/ML4T-305.csv QSTK/QSData/Yahoo/ML4T-306.csv QSTK/QSData/Yahoo/ML4T-307.csv QSTK/QSData/Yahoo/ML4T-308.csv QSTK/QSData/Yahoo/ML4T-309.csv QSTK/QSData/Yahoo/ML4T-310.csv QSTK/QSData/Yahoo/ML4T-311.csv QSTK/QSData/Yahoo/ML4T-312.csv QSTK/QSData/Yahoo/ML4T-313.csv QSTK/QSData/Yahoo/ML4T-314.csv QSTK/QSData/Yahoo/ML4T-315.csv QSTK/QSData/Yahoo/ML4T-316.csv QSTK/QSData/Yahoo/ML4T-317.csv QSTK/QSData/Yahoo/ML4T-318.csv QSTK/QSData/Yahoo/ML4T-319.csv QSTK/QSData/Yahoo/ML4T-320.csv QSTK/QSData/Yahoo/ML4T-321.csv QSTK/QSData/Yahoo/ML4T-322.csv QSTK/QSData/Yahoo/ML4T-323.csv QSTK/QSData/Yahoo/ML4T-324.csv QSTK/QSData/Yahoo/ML4T-325.csv QSTK/QSData/Yahoo/ML4T-326.csv QSTK/QSData/Yahoo/ML4T-327.csv QSTK/QSData/Yahoo/ML4T-328.csv QSTK/QSData/Yahoo/ML4T-329.csv QSTK/QSData/Yahoo/ML4T-330.csv QSTK/QSData/Yahoo/ML4T-331.csv QSTK/QSData/Yahoo/ML4T-332.csv QSTK/QSData/Yahoo/ML4T-333.csv QSTK/QSData/Yahoo/ML4T-334.csv QSTK/QSData/Yahoo/ML4T-335.csv QSTK/QSData/Yahoo/ML4T-336.csv QSTK/QSData/Yahoo/ML4T-337.csv QSTK/QSData/Yahoo/ML4T-338.csv QSTK/QSData/Yahoo/ML4T-339.csv QSTK/QSData/Yahoo/ML4T-340.csv QSTK/QSData/Yahoo/ML4T-341.csv QSTK/QSData/Yahoo/ML4T-342.csv QSTK/QSData/Yahoo/ML4T-343.csv QSTK/QSData/Yahoo/ML4T-344.csv QSTK/QSData/Yahoo/ML4T-345.csv QSTK/QSData/Yahoo/ML4T-346.csv QSTK/QSData/Yahoo/ML4T-347.csv QSTK/QSData/Yahoo/ML4T-348.csv QSTK/QSData/Yahoo/ML4T-349.csv QSTK/QSData/Yahoo/ML4T-350.csv QSTK/QSData/Yahoo/ML4T-351.csv QSTK/QSData/Yahoo/ML4T-352.csv QSTK/QSData/Yahoo/ML4T-353.csv QSTK/QSData/Yahoo/ML4T-354.csv QSTK/QSData/Yahoo/ML4T-355.csv QSTK/QSData/Yahoo/ML4T-356.csv QSTK/QSData/Yahoo/ML4T-357.csv QSTK/QSData/Yahoo/ML4T-358.csv QSTK/QSData/Yahoo/ML4T-359.csv QSTK/QSData/Yahoo/ML4T-360.csv QSTK/QSData/Yahoo/ML4T-361.csv QSTK/QSData/Yahoo/ML4T-362.csv QSTK/QSData/Yahoo/ML4T-363.csv QSTK/QSData/Yahoo/ML4T-364.csv QSTK/QSData/Yahoo/ML4T-365.csv QSTK/QSData/Yahoo/ML4T-366.csv QSTK/QSData/Yahoo/ML4T-367.csv QSTK/QSData/Yahoo/ML4T-368.csv QSTK/QSData/Yahoo/ML4T-369.csv QSTK/QSData/Yahoo/ML4T-370.csv QSTK/QSData/Yahoo/ML4T-371.csv QSTK/QSData/Yahoo/ML4T-372.csv QSTK/QSData/Yahoo/ML4T-373.csv QSTK/QSData/Yahoo/ML4T-374.csv QSTK/QSData/Yahoo/ML4T-375.csv QSTK/QSData/Yahoo/ML4T-376.csv QSTK/QSData/Yahoo/ML4T-377.csv QSTK/QSData/Yahoo/ML4T-378.csv QSTK/QSData/Yahoo/ML4T-379.csv QSTK/QSData/Yahoo/ML4T-380.csv QSTK/QSData/Yahoo/ML4T-381.csv QSTK/QSData/Yahoo/ML4T-382.csv QSTK/QSData/Yahoo/ML4T-383.csv QSTK/QSData/Yahoo/ML4T-384.csv QSTK/QSData/Yahoo/ML4T-385.csv QSTK/QSData/Yahoo/ML4T-386.csv QSTK/QSData/Yahoo/ML4T-387.csv QSTK/QSData/Yahoo/ML4T-388.csv QSTK/QSData/Yahoo/ML4T-389.csv QSTK/QSData/Yahoo/ML4T-390.csv QSTK/QSData/Yahoo/ML4T-391.csv QSTK/QSData/Yahoo/ML4T-392.csv QSTK/QSData/Yahoo/ML4T-393.csv QSTK/QSData/Yahoo/ML4T-394.csv QSTK/QSData/Yahoo/ML4T-395.csv QSTK/QSData/Yahoo/ML4T-396.csv QSTK/QSData/Yahoo/ML4T-397.csv QSTK/QSData/Yahoo/ML4T-398.csv QSTK/QSData/Yahoo/ML4T-399.csv QSTK/QSData/Yahoo/MMC.csv QSTK/QSData/Yahoo/MMM.csv QSTK/QSData/Yahoo/MNST.csv QSTK/QSData/Yahoo/MO.csv QSTK/QSData/Yahoo/MOLX.csv QSTK/QSData/Yahoo/MON.csv QSTK/QSData/Yahoo/MOS.csv QSTK/QSData/Yahoo/MPC.csv QSTK/QSData/Yahoo/MRK.csv QSTK/QSData/Yahoo/MRO.csv QSTK/QSData/Yahoo/MS.csv QSTK/QSData/Yahoo/MSFT.csv QSTK/QSData/Yahoo/MSI.csv QSTK/QSData/Yahoo/MTB.csv QSTK/QSData/Yahoo/MTG.csv QSTK/QSData/Yahoo/MTW.csv QSTK/QSData/Yahoo/MU.csv QSTK/QSData/Yahoo/MUR.csv QSTK/QSData/Yahoo/MWV.csv QSTK/QSData/Yahoo/MWW.csv QSTK/QSData/Yahoo/MYL.csv QSTK/QSData/Yahoo/NBL.csv QSTK/QSData/Yahoo/NBR.csv QSTK/QSData/Yahoo/NCC.csv QSTK/QSData/Yahoo/NDAQ.csv QSTK/QSData/Yahoo/NE.csv QSTK/QSData/Yahoo/NEE.csv QSTK/QSData/Yahoo/NEM.csv QSTK/QSData/Yahoo/NFLX.csv QSTK/QSData/Yahoo/NFX.csv QSTK/QSData/Yahoo/NI.csv QSTK/QSData/Yahoo/NKE.csv QSTK/QSData/Yahoo/NOC.csv QSTK/QSData/Yahoo/NOV.csv QSTK/QSData/Yahoo/NOVL.csv QSTK/QSData/Yahoo/NRG.csv QSTK/QSData/Yahoo/NSC.csv QSTK/QSData/Yahoo/NSM.csv QSTK/QSData/Yahoo/NTAP.csv QSTK/QSData/Yahoo/NTRS.csv QSTK/QSData/Yahoo/NU.csv QSTK/QSData/Yahoo/NUE.csv QSTK/QSData/Yahoo/NVDA.csv QSTK/QSData/Yahoo/NVLS.csv QSTK/QSData/Yahoo/NWL.csv QSTK/QSData/Yahoo/NWSA.csv QSTK/QSData/Yahoo/NYT.csv QSTK/QSData/Yahoo/NYX.csv QSTK/QSData/Yahoo/ODP.csv QSTK/QSData/Yahoo/OI.csv QSTK/QSData/Yahoo/OKE.csv QSTK/QSData/Yahoo/OMC.csv QSTK/QSData/Yahoo/OMX.csv QSTK/QSData/Yahoo/ORCL.csv QSTK/QSData/Yahoo/ORLY.csv QSTK/QSData/Yahoo/OXY.csv QSTK/QSData/Yahoo/PAYX.csv QSTK/QSData/Yahoo/PBCT.csv QSTK/QSData/Yahoo/PBG.csv QSTK/QSData/Yahoo/PBI.csv QSTK/QSData/Yahoo/PCAR.csv QSTK/QSData/Yahoo/PCG.csv QSTK/QSData/Yahoo/PCL.csv QSTK/QSData/Yahoo/PCLN.csv QSTK/QSData/Yahoo/PCP.csv QSTK/QSData/Yahoo/PCS.csv QSTK/QSData/Yahoo/PDCO.csv QSTK/QSData/Yahoo/PEG.csv QSTK/QSData/Yahoo/PEP.csv QSTK/QSData/Yahoo/PFE.csv QSTK/QSData/Yahoo/PFG.csv QSTK/QSData/Yahoo/PG.csv QSTK/QSData/Yahoo/PGN.csv QSTK/QSData/Yahoo/PGR.csv QSTK/QSData/Yahoo/PH.csv QSTK/QSData/Yahoo/PHM.csv QSTK/QSData/Yahoo/PKI.csv QSTK/QSData/Yahoo/PLD.csv QSTK/QSData/Yahoo/PLL.csv QSTK/QSData/Yahoo/PM.csv QSTK/QSData/Yahoo/PNC.csv QSTK/QSData/Yahoo/PNW.csv QSTK/QSData/Yahoo/POM.csv QSTK/QSData/Yahoo/PPG.csv QSTK/QSData/Yahoo/PPL.csv QSTK/QSData/Yahoo/PRGO.csv QSTK/QSData/Yahoo/PRU.csv QSTK/QSData/Yahoo/PSA.csv QSTK/QSData/Yahoo/PSX.csv QSTK/QSData/Yahoo/PTV.csv QSTK/QSData/Yahoo/PWR.csv QSTK/QSData/Yahoo/PX.csv QSTK/QSData/Yahoo/PXD.csv QSTK/QSData/Yahoo/Q.csv QSTK/QSData/Yahoo/QCOM.csv QSTK/QSData/Yahoo/QEP.csv QSTK/QSData/Yahoo/QLGC.csv QSTK/QSData/Yahoo/R.csv QSTK/QSData/Yahoo/RAI.csv QSTK/QSData/Yahoo/RDC.csv QSTK/QSData/Yahoo/RF.csv QSTK/QSData/Yahoo/RHI.csv QSTK/QSData/Yahoo/RHT.csv QSTK/QSData/Yahoo/RIG.csv QSTK/QSData/Yahoo/RL.csv QSTK/QSData/Yahoo/ROH.csv QSTK/QSData/Yahoo/ROK.csv QSTK/QSData/Yahoo/ROP.csv QSTK/QSData/Yahoo/ROST.csv QSTK/QSData/Yahoo/RRC.csv QSTK/QSData/Yahoo/RRD.csv QSTK/QSData/Yahoo/RSG.csv QSTK/QSData/Yahoo/RSH.csv QSTK/QSData/Yahoo/RTN.csv QSTK/QSData/Yahoo/S.csv QSTK/QSData/Yahoo/SAF.csv QSTK/QSData/Yahoo/SAI.csv QSTK/QSData/Yahoo/SBUX.csv QSTK/QSData/Yahoo/SCG.csv QSTK/QSData/Yahoo/SCHW.csv QSTK/QSData/Yahoo/SDS.csv QSTK/QSData/Yahoo/SE.csv QSTK/QSData/Yahoo/SEE.csv QSTK/QSData/Yahoo/SGP.csv QSTK/QSData/Yahoo/SH.csv QSTK/QSData/Yahoo/SHLD.csv QSTK/QSData/Yahoo/SHW.csv QSTK/QSData/Yahoo/SIAL.csv QSTK/QSData/Yahoo/SII.csv QSTK/QSData/Yahoo/SINE_FAST.csv QSTK/QSData/Yahoo/SINE_FAST_NOISE.csv QSTK/QSData/Yahoo/SINE_SLOW.csv QSTK/QSData/Yahoo/SINE_SLOW_NOISE.csv QSTK/QSData/Yahoo/SJM.csv QSTK/QSData/Yahoo/SLB.csv QSTK/QSData/Yahoo/SLE.csv QSTK/QSData/Yahoo/SLM.csv QSTK/QSData/Yahoo/SNA.csv QSTK/QSData/Yahoo/SNDK.csv QSTK/QSData/Yahoo/SNI.csv QSTK/QSData/Yahoo/SNV.csv QSTK/QSData/Yahoo/SO.csv QSTK/QSData/Yahoo/SPG.csv QSTK/QSData/Yahoo/SPLS.csv QSTK/QSData/Yahoo/SPY.csv QSTK/QSData/Yahoo/SRCL.csv QSTK/QSData/Yahoo/SRE.csv QSTK/QSData/Yahoo/SSP.csv QSTK/QSData/Yahoo/STI.csv QSTK/QSData/Yahoo/STJ.csv QSTK/QSData/Yahoo/STR.csv QSTK/QSData/Yahoo/STT.csv QSTK/QSData/Yahoo/STX.csv QSTK/QSData/Yahoo/STZ.csv QSTK/QSData/Yahoo/SUN.csv QSTK/QSData/Yahoo/SVU.csv QSTK/QSData/Yahoo/SWK.csv QSTK/QSData/Yahoo/SWN.csv QSTK/QSData/Yahoo/SWY.csv QSTK/QSData/Yahoo/SYK.csv QSTK/QSData/Yahoo/SYMC.csv QSTK/QSData/Yahoo/SYY.csv QSTK/QSData/Yahoo/T.csv QSTK/QSData/Yahoo/TAP.csv QSTK/QSData/Yahoo/TDC.csv QSTK/QSData/Yahoo/TE.csv QSTK/QSData/Yahoo/TEG.csv QSTK/QSData/Yahoo/TEL.csv QSTK/QSData/Yahoo/TER.csv QSTK/QSData/Yahoo/TEX.csv QSTK/QSData/Yahoo/TGT.csv QSTK/QSData/Yahoo/THC.csv QSTK/QSData/Yahoo/TIE.csv QSTK/QSData/Yahoo/TIF.csv QSTK/QSData/Yahoo/TJX.csv QSTK/QSData/Yahoo/TLAB.csv QSTK/QSData/Yahoo/TMK.csv QSTK/QSData/Yahoo/TMO.csv QSTK/QSData/Yahoo/TRIP.csv QSTK/QSData/Yahoo/TROW.csv QSTK/QSData/Yahoo/TRV.csv QSTK/QSData/Yahoo/TSN.csv QSTK/QSData/Yahoo/TSO.csv QSTK/QSData/Yahoo/TSS.csv QSTK/QSData/Yahoo/TWC.csv QSTK/QSData/Yahoo/TWX.csv QSTK/QSData/Yahoo/TXN.csv QSTK/QSData/Yahoo/TXT.csv QSTK/QSData/Yahoo/TYC.csv QSTK/QSData/Yahoo/UIS.csv QSTK/QSData/Yahoo/UNH.csv QSTK/QSData/Yahoo/UNM.csv QSTK/QSData/Yahoo/UNP.csv QSTK/QSData/Yahoo/UPS.csv QSTK/QSData/Yahoo/URBN.csv QSTK/QSData/Yahoo/USB.csv QSTK/QSData/Yahoo/UST.csv QSTK/QSData/Yahoo/UTX.csv QSTK/QSData/Yahoo/V.csv QSTK/QSData/Yahoo/VAR.csv QSTK/QSData/Yahoo/VFC.csv QSTK/QSData/Yahoo/VIA.B.csv QSTK/QSData/Yahoo/VIAB.csv QSTK/QSData/Yahoo/VLO.csv QSTK/QSData/Yahoo/VMC.csv QSTK/QSData/Yahoo/VNO.csv QSTK/QSData/Yahoo/VRSN.csv QSTK/QSData/Yahoo/VTR.csv QSTK/QSData/Yahoo/VZ.csv QSTK/QSData/Yahoo/WAG.csv QSTK/QSData/Yahoo/WAMUQ.csv QSTK/QSData/Yahoo/WAT.csv QSTK/QSData/Yahoo/WB.csv QSTK/QSData/Yahoo/WDC.csv QSTK/QSData/Yahoo/WEC.csv QSTK/QSData/Yahoo/WEN.csv QSTK/QSData/Yahoo/WFC.csv QSTK/QSData/Yahoo/WFM.csv QSTK/QSData/Yahoo/WFR.csv QSTK/QSData/Yahoo/WFT.csv QSTK/QSData/Yahoo/WHR.csv QSTK/QSData/Yahoo/WIN.csv QSTK/QSData/Yahoo/WLP.csv QSTK/QSData/Yahoo/WM.csv QSTK/QSData/Yahoo/WMB.csv QSTK/QSData/Yahoo/WMT.csv QSTK/QSData/Yahoo/WPI.csv QSTK/QSData/Yahoo/WPO.csv QSTK/QSData/Yahoo/WPX.csv QSTK/QSData/Yahoo/WU.csv QSTK/QSData/Yahoo/WWY.csv QSTK/QSData/Yahoo/WY.csv QSTK/QSData/Yahoo/WYE.csv QSTK/QSData/Yahoo/WYN.csv QSTK/QSData/Yahoo/WYNN.csv QSTK/QSData/Yahoo/X.csv QSTK/QSData/Yahoo/XEL.csv QSTK/QSData/Yahoo/XL.csv QSTK/QSData/Yahoo/XLNX.csv QSTK/QSData/Yahoo/XOM.csv QSTK/QSData/Yahoo/XRAY.csv QSTK/QSData/Yahoo/XRX.csv QSTK/QSData/Yahoo/XTO.csv QSTK/QSData/Yahoo/XYL.csv QSTK/QSData/Yahoo/YHOO.csv QSTK/QSData/Yahoo/YUM.csv QSTK/QSData/Yahoo/ZION.csv QSTK/QSData/Yahoo/ZMH.csv
+ find -name '*.py'
+ xargs sed -i '1s|^#!python|#!/usr/bin/python3|'
+ 2to3 -w .
RefactoringTool: Skipping optional fixer: buffer
RefactoringTool: Skipping optional fixer: idioms
RefactoringTool: Skipping optional fixer: set_literal
RefactoringTool: Skipping optional fixer: ws_comma
RefactoringTool: Refactored ./ez_setup.py
RefactoringTool: No changes to ./setup.py
RefactoringTool: Refactored ./Bin/DataGenerate_SineWave.py
RefactoringTool: Refactored ./Bin/Data_CSV.py
RefactoringTool: Refactored ./Bin/converter.py
RefactoringTool: Refactored ./Bin/csvformatter.py
RefactoringTool: Refactored ./Bin/gen_nyse_dates.py
RefactoringTool: Refactored ./Bin/investors_report.py
--- ./ez_setup.py	(original)
+++ ./ez_setup.py	(refactored)
@@ -70,10 +70,10 @@
     if egg_name in md5_data:
         digest = md5(data).hexdigest()
         if digest != md5_data[egg_name]:
-            print >>sys.stderr, (
+            print((
                 "md5 validation of %s failed!  (Possible download problem?)"
                 % egg_name
-            )
+            ), file=sys.stderr)
             sys.exit(2)
     return data
 
@@ -103,14 +103,14 @@
         return do_download()       
     try:
         pkg_resources.require("setuptools>="+version); return
-    except pkg_resources.VersionConflict, e:
+    except pkg_resources.VersionConflict as e:
         if was_imported:
-            print >>sys.stderr, (
+            print((
             "The required version of setuptools (>=%s) is not available, and\n"
             "can't be installed while this script is running. Please install\n"
             " a more recent version first, using 'easy_install -U setuptools'."
             "\n\n(Currently using %r)"
-            ) % (version, e.args[0])
+            ) % (version, e.args[0]), file=sys.stderr)
             sys.exit(2)
     except pkg_resources.DistributionNotFound:
         pass
@@ -129,7 +129,7 @@
     with a '/'). `to_dir` is the directory where the egg will be downloaded.
     `delay` is the number of seconds to pause before an actual download attempt.
     """
-    import urllib2, shutil
+    import urllib.request, urllib.error, urllib.parse, shutil
     egg_name = "setuptools-%s-py%s.egg" % (version,sys.version[:3])
     url = download_base + egg_name
     saveto = os.path.join(to_dir, egg_name)
@@ -155,7 +155,7 @@
                     version, download_base, delay, url
                 ); from time import sleep; sleep(delay)
             log.warn("Downloading %s", url)
-            src = urllib2.urlopen(url)
+            src = urllib.request.urlopen(url)
             # Read/write all in one block, so we don't create a corrupt file
             # if the download is interrupted.
             data = _validate_md5(egg_name, src.read())
@@ -216,10 +216,10 @@
                 os.unlink(egg)
     else:
         if setuptools.__version__ == '0.0.1':
-            print >>sys.stderr, (
+            print((
             "You have an obsolete version of setuptools installed.  Please\n"
             "remove it from your system entirely before rerunning this script."
-            )
+            ), file=sys.stderr)
             sys.exit(2)
 
     req = "setuptools>="+version
@@ -238,8 +238,8 @@
             from setuptools.command.easy_install import main
             main(argv)
         else:
-            print "Setuptools version",version,"or greater has been installed."
-            print '(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)'
+            print("Setuptools version",version,"or greater has been installed.")
+            print('(Run "ez_setup.py -U setuptools" to reinstall or upgrade.)')
 
 def update_md5(filenames):
     """Update our built-in md5 registry"""
@@ -252,7 +252,7 @@
         md5_data[base] = md5(f.read()).hexdigest()
         f.close()
 
-    data = ["    %r: %r,\n" % it for it in md5_data.items()]
+    data = ["    %r: %r,\n" % it for it in list(md5_data.items())]
     data.sort()
     repl = "".join(data)
 
@@ -262,7 +262,7 @@
 
     match = re.search("\nmd5_data = {\n([^}]+)}", src)
     if not match:
-        print >>sys.stderr, "Internal error!"
+        print("Internal error!", file=sys.stderr)
         sys.exit(2)
 
     src = src[:match.start(1)] + repl + src[match.end(1):]
--- ./Bin/DataGenerate_SineWave.py	(original)
+++ ./Bin/DataGenerate_SineWave.py	(refactored)
@@ -38,12 +38,12 @@
 
 
 def main():
-    print "Creating Stock data from Sine Waves"
+    print("Creating Stock data from Sine Waves")
     dt_start = dt.datetime(2000, 1, 1)
     dt_end = dt.datetime(2012, 10, 31)
     ldt_timestamps = du.getNYSEdays(dt_start, dt_end, dt.timedelta(hours=16))
 
-    x = np.array(range(len(ldt_timestamps)))
+    x = np.array(list(range(len(ldt_timestamps))))
 
     ls_symbols = ['SINE_FAST', 'SINE_SLOW', 'SINE_FAST_NOISE', 'SINE_SLOW_NOISE']
     sine_fast = 10*np.sin(x/10.) + 100
@@ -52,7 +52,7 @@
     sine_fast_noise = 10*(np.sin(x/10.) + np.random.randn(x.size)) + 100
     sine_slow_noise = 10*(np.sin(x/30.) + np.random.randn(x.size)) + 100
 
-    d_data = dict(zip(ls_symbols, [sine_fast, sine_slow, sine_fast_noise, sine_slow_noise]))
+    d_data = dict(list(zip(ls_symbols, [sine_fast, sine_slow, sine_fast_noise, sine_slow_noise])))
 
     write(ls_symbols, d_data, ldt_timestamps)
 
--- ./Bin/Data_CSV.py	(original)
+++ ./Bin/Data_CSV.py	(refactored)
@@ -26,7 +26,7 @@
            valid data on the start/enddates which requires lookback/forward
     @return: data dictionry
     '''
-    print "Getting Data from MySQL"
+    print("Getting Data from MySQL")
     # Modify dates to ensure enough data for all features
     dt_start = dt.datetime(2005,1,1)
     dt_end = dt.datetime(2012, 8, 31)
@@ -36,7 +36,7 @@
 
     ldf_data = c_da.get_data(ldt_timestamps, ls_symbols, ls_keys)
 
-    d_data = dict(zip(ls_keys, ldf_data))
+    d_data = dict(list(zip(ls_keys, ldf_data)))
 
     return d_data
 
@@ -89,13 +89,13 @@
     ls_keys = ['actual_open', 'actual_high', 'actual_low', 'actual_close', 'volume', 'close']
     d_data = get_data(ls_symbols, ls_keys)
     # print d_data
-    print "Creating CSV files now"
+    print("Creating CSV files now")
 
     for sym in ls_symbols:
-        print sym
+        print(sym)
         csv_sym(sym,d_data, ls_keys, s_directory)
 
-    print "Created all CSV files"
+    print("Created all CSV files")
 
 
 if __name__ == '__main__' :
--- ./Bin/converter.py	(original)
+++ ./Bin/converter.py	(refactored)
@@ -29,7 +29,7 @@
 import math
 from pandas import *
 import matplotlib.pyplot as plt
-import cPickle
+import pickle
 
 def fundsToPNG(funds,output_file):
 	plt.clf()
@@ -47,7 +47,7 @@
 def fundsAnalysisToPNG(funds,output_file):
 	plt.clf()
 	if(type(funds)!=type(list())):
-		print 'fundsmatrix only contains one timeseries, not able to analyze.'
+		print('fundsmatrix only contains one timeseries, not able to analyze.')
 	#convert to daily returns
 	count=list()
 	dates=list()
--- ./Bin/csvformatter.py	(original)
+++ ./Bin/csvformatter.py	(refactored)
@@ -7,8 +7,8 @@
     actualheader = ['Symbol', 'Name', 'Type', 'Date', 'Shares', 'Price', 'Cash value', 'Commission', 'Notes']
 
     reader = csv.reader(open(inputfile, 'r'), delimiter=',')
-    header = reader.next()
-    print "Header : ", header
+    header = next(reader)
+    print("Header : ", header)
     input_str = []
     for row in reader:
         input_str.append(row)
@@ -101,4 +101,4 @@
     inputfile = "./Settled.csv"
     outputfile = 'trans.csv'
     csv_converter(inputfile, outputfile)
-    print "Done"
+    print("Done")
--- ./Bin/gen_nyse_dates.py	(original)
+++ ./Bin/gen_nyse_dates.py	(refactored)
@@ -267,7 +267,7 @@
 log = []
 # print it out
 for i in newdays:
-    print i.strftime("%m/%d/%Y")
+    print(i.strftime("%m/%d/%Y"))
     log.append(i.strftime("%m/%d/%Y"))
 
 np.savetxt('NYSE_dates.csv', log, fmt='%s', delimiter=',') 
--- ./Bin/investors_report.py	(original)
+++ ./Bin/investors_report.py	(refactored)
@@ -13,11 +13,11 @@
 from QSTK.qstkutil import qsdateutil as du
 from QSTK.qstkutil import tsutil as tsu
 from QSTK.quicksim import quickSim as qs
-import converter
+from . import converter
 import datetime as dt
 from pandas import *
 import matplotlib.pyplot as plt
-import cPickle
+import pickle
 
 def readableDate(date):
 	return str(date.month)+"/"+str(date.day)+"/"+str(date.year)
@@ -133,7 +133,7 @@
 	for year in years:
 		retur=getYearReturn(funds,year)
 		html_file.write("<TD>\n")
-		print >>html_file, "%.2f\n" % (retur*100) 
+		print("%.2f\n" % (retur*100), file=html_file) 
 		html_file.write("%</TD>\n")
 	html_file.write("</TR>\n")
 
@@ -145,7 +145,7 @@
 		if(arg2!=0):
 			win=getWinningDays(funds,funds2,year)
 			html_file.write("<TD>\n")
-			print >>html_file, "%.2f\n" % (win*100)
+			print("%.2f\n" % (win*100), file=html_file)
 			html_file.write("%</TD>\n")
 		else:
RefactoringTool: Refactored ./Bin/sinewave_data_generator.py
RefactoringTool: Refactored ./Examples/Validation.py
 			html_file.write("<TD>No comparison.</TD>\n")
@@ -157,7 +157,7 @@
 	for year in years:
 		drop=getYearMaxDrop(funds,year)
 		html_file.write("<TD>\n")
-		print >>html_file, "%.2f" % (drop*100)
+		print("%.2f" % (drop*100), file=html_file)
 		html_file.write("%</TD>\n")
 	html_file.write("</TR>\n")
 
@@ -167,7 +167,7 @@
 	for year in years:
 		ratio=tsu.getYearRatio(funds,year)
 		html_file.write("<TD>\n")
-		print >>html_file, "%.2f\n" % ratio
+		print("%.2f\n" % ratio, file=html_file)
 		html_file.write("</TD>\n")
 	html_file.write("</TR>\n")
 
@@ -178,7 +178,7 @@
 	for year in years:
 		ratio=getYearRatioUsingMonth(funds,year)
 		html_file.write("<TD>\n")
-		print >>html_file, "%.2f\n" % ratio
+		print("%.2f\n" % ratio, file=html_file)
 		html_file.write("</TD>\n")
 	html_file.write("</TR>\n")
 	
@@ -195,7 +195,7 @@
 
 	corrcoef=numpy.corrcoef(funds.values[0:-1],funds2.values)
 	html_file.write("<H3>Correlation=")
-	print >>html_file, "%.2f\n" % corrcoef[0][1]
+	print("%.2f\n" % corrcoef[0][1], file=html_file)
 	html_file.write("<H3>\n")
 	html_file.write("<BR/>\n\n")
 
@@ -218,7 +218,7 @@
 		months=du.getMonths(funds,year)
 		for month in months:
 			html_file.write("<TD>\n")
-			print >>html_file, "%.2f\n" % (mrets[i]*100)
+			print("%.2f\n" % (mrets[i]*100), file=html_file)
 			html_file.write("%</TD>\n")
 			i+=1
 		html_file.write("</TR>\n")
@@ -241,7 +241,7 @@
 
 if __name__ == '__main__':
 	input=open(sys.argv[1],"r")
-	funds=cPickle.load(input)
+	funds=pickle.load(input)
 
 	if(len(sys.argv)>2):
 		input2=sys.argv[2]
--- ./Bin/sinewave_data_generator.py	(original)
+++ ./Bin/sinewave_data_generator.py	(refactored)
@@ -1,6 +1,6 @@
 import datetime
 import QSTK.qstkutil.qsdateutil
-import StringIO
+import io
 import math
 import random
 
@@ -17,12 +17,12 @@
 	amp =  20.0*random.random()
 	period = 10.0+(random.random()*100.0)
 	sin_gen = lambda x: (mean+(amp*math.sin(((math.pi*2)/period)*x)))
-	print fname,"parameters"
-	print "Mean:",mean
-	print "Amplitude:",amp
-	print "Period:", period
+	print(fname,"parameters")
+	print("Mean:",mean)
+	print("Amplitude:",amp)
+	print("Period:", period)
 	dllen = len(datelist)
-	for t in xrange(dllen):
+	for t in range(dllen):
 		date = datelist[(dllen-1)-t]
 		val = sin_gen(t)
 		line = (date.date().isoformat(),)+((val,)*5)
@@ -30,6 +30,6 @@
 	#print write_to.getvalue()
 	write_to.close()
 
-for i in xrange(NUMFILES):
+for i in range(NUMFILES):
 	genfile("ML4T-%03d.csv"%i,START,END)
 #genfile("foo.txt",datetime.datetime(2011,9,13),datetime.datetime(2012,9,13))
--- ./Examples/Validation.py	(original)
+++ ./Examples/Validation.py	(refactored)
@@ -14,80 +14,80 @@
 # Printing what Python Version is installed : QSTK uses 2.7
 import sys
 import platform
-print "Python Details : "
-print sys.version
-print "Your Python Version is : ", platform.python_version()
-print "QSTK uses Python 2.7.X (2.7.3 recommended and supported)"
-print "Please make sure you're using the correct python version."
-print
+print("Python Details : ")
+print(sys.version)
+print("Your Python Version is : ", platform.python_version())
+print("QSTK uses Python 2.7.X (2.7.3 recommended and supported)")
+print("Please make sure you're using the correct python version.")
+print()
 
 # Printing the directory you are in
 import os
-print "Current Directory : ", os.path.abspath('.')
-print
+print("Current Directory : ", os.path.abspath('.'))
+print()
 
 # Printing files in the current directory.
-print "Files in the current directory"
+print("Files in the current directory")
 ls_files = os.listdir('.')
 for s_file in ls_files:
-    print s_file
-print
+    print(s_file)
+print()
 
 # Testing the dependencies
 # Testing numpy
 try:
     import numpy
-    print "Numpy is installed and the version used is : ", numpy.__version__
-    print "Please make sure you're using version >= 1.6.1"
+    print("Numpy is installed and the version used is : ", numpy.__version__)
+    print("Please make sure you're using version >= 1.6.1")
 except ImportError:
     sys.exit("Error : Numpy can not be imported or not installed.")
-print
+print()
 
 # Testing matplotlib
 try:
     import matplotlib
-    print "Matplotlib is installed and version is : ", matplotlib.__version__
-    print "Please make sure you're using version >= 1.1.0"
+    print("Matplotlib is installed and version is : ", matplotlib.__version__)
+    print("Please make sure you're using version >= 1.1.0")
 except ImportError:
     sys.exit("Error : Matplotlib can not be imported or not installed.")
-print
+print()
 
 # Testing Pandas
 try:
     import pandas
-    print "Pandas is installed and the version used is : ", pandas.__version__
-    print "Please make sure you're using version >= 0.7.3"
+    print("Pandas is installed and the version used is : ", pandas.__version__)
+    print("Please make sure you're using version >= 0.7.3")
 except ImportError:
     sys.exit("Error : Pandas can not be imported or not installed.")
-print
+print()
 
 
 # Testing Scipy
 try:
     import scipy
-    print "Scipy is installed and the version used is : ", scipy.__version__
-    print "Please make sure you're using version >= 0.9.0"
+    print("Scipy is installed and the version used is : ", scipy.__version__)
+    print("Please make sure you're using version >= 0.9.0")
 except ImportError:
     sys.exit("Error : Scipy can not be imported or not installed.")
-print
+print()
 
 # Testing Dateutil
 try:
     import dateutil
-    print "Dateutil is installed and the version used is : ", dateutil.__version__
-    print "Please make sure you're using version == 1.5"
+    print("Dateutil is installed and the version used is : ", dateutil.__version__)
+    print("Please make sure you're using version == 1.5")
 except ImportError:
     sys.exit("Error : Dateutil can not be imported or not installed.")
-print
+print()
 
 # Testing Setuptools
 try:
     import setuptools
-    print "Setuptools is installed and the version used is : ", setuptools.__version__
-    print "Please make sure you're using version >= 0.6"
+    print("Setuptools is installed and the version used is : ", setuptools.__version__)
+    print("Please make sure you're using version >= 0.6")
 except ImportError:
     sys.exit("Error : Setuptools can not be imported or not installed.")
-print
+print()
 
 # # Testing CVXOPT
 # try:
@@ -100,40 +100,40 @@
 # Testing datetime
 try:
     import datetime as dt
-    print "datetime is installed and can be imported"
+    print("datetime is installed and can be imported")
 except ImportError:
     sys.exit("Error : datetime can not be imported or not installed.")
-print
+print()
 
 # All dependencies are installed and working
-print "All dependencies are installed and working\n"
+print("All dependencies are installed and working\n")
 
 # Testing import of QSTK
 # Testing QSTK
 try:
     import QSTK
-    print "QSTK is installed and can be imported"
+    print("QSTK is installed and can be imported")
 except ImportError:
     sys.exit("Error : QSTK can not be imported or not installed.")
-print
+print()
 
 # Testing QSTK.qstkutil
 try:
     import QSTK.qstkutil.tsutil as tsu
     import QSTK.qstkutil.qsdateutil as du
     import QSTK.qstkutil.DataAccess as da
-    print "QSTK.qstkutil is installed and can be imported"
+    print("QSTK.qstkutil is installed and can be imported")
 except ImportError:
     exit("Error : QSTK.qstkutil can not be imported.")
-print
+print()
 
 # Testing QSTK.qstkstudy
 try:
     import QSTK.qstkstudy.EventProfiler
-    print "QSTK.qstkstudy is installed and can be imported"
+    print("QSTK.qstkstudy is installed and can be imported")
 except ImportError:
     exit("Error : QSTK.qstkstudy can not be imported.")
-print
+print()
 
 # Checking that the data installed is correct.
 # Start and End date of the charts
@@ -149,29 +149,29 @@
 c_dataobj = da.DataAccess('Yahoo', verbose=True)
 # Reading adjusted_close prices
 df_close = c_dataobj.get_data(ldt_timestamps, ls_symbols, "close")
-print df_close
-print
-print "\nCorrect Output using the Default Data should be : "
-print "Assignments use this data for grading"
-print "                      MSFT    GOOG"
RefactoringTool: Refactored ./Examples/Basic/numpy-tutorial.py
-print "2012-02-10 16:00:00  29.90  605.91"
-print "2012-02-13 16:00:00  29.98  612.20"
-print "2012-02-14 16:00:00  29.86  609.76"
-print "2012-02-15 16:00:00  29.66  605.56"
-print "2012-02-16 16:00:00  30.88  606.52"
-print "2012-02-17 16:00:00  30.84  604.64"
-print "2012-02-21 16:00:00  31.03  614.00"
-print "2012-02-22 16:00:00  30.86  607.94"
-print "2012-02-23 16:00:00  30.96  606.11"
-print
+print(df_close)
+print()
+print("\nCorrect Output using the Default Data should be : ")
+print("Assignments use this data for grading")
+print("                      MSFT    GOOG")
+print("2012-02-10 16:00:00  29.90  605.91")
+print("2012-02-13 16:00:00  29.98  612.20")
+print("2012-02-14 16:00:00  29.86  609.76")
+print("2012-02-15 16:00:00  29.66  605.56")
+print("2012-02-16 16:00:00  30.88  606.52")
+print("2012-02-17 16:00:00  30.84  604.64")
+print("2012-02-21 16:00:00  31.03  614.00")
+print("2012-02-22 16:00:00  30.86  607.94")
+print("2012-02-23 16:00:00  30.96  606.11")
+print()
 
 dt_test = dt.datetime(2012, 2, 15, 16)
-print "Close price of MSFT on 2012/2/15 is : ", df_close['MSFT'].ix[dt_test]
+print("Close price of MSFT on 2012/2/15 is : ", df_close['MSFT'].ix[dt_test])
 if df_close['MSFT'].ix[dt_test] == 29.66:
-    print "Data looks correct as the close price in default data is 29.66"
+    print("Data looks correct as the close price in default data is 29.66")
 else:
-    print "Default data used in the assisgnments has close price as 29.66"
+    print("Default data used in the assisgnments has close price as 29.66")
     sys.exit("Error : Data has changed so does not match data used in Assignments")
-print
+print()
 
-print "Everything works fine: You're all set."
+print("Everything works fine: You're all set.")
--- ./Examples/Basic/numpy-tutorial.py	(original)
+++ ./Examples/Basic/numpy-tutorial.py	(refactored)
@@ -35,33 +35,33 @@
 #
 #
 ## Lets get started!
-print "Importing numpy"
+print("Importing numpy")
 import numpy as np
 
 ## This loads the numpy library and lets us refer to it by the shorthand "np",
 ## which is the convention used in the numpy documentation and in many
 ## online tutorials/examples 
 
-print "Creating arrays"
+print("Creating arrays")
 ## Now lets make an array to play around with. You can make numpy arrays in
 ## a number of ways,
 ## Filled with zeros:
 zeroArray = np.zeros( (2,3) ) # [[ 0.  0.  0.]
-print zeroArray               #  [ 0.  0.  0.]]
+print(zeroArray)               #  [ 0.  0.  0.]]
 
 ## Or ones:
 oneArray = np.ones( (2,3) )   # [[ 1.  1.  1.]
-print oneArray                #  [ 1.  1.  1.]]
+print(oneArray)                #  [ 1.  1.  1.]]
 
 ## Or filled with junk:
 emptyArray = np.empty( (2,3) ) 
-print emptyArray
+print(emptyArray)
 
 ## Note, emptyArray might look random, but it's just uninitialized which means
 ## you shouldn't count on it having any particular data in it, even random
 ## data! If you do want random data you can use random():
 randomArray = np.random.random( (2,3) )
-print randomArray
+print(randomArray)
 
 ## If you're following along and trying these commands out, you should have
 ## noticed that making randomArray took a lot longer than emptyArray. That's
@@ -74,29 +74,29 @@
         [4,5,6]]
 
 myArray = np.array(foo) # [[1 2 3] 
-print myArray           #  [4 5 6]]
-
-
-print "Reshaping arrays"
+print(myArray)           #  [4 5 6]]
+
+
+print("Reshaping arrays")
 ## Of course, if you're typing out a range for a larger matrix, it's easier to
 ## use arange(...):
 rangeArray = np.arange(6,12).reshape( (2,3) ) # [[ 6  7  8]
-print rangeArray                              #  [ 9 10 11]]
+print(rangeArray)                              #  [ 9 10 11]]
 
 ## there's two things going on here. First, the arange(...) function returns a
 ## 1D array similar to what you'd get from using the built-in python function
 ## range(...) with the same arguments, except it returns a numpy array
 ## instead of a list.
-print np.arange(6,12) # [ 6  7  8  9 10 11 12]
+print(np.arange(6,12)) # [ 6  7  8  9 10 11 12]
 
 ## the reshape method takes the data in an existing array, and stuffs it into
 ## an array with the given shape and returns it.  
-print rangeArray.reshape( (3,2) ) # [[ 6  7]
+print(rangeArray.reshape( (3,2) )) # [[ 6  7]
                                   #  [ 8  9]
                                   #  [10 11]]
 
 #The original array doesn't change though.
-print rangeArray # [[ 6  7  8]
+print(rangeArray) # [[ 6  7  8]
                  #  [ 9 10 11]
 
 ## When you use reshape(...) the total number of things in the array must stay
@@ -106,69 +106,69 @@
 squareArray = np.arange(1,10).reshape( (3,3) ) #this is fine, 9 elements
 
 
-print "Accessing array elements"
+print("Accessing array elements")
 ## Accessing an array is also pretty straight forward. You access a specific
 ## spot in the table by referring to its row and column inside square braces
 ## after the array:
-print rangeArray[0,1] #7
+print(rangeArray[0,1]) #7
 
 ## Note that row and column numbers start from 0, not 1! Numpy also lets you 
 ## refer to ranges inside an array:
-print rangeArray[0,0:2] #[6 7]
-print squareArray[0:2,0:2] #[[1 2]  # the top left corner of squareArray
+print(rangeArray[0,0:2]) #[6 7]
+print(squareArray[0:2,0:2]) #[[1 2]  # the top left corner of squareArray
                            # [4 5]]
 
 ## These ranges work just like slices and python lists. n:m:t specifies a range
 ## that starts at n, and stops before m, in steps of size t. If any of these 
 ## are left off, they're assumed to be the start, the end+1, and 1 respectively
-print squareArray[:,0:3:2] #[[1 3]   #skip the middle column
+print(squareArray[:,0:3:2]) #[[1 3]   #skip the middle column
                            # [4 6]
                            # [7 9]]
 
 ## Also like python lists, you can assign values to specific positions, or
 ## ranges of values to slices
-squareArray[0,:] = np.array(range(1,4)) #set the first row to 1,2,3
+squareArray[0,:] = np.array(list(range(1,4))) #set the first row to 1,2,3
 squareArray[1,1] = 0                    # set the middle spot to zero
 squareArray[2,:] = 1                    # set the last row to ones
-print squareArray                       # [[1 2 3]
+print(squareArray)                       # [[1 2 3]
                                         #  [4 0 6]
                                         #  [1 1 1]]
 
 ## Something new to numpy arrays is indexing using an array of indices:
 fibIndices = np.array( [1, 1, 2, 3] )
 randomRow = np.random.random( (10,1) ) # an array of 10 random numbers
-print randomRow
-print randomRow[fibIndices] # the first, first, second and third element of
+print(randomRow)
+print(randomRow[fibIndices]) # the first, first, second and third element of
                              # randomRow 
 
 ## You can also use an array of true/false values to index:
 boolIndices = np.array( [[ True, False,  True],
                           [False,  True, False],
                           [ True, False,  True]] )
-print squareArray[boolIndices] # a 1D array with the selected values
+print(squareArray[boolIndices]) # a 1D array with the selected values
                                 # [1 3 0 1 1]
 
 ## It gets a little more complicated with 2D (and higher) arrays.  You need
 ## two index arrays for a 2D array:
 rows = np.array( [[0,0],[2,2]] ) #get the corners of our square array
 cols = np.array( [[0,2],[0,2]] )
-print squareArray[rows,cols]     #[[1 3]
+print(squareArray[rows,cols])     #[[1 3]
                                  # [1 1]]
 boolRows = np.array( [False, True, False] ) # just the middle row
 boolCols = np.array( [True, False, True] )  # Not the middle column
-print squareArray[boolRows,boolCols]        # [4 6]
-
-print "Operations on arrays"
+print(squareArray[boolRows,boolCols])        # [4 6]
+
+print("Operations on arrays")
 ## One useful trick is to create a boolean matrix based on some test and use
 ## that as an index in order to get the elements of a matrix that pass the
 ## test:
 sqAverage = np.average(squareArray) # average(...) returns the average of all
RefactoringTool: Refactored ./Examples/Basic/pandas-tutorial.py
RefactoringTool: Refactored ./Examples/Basic/tutorial1.py
RefactoringTool: Refactored ./Examples/Basic/tutorial2.py
RefactoringTool: Refactored ./Examples/Basic/tutorial3.py
                                     # the elements in the given array
 betterThanAverage = squareArray > sqAverage
-print betterThanAverage             #[[False False  True]
+print(betterThanAverage)             #[[False False  True]
                                     # [ True False  True]
                                     # [False False False]]
-print squareArray[betterThanAverage] #[3 4 6]
+print(squareArray[betterThanAverage]) #[3 4 6]
 
 ## Indexing like this can also be used to assign values to elements of the
 ## array. This is particularly useful if you want to filter an array, say by 
@@ -188,24 +188,24 @@
                                     # truncate them down to integers.
 clampedSqArray[ (squareArray-sqAverage) > sqStdDev ] = sqAverage+sqStdDev
 clampedSqArray[ (squareArray-sqAverage) < -sqStdDev ] = sqAverage-sqStdDev
-print clampedSqArray # [[ 1.          2.          3.        ]
+print(clampedSqArray) # [[ 1.          2.          3.        ]
                      #  [ 3.90272394  0.31949828  3.90272394]
                      #  [ 1.          1.          1.        ]]
 
 
 ## Multiplying and dividing arrays by numbers does what you'd expect. It
 ## multiples/divides element-wise
-print squareArray * 2 # [[ 2  4  6]
+print(squareArray * 2) # [[ 2  4  6]
                       #  [ 8  0 12]
                       #  [ 2  2  2]]
 
 ## Addition works similarly:
-print squareArray + np.ones( (3,3) ) #[[2 3 4]
+print(squareArray + np.ones( (3,3) )) #[[2 3 4]
                                      # [5 1 7]
                                      # [2 2 2]]
 
 ## Multiplying two arrays together (of the same size) is also element wise
-print squareArray * np.arange(1,10).reshape( (3,3) ) #[[ 1  4  9]
+print(squareArray * np.arange(1,10).reshape( (3,3) )) #[[ 1  4  9]
                                                      # [16  0 36]
                                                      # [ 7  8  9]]
 
@@ -213,7 +213,7 @@
 ## from linear algebra:
 matA = np.array( [[1,2],[3,4]] )
 matB = np.array( [[5,6],[7,8]] )
-print np.dot(matA,matB) #[[19 22]
+print(np.dot(matA,matB)) #[[19 22]
                         # [43 50]]
 
 ## And thats it! There's a lot more to the numpy library, and there are a few
--- ./Examples/Basic/pandas-tutorial.py	(original)
+++ ./Examples/Basic/pandas-tutorial.py	(refactored)
@@ -20,67 +20,67 @@
 for i in range(1, 6):
     ldt_timestamps.append(dt.datetime(2011, 1, i, 16))
 
-print "The index we created has the following dates : "
-print ldt_timestamps
-print
+print("The index we created has the following dates : ")
+print(ldt_timestamps)
+print()
 
 ## TimeSeries
 ts_single_value = pd.TimeSeries(0.0, index=ldt_timestamps)
-print "A timeseries initialized to one single value : "
+print("A timeseries initialized to one single value : ")
 
 na_vals = np.arange(len(ldt_timestamps))
-print "Dummy initialized array : "
-print na_vals
-print
+print("Dummy initialized array : ")
+print(na_vals)
+print()
 
 ts_array = pd.TimeSeries(na_vals, index=ldt_timestamps)
-print "A timeseries initialized using a numpy array : "
-print ts_array
-print 
+print("A timeseries initialized using a numpy array : ")
+print(ts_array)
+print() 
 
-print "Reading the timeseries for a particular date"
-print "Date :  ", ldt_timestamps[1]
-print "Value : ", ts_array[ldt_timestamps[1]]
-print
+print("Reading the timeseries for a particular date")
+print("Date :  ", ldt_timestamps[1])
+print("Value : ", ts_array[ldt_timestamps[1]])
+print()
 
-print "Initializing a list of symbols : "
+print("Initializing a list of symbols : ")
 ls_symbols = ['AAPL', 'GOOG', 'MSFT', 'IBM']
-print ls_symbols
-print
+print(ls_symbols)
+print()
 
-print "Initializing a dataframe with one value : "
+print("Initializing a dataframe with one value : ")
 df_single = pd.DataFrame(index=ldt_timestamps, columns=ls_symbols)
 df_single = df_single.fillna(0.0)
-print df_single
-print
+print(df_single)
+print()
 
-print "Initializing a dataframe with a numpy array : "
+print("Initializing a dataframe with a numpy array : ")
 na_vals_2 = np.random.randn(len(ldt_timestamps), len(ls_symbols))
 df_vals = pd.DataFrame(na_vals_2, index=ldt_timestamps, columns=ls_symbols)
-print df_vals
-print 
+print(df_vals)
+print() 
 
-print "Access the timeseries of a particular symbol : "
-print df_vals[ls_symbols[1]]
-print
+print("Access the timeseries of a particular symbol : ")
+print(df_vals[ls_symbols[1]])
+print()
 
-print "Access the timeseries of a particular date : "
-print df_vals.ix[ldt_timestamps[1]]
-print
+print("Access the timeseries of a particular date : ")
+print(df_vals.ix[ldt_timestamps[1]])
+print()
 
-print "Access the value for a specific symbol on a specific date: "
-print df_vals[ls_symbols[1]].ix[ldt_timestamps[1]]
-print
+print("Access the value for a specific symbol on a specific date: ")
+print(df_vals[ls_symbols[1]].ix[ldt_timestamps[1]])
+print()
 
-print "Reindexing the dataframe"
+print("Reindexing the dataframe")
 ldt_new_dates = [dt.datetime(2011, 1, 3, 16), 
                  dt.datetime(2011, 1, 5, 16),
                  dt.datetime(2011, 1, 7, 16)]
 ls_new_symbols = ['AAPL', 'IBM', 'XOM']
 df_new = df_vals.reindex(index=ldt_new_dates, columns=ls_new_symbols)
-print df_new
-print "Observe that reindex carried over whatever values it could find and set the rest to NAN"
-print
+print(df_new)
+print("Observe that reindex carried over whatever values it could find and set the rest to NAN")
+print()
 
-print "For pandas rolling statistics please refer : http://pandas.pydata.org/pandas-docs/dev/computation.html#moving-rolling-statistics-moments"
+print("For pandas rolling statistics please refer : http://pandas.pydata.org/pandas-docs/dev/computation.html#moving-rolling-statistics-moments")
 
--- ./Examples/Basic/tutorial1.py	(original)
+++ ./Examples/Basic/tutorial1.py	(refactored)
@@ -21,7 +21,7 @@
 import matplotlib.pyplot as plt
 import pandas as pd
 
-print "Pandas Version", pd.__version__
+print("Pandas Version", pd.__version__)
 
 
 def main():
@@ -49,7 +49,7 @@
     # Reading the data, now d_data is a dictionary with the keys above.
     # Timestamps and symbols are the ones that were specified before.
     ldf_data = c_dataobj.get_data(ldt_timestamps, ls_symbols, ls_keys)
-    d_data = dict(zip(ls_keys, ldf_data))
+    d_data = dict(list(zip(ls_keys, ldf_data)))
 
     # Filling the data for NAN
     for s_key in ls_keys:
--- ./Examples/Basic/tutorial2.py	(original)
+++ ./Examples/Basic/tutorial2.py	(refactored)
@@ -33,11 +33,11 @@
     ls_symbols = ['$SPX', 'XOM', 'GOOG', 'GLD']
 
     # Printing the first 5 rows
-    print "First 5 rows of Price Data:"
-    print na_price[:5, :]
-    print
-    print "First 5 rows of Dates:"
-    print na_dates[:5, :]
+    print("First 5 rows of Price Data:")
+    print(na_price[:5, :])
+    print()
+    print("First 5 rows of Dates:")
+    print(na_dates[:5, :])
 
     # Creating the timestamps from dates read
     ldt_timestamps = []
--- ./Examples/Basic/tutorial3.py	(original)
+++ ./Examples/Basic/tutorial3.py	(refactored)
@@ -28,11 +28,11 @@
     # Reading the portfolio
     na_portfolio = np.loadtxt('tutorial3portfolio.csv', dtype='S5,f4',
                         delimiter=',', comments="#", skiprows=1)
-    print na_portfolio
+    print(na_portfolio)
 
     # Sorting the portfolio by symbol name
     na_portfolio = sorted(na_portfolio, key=lambda x: x[0])
-    print na_portfolio
+    print(na_portfolio)
 
     # Create two list for symbol names and allocation
     ls_port_syms = []
@@ -48,7 +48,7 @@
     ls_bad_syms = list(set(ls_port_syms) - set(ls_all_syms))
 
     if len(ls_bad_syms) != 0:
-        print "Portfolio contains bad symbols : ", ls_bad_syms
+        print("Portfolio contains bad symbols : ", ls_bad_syms)
 
     for s_sym in ls_bad_syms:
         i_index = ls_port_syms.index(s_sym)
@@ -70,7 +70,7 @@
     # Reading the data, now d_data is a dictionary with the keys above.
     # Timestamps and symbols are the ones that were specified before.
     ldf_data = c_dataobj.get_data(ldt_timestamps, ls_port_syms, ls_keys)
-    d_data = dict(zip(ls_keys, ldf_data))
RefactoringTool: Refactored ./Examples/Basic/tutorial4.py
RefactoringTool: Refactored ./Examples/Basic/tutorial5.py
RefactoringTool: No changes to ./Examples/Basic/tutorial8.py
RefactoringTool: Refactored ./Examples/DataAccess/setexample.py
RefactoringTool: Refactored ./Examples/EventProfiler/tutorial.py
RefactoringTool: Refactored ./Examples/FeatureSearch/code.py
RefactoringTool: No changes to ./Examples/FeatureSearch/functions.py
RefactoringTool: Refactored ./Examples/Features/featuretest.py
RefactoringTool: No changes to ./QSTK/__init__.py
RefactoringTool: Refactored ./QSTK/qstkfeat/__init__.py
RefactoringTool: No changes to ./QSTK/qstkfeat/classes.py
RefactoringTool: No changes to ./QSTK/qstkfeat/features.py
RefactoringTool: Refactored ./QSTK/qstkfeat/featutil.py
+    d_data = dict(list(zip(ls_keys, ldf_data)))
 
     # Copying close price into separate dataframe to find rets
     df_rets = d_data['close'].copy()
--- ./Examples/Basic/tutorial4.py	(original)
+++ ./Examples/Basic/tutorial4.py	(refactored)
@@ -21,7 +21,7 @@
 import matplotlib.pyplot as plt
 import pandas as pd
 import numpy as np
-import cPickle
+import pickle
 
 
 def main():
@@ -72,7 +72,7 @@
 
     # Create the outpul pickle file for the dataframe.
     output = open('allocation.pkl', 'wb')
-    cPickle.dump(df_alloc, output)
+    pickle.dump(df_alloc, output)
 
 if __name__ == '__main__':
     main()
--- ./Examples/Basic/tutorial5.py	(original)
+++ ./Examples/Basic/tutorial5.py	(refactored)
@@ -80,12 +80,12 @@
                     f_slippage=0.0005, f_minimumcommision=5.0, f_commision_share=0.0035,
                     i_target_leverage=1, f_rate_borrow=3.5, log="transaction.csv")
 
-    print "Simulated Fund Time Series : "
-    print ts_funds
-    print "Transaction Costs : "
-    print "Commissions : ", f_commission
-    print "Slippage : ", f_slippage
-    print "Borrowing Cost : ", f_borrow_cost
+    print("Simulated Fund Time Series : ")
+    print(ts_funds)
+    print("Transaction Costs : ")
+    print("Commissions : ", f_commission)
+    print("Slippage : ", f_slippage)
+    print("Borrowing Cost : ", f_borrow_cost)
 
 if __name__ == '__main__':
     main()
--- ./Examples/DataAccess/setexample.py	(original)
+++ ./Examples/DataAccess/setexample.py	(refactored)
@@ -30,11 +30,11 @@
     # Getting a list of symbols from Lists
     # Lists : S&P5002012, S&P5002008, Index
     ls_symbols = c_dataobj.get_symbols_from_list('sp5002012')
-    print "Symbols from the list : ", ls_symbols
+    print("Symbols from the list : ", ls_symbols)
 
     # All symbols possible
     ls_all_syms = c_dataobj.get_all_symbols()
-    print "All symbols : ", ls_all_syms
+    print("All symbols : ", ls_all_syms)
 
     ls_syms_toread = ['AAPL', 'GOOG']
 
@@ -58,7 +58,7 @@
     # But a path can be provided using either an environment variable or
     # as a prarameter.
     df_close = c_dataobj.get_data(ldt_timestamps, ls_syms_toread, "close")
-    print df_close
+    print(df_close)
 
 
 if __name__ == '__main__':
--- ./Examples/EventProfiler/tutorial.py	(original)
+++ ./Examples/EventProfiler/tutorial.py	(refactored)
@@ -44,7 +44,7 @@
     df_close = d_data['close']
     ts_market = df_close['SPY']
 
-    print "Finding Events"
+    print("Finding Events")
 
     # Creating an empty dataframe
     df_events = copy.deepcopy(df_close)
@@ -82,7 +82,7 @@
 
     ls_keys = ['open', 'high', 'low', 'close', 'volume', 'actual_close']
     ldf_data = dataobj.get_data(ldt_timestamps, ls_symbols, ls_keys)
-    d_data = dict(zip(ls_keys, ldf_data))
+    d_data = dict(list(zip(ls_keys, ldf_data)))
 
     for s_key in ls_keys:
         d_data[s_key] = d_data[s_key].fillna(method='ffill')
@@ -90,7 +90,7 @@
         d_data[s_key] = d_data[s_key].fillna(1.0)
 
     df_events = find_events(ls_symbols, d_data)
-    print "Creating Study"
+    print("Creating Study")
     ep.eventprofiler(df_events, d_data, i_lookback=20, i_lookforward=20,
                 s_filename='MyEventStudy.pdf', b_market_neutral=True, b_errorbars=True,
                 s_market_sym='SPY')
--- ./Examples/FeatureSearch/code.py	(original)
+++ ./Examples/FeatureSearch/code.py	(refactored)
@@ -37,7 +37,7 @@
 	
 	lsSym = list(set(lsSymTrain).union(set(lsSymTest)))
 	
-	dtStart = dt.datetime(2008,01,01)
+	dtStart = dt.datetime(2008,0o1,0o1)
 	dtEnd = dt.datetime(2010,12,31)
 	
 	norObj = da.DataAccess('Norgate')	  
@@ -59,8 +59,8 @@
 	for temp in ldfDataTest:
 		temp.fillna(method="ffill").fillna(method="bfill")
 	
-	dDataTrain = dict(zip(lsKeys, ldfDataTrain))
-	dDataTest = dict(zip(lsKeys, ldfDataTest))
+	dDataTrain = dict(list(zip(lsKeys, ldfDataTrain)))
+	dDataTest = dict(list(zip(lsKeys, ldfDataTest)))
 	
 	''' Imported functions from qstkfeat.features, NOTE: last function is classification '''
 	lfcFeatures = [ featMA, featMA, featMA, featMA, featMA, featMA, \
@@ -98,9 +98,9 @@
 	ldfFeaturesTest = ftu.applyFeatures( dDataTest, lfcFeatures, ldArgs, '$SPX')
 
 	''' Pick Test and Training Points '''		
-	dtStartTrain = dt.datetime(2008,01,01)
+	dtStartTrain = dt.datetime(2008,0o1,0o1)
 	dtEndTrain = dt.datetime(2009,12,31)
-	dtStartTest = dt.datetime(2010,01,01)
+	dtStartTest = dt.datetime(2010,0o1,0o1)
 	dtEndTest = dt.datetime(2010,12,31)
 	
 	''' Stack all information into one Numpy array ''' 
@@ -113,7 +113,7 @@
 	ftu.normQuery( naFeatTest[:,:-1], ltWeights )	
 	
 
-	lFeatures = range(0,len(lfcFeatures)-1)
+	lFeatures = list(range(0,len(lfcFeatures)-1))
 	classLabelIndex = len(lfcFeatures) - 1
 	
 	funccall = sys.argv[1] + '(naFeatTrain,naFeatTest,lFeatures,classLabelIndex)'
--- ./Examples/Features/featuretest.py	(original)
+++ ./Examples/Features/featuretest.py	(refactored)
@@ -33,7 +33,7 @@
     @summary: Takes testing and training data and computes average error over the test set
               This is compared to a baseline guess which is just the average of the training set
     '''
-    llRange = range(5,51,5)
+    llRange = list(range(5,51,5))
     
     lfRes = []
     for lK in llRange:
@@ -70,7 +70,7 @@
     #lsSym = ['XOM']
     
     ''' Get data for 2009-2010 '''
-    dtStart = dt.datetime(2010,8,01)
+    dtStart = dt.datetime(2010,8,0o1)
     dtEnd = dt.datetime(2010,12,31)
     
     norObj = da.DataAccess('Yahoo')      
@@ -78,7 +78,7 @@
     
     lsKeys = ['open', 'high', 'low', 'close', 'volume']
     ldfData = norObj.get_data( ldtTimestamps, lsSym, lsKeys )
-    dData = dict(zip(lsKeys, ldfData))
+    dData = dict(list(zip(lsKeys, ldfData)))
     
     ''' Imported functions from qstkfeat.features, NOTE: last function is classification '''
     lfcFeatures = [ featMA, featRSI, class_fut_ret ]
--- ./QSTK/qstkfeat/__init__.py	(original)
+++ ./QSTK/qstkfeat/__init__.py	(refactored)
@@ -1,3 +1,3 @@
-from classes import *
-from featutil import *
-from features import *
+from .classes import *
+from .featutil import *
+from .features import *
--- ./QSTK/qstkfeat/featutil.py	(original)
+++ ./QSTK/qstkfeat/featutil.py	(refactored)
@@ -60,7 +60,7 @@
     
     #print dfCloseMark
     #Make all data market relative, except for volume
-    for sKey in dData.keys():
+    for sKey in list(dData.keys()):
         
         # Don't calculate market relative volume, but still copy it over 
         if sKey == 'volume':
@@ -114,8 +114,8 @@
         if 'MR' in ldArgs[i]:
             
             if ldArgs[i]['MR'] == False:
-                print 'Warning, setting MR to false will still be Market Relative',\
-                      'simply do not include MR key in args'
+                print('Warning, setting MR to false will still be Market Relative',\
+                      'simply do not include MR key in args')
         
             if sMarketRel == None:
                 raise AssertionError('Functions require market relative stock but sMarketRel=None')
@@ -244,7 +244,7 @@
                   'FEAT' == sDelNan and not math.isnan( np.sum(naStkData[i,:-1]) ):
                     llValidRows.append(i)
                 elif  bShowRemoved:
-                    print 'Removed', sStock, naStkData[i,:]
+                    print('Removed', sStock, naStkData[i,:])
                         
             naStkData = naStkData[llValidRows,:]
             
@@ -295,7 +295,7 @@
         fRange = fFeatMax - fFeatMin
         
         if fRange == 0:
-            print 'Warning, bad query data range'
+            print('Warning, bad query data range')
             fMult = 1.
             fShigt = 0.
         else:
@@ -430,7 +430,7 @@
     
     lsKeys = ['open', 'high', 'low', 'close', 'volume', 'actual_close']
     ldfData = norObj.get_data( ldtTimestamps, lsSym, lsKeys )
-    dData = dict(zip(lsKeys, ldfData))
+    dData = dict(list(zip(lsKeys, ldfData)))
     dfPrice = dData['close']
 
 
@@ -439,13 +439,13 @@
     ''' Generate a list of DataFrames, one for each feature, with the same index/column structure as price data '''
     dtStart = dt.datetime.now()
RefactoringTool: Refactored ./QSTK/qstklearn/1knn.py
RefactoringTool: Refactored ./QSTK/qstklearn/fastknn.py
RefactoringTool: Refactored ./QSTK/qstklearn/gendata.py
RefactoringTool: Refactored ./QSTK/qstklearn/hmm.py
     ldfFeatures = applyFeatures( dData, [fcFeature], [dArgs], sMarketRel='$SPX' )
-    print 'Runtime:', dt.datetime.now() - dtStart
+    print('Runtime:', dt.datetime.now() - dtStart)
     
     ''' Use last 3 months of index, to avoid lookback nans '''
 
     dfPrint = ldfFeatures[0]['GOOG']
-    print 'GOOG values:', dfPrint.values
-    print 'GOOG Sum:', dfPrint.ix[dfPrint.notnull()].sum()
+    print('GOOG values:', dfPrint.values)
+    print('GOOG Sum:', dfPrint.ix[dfPrint.notnull()].sum())
     
     for sSym in lsSym:
         plt.subplot( 211 )
@@ -483,7 +483,7 @@
     lsKeys = ['open', 'high', 'low', 'close', 'volume', 'actual_close']
     ldtTimestamps = du.getNYSEdays( dtStart, dtEnd, dtTimeofday)
     ldfData = daData.get_data( ldtTimestamps, lsSym, lsKeys)
-    dData = dict(zip(lsKeys, ldfData))
+    dData = dict(list(zip(lsKeys, ldfData)))
     
     '''loop through features'''
     ltResults = []
@@ -497,7 +497,7 @@
     
     '''print out result'''
     for tResult in ltResults:
-        print tResult[1], ':', tResult[0]
+        print(tResult[1], ':', tResult[0])
     
     return ltResults
 
--- ./QSTK/qstklearn/1knn.py	(original)
+++ ./QSTK/qstklearn/1knn.py	(refactored)
@@ -91,7 +91,7 @@
     
     plt.subplot(312)
     
-    plt.plot( range( len(lfOneKnn) ), lfOneKnn )
+    plt.plot( list(range( len(lfOneKnn))), lfOneKnn )
 
     plt.ylabel( '1-KNN Value' )    
     #plt.xlabel( 'Distribution Merge' )
@@ -100,7 +100,7 @@
 
     plt.subplot(313)
     
-    plt.plot( range( len(lf5Knn) ), lf5Knn )
+    plt.plot( list(range( len(lf5Knn))), lf5Knn )
 
     plt.ylabel( '% Correct Classification' )    
     #plt.xlabel( 'Distribution Merge' )
@@ -201,8 +201,8 @@
             
             naBoth[500:,0] = naBoth[500:,0] - .1
 
-        print 'Runtime OneKnn:', cOneRuntime
-        print 'Runtime 5-KNN:', cKnnRuntime   
+        print('Runtime OneKnn:', cOneRuntime)
+        print('Runtime 5-KNN:', cKnnRuntime)   
         _plotResults( naTest1, naTest2, lfResults, lfKnnResults )
 
 ''' Tests performance of 1-KNN '''
--- ./QSTK/qstklearn/fastknn.py	(original)
+++ ./QSTK/qstklearn/fastknn.py	(refactored)
@@ -64,7 +64,7 @@
 		picks the first 'num_anchors' as new anchors.
 		"""
 		if selection_type == 'random':
-			self.anchors = range(len(self.training_data))
+			self.anchors = list(range(len(self.training_data)))
 			random.shuffle(self.anchors)
 			self.anchors = self.anchors[0:self.num_anchors]
 			self.kdt = scipy.spatial.kdtree.KDTree(numpy.array(self.training_data)[self.anchors,:])
@@ -92,7 +92,7 @@
 					dist = self.distfun(data,self.training_data[a])
 					bisect.insort(self.data_by_anchors[a],(dist,new_idx))
 		elif len(data.shape)>1:
-			for i in xrange(len(data)):
+			for i in range(len(data)):
 				thing = data[i]
 				new_idx = len(self.training_data)
 				self.training_data.append(thing)
@@ -138,7 +138,7 @@
 		neighbors = list()
 		maxd = None
 		maxd_idx = 0
-		for i in xrange(0,len(anchor_list)):
+		for i in range(0,len(anchor_list)):
 			nextpnt_dist = self.distfun(point,self.training_data[anchor_list[i][1]])
 			self.num_checks += 1
 			nextthing = (nextpnt_dist,anchor_list[i][1])
@@ -177,10 +177,10 @@
 				else:
 					tmp = 0
 				class_count[clss] = tmp+1
-			bleh = max(class_count.iteritems(),key=lambda item:item[1])
+			bleh = max(iter(class_count.items()),key=lambda item:item[1])
 			if dumdumcheck and bleh[1] == 1:
-				print "aHAH!"
-				print point
+				print("aHAH!")
+				print(point)
 			rv = bleh[0]
 		elif method == 'mean':
 			return sum([self.data_classes[n[1]] for n in neighbors])/float(k)
@@ -195,7 +195,7 @@
 	#first line is the name of the attributes, strip it off
 	bar = bar[1:]
 	#trim, split, and cast the data. seperator is ';'
-	return [map(float,thing.strip().split(';')) for thing in bar]
+	return [list(map(float,thing.strip().split(';'))) for thing in bar]
 
 def testwine():
 	wqred = dataifywine('wine/winequality-red.csv') + dataifywine('wine/winequality-white.csv')
@@ -203,14 +203,14 @@
 	leftout = int(len(wqred)*leftoutperc)
 	testing = wqred[:leftout]
 	training = wqred[leftout:]
-	print "Training:",len(training)
-	print "Testing:",len(testing)
+	print("Training:",len(training))
+	print("Testing:",len(testing))
 	foo = FastKNN(10)
 	foo.addEvidence(numpy.array([thing[:-1] for thing in training]), [thing[-1] for thing in training])
 	knn.addEvidence(numpy.array(training))
 	total = 0
 	correct = 0
-	for x in xrange(len(testing)):
+	for x in range(len(testing)):
 		thing = testing[x]
 		guess = foo.query(numpy.array(thing[:-1]),3)
 		#realknn = knn.query(numpy.array([thing[:-1],]),3,method='mean')
@@ -221,15 +221,15 @@
 			correct += 1
 		total += 1
 		if total % 50 == 0:
-			print total,'/',len(testing)
-	print correct,"/",total,":",float(correct)/float(total)
-	print "Average checks per query:", float(foo.num_checks)/float(total)
+			print(total,'/',len(testing))
+	print(correct,"/",total,":",float(correct)/float(total))
+	print("Average checks per query:", float(foo.num_checks)/float(total))
 	
 def testspiral():
-	for leftout in xrange(1,11):
-		print "Fold",leftout
+	for leftout in range(1,11):
+		print("Fold",leftout)
 		foo = FastKNN(10)
-		for x in xrange(1,11):
+		for x in range(1,11):
 			if x != leftout:
 				somedata = open("spiral/spiralfold%d.txt" % x)
 				pnts = list()
@@ -256,13 +256,13 @@
 			if guess == pbbbt:
 				correct += 1
 			total += 1
-		print correct,"/",total,":",float(correct)/float(total)
-		print "Average number of checks per query:", 
-		print float(foo.num_checks)/float(total)
+		print(correct,"/",total,":",float(correct)/float(total))
+		print("Average number of checks per query:", end=' ') 
+		print(float(foo.num_checks)/float(total))
 
 def getflatcsv(fname):
 	inf = open(fname)
-	return numpy.array([map(float,s.strip().split(',')) for s in inf.readlines()])
+	return numpy.array([list(map(float,s.strip().split(','))) for s in inf.readlines()])
 
 def testgendata():
 	anchors = 200
@@ -276,13 +276,13 @@
 	data = getflatcsv(fname)
 	foo.addEvidence(data[:,:-1],data[:,-1])
 	foo.num_checks = 0
-	for x in xrange(querys):
+	for x in range(querys):
 		pnt = numpy.array(gendata.gensingle(d,bnds,clsses))
 		foo.query(pnt[:-1])
 		if x % 50 == 0:
-			print float(foo.num_checks)/float(x+1),
-			print x,"/",querys
-	print "Average # queries:", float(foo.num_checks)/float(querys)
+			print(float(foo.num_checks)/float(x+1), end=' ')
+			print(x,"/",querys)
+	print("Average # queries:", float(foo.num_checks)/float(querys))
 	
 	
 
--- ./QSTK/qstklearn/gendata.py	(original)
+++ ./QSTK/qstklearn/gendata.py	(refactored)
@@ -1,16 +1,16 @@
 import random
 def gendata(N,d,bounds,clsses,fname):
 	outf = open(fname,'w')
-	for i in xrange(N):
+	for i in range(N):
 		pnt = [None,]*(d+1)
-		for x in xrange(d):
+		for x in range(d):
 			pnt[x] = random.uniform(bounds[x][0],bounds[x][1])
 		pnt[d] = random.choice(clsses)
 		outf.write(", ".join(map(str,pnt))+"\n")
 	outf.close()
 def gensingle(d,bounds,clsses):
 	pnt = [None,]*(d+1)
-	for x in xrange(d):
+	for x in range(d):
 		pnt[x] = random.uniform(bounds[x][0],bounds[x][1])
 	pnt[d] = random.choice(clsses)
 	return pnt
--- ./QSTK/qstklearn/hmm.py	(original)
+++ ./QSTK/qstklearn/hmm.py	(refactored)
@@ -26,11 +26,11 @@
 	first t symbols.
 	"""
 	alpha = numpy.zeros((len(observations),numstates),dtype=elem_size)
-	for x in xrange(numstates):
+	for x in range(numstates):
 		alpha[0][x] = stateprior[x]*emission[x][observations[0]]
-	for t in xrange(1,len(observations)):
-		for j in xrange(numstates):
-			for i in xrange(numstates):
+	for t in range(1,len(observations)):
+		for j in range(numstates):
+			for i in range(numstates):
 				alpha[t][j] += alpha[t-1][i]*transition[i][j]
 			alpha[t][j] *= emission[j][observations[t]]
 	return alpha
@@ -51,11 +51,11 @@
 	symbols from t+1 to the end (T).
 	"""
 	beta = numpy.zeros((len(observations),numstates),dtype=elem_size)
-	for s in xrange(numstates):
+	for s in range(numstates):
 		beta[len(observations)-1][s] = 1.
-	for t in xrange(len(observations)-2,-1,-1):
-		for i in xrange(numstates):
-			for j in xrange(numstates):
+	for t in range(len(observations)-2,-1,-1):
RefactoringTool: Refactored ./QSTK/qstklearn/kdtknn.py
RefactoringTool: Refactored ./QSTK/qstklearn/mldiagnostics.py
RefactoringTool: Refactored ./QSTK/qstklearn/parallelknn.py
RefactoringTool: Refactored ./QSTK/qstksim/__init__.py
RefactoringTool: Refactored ./QSTK/qstksim/tradesim.py
RefactoringTool: Refactored ./QSTK/qstksim/tests/test_tradesim.py
+		for i in range(numstates):
+			for j in range(numstates):
 				beta[t][i] += transition[i][j]*emission[j][observations[t+1]]*beta[t+1][j]
 	return beta
 
@@ -72,18 +72,18 @@
 	if beta is None:
 		beta = calcbeta(transition,emission,observations,numstates,elem_size)
 	xi = numpy.zeros((len(observations),numstates,numstates),dtype=elem_size)
-	for t in xrange(len(observations)-1):
+	for t in range(len(observations)-1):
 		denom = 0.0
-		for i in xrange(numstates):
-			for j in xrange(numstates):
+		for i in range(numstates):
+			for j in range(numstates):
 				thing = 1.0
 				thing *= alpha[t][i]
 				thing *= transition[i][j]
 				thing *= emission[j][observations[t+1]]
 				thing *= beta[t+1][j]
 				denom += thing
-		for i in xrange(numstates):
-			for j in xrange(numstates):
+		for i in range(numstates):
+			for j in range(numstates):
 				numer = 1.0
 				numer *= alpha[t][i]
 				numer *= transition[i][j]
@@ -100,8 +100,8 @@
 	in state 'i' at time 't' given the full observation sequence.
 	"""
 	gamma = numpy.zeros((seqlen,numstates),dtype=elem_size)
-	for t in xrange(seqlen):
-		for i in xrange(numstates):
+	for t in range(seqlen):
+		for i in range(numstates):
 			gamma[t][i] = sum(xi[t][i])
 	return gamma
 
@@ -114,20 +114,20 @@
 	gamma = calcgamma(xi,len(observations),numstates,elem_size)
 	newprior = gamma[0]
 	newtrans = numpy.zeros((numstates,numstates),dtype=elem_size)
-	for i in xrange(numstates):
-		for j in xrange(numstates):
+	for i in range(numstates):
+		for j in range(numstates):
 			numer = 0.0
 			denom = 0.0
-			for t in xrange(len(observations)-1):
+			for t in range(len(observations)-1):
 				numer += xi[t][i][j]
 				denom += gamma[t][i]
 			newtrans[i][j] = numer/denom
 	newemiss = numpy.zeros( (numstates,numsym) ,dtype=elem_size)
-	for j in xrange(numstates):
-		for k in xrange(numsym):
+	for j in range(numstates):
+		for k in range(numsym):
 			numer = 0.0
 			denom = 0.0
-			for t in xrange(len(observations)):
+			for t in range(len(observations)):
 				if observations[t] == k:
 					numer += gamma[t][j]
 				denom += gamma[t][j]
@@ -219,7 +219,7 @@
 		processed.
 		"""
 		if len(newData.shape) == 1:
-			for i in xrange(iterations):
+			for i in range(iterations):
 				newp,newt,newe = baumwelchstep(	self.prior, \
 												self.transition_matrix, \
 												self.emission_matrix, \
@@ -236,7 +236,7 @@
 				self.transition_matrix = newt
 				self.emission_matrix = newe
 		else:
-			for i in xrange(iterations):
+			for i in range(iterations):
 				for sequence in newData:
 					newp,newt,newe = baumwelchstep(	self.prior, \
 													self.transition_matrix, \
--- ./QSTK/qstklearn/kdtknn.py	(original)
+++ ./QSTK/qstklearn/kdtknn.py	(refactored)
@@ -96,15 +96,15 @@
         
         na_dist, na_neighbors =  self.kdt.query(points,k)
         
-        n_clsses = map(lambda rslt: map(lambda p: p[-1], self.data[rslt]), na_neighbors)
+        n_clsses = [[p[-1] for p in self.data[rslt]] for rslt in na_neighbors]
         #print n_clsses
 
         if method=='mode':
-            return map(lambda x: scipy.stats.stats.mode(x)[0],n_clsses)[0]
+            return [scipy.stats.stats.mode(x)[0] for x in n_clsses][0]
         elif method=='mean':
-            return numpy.array(map(lambda x: numpy.mean(x),n_clsses))
+            return numpy.array([numpy.mean(x) for x in n_clsses])
         elif method=='median':
-            return numpy.array(map(lambda x: numpy.median(x),n_clsses))
+            return numpy.array([numpy.median(x) for x in n_clsses])
         elif method=='raw':
             return numpy.array(n_clsses)
         elif method=='all':
@@ -112,7 +112,7 @@
 
 def getflatcsv(fname):
     inf = open(fname)
-    return numpy.array([map(float,s.strip().split(',')) for s in inf.readlines()])
+    return numpy.array([list(map(float,s.strip().split(','))) for s in inf.readlines()])
 
 def testgendata():
     fname = 'test2.dat'
@@ -126,12 +126,12 @@
     kdt.addEvidence(data)
     kdt.rebuildKDT()
     stime = time.time()
-    for x in xrange(querys):
+    for x in range(querys):
         pnt = numpy.array(gendata.gensingle(d,bnds,clsses))
         reslt = kdt.query(numpy.array([pnt[:-1]]))
-        print pnt,"->",reslt
+        print(pnt,"->",reslt)
     etime = time.time()
-    print etime-stime,'/',querys,'=',(etime-stime)/float(querys),'avg wallclock time per query'
+    print(etime-stime,'/',querys,'=',(etime-stime)/float(querys),'avg wallclock time per query')
     #foo.addEvidence(data[:,:-1],data[:,-1])
     #foo.num_checks = 0
     #for x in xrange(querys):
--- ./QSTK/qstklearn/mldiagnostics.py	(original)
+++ ./QSTK/qstklearn/mldiagnostics.py	(refactored)
@@ -50,7 +50,7 @@
 		savefig(filename,format='pdf')
 
 	def runDiagnostics(self,filename):
-		for i,lambdaVal in zip(range(len(self.lambdaArray)),self.lambdaArray):
+		for i,lambdaVal in zip(list(range(len(self.lambdaArray))),self.lambdaArray):
 			learner = copy.copy(self.learner())# is deep copy required
 			# setLambda needs to be a supported function for all ML strategies.
 			learner.setLambda(lambdaVal)
--- ./QSTK/qstklearn/parallelknn.py	(original)
+++ ./QSTK/qstklearn/parallelknn.py	(refactored)
@@ -90,15 +90,15 @@
     temp2= np.zeros (data.shape[0])
     
     if (allQueries.shape[1] != (data.shape[1] -1) ):
-        print "ERROR: Data and query points are not of the same dimension"
+        print("ERROR: Data and query points are not of the same dimension")
         raise ValueError
         #if ends
     if (k < 1):
-        print "ERROR: K should be >= 1"
+        print("ERROR: K should be >= 1")
         raise ValueError
         #if ends    
     if (k > data.shape[0]):
-        print "ERROR: K is greater than the total number of data points."
+        print("ERROR: K is greater than the total number of data points.")
         raise ValueError
         #if ends
     
@@ -151,8 +151,8 @@
         try:
             data= np.vstack ((data, newData))
         except Exception as ex:
-            print "Type of exception: "+ str(type (ex))
-            print "args: " + str(ex.args)
+            print("Type of exception: "+ str(type (ex)))
+            print("args: " + str(ex.args))
             #except ends   
     #addEvidence ends
 
@@ -171,11 +171,11 @@
     #answer = query(a, 5, 'mean')
     
     for i in range (0, answer.shape[0]):
-        print answer[i]
+        print(answer[i])
     #end for    
     
     
-    print "The answer is: "
+    print("The answer is: ")
 
 if __name__ == '__main__':
     main (sys.argv)
--- ./QSTK/qstksim/__init__.py	(original)
+++ ./QSTK/qstksim/__init__.py	(refactored)
@@ -11,4 +11,4 @@
 @summary: Init for simulator code
 
 '''
-from tradesim import _calculate_leverage, tradesim, tradesim_comb
+from .tradesim import _calculate_leverage, tradesim, tradesim_comb
--- ./QSTK/qstksim/tradesim.py	(original)
+++ ./QSTK/qstksim/tradesim.py	(refactored)
@@ -161,12 +161,12 @@
     """
 
     if alloc.index[-1] > df_historic.index[-1]:
-        print "Historical Data not sufficient"
+        print("Historical Data not sufficient")
         indices, = np.where(alloc.index <= df_historic.index[-1])
         alloc = alloc.reindex(index = alloc.index[indices])
 
     if alloc.index[0] < df_historic.index[0]:
-        print "Historical Data not sufficient"
+        print("Historical Data not sufficient")
         indices, = np.where(alloc.index >= df_historic.index[0])
         alloc = alloc.reindex(index = alloc.index[indices])
 
@@ -176,7 +176,7 @@
 
     #write column headings
     if log!="false":
-        print "writing transaction log to "+log
+        print("writing transaction log to "+log)
         log_file.write("Symbol,Company Name,Txn Type,Txn Date/Time, Gross Leverage, Net Leverage,# Shares,Price,Txn Value,Portfolio # Shares,Portfolio Value,Commission,Slippage(10BPS),Comments\n")
 
     #a dollar is always worth a dollar
@@ -474,4 +474,4 @@
                    f_commision_share, i_target_leverage, f_rate_borrow, log, b_exposure)
 
 if __name__ == '__main__':
-    print "Done"
+    print("Done")
--- ./QSTK/qstksim/tests/test_tradesim.py	(original)
RefactoringTool: Refactored ./QSTK/qstksim/tests/test_tradesim_SPY.py
RefactoringTool: Refactored ./QSTK/qstksim/tests/test_tradesim_SPY_Short.py
RefactoringTool: Refactored ./QSTK/qstkstrat/strategies.py
RefactoringTool: Refactored ./QSTK/qstkstudy/EventProfiler.py
RefactoringTool: Refactored ./QSTK/qstkstudy/Events.py
RefactoringTool: Refactored ./QSTK/qstkstudy/study.py
RefactoringTool: Refactored ./QSTK/qstktest/testDataAccess.py
+++ ./QSTK/qstksim/tests/test_tradesim.py	(refactored)
@@ -81,11 +81,11 @@
               qstksim.tradesim( self.df_alloc, self.df_close, 10000, 1, True, 0.02,
                            5, 0.02 )
 
-        print 'Commision Costs : ' + str(f_commision)
-        print 'Slippage : ' + str(f_slippage)
-        print 'Short Borrowing Cost : ' + str(f_borrow)
-        print 'Leverage : '	
-        print ts_leverage
+        print('Commision Costs : ' + str(f_commision))
+        print('Slippage : ' + str(f_slippage))
+        print('Short Borrowing Cost : ' + str(f_borrow))
+        print('Leverage : ')	
+        print(ts_leverage)
         np.testing.assert_approx_equal(df_funds[-1], \
              10000 * self.i_open_result, significant = 3)
         self.assertTrue(True)
--- ./QSTK/qstksim/tests/test_tradesim_SPY.py	(original)
+++ ./QSTK/qstksim/tests/test_tradesim_SPY.py	(refactored)
@@ -71,11 +71,11 @@
               qstksim.tradesim( self.df_alloc, self.df_close, 10000, 1, True, 0.02,
                            5, 0.02)
 
-        print 'Commision Costs : ' + str(f_commision)
-        print 'Slippage : ' + str(f_slippage)
-        print 'Short Borrowing Cost : ' + str(f_borrow)
-        print 'Leverage : '	
-        print ts_leverage
+        print('Commision Costs : ' + str(f_commision))
+        print('Slippage : ' + str(f_slippage))
+        print('Short Borrowing Cost : ' + str(f_borrow))
+        print('Leverage : ')	
+        print(ts_leverage)
         np.testing.assert_approx_equal(df_funds[-1], \
              10000 * self.i_open_result, significant = 3)
         self.assertTrue(True)
--- ./QSTK/qstksim/tests/test_tradesim_SPY_Short.py	(original)
+++ ./QSTK/qstksim/tests/test_tradesim_SPY_Short.py	(refactored)
@@ -71,11 +71,11 @@
               qstksim.tradesim( self.df_alloc, self.df_close, 10000, 1, True,
                                 0.02, 5, 0.02)
 
-        print 'Commision Costs : ' + str(f_commision)
-        print 'Slippage : ' + str(f_slippage)
-        print 'Short Borrowing Cost : ' + str(f_borrow)
-        print 'Leverage : '	
-        print ts_leverage
+        print('Commision Costs : ' + str(f_commision))
+        print('Slippage : ' + str(f_slippage))
+        print('Short Borrowing Cost : ' + str(f_borrow))
+        print('Leverage : ')	
+        print(ts_leverage)
         np.testing.assert_approx_equal(df_funds[-1], \
              10000 * self.i_open_result, significant = 3)
         self.assertTrue(True)
--- ./QSTK/qstkstrat/strategies.py	(original)
+++ ./QSTK/qstkstrat/strategies.py	(refactored)
@@ -32,12 +32,12 @@
     @param dFuncArgs: Dict of function args passed to the function
     @return DataFrame corresponding to the portfolio allocations
     """    
-    if not dFuncArgs.has_key('dmPrice'):
-        print 'Error: Strategy requires dmPrice information'
-        return
-    
-    if not dFuncArgs.has_key('lfWeights'):
-        print 'Error: Strategy requires weight information'
+    if 'dmPrice' not in dFuncArgs:
+        print('Error: Strategy requires dmPrice information')
+        return
+    
+    if 'lfWeights' not in dFuncArgs:
+        print('Error: Strategy requires weight information')
         return
     
     dmPrice = dFuncArgs['dmPrice']
@@ -60,8 +60,8 @@
     @param dFuncArgs: Dict of function args passed to the function
     @return DataFrame corresponding to the portfolio allocations
     """        
-    if not dFuncArgs.has_key('dmPrice'):
-        print 'Error: Strategy requires dmPrice information'
+    if 'dmPrice' not in dFuncArgs:
+        print('Error: Strategy requires dmPrice information')
         return
     
     dmPrice = dFuncArgs['dmPrice']
@@ -85,24 +85,24 @@
     @param dFuncArgs: Dict of function args passed to the function
     @return DataFrame corresponding to the portfolio allocations
     """         
-    if not dFuncArgs.has_key('dmPrice'):
-        print 'Error:', stratMark.__name__, 'requires dmPrice information'
-        return
-    
-    if not dFuncArgs.has_key('sPeriod'):
-        print 'Error:', stratMark.__name__, 'requires rebalancing period'
-        return
-
-    if not dFuncArgs.has_key('lLookback'):
-        print 'Error:', stratMark.__name__, 'requires lookback'
-        return
-
-    if not dFuncArgs.has_key('sMarkPoint'):
-        print 'Error:', stratMark.__name__, 'requires markowitz point to choose'
+    if 'dmPrice' not in dFuncArgs:
+        print('Error:', stratMark.__name__, 'requires dmPrice information')
+        return
+    
+    if 'sPeriod' not in dFuncArgs:
+        print('Error:', stratMark.__name__, 'requires rebalancing period')
+        return
+
+    if 'lLookback' not in dFuncArgs:
+        print('Error:', stratMark.__name__, 'requires lookback')
+        return
+
+    if 'sMarkPoint' not in dFuncArgs:
+        print('Error:', stratMark.__name__, 'requires markowitz point to choose')
         return 
 
     ''' Optional variables '''
-    if not dFuncArgs.has_key('bAddAlpha'):
+    if 'bAddAlpha' not in dFuncArgs:
         bAddAlpha = False
     else:
         bAddAlpha = dFuncArgs['bAddAlpha']
@@ -121,7 +121,7 @@
         dtStart = dtDate - pand.DateOffset(days=lLookback)
         
         if( dtStart < dmPrice.index[0] ):
-            print 'Error, not enough data to rebalance'
+            print('Error, not enough data to rebalance')
             continue  
        
         naRets = dmPrice.ix[ dtStart:dtDate ].values.copy()
@@ -184,7 +184,7 @@
             lInd = 0    
                 
         else:
-            print 'Warning: invalid sMarkPoint'''
+            print('Warning: invalid sMarkPoint''')
             return
     
         
--- ./QSTK/qstkstudy/EventProfiler.py	(original)
+++ ./QSTK/qstkstudy/EventProfiler.py	(refactored)
@@ -67,7 +67,7 @@
     # Study Params
     na_mean = np.mean(na_event_rets, axis=0)
     na_std = np.std(na_event_rets, axis=0)
-    li_time = range(-i_lookback, i_lookforward + 1)
+    li_time = list(range(-i_lookback, i_lookforward + 1))
 
     # Plotting the chart
     plt.clf()
--- ./QSTK/qstkstudy/Events.py	(original)
+++ ./QSTK/qstkstudy/Events.py	(refactored)
@@ -43,10 +43,10 @@
 	window = 10
 
 	if verbose:
-            print __name__ + " reading data"
+            print(__name__ + " reading data")
 	close = d_data[closefield]
 	if verbose:
-            print __name__ + " finding events"
+            print(__name__ + " finding events")
 	for symbol in symbols:
 	    close[symbol][close[symbol]>= 1.0] = np.NAN
 	    for i in range(1,len(close[symbol])):
--- ./QSTK/qstkstudy/study.py	(original)
+++ ./QSTK/qstkstudy/study.py	(refactored)
@@ -16,7 +16,7 @@
     dataobj = da.DataAccess('Yahoo')
     ls_keys = ['open', 'high', 'low', 'close', 'volume', 'actual_close']
     ldf_data = dataobj.get_data(ldt_timestamps, ls_symbols, ls_keys)
-    d_data = dict(zip(ls_keys, ldf_data))
+    d_data = dict(list(zip(ls_keys, ldf_data)))
 
     eventMatrix = ev.find_events(ls_symbols,d_data,verbose=True)
     ep.eventprofiler(eventMatrix, d_data,
--- ./QSTK/qstktest/testDataAccess.py	(original)
+++ ./QSTK/qstktest/testDataAccess.py	(refactored)
@@ -14,7 +14,7 @@
 import QSTK.qstkutil.DataAccess as da
 import tables as pt
 import numpy as np
-from itertools import izip 
+ 
 import time
 import dircache
 
@@ -22,7 +22,7 @@
         
             listOfStocks=list()
             #Path does not exist
-            print "Reading in all stock names..."
+            print("Reading in all stock names...")
             fileExtensionToRemove=".h5"   
             
             for path in listOfPaths:
@@ -30,9 +30,9 @@
                
                stocksAtThisPath= dircache.listdir(str(path))
                #Next, throw away everything that is not a .h5 And these are our stocks!
-               stocksAtThisPath = filter (lambda x:(str(x).find(str(fileExtensionToRemove)) > -1), stocksAtThisPath)
+               stocksAtThisPath = [x for x in stocksAtThisPath if (str(x).find(str(fileExtensionToRemove)) > -1)]
                #Now, we remove the .h5 to get the name of the stock
-               stocksAtThisPath = map(lambda x:(x.partition(str(fileExtensionToRemove))[0]),stocksAtThisPath)
RefactoringTool: Refactored ./QSTK/qstktest/testLearner.py
RefactoringTool: Refactored ./QSTK/qstktools/YahooDataPull.py
RefactoringTool: Refactored ./QSTK/qstktools/csv2fund.py
RefactoringTool: Refactored ./QSTK/qstktools/report.py
RefactoringTool: Refactored ./QSTK/qstkutil/DataAccess.py
+               stocksAtThisPath = [(x.partition(str(fileExtensionToRemove))[0]) for x in stocksAtThisPath]
                
                for stock in stocksAtThisPath:
                    listOfStocks.append(stock)
@@ -44,7 +44,7 @@
 
 if __name__ == '__main__':
 	
-	print "Starting..."
+	print("Starting...")
 	dataItemsList=[]
 	
 	dataItemsList.append('alphaValue')
@@ -100,7 +100,7 @@
 	            alphaList= alpha.getStockDataList(stock, 'volume')
 	            ctr=0
 	            for val in alphaList:
-	                print "stock: " + str(stock) + ", val: "+str(val) + ", ts: " + str(listOfTS[ctr])
+	                print("stock: " + str(stock) + ", val: "+str(val) + ", ts: " + str(listOfTS[ctr]))
 	                ctr+=1
 	                
-	print "DONE!"                
+	print("DONE!")                
--- ./QSTK/qstktest/testLearner.py	(original)
+++ ./QSTK/qstktest/testLearner.py	(refactored)
@@ -132,13 +132,13 @@
 	#
 	# Compare to ground truth
 	#
-	print 'trainsize ' + str(trainsize)
+	print('trainsize ' + str(trainsize))
 	Ytruth = Y[-trainsize:]
-	print 'Ytruth.shape ' + str(Ytruth.shape)
+	print('Ytruth.shape ' + str(Ytruth.shape))
 	Xtest = dataX[-trainsize:,:]
-	print 'Xtest.shape ' + str(Xtest.shape)
+	print('Xtest.shape ' + str(Xtest.shape))
 	Ytest = learner.query(Xtest) # to check every point
-	print 'Ytest.shape ' + str(Ytest.shape)
+	print('Ytest.shape ' + str(Ytest.shape))
 	
 	plt.clf()
 	plt.scatter(Ytruth,Ytest,edgecolors='none')
@@ -148,7 +148,7 @@
 	plt.ylabel('Estimated')
 	savefig("scatterdata.png", format='png')
 	
-	print corrcoef(Ytruth,Ytest)
+	print(corrcoef(Ytruth,Ytest))
 
 if __name__ == '__main__':
 	main()
--- ./QSTK/qstktools/YahooDataPull.py	(original)
+++ ./QSTK/qstktools/YahooDataPull.py	(refactored)
@@ -2,8 +2,8 @@
 Pulling Yahoo CSV Data
 '''
 
-import urllib2
-import urllib
+import urllib.request, urllib.error, urllib.parse
+import urllib.request, urllib.parse, urllib.error
 import datetime
 import os
 import QSTK.qstkutil.DataAccess as da
@@ -35,9 +35,9 @@
         # print "Getting {0}".format(symbol)
 
         try:
-            params = urllib.urlencode ({'a':0, 'b':1, 'c':2000, 'd':_now.month-1, 'e':_now.day, 'f':_now.year, 's': symbol})
+            params = urllib.parse.urlencode ({'a':0, 'b':1, 'c':2000, 'd':_now.month-1, 'e':_now.day, 'f':_now.year, 's': symbol})
             url = "http://ichart.finance.yahoo.com/table.csv?%s" % params
-            url_get = urllib2.urlopen(url)
+            url_get = urllib.request.urlopen(url)
             
             header = url_get.readline()
             symbol_data.append (url_get.readline())
@@ -58,16 +58,16 @@
 
             f.close()
 
-        except urllib2.HTTPError:
+        except urllib.error.HTTPError:
             miss_ctr += 1
             ls_missed_syms.append(symbol_name)
-            print "Unable to fetch data for stock: {0} at {1}".format(symbol_name, url)
-        except urllib2.URLError:
+            print("Unable to fetch data for stock: {0} at {1}".format(symbol_name, url))
+        except urllib.error.URLError:
             miss_ctr += 1
             ls_missed_syms.append(symbol_name)
-            print "URL Error for stock: {0} at {1}".format(symbol_name, url)
+            print("URL Error for stock: {0} at {1}".format(symbol_name, url))
 
-    print "All done. Got {0} stocks. Could not get {1}".format(len(ls_symbols) - miss_ctr, miss_ctr)
+    print("All done. Got {0} stocks. Could not get {1}".format(len(ls_symbols) - miss_ctr, miss_ctr))
     return ls_missed_syms
 
 
--- ./QSTK/qstktools/csv2fund.py	(original)
+++ ./QSTK/qstktools/csv2fund.py	(refactored)
@@ -78,7 +78,7 @@
 
     #first pass
     reader=csv.reader(open(filename,'rU'), delimiter=',')
-    reader.next()
+    next(reader)
     prev=0
     first=1
     diffs=[]
@@ -256,7 +256,7 @@
     @return commissions : value of slippage over the csv time
     """
     reader=csv.reader(open(filename,'rU'), delimiter=',')
-    reader.next()
+    next(reader)
     symbols=[]
     dates=[]
     for row in reader:
@@ -265,9 +265,9 @@
                 symbols.append(row[0])
         if not(dp.parse(row[3]) in dates):
             dates.append(dp.parse(row[3]))
-    print symbols
+    print(symbols)
     reader=csv.reader(open(filename,'rU'), delimiter=',')
-    reader.next()
+    next(reader)
     if not("_CASH" in symbols):
         symbols.append("_CASH")
     vals=numpy.zeros([len(dates),len(symbols)])
@@ -309,7 +309,7 @@
     column_index = sorted(share_table.columns)
     share_table = share_table.reindex(index=time_index, columns=column_index)
     i_start_cash = share_table["_CASH"].ix[0]
-    print i_start_cash
+    print(i_start_cash)
     return [share_table, commissions, i_start_cash]
 
 # def ofx2fund(filename, start_val):
@@ -408,14 +408,14 @@
 if __name__ == "__main__":
     filename = "Strat.csv"
     plot_name = "Strategy"
-    print "load csv"
+    print("load csv")
     [share_table, commissions, i_start_cash] = csv2fund(filename)
-    print share_table
+    print(share_table)
     [fund_ts, ts_leverage] = share_table2fund(share_table)
-    print "print report"
-    print fund_ts
+    print("print report")
+    print(fund_ts)
     report.print_stats(fund_ts, ["SPY"], plot_name, directory="./" + plot_name, commissions=commissions, i_start_cash=i_start_cash)
-    print "analyze transactions"
+    print("analyze transactions")
     #Generate new plot based off transactions alone
     analyze_transactions(filename, plot_name, share_table, True)
-    print "done"
+    print("done")
--- ./QSTK/qstktools/report.py	(original)
+++ ./QSTK/qstktools/report.py	(refactored)
@@ -26,7 +26,7 @@
 from matplotlib import pyplot
 from matplotlib import gridspec
 import matplotlib.dates as mdates
-import cPickle
+import pickle
 import datetime as dt
 import pandas
 import numpy as np
@@ -433,7 +433,7 @@
         splot_dir =  path.join(directory, splot)
         ostream = open(sfile, "wb")
         ostream.write("<pre>")
-        print "writing to ", sfile
+        print("writing to ", sfile)
 
         if type(original)==type("str"):
             if type(leverage)!=type(False):
@@ -706,7 +706,7 @@
         splot = "plot-%s.png" % name
         splot_dir =  path.join(directory, splot)
         ostream = open(sfile, "wb")
-        print "writing to ", sfile
+        print("writing to ", sfile)
 
         if type(original)==type("str"):
             if type(leverage)!=type(False):
@@ -842,8 +842,8 @@
         lf_vals.append(get_annual_return(benchmark_close[bench_sym], years))
         ls_labels.append(bench_sym)
 
-    print lf_vals
-    print ls_labels
+    print(lf_vals)
+    print(ls_labels)
     ls_year_labels=[]
     for i in range(0,len(years)):
         ls_year_labels.append(str(years[i]))
@@ -915,7 +915,7 @@
 def print_bar_chart(llf_vals, ls_fund_labels, ls_year_labels, s_filename):
     llf_vals=((1,2,3),(3,2,1),(2,2,2))
     amin=min(min(llf_vals))
-    print amin
+    print(amin)
     min_lim=0
     if amin<0:
         min_lim = amin
@@ -1167,7 +1167,7 @@
 
     if(ROBUST == 1):
         ANINPUT = open(sys.argv[2],"r")
-        FUNDS = cPickle.load(ANINPUT)
+        FUNDS = pickle.load(ANINPUT)
         generate_robust_report(FUNDS, FILENAME)
     else:
         FILES = sys.argv
@@ -1175,7 +1175,7 @@
         FUNDS = []
         for AFILE in FILES:
             ANINPUT = open(AFILE,"r")
-            FUND = cPickle.load(ANINPUT)
+            FUND = pickle.load(ANINPUT)
             FUNDS.append(FUND)
         generate_report(FUNDS, FILES, FILENAME)
 
--- ./QSTK/qstkutil/DataAccess.py	(original)
+++ ./QSTK/qstkutil/DataAccess.py	(refactored)
@@ -93,11 +93,11 @@
                 self.scratchdir = os.path.join(tempfile.gettempdir(), 'QSScratch')
 
         if verbose:
-            print "Scratch Directory: ", self.scratchdir
-            print "Data Directory: ", self.rootdir
+            print("Scratch Directory: ", self.scratchdir)
+            print("Data Directory: ", self.rootdir)
 
         if not os.path.isdir(self.rootdir):
-            print "Data path provided is invalid"
+            print("Data path provided is invalid")
             raise
 
         if not os.path.exists(self.scratchdir):
@@ -245,7 +245,7 @@
                 if bIncDelist:
                     lsDelPaths = self.getPathOfFile( symbol, True )
                     if file_path == None and len(lsDelPaths) > 0:
-                        print 'Found delisted paths:', lsDelPaths
+                        print('Found delisted paths:', lsDelPaths)
                 
                 ''' If we don't have a file path continue... unless we have delisted paths '''
                 if (type (file_path) != type ("random string")):
@@ -256,7 +256,7 @@
                     _file = open(file_path, "rb")
             except IOError:
                 # If unable to read then continue. The value for this stock will be nan
-                print _file
+                print(_file)
                 continue;
                 
             assert( not _file == None or bIncDelist == True )
@@ -264,8 +264,8 @@
             if _file != None:
                 if (self.source==DataSource.CUSTOM) or (self.source==DataSource.YAHOO)or (self.source==DataSource.MLT):
                     creader = csv.reader(_file)
-                    row=creader.next()
-                    row=creader.next()
+                    row=next(creader)
+                    row=next(creader)
                     #row.pop(0)
                     for i, item in enumerate(row):
                         if i==0:
@@ -315,7 +315,7 @@
                         
             #now remove all the columns except the timestamps and one data column
             if verbose:
-                print self.getPathOfFile(symbol)
+                print(self.getPathOfFile(symbol))
             
             ''' Fix 1 row case by reshaping '''
             if( naData.ndim == 1 ):
@@ -337,7 +337,7 @@
                 num_rows= temp_np.shape[0]
 
                 
-                symbol_ts_list = range(num_rows) # preallocate
+                symbol_ts_list = list(range(num_rows)) # preallocate
                 for i in range (0, num_rows):
 
                     timebase = temp_np[i][0]
@@ -460,7 +460,7 @@
         # final complete filename
         cachefilename = self.scratchdir + '/' + hashstr + '.pkl'
         if verbose:
-            print "cachefilename is: " + cachefilename
+            print("cachefilename is: " + cachefilename)
 
         # now eather read the pkl file, or do a hardread
         readfile = False  # indicate that we have not yet read the file
@@ -476,7 +476,7 @@
         if os.path.exists(cachefilename):
             if ((dt.datetime.now() - dt.datetime.fromtimestamp(os.path.getmtime(cachefilename))) < cachestall):
                 if verbose:
-                    print "cache hit"
+                    print("cache hit")
                 try:
                     cachefile = open(cachefilename, "rb")
                     start = time.time() # start timer
@@ -486,36 +486,36 @@
                     cachefile.close()
                 except IOError:
                     if verbose:
-                        print "error reading cache: " + cachefilename
-                        print "recovering..."
+                        print("error reading cache: " + cachefilename)
+                        print("recovering...")
                 except EOFError:
                     if verbose:
-                        print "error reading cache: " + cachefilename
-                        print "recovering..."
+                        print("error reading cache: " + cachefilename)
+                        print("recovering...")
         if (readfile!=True):
             if verbose:
-                print "cache miss"
-                print "beginning hardread"
+                print("cache miss")
+                print("beginning hardread")
             start = time.time() # start timer
             if verbose:
-                print "data_item(s): " + str(data_item)
-                print "symbols to read: " + str(symbol_list)
+                print("data_item(s): " + str(data_item))
+                print("symbols to read: " + str(symbol_list))
             retval = self.get_data_hardread(ts_list, 
                 symbol_list, data_item, verbose, bIncDelist)
             elapsed = time.time() - start # end timer
             if verbose:
-                print "end hardread"
-                print "saving to cache"
+                print("end hardread")
+                print("saving to cache")
             try:
                 cachefile = open(cachefilename,"wb")
                 pkl.dump(retval, cachefile, -1)
-                os.chmod(cachefilename,0666)
+                os.chmod(cachefilename,0o666)
             except IOError:
-                print "error writing cache: " + cachefilename
+                print("error writing cache: " + cachefilename)
             if verbose:
-                print "end saving to cache"
+                print("end saving to cache")
             if verbose:
-                print "reading took " + str(elapsed) + " seconds"
+                print("reading took " + str(elapsed) + " seconds")
 
         if type(retval) == type([]):
             for i, df_single in enumerate(retval):
@@ -555,7 +555,7 @@
             lsPaths.sort()
             return lsPaths
 
-        print "Did not find path to " + str(symbol_name) + ". Looks like this file is missing"
+        print("Did not find path to " + str(symbol_name) + ". Looks like this file is missing")
 
     def getPathOfCSVFile(self, symbol_name):
 
@@ -565,7 +565,7 @@
                     return (str(str(path1)+str(symbol_name)+".csv"))
                     #if ends
                 #for ends
-        print "Did not find path to " + str (symbol_name)+". Looks like this file is missing"    
+        print("Did not find path to " + str (symbol_name)+". Looks like this file is missing")    
 
     def get_all_symbols (self):
         '''
@@ -584,9 +584,9 @@
             #print str(path)
             stocksAtThisPath = dircache.listdir(str(path))
             #Next, throw away everything that is not a .pkl And these are our stocks!
-            stocksAtThisPath = filter (lambda x:(str(x).find(str(self.fileExtensionToRemove)) > -1), stocksAtThisPath)
+            stocksAtThisPath = [x for x in stocksAtThisPath if (str(x).find(str(self.fileExtensionToRemove)) > -1)]
             #Now, we remove the .pkl to get the name of the stock
-            stocksAtThisPath = map(lambda x:(x.partition(str(self.fileExtensionToRemove))[0]),stocksAtThisPath)
+            stocksAtThisPath = [(x.partition(str(self.fileExtensionToRemove))[0]) for x in stocksAtThisPath]
 
             listOfStocks.extend(stocksAtThisPath)
             #for stock in stocksAtThisPath:
@@ -645,11 +645,11 @@
 
         #Next, throw away everything that is not a .pkl And these are our stocks!
         try:
-            stocksAtThisPath = filter (lambda x:(str(x).find(str(self.fileExtensionToRemove)) > -1), stocksAtThisPath)
+            stocksAtThisPath = [x for x in stocksAtThisPath if (str(x).find(str(self.fileExtensionToRemove)) > -1)]
             #Now, we remove the .pkl to get the name of the stock
-            stocksAtThisPath = map(lambda x:(x.partition(str(self.fileExtensionToRemove))[0]),stocksAtThisPath)
+            stocksAtThisPath = [(x.partition(str(self.fileExtensionToRemove))[0]) for x in stocksAtThisPath]
         except:
-            print "error: no path to " + subdir
+            print("error: no path to " + subdir)
             stocksAtThisPath = list()
 
         return stocksAtThisPath
@@ -671,7 +671,7 @@
         '''
 
         if (self.source != DataSource.COMPUSTAT):
-            print 'Function only valid for Compustat objects!'
+            print('Function only valid for Compustat objects!')
             return []
 
         return DataItem.COMPUSTAT
@@ -725,7 +725,7 @@
         else:
             retstr = "DataAccess internal error\n"
 
-        print retstr
+        print(retstr)
         return retstr
         #get_sublists
 
@@ -737,18 +737,18 @@
     
     # Check if GOOG is a valid symbol.
     val = c_dataobj.check_symbol('GOOG')
-    print "Is GOOG a valid symbol? :" , val
RefactoringTool: No changes to ./QSTK/qstkutil/fundutil.py
RefactoringTool: Refactored ./QSTK/qstkutil/qsdateutil.py
RefactoringTool: Refactored ./QSTK/qstkutil/tsutil.py
RefactoringTool: No changes to ./QSTK/qstkutil/utils.py
RefactoringTool: No changes to ./QSTK/qstkutil/tests/test_utils.py
RefactoringTool: Files that were modified:
RefactoringTool: ./ez_setup.py
RefactoringTool: ./setup.py
RefactoringTool: ./Bin/DataGenerate_SineWave.py
RefactoringTool: ./Bin/Data_CSV.py
RefactoringTool: ./Bin/converter.py
RefactoringTool: ./Bin/csvformatter.py
RefactoringTool: ./Bin/gen_nyse_dates.py
RefactoringTool: ./Bin/investors_report.py
RefactoringTool: ./Bin/sinewave_data_generator.py
RefactoringTool: ./Examples/Validation.py
RefactoringTool: ./Examples/Basic/numpy-tutorial.py
RefactoringTool: ./Examples/Basic/pandas-tutorial.py
RefactoringTool: ./Examples/Basic/tutorial1.py
RefactoringTool: ./Examples/Basic/tutorial2.py
RefactoringTool: ./Examples/Basic/tutorial3.py
RefactoringTool: ./Examples/Basic/tutorial4.py
RefactoringTool: ./Examples/Basic/tutorial5.py
RefactoringTool: ./Examples/Basic/tutorial8.py
RefactoringTool: ./Examples/DataAccess/setexample.py
RefactoringTool: ./Examples/EventProfiler/tutorial.py
RefactoringTool: ./Examples/FeatureSearch/code.py
RefactoringTool: ./Examples/FeatureSearch/functions.py
RefactoringTool: ./Examples/Features/featuretest.py
RefactoringTool: ./QSTK/__init__.py
RefactoringTool: ./QSTK/qstkfeat/__init__.py
RefactoringTool: ./QSTK/qstkfeat/classes.py
RefactoringTool: ./QSTK/qstkfeat/features.py
RefactoringTool: ./QSTK/qstkfeat/featutil.py
RefactoringTool: ./QSTK/qstklearn/1knn.py
RefactoringTool: ./QSTK/qstklearn/fastknn.py
RefactoringTool: ./QSTK/qstklearn/gendata.py
RefactoringTool: ./QSTK/qstklearn/hmm.py
RefactoringTool: ./QSTK/qstklearn/kdtknn.py
RefactoringTool: ./QSTK/qstklearn/mldiagnostics.py
RefactoringTool: ./QSTK/qstklearn/parallelknn.py
RefactoringTool: ./QSTK/qstksim/__init__.py
RefactoringTool: ./QSTK/qstksim/tradesim.py
RefactoringTool: ./QSTK/qstksim/tests/test_tradesim.py
RefactoringTool: ./QSTK/qstksim/tests/test_tradesim_SPY.py
RefactoringTool: ./QSTK/qstksim/tests/test_tradesim_SPY_Short.py
RefactoringTool: ./QSTK/qstkstrat/strategies.py
RefactoringTool: ./QSTK/qstkstudy/EventProfiler.py
RefactoringTool: ./QSTK/qstkstudy/Events.py
RefactoringTool: ./QSTK/qstkstudy/study.py
RefactoringTool: ./QSTK/qstktest/testDataAccess.py
RefactoringTool: ./QSTK/qstktest/testLearner.py
RefactoringTool: ./QSTK/qstktools/YahooDataPull.py
RefactoringTool: ./QSTK/qstktools/csv2fund.py
RefactoringTool: ./QSTK/qstktools/report.py
RefactoringTool: ./QSTK/qstkutil/DataAccess.py
RefactoringTool: ./QSTK/qstkutil/fundutil.py
RefactoringTool: ./QSTK/qstkutil/qsdateutil.py
RefactoringTool: ./QSTK/qstkutil/tsutil.py
RefactoringTool: ./QSTK/qstkutil/utils.py
RefactoringTool: ./QSTK/qstkutil/tests/test_utils.py
RefactoringTool: Warnings/messages while refactoring:
RefactoringTool: ### In file ./QSTK/qstklearn/fastknn.py ###
RefactoringTool: Line 12: absolute and local imports together
RefactoringTool: ### In file ./QSTK/qstklearn/kdtknn.py ###
RefactoringTool: Line 12: absolute and local imports together
+    print("Is GOOG a valid symbol? :" , val)
     
     # Check if QWERTY is a valid symbol.
     val = c_dataobj.check_symbol('QWERTY')
-    print "Is QWERTY a valid symbol? :" , val
+    print("Is QWERTY a valid symbol? :" , val)
 
     # Check if EBAY is part of SP5002012 list.
     val = c_dataobj.check_symbol('EBAY', s_list='sp5002012')
-    print "Is EBAY a valid symbol in SP5002012 list? :", val
+    print("Is EBAY a valid symbol in SP5002012 list? :", val)
 
     # Check if GLD is part of SP5002012 after checking if GLD is a valid symbol.
     val = c_dataobj.check_symbol('GLD')
-    print "Is GLD a valid symbol? : ", val
+    print("Is GLD a valid symbol? : ", val)
     val = c_dataobj.check_symbol('GLD', 'sp5002012')
-    print "Is GLD a valid symbol in sp5002012 list? :", val
+    print("Is GLD a valid symbol in sp5002012 list? :", val)
--- ./QSTK/qstkutil/qsdateutil.py	(original)
+++ ./QSTK/qstkutil/qsdateutil.py	(refactored)
@@ -27,7 +27,7 @@
         # filename = os.environ['QS'] + "/qstkutil/NYSE_dates.txt"
         filename = os.path.join(os.path.dirname(__file__), 'NYSE_dates.txt')
     except KeyError:
-        print "Please be sure you have NYSE_dates.txt in the qstkutil directory"
+        print("Please be sure you have NYSE_dates.txt in the qstkutil directory")
 
     datestxt = np.loadtxt(filename, dtype=str)
     dates = []
@@ -172,8 +172,8 @@
         # filename = os.environ['QS'] + "/qstkutil/NYSE_dates.txt"
         filename = os.path.join(os.path.dirname(__file__), 'NYSE_dates.txt')
     except KeyError:
-        print "Please be sure to set the value for QS in config.sh or\n"
-        print "in local.sh and then \'source local.sh\'.\n"
+        print("Please be sure to set the value for QS in config.sh or\n")
+        print("in local.sh and then \'source local.sh\'.\n")
 
     datestxt = np.loadtxt(filename,dtype=str)
     dates=[]
@@ -198,8 +198,8 @@
         # filename = os.environ['QS'] + "/qstkutil/NYSE_dates.txt"
         filename = os.path.join(os.path.dirname(__file__), 'NYSE_dates.txt')
     except KeyError:
-        print "Please be sure to set the value for QS in config.sh or\n"
-        print "in local.sh and then \'source local.sh\'.\n"
+        print("Please be sure to set the value for QS in config.sh or\n")
+        print("in local.sh and then \'source local.sh\'.\n")
 
     datestxt = np.loadtxt(filename,dtype=str)
 
@@ -263,7 +263,7 @@
         dr_range = pd.DateRange(dt_start, dt_end,
                                 timeRule=s_period[1:])
         dr_range = np.asarray(dr_range)
-        li_even = np.array(range(len(dr_range)))
+        li_even = np.array(list(range(len(dr_range))))
         dr_range = dr_range[li_even[li_even % 2 == 0]]
     else:
         dr_range = pd.DateRange(dt_start, dt_end,
--- ./QSTK/qstkutil/tsutil.py	(original)
+++ ./QSTK/qstkutil/tsutil.py	(refactored)
@@ -324,8 +324,8 @@
         pass
         import nagint as nag
     except ImportError:
-        print 'Could not import NAG library'
-        print 'make sure nagint.so is in your python path'
+        print('Could not import NAG library')
+        print('make sure nagint.so is in your python path')
         return ([], 0, 0)
     
     # Get number of stocks """
@@ -367,7 +367,7 @@
         naReturn = nag.optPort( naConstraints, naLower, naUpper, \
                                       naCov, naInitial, lNagDebug )
     except RuntimeError:
-        print 'NAG Runtime error with target: %.02lf'%(f_target)
+        print('NAG Runtime error with target: %.02lf'%(f_target))
         return ( naInitial, sqrt( naCov[0][0] ) )  
     #return semi-junk to not mess up the rest of the plot
 
@@ -402,7 +402,7 @@
         from cvxopt.solvers import qp, options
 
     except ImportError:
-        print 'Could not import CVX library'
+        print('Could not import CVX library')
         raise
     
     ''' Get number of stocks '''
@@ -481,7 +481,7 @@
     (fMin, fMax) = getRetRange(False, naLower, naUpper, naExpected, "long") 
     #print (fTarget, fMin, fMax)
     if fTarget<fMin or fTarget>fMax:
-        print "Target not possible", fTarget, fMin, fMax
+        print("Target not possible", fTarget, fMin, fMax)
         b_error = True
 
     naLower = naLower*(-1)
@@ -519,7 +519,7 @@
         b_error = True
 
     if b_error == True:
-        print "Optimization not Possible"
+        print("Optimization not Possible")
         na_port = naLower*-1
         if sum(na_port) < 1:
             if sum(naUpper) == 1:
@@ -765,7 +765,7 @@
 
     for sStock in dmPrice.columns:
         fValid = 0.0
-        print sStock
+        print(sStock)
         # loop through all dates """
         for dtDate in dmPrice.index:
             # Count null (nan/inf/etc) values """
@@ -830,7 +830,7 @@
     lsRetStocks = []
 
     # Loop until we have enough randomly selected stocks """
-    llRemainingIndexes = range(0,len(lsStocks))
+    llRemainingIndexes = list(range(0,len(lsStocks)))
     lsValid = None
     while( len(lsRetStocks) != lNum ):
 
@@ -838,7 +838,7 @@
         for i in range( lNum - len(lsRetStocks) ):
             lRemaining = len(llRemainingIndexes)
             if( lRemaining == 0 ):
-                print 'Error in getRandPort: ran out of stocks'
+                print('Error in getRandPort: ran out of stocks')
                 return lsRetStocks
             
             # Pick a stock and remove it from the list of remaining stocks """
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%build): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.iLWaE7
+ umask 022
+ cd /home/iurt/rpmbuild/BUILD
+ cd QSTK-0.2.8
+ '[' 1 -eq 1 ']'
+ '[' 1 -eq 1 ']'
+ CFLAGS='-O2 -g -pipe -Wformat -Werror=format-security -Wp,-D_FORTIFY_SOURCE=2 -fstack-protector --param=ssp-buffer-size=4 -fasynchronous-unwind-tables'
+ LDFLAGS=' -Wl,--as-needed -Wl,--no-undefined -Wl,-z,relro -Wl,-O1 -Wl,--build-id -Wl,--enable-new-dtags'
+ /usr/bin/python3 setup.py build '--executable=/usr/bin/python3 -s'
running build
running build_py
creating build
creating build/lib
creating build/lib/QSTK
copying QSTK/__init__.py -> build/lib/QSTK
creating build/lib/Bin
copying Bin/sinewave_data_generator.py -> build/lib/Bin
copying Bin/investors_report.py -> build/lib/Bin
copying Bin/gen_nyse_dates.py -> build/lib/Bin
copying Bin/csvformatter.py -> build/lib/Bin
copying Bin/converter.py -> build/lib/Bin
copying Bin/Data_CSV.py -> build/lib/Bin
copying Bin/DataGenerate_SineWave.py -> build/lib/Bin
copying Bin/__init__.py -> build/lib/Bin
creating build/lib/QSTK/qstkutil
copying QSTK/qstkutil/tsutil.py -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/qsdateutil.py -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/DataAccess.py -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/__init__.py -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/fundutil.py -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/utils.py -> build/lib/QSTK/qstkutil
creating build/lib/QSTK/qstktools
copying QSTK/qstktools/report.py -> build/lib/QSTK/qstktools
copying QSTK/qstktools/csv2fund.py -> build/lib/QSTK/qstktools
copying QSTK/qstktools/YahooDataPull.py -> build/lib/QSTK/qstktools
copying QSTK/qstktools/__init__.py -> build/lib/QSTK/qstktools
creating build/lib/QSTK/qstktest
copying QSTK/qstktest/testLearner.py -> build/lib/QSTK/qstktest
copying QSTK/qstktest/testDataAccess.py -> build/lib/QSTK/qstktest
copying QSTK/qstktest/__init__.py -> build/lib/QSTK/qstktest
creating build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/study.py -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/Events.py -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/EventProfiler.py -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/__init__.py -> build/lib/QSTK/qstkstudy
creating build/lib/QSTK/qstkstrat
copying QSTK/qstkstrat/strategies.py -> build/lib/QSTK/qstkstrat
copying QSTK/qstkstrat/__init__.py -> build/lib/QSTK/qstkstrat
creating build/lib/QSTK/qstksim
copying QSTK/qstksim/tradesim.py -> build/lib/QSTK/qstksim
copying QSTK/qstksim/__init__.py -> build/lib/QSTK/qstksim
creating build/lib/QSTK/qstklearn
copying QSTK/qstklearn/parallelknn.py -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/mldiagnostics.py -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/kdtknn.py -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/hmm.py -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/gendata.py -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/fastknn.py -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/1knn.py -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/__init__.py -> build/lib/QSTK/qstklearn
creating build/lib/QSTK/qstkfeat
copying QSTK/qstkfeat/featutil.py -> build/lib/QSTK/qstkfeat
copying QSTK/qstkfeat/__init__.py -> build/lib/QSTK/qstkfeat
copying QSTK/qstkfeat/classes.py -> build/lib/QSTK/qstkfeat
copying QSTK/qstkfeat/features.py -> build/lib/QSTK/qstkfeat
creating build/lib/QSTK/qstkutil/tests
copying QSTK/qstkutil/tests/__init__.py -> build/lib/QSTK/qstkutil/tests
copying QSTK/qstkutil/tests/test_utils.py -> build/lib/QSTK/qstkutil/tests
creating build/lib/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim_SPY_Short.py -> build/lib/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim_SPY.py -> build/lib/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim.py -> build/lib/QSTK/qstksim/tests
copying QSTK/qstksim/tests/__init__.py -> build/lib/QSTK/qstksim/tests
running egg_info
creating QSTK.egg-info
writing QSTK.egg-info/PKG-INFO
writing dependency_links to QSTK.egg-info/dependency_links.txt
writing namespace_packages to QSTK.egg-info/namespace_packages.txt
writing requirements to QSTK.egg-info/requires.txt
writing top-level names to QSTK.egg-info/top_level.txt
writing manifest file 'QSTK.egg-info/SOURCES.txt'
reading manifest file 'QSTK.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*' under directory 'bin'
warning: manifest_maker: MANIFEST.in, line 8: 'recursive-include' expects <dir> <pattern1> <pattern2> ...

warning: manifest_maker: MANIFEST.in, line 9: 'recursive-include' expects <dir> <pattern1> <pattern2> ...

warning: no files found matching '*' under directory 'QSData'
warning: no files found matching 'QSTK/QSData/Yahoo/*.csv''
adding license file 'LICENSE.txt'
writing manifest file 'QSTK.egg-info/SOURCES.txt'
copying QSTK/__init__.pyc -> build/lib/QSTK
creating build/lib/QSTK/QSData
creating build/lib/QSTK/QSData/Yahoo
creating build/lib/QSTK/QSData/Yahoo/Lists
copying QSTK/QSData/Yahoo/Lists/index.txt -> build/lib/QSTK/QSData/Yahoo/Lists
copying QSTK/QSData/Yahoo/Lists/sp5002008.txt -> build/lib/QSTK/QSData/Yahoo/Lists
copying QSTK/QSData/Yahoo/Lists/sp5002012.txt -> build/lib/QSTK/QSData/Yahoo/Lists
copying QSTK/qstkutil/DataAccess.py.bak -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/NYSE_dates.txt -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/graph.png -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/qsdateutil.py.bak -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/report.html -> build/lib/QSTK/qstkutil
copying QSTK/qstkutil/tsutil.py.bak -> build/lib/QSTK/qstkutil
copying QSTK/qstktools/YahooDataPull.py.bak -> build/lib/QSTK/qstktools
copying QSTK/qstktools/csv2fund.py.bak -> build/lib/QSTK/qstktools
copying QSTK/qstktools/report.py.bak -> build/lib/QSTK/qstktools
copying QSTK/qstktest/data-classification-prob.csv -> build/lib/QSTK/qstktest
copying QSTK/qstktest/data-ripple-prob.csv -> build/lib/QSTK/qstktest
copying QSTK/qstktest/testDataAccess.py.bak -> build/lib/QSTK/qstktest
copying QSTK/qstktest/testLearner.py.bak -> build/lib/QSTK/qstktest
copying QSTK/qstkstudy/EventProfiler.py.bak -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/Events.py.bak -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/sp500.txt -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/study.py.bak -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/symbol-set1.txt -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstudy/symbol-set2.txt -> build/lib/QSTK/qstkstudy
copying QSTK/qstkstrat/strategies.py.bak -> build/lib/QSTK/qstkstrat
copying QSTK/qstksim/__init__.py.bak -> build/lib/QSTK/qstksim
copying QSTK/qstksim/tradesim.py.bak -> build/lib/QSTK/qstksim
copying QSTK/qstklearn/1knn.py.bak -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/fastknn.py.bak -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/gendata.py.bak -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/hmm.py.bak -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/kdtknn.py.bak -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/mldiagnostics.py.bak -> build/lib/QSTK/qstklearn
copying QSTK/qstklearn/parallelknn.py.bak -> build/lib/QSTK/qstklearn
copying QSTK/qstkfeat/__init__.py.bak -> build/lib/QSTK/qstkfeat
copying QSTK/qstkfeat/featutil.py.bak -> build/lib/QSTK/qstkfeat
copying QSTK/qstksim/tests/test_tradesim.py.bak -> build/lib/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim_SPY.py.bak -> build/lib/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim_SPY_Short.py.bak -> build/lib/QSTK/qstksim/tests
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(%install): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.Pze8px
+ umask 022
+ cd /home/iurt/rpmbuild/BUILD
+ '[' 1 -eq 1 ']'
+ '[' /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64 '!=' / ']'
+ rm -rf /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64
++ dirname /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64
+ mkdir -p /home/iurt/rpmbuild/BUILDROOT
+ mkdir /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64
+ cd QSTK-0.2.8
+ '[' 1 -eq 1 ']'
+ /usr/bin/python3 setup.py install --skip-build --root /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64
running install
/usr/lib/python3.9/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.
  warnings.warn(
running install_lib
copying Bin/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
copying Bin/DataGenerate_SineWave.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
copying Bin/Data_CSV.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
copying Bin/converter.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
copying Bin/csvformatter.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
copying Bin/gen_nyse_dates.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
copying Bin/investors_report.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
copying Bin/sinewave_data_generator.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin
Skipping installation of /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/__init__.pyc (namespace package)
Skipping installation of /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/__init__.py (namespace package)
copying QSTK/QSData/Yahoo/Lists/sp5002012.txt -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/QSData/Yahoo/Lists
copying QSTK/QSData/Yahoo/Lists/sp5002008.txt -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/QSData/Yahoo/Lists
copying QSTK/QSData/Yahoo/Lists/index.txt -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/QSData/Yahoo/Lists
copying QSTK/qstkfeat/featutil.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat
copying QSTK/qstkfeat/__init__.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat
copying QSTK/qstkfeat/features.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat
copying QSTK/qstkfeat/classes.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat
copying QSTK/qstkfeat/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat
copying QSTK/qstkfeat/featutil.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat
copying QSTK/qstklearn/parallelknn.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/mldiagnostics.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/kdtknn.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/hmm.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/gendata.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/fastknn.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/1knn.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/1knn.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/fastknn.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/gendata.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/hmm.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/kdtknn.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/mldiagnostics.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstklearn/parallelknn.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn
copying QSTK/qstksim/tradesim.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim
copying QSTK/qstksim/__init__.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim
copying QSTK/qstksim/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim
copying QSTK/qstksim/tradesim.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim
copying QSTK/qstksim/tests/test_tradesim_SPY_Short.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim_SPY.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests
copying QSTK/qstksim/tests/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim_SPY.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests
copying QSTK/qstksim/tests/test_tradesim_SPY_Short.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests
copying QSTK/qstkstrat/strategies.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstrat
copying QSTK/qstkstrat/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstrat
copying QSTK/qstkstrat/strategies.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstrat
copying QSTK/qstkstudy/symbol-set2.txt -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/symbol-set1.txt -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/study.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/sp500.txt -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/Events.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/EventProfiler.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/EventProfiler.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/Events.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstkstudy/study.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy
copying QSTK/qstktest/testLearner.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest
copying QSTK/qstktest/testDataAccess.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest
copying QSTK/qstktest/data-ripple-prob.csv -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest
copying QSTK/qstktest/data-classification-prob.csv -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest
copying QSTK/qstktest/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest
copying QSTK/qstktest/testDataAccess.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest
copying QSTK/qstktest/testLearner.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest
copying QSTK/qstktools/report.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools
copying QSTK/qstktools/csv2fund.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools
copying QSTK/qstktools/YahooDataPull.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools
copying QSTK/qstktools/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools
copying QSTK/qstktools/YahooDataPull.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools
copying QSTK/qstktools/csv2fund.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools
copying QSTK/qstktools/report.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools
copying QSTK/qstkutil/tsutil.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/report.html -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/qsdateutil.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/graph.png -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/NYSE_dates.txt -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/DataAccess.py.bak -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/utils.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/fundutil.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/DataAccess.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/qsdateutil.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/tsutil.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil
copying QSTK/qstkutil/tests/test_utils.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/tests
copying QSTK/qstkutil/tests/__init__.py -> /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/tests
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/DataGenerate_SineWave.py to DataGenerate_SineWave.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/Data_CSV.py to Data_CSV.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/converter.py to converter.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/csvformatter.py to csvformatter.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/gen_nyse_dates.py to gen_nyse_dates.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/investors_report.py to investors_report.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/Bin/sinewave_data_generator.py to sinewave_data_generator.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat/features.py to features.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat/classes.py to classes.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkfeat/featutil.py to featutil.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/1knn.py to 1knn.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/fastknn.py to fastknn.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/gendata.py to gendata.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/hmm.py to hmm.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/kdtknn.py to kdtknn.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/mldiagnostics.py to mldiagnostics.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstklearn/parallelknn.py to parallelknn.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tradesim.py to tradesim.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests/test_tradesim.py to test_tradesim.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests/test_tradesim_SPY.py to test_tradesim_SPY.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstksim/tests/test_tradesim_SPY_Short.py to test_tradesim_SPY_Short.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstrat/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstrat/strategies.py to strategies.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy/EventProfiler.py to EventProfiler.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy/Events.py to Events.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkstudy/study.py to study.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest/testDataAccess.py to testDataAccess.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktest/testLearner.py to testLearner.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools/YahooDataPull.py to YahooDataPull.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools/csv2fund.py to csv2fund.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstktools/report.py to report.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/utils.py to utils.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/fundutil.py to fundutil.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/__init__.py to __init__.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/DataAccess.py to DataAccess.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/qsdateutil.py to qsdateutil.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/tsutil.py to tsutil.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/tests/test_utils.py to test_utils.cpython-39.pyc
byte-compiling /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK/qstkutil/tests/__init__.py to __init__.cpython-39.pyc
running install_egg_info
running egg_info
writing QSTK.egg-info/PKG-INFO
writing dependency_links to QSTK.egg-info/dependency_links.txt
writing namespace_packages to QSTK.egg-info/namespace_packages.txt
writing requirements to QSTK.egg-info/requires.txt
writing top-level names to QSTK.egg-info/top_level.txt
reading manifest file 'QSTK.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
warning: no files found matching '*' under directory 'bin'
warning: manifest_maker: MANIFEST.in, line 8: 'recursive-include' expects <dir> <pattern1> <pattern2> ...

warning: manifest_maker: MANIFEST.in, line 9: 'recursive-include' expects <dir> <pattern1> <pattern2> ...

warning: no files found matching '*' under directory 'QSData'
warning: no files found matching 'QSTK/QSData/Yahoo/*.csv''
adding license file 'LICENSE.txt'
writing manifest file 'QSTK.egg-info/SOURCES.txt'
Copying QSTK.egg-info to /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK-0.2.8-py3.9.egg-info
Installing /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9/site-packages/QSTK-0.2.8-py3.9-nspkg.pth
running install_scripts
+ mv /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64//usr/lib/python3.9/site-packages/Bin /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64//usr/lib/python3.9/site-packages/QSTK
+ /usr/bin/find-debuginfo -j8 --strict-build-id -m -i --build-id-seed 0.2.8-11.mga9 --unique-debug-suffix -0.2.8-11.mga9.aarch64 --unique-debug-src-base python-qstk-0.2.8-11.mga9.aarch64 --run-dwz --dwz-low-mem-die-limit 10000000 --dwz-max-die-limit 50000000 -S debugsourcefiles.list /home/iurt/rpmbuild/BUILD/QSTK-0.2.8

+ /usr/lib/rpm/check-buildroot
+ '[' -n '' ']'
+ /usr/share/spec-helper/clean_files
+ '[' -n '' ']'
+ /usr/share/spec-helper/compress_files .xz
+ '[' -n '' ']'
+ /usr/share/spec-helper/relink_symlinks
+ '[' -n '' ']'
+ /usr/share/spec-helper/clean_perl
+ '[' -n '' ']'
+ /usr/share/spec-helper/lib_symlinks
+ '[' -n '' ']'
+ /usr/share/spec-helper/gprintify
+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_mo
+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_pamd
+ '[' -n '' ']'
+ /usr/share/spec-helper/remove_info_dir
+ '[' -n '' ']'
+ /usr/share/spec-helper/fix_eol
+ '[' -n '' ']'
+ /usr/share/spec-helper/check_desktop_files
+ '[' -n '' ']'
+ /usr/share/spec-helper/check_elf_files
+ /usr/lib/rpm/brp-python-bytecompile /usr/bin/python3 1 0
Bytecompiling .py files below /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/lib/python3.9 using python3.9
+ /usr/lib/rpm/check-rpaths
+ /usr/lib/rpm/brp-remove-la-files
+ /usr/lib/rpm/redhat/brp-mangle-shebangs
Processing files: python3-qstk-0.2.8-11.mga9.noarch
Executing(%doc): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.Ly3gQb
+ umask 022
+ cd /home/iurt/rpmbuild/BUILD
+ cd QSTK-0.2.8
+ DOCDIR=/home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/share/doc/python3-qstk
+ export LC_ALL=C
+ LC_ALL=C
+ export DOCDIR
+ /usr/bin/mkdir -p /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/share/doc/python3-qstk
+ cp -pr docs/README.md /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/share/doc/python3-qstk
+ cp -pr README.md /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/share/doc/python3-qstk
+ cp -pr LICENSE.txt /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64/usr/share/doc/python3-qstk
+ RPM_EC=0
++ jobs -p
+ exit 0
warning: File listed twice: /usr/share/doc/python3-qstk/README.md
Provides: python-qstk = 0.2.8-11.mga9 python3-qstk = 0.2.8-11.mga9 python3.9-qstk = 0.2.8-11.mga9 python3.9dist(qstk) = 0.2.8 python3dist(qstk) = 0.2.8
Requires(rpmlib): rpmlib(CompressedFileNames) <= 3.0.4-1 rpmlib(FileDigests) <= 4.6.0-1 rpmlib(PayloadFilesHavePrefix) <= 4.0-1
Requires: python(abi) = 3.9 python3.9dist(matplotlib) >= 1.1 python3.9dist(numpy) >= 1.6.1 python3.9dist(pandas) >= 0.7.3 python3.9dist(python-dateutil) >= 1.5 python3.9dist(scikit-learn) >= 0.11 python3.9dist(scipy) >= 0.9
Checking for unpackaged file(s): /usr/lib/rpm/check-files /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64
Wrote: /home/iurt/rpmbuild/RPMS/noarch/python3-qstk-0.2.8-11.mga9.noarch.rpm
Executing(%clean): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.KFmbuE
+ umask 022
+ cd /home/iurt/rpmbuild/BUILD
+ cd QSTK-0.2.8
+ /usr/bin/rm -rf /home/iurt/rpmbuild/BUILDROOT/python-qstk-0.2.8-11.mga9.aarch64
+ RPM_EC=0
++ jobs -p
+ exit 0
Executing(--clean): /bin/sh -e /home/iurt/rpmbuild/tmp/rpm-tmp.CVkJzk
+ umask 022
+ cd /home/iurt/rpmbuild/BUILD
+ rm -rf QSTK-0.2.8
+ RPM_EC=0
++ jobs -p
+ exit 0
D: [iurt_root_command] Success!