U vb@shddlZddlZddlZddlZddlZddlmZdddZ dddZ dd d Z d d Z dddZ dS)Nc Csd}||krz |}Wn`tk rv}zB|jdddkrNtdWY dStd||WYSd}~XYnXt|||7}qdS)NrErrorCodeZResourceNotFoundExceptionzSuccessful delete zDeletion failed: ) Exceptionresponselogginginfotimesleep)callbackZ check_timetimeout elapsed_timeouterJ/home/ec2-user/SageMaker/time-series-forecasting-on-aws/util/fcst_utils.pywait_till_delete s    rcCs|d}t||}d}|dkrZ|d}t|||7}tdddd|dkrqZq|dkrfd}|rnd nd }tdtd |d || S) NStatusTZACTIVE.)endflushZ CREATE_FAILEDFfailedsuccessz Finished in z seconds with status )r r printrr )r Z time_intervalZ last_statusrZ is_failedZ job_statusrrrwaits&     rFcCs<tj|dd}dddg|_|r*dddg|_|j|d|kS)N)headeritem_id timestamptarget)pdread_csvcolumnsloc)fnamerZis_schema_permexactrrrload_exact_sol0s   r(cCstd}d}ddddiddgd }d}z$|j|t|d }|d d }Wn:|jjk rtd |dtd |j }YnXd}|j ||d|j d|dt dt||S)NiamZForecastDemoRolez 2012-10-17ZAllowServicezforecast.amazonaws.comzsts:AssumeRole)ZEffectZ PrincipalAction)Version Statement)RoleNameZAssumeRolePolicyDocumentRoleZArnz The role zexists, ignore to create itz0arn:aws:iam::aws:policy/AmazonForecastFullAccess)r. PolicyArnz*arn:aws:iam::aws:policy/AmazonS3FullAccess)r0r.r)boto3clientZ create_rolejsondumps exceptionsZEntityAlreadyExistsExceptionrresourcer/arnZattach_role_policyr r )r) role_nameZassume_role_policy_documentrole_arnZcreate_role_responseZ policy_arnrrrget_or_create_role_arn8sB   r:1HPc Cs0t|ddd}t|ddd}t|ddd}|ddd}|d } |d d d} tj| | d|d j| dd dtj||djddtj|dj|dj|djdddtjt| ddddtjt| ||dddddtj ddtj ddgdddS)NZForecastZ Predictionsp10p50p90 TimestampcSs t|SNr"rAxrrrgz plot_forecasts..rr cSs t|SrBrCrDrrrrFirGr!r)colorValuekbg333333?)rIalphagdashed)rE linewidthrIlsr)rotationTargetz lower left)r%) r" DataFrameapplypltplotvaluesZ fill_betweenZaxvlinerAxtickslegend) Zfcstsr'freqZforecastHorizonZ time_backr>r?r@Zpred_intZfcst_start_dateZtime_intrrrplot_forecastscsB   r^)rr)r)F)r;r<r=)r r1r3pandasr"rmatplotlib.pyplotpyplotrXrrr(r:r^rrrrs    +