Skip to content

Commit

Permalink
code updated for pep8
Browse files Browse the repository at this point in the history
  • Loading branch information
jimmysoa committed Mar 15, 2015
1 parent 6347ce5 commit dfd7ec9
Show file tree
Hide file tree
Showing 2 changed files with 30 additions and 24 deletions.
33 changes: 19 additions & 14 deletions tushare/stock/trading.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,8 +22,9 @@
from tushare.util import dateutil as du


def get_hist_data(code=None, start=None, end=None,ktype='D', retry_count=3,
pause=0.001):
def get_hist_data(code=None, start=None, end=None,
ktype='D', retry_count=3,
pause=0.001):
"""
获取个股历史交易记录
Parameters
Expand Down Expand Up @@ -52,7 +53,7 @@ def get_hist_data(code=None, start=None, end=None,ktype='D', retry_count=3,
ct.K_TYPE[ktype.upper()], symbol)
elif ktype in ct.K_MIN_LABELS:
url = ct.DAY_PRICE_MIN_URL%(ct.P_TYPE['http'], ct.DOMAINS['ifeng'],
symbol,ktype)
symbol, ktype)
else:
raise TypeError('ktype input error.')

Expand All @@ -73,15 +74,14 @@ def get_hist_data(code=None, start=None, end=None,ktype='D', retry_count=3,
df = pd.DataFrame(js['record'], columns=cols)
if ktype.upper() in ['D','W','M']:
df = df.applymap(lambda x: x.replace(u',', u''))
# df = df.set_index(['date'])
for col in cols[1:]:
df[col] = df[col].astype(float)
if start is not None:
df = df[df.date>=start]
df = df[df.date >= start]
if end is not None:
df = df[df.date<=end]
df = df[df.date <= end]
if (code in ct.INDEX_LABELS) & (ktype in ct.K_MIN_LABELS):
df = df.drop('turnover',axis=1)
df = df.drop('turnover', axis=1)
return df
raise IOError("%s获取失败,请检查网络和URL:%s" % (code, url))

Expand All @@ -106,15 +106,16 @@ def _parsing_dayprice_json(pageNum=1):
reg = re.compile(r'\,(.*?)\:')
#修改成read_json能读入的json格式
text = reg.sub(r',"\1":', text)
text = text.replace('"{symbol','{"symbol')
text = text.replace('{symbol','{"symbol"')
text = text.replace('"{symbol', '{"symbol')
text = text.replace('{symbol', '{"symbol"')
jstr = json.dumps(text, encoding='GBK')
js = json.loads(jstr)
df = pd.DataFrame(pd.read_json(js, dtype={'code':object}), columns=ct.DAY_TRADING_COLUMNS)
df = pd.DataFrame(pd.read_json(js, dtype={'code':object}),
columns=ct.DAY_TRADING_COLUMNS)
#删除原始数据的symbol属性
df = df.drop('symbol', axis=1)
#删除停牌的股票
df = df.ix[df.volume>0]
df = df.ix[df.volume > 0]
return df


Expand Down Expand Up @@ -212,7 +213,7 @@ def get_realtime_quotes(symbols=None):
symbols_list = ''
if type(symbols) is list or type(symbols) is set or type(symbols) is tuple or type(symbols) is pd.Series:
for code in symbols:
symbols_list += code_to_symbol(code) +','
symbols_list += code_to_symbol(code) + ','
else:
symbols_list = code_to_symbol(symbols)

Expand Down Expand Up @@ -329,9 +330,9 @@ def get_h_data(code, start=None, end=None, autype='qfq',
def _parase_fq_factor(code, start, end):
from tushare.util import demjson
symbol = code_to_symbol(code)
url = ct.HIST_FQ_FACTOR_URL%(ct.P_TYPE['http'],ct.DOMAINS['vsf'],symbol)
url = ct.HIST_FQ_FACTOR_URL%(ct.P_TYPE['http'], ct.DOMAINS['vsf'], symbol)
request = urllib2.Request(url)
text = urllib2.urlopen(request,timeout=10).read()
text = urllib2.urlopen(request, timeout=10).read()
text = text[1:len(text)-1]
text = demjson.decode(text)
df = pd.DataFrame({'date':text['data'].keys(), 'factor':text['data'].values()})
Expand Down Expand Up @@ -365,6 +366,7 @@ def random(n=13):
end = (10**n)-1
return str(randint(start, end))


def code_to_symbol(code):
"""
生成symbol代码标志
Expand All @@ -377,3 +379,6 @@ def code_to_symbol(code):
else:
return 'sh%s'%code if code[:1] == '6' else 'sz%s'%code


if __name__ == '__main__':
print get_h_data('600848')
21 changes: 11 additions & 10 deletions tushare/util/dateutil.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,32 +6,33 @@
def year_qua(date):
mon = date[5:7]
mon = int(mon)
return[date[0:4],_quar(mon)]
return[date[0:4], _quar(mon)]


def _quar(mon):
if mon in [1,2,3]:
if mon in [1, 2, 3]:
return '1'
elif mon in [4,5,6]:
elif mon in [4, 5, 6]:
return '2'
elif mon in [7,8,9]:
elif mon in [7, 8, 9]:
return '3'
elif mon in [10,11,12]:
elif mon in [10, 11, 12]:
return '4'
else:
return None


def today():
day = datetime.datetime.today().date()
return str(day)


def today_last_year():
lasty = datetime.datetime.today().date() + datetime.timedelta(-365)
return str(lasty)


def get_quarts(start,end):
idx = pd.period_range('Q'.join(year_qua(start)),'Q'.join(year_qua(end)),freq='Q-JAN')
idx = pd.period_range('Q'.join(year_qua(start)), 'Q'.join(year_qua(end)),
freq='Q-JAN')
return [str(d).split('Q') for d in idx]

if __name__ == '__main__':
s = year_qua('2013-12-11')
print s

0 comments on commit dfd7ec9

Please sign in to comment.