def market_timing(ticker, dt, timing='<STR_LIT>', tz='<STR_LIT>') -> str:
logger = logs.get_logger(market_timing)<EOL>exch = pd.Series(exch_info(ticker=ticker))<EOL>if any(req not in exch.index for req in ['<STR_LIT>', '<STR_LIT>', '<STR_LIT>']):<EOL><INDENT>logger.error(f'<STR_LIT>')<EOL>return '<STR_LIT>'<EOL><DEDENT>mkt_time = {<EOL>'<STR_LIT>': exch.day[<NUM_LIT:0>], '<STR_LIT>': exch.allday[-<NUM_LIT:1>]<EOL>}.get(timing, exch.day[-<NUM_LIT:1>])<EOL>cur_dt = pd.Timestamp(str(dt)).strftime('<STR_LIT>')<EOL>if tz == '<STR_LIT>':<EOL><INDENT>return f'<STR_LIT>'<EOL><DEDENT>return timezone.tz_convert(f'<STR_LIT>', to_tz=tz, from_tz=exch.tz)<EOL>
Market close time for ticker

Args:
    ticker: ticker name
    dt: date
    timing: [EOD (default), BOD]
    tz: conversion to timezone

Returns:
    str: date & time

Examples:
    >>> market_timing('7267 JT Equity', dt='2018-09-10')
    '2018-09-10 14:58'
    >>> market_timing('7267 JT Equity', dt='2018-09-10', tz=timezone.TimeZone.NY)
    '2018-09-10 01:58:00-04:00'
    >>> market_timing('7267 JT Equity', dt='2018-01-10', tz='NY')
    '2018-01-10 00:58:00-05:00'
    >>> market_timing('7267 JT Equity', dt='2018-09-10', tz='SPX Index')
    '2018-09-10 01:58:00-04:00'
    >>> market_timing('8035 JT Equity', dt='2018-09-10', timing='BOD')
    '2018-09-10 09:01'
    >>> market_timing('Z 1 Index', dt='2018-09-10', timing='FINISHED')
    '2018-09-10 21:00'
    >>> market_timing('TESTTICKER Corp', dt='2018-09-10')
    ''