1.1.2-玩轉(zhuǎn)Python3金融API應(yīng)用-easyutils的文件結(jié)構(gòu)

第一次看github级零,最讓人摸不清頭腦的可能是項(xiàng)目文件的結(jié)構(gòu)。easyutils包的文件結(jié)構(gòu)相對(duì)比較簡單芝雪,所以這里可以先給大家介紹一下覆醇。

easyutils的github頁面:https://github.com/shidenggui/easyutils


easyutils的github頁最上層

文件夾:easyutils,tests

文件:.gitignore,README.md,requirements.txt,setup.py


easyutils/easyutils

文件:__init__.py渤早,stock.py,timeutils.py


easyutils/tests

文件:test_timeutils.py


下面咱們來分層講解瘫俊。


easyutils的github頁最上層

setup.py

用于命令行下安裝的文件鹊杖。

文件中注明了這個(gè)模塊是用于中國股票的模塊,作者名及作者郵箱扛芽,GitHub網(wǎng)址骂蓖,必須安裝的模塊等內(nèi)容。其中的keywords便于pypi索引川尖。

應(yīng)用這個(gè)文件可以將easyutils包安裝到電腦上登下。


requirements.txt

這個(gè)文檔中寫的是使用easyutils前必須安裝的模塊。

必須安裝的模塊有兩個(gè):requests和pyquery叮喳。

可以使用以下命令批量安裝requirements.txt中要求的包被芳。

pip install -r requirements.txt


.gitignore

這是作者Git工作目錄中的一些文件,并沒有打算提交到GitHub上來馍悟。這些文件對(duì)使用包通常沒有什么影響畔濒。這個(gè)文件對(duì)使用者而言一般可以略過。


easyutils文件夾

這個(gè)文件夾名字和這個(gè)包的名字是一致的赋朦,由此可以看出這個(gè)文件夾內(nèi)的文件是整個(gè)包最核心的部分篓冲。這個(gè)文件夾內(nèi)的py文件都是這個(gè)包的模塊。每個(gè)模塊都具有不同的功用宠哄。


tests文件夾

tests這樣名字的文件夾通常內(nèi)部會(huì)放一些用于測(cè)試的代碼壹将。各位可以手動(dòng)測(cè)試,或者使用pytest或者unittest這類模塊進(jìn)行測(cè)試毛嫉。tests文件夾并不一定會(huì)提供example(案例)給你诽俯,但是有時(shí)候會(huì)包含一些函數(shù)的使用過程,是值得看看的承粤。


easyutils/easyutils

__init__.py

這里直接引用他人的內(nèi)容吧(網(wǎng)絡(luò)的力量真的很大)暴区。

__init__.py 文件的作用是將文件夾變?yōu)橐粋€(gè)Python模塊,Python 中的每個(gè)模塊的包中辛臊,都有__init__.py 文件仙粱。

__init__.py 文件可以為空,但是我們還可以為它增加其他的功能彻舰。我們?cè)趯?dǎo)入一個(gè)包時(shí)伐割,實(shí)際上是導(dǎo)入了它的__init__.py文件。這樣我們可以在__init__.py文件中批量導(dǎo)入我們所需要的模塊刃唤,而不再需要一個(gè)一個(gè)的導(dǎo)入隔心。具體的實(shí)現(xiàn)方法可以自行搜索。


stock.py尚胞,timeutils.py

這些就是一個(gè)項(xiàng)目包的各個(gè)具體模塊的源代碼了硬霍。有些相對(duì)較大的項(xiàng)目在包的源代碼中還有子包,子包中有子包的模塊笼裳。有些項(xiàng)目(如easytrader)在源代碼文件中還會(huì)放一些其他內(nèi)容唯卖,比如config(配置)文件夾,里面裝有一些需要使用的網(wǎng)址信息等侍咱。

總而言之耐床,一個(gè)python項(xiàng)目最主要的部分都在與包名相同的這個(gè)文件夾中。


easyutils/tests

test_timeutils.py

放在tests中的文件通常是源代碼作者自己用于測(cè)試或者方便使用者進(jìn)行測(cè)試的楔脯。一個(gè)包上到github之后可能會(huì)有很多人下載使用撩轰,對(duì)于金融類API這種可能涉及到資金損盈的包,更是有必要慎重得進(jìn)行測(cè)試昧廷。如果想了解測(cè)試方法或者相關(guān)的python包堪嫂,那么可以自行搜索類似“python3 unittest”、“python3 pytest”木柬、“python3 單元測(cè)試”等內(nèi)容皆串。對(duì)于不太可能會(huì)給自己造成損失的項(xiàng)目,使用者可以不用理會(huì)測(cè)試文件夾的相關(guān)內(nèi)容眉枕。

測(cè)試文件夾提供的測(cè)試可能只是針對(duì)某個(gè)函數(shù)恶复。比如easyutils這里只是針對(duì)timeutils中的某個(gè)函數(shù)進(jìn)行了測(cè)試怜森。如果要測(cè)試更多的函數(shù)就需要自行操作了。


其他的文件夾或文件

當(dāng)你打開github上一個(gè)規(guī)模較大的python項(xiàng)目時(shí)谤牡,里面會(huì)有非常多的文件夾或者文件副硅。比如Doc文件夾,這里面裝的是對(duì)包的說明文件翅萤,一般源代碼作者會(huì)經(jīng)由這些文件發(fā)出一個(gè)使用手冊(cè)并寫入readme文檔恐疲,供使用者參考。不過對(duì)于大多數(shù)python初學(xué)者而言套么,他們寫的使用參考也是難以理解和直接使用的培己,到頭來還是需要看看源代碼。

我在這里不太可能列舉出所有的包或者可能出現(xiàn)的文件胚泌。如果大家對(duì)github感興趣省咨,網(wǎng)上有不少教程,大家可以前去搜索玷室。我這里只是關(guān)注如何應(yīng)用金融類API茸炒,捎帶手可能提及一些其他內(nèi)容。學(xué)習(xí)嘛阵苇,終歸還是要自己努力的壁公。


到這一步,咱們已經(jīng)清楚知道了easyutils包的項(xiàng)目文件結(jié)構(gòu)绅项,通過readme文檔初步知道了這個(gè)包內(nèi)函數(shù)的用途紊册。然而,如果真的要使用這個(gè)包快耿,僅僅知道這些是不夠用的囊陡。原因在于,readme文檔可能寫的不全掀亥,如果使用函數(shù)遇到問題撞反,咱們還是得看源代碼。除非一個(gè)包的復(fù)雜度相當(dāng)高(比如盈透IB的API)以至于通讀全部源代碼不太實(shí)際搪花,那么遏片,其官方文檔通常會(huì)較為詳細(xì)地說明包內(nèi)各個(gè)模塊的用途,在實(shí)際應(yīng)用于交易前撮竿,一定要通過模擬賬戶對(duì)所有可能用到的類或函數(shù)進(jìn)行充分測(cè)試吮便,如果條件允許,更需要在一定小金額的范圍內(nèi)對(duì)程序進(jìn)行實(shí)盤交易測(cè)試幢踏,否則出現(xiàn)bug髓需,帶給你的損失是很難估計(jì)的。

easyutils包的源文件內(nèi)容不多房蝉,畢竟只是用于提供幾個(gè)有用的功能僚匆,所以咱們可以直接通讀源代碼微渠。如果你已經(jīng)迫不及待的打開了easyutils包中模塊的源代碼,你會(huì)發(fā)現(xiàn)里面的代碼量并不大咧擂,所以從上往下讀完全沒有什么問題敛助。不過,如果你打開某個(gè)模塊的源代碼屋确,里面顯示數(shù)百行以至成千上萬行時(shí),這個(gè)時(shí)候就不是考慮直接從上往下讀了续扔,而是先分析文檔的結(jié)構(gòu)攻臀,搞清楚各個(gè)函數(shù)直接的關(guān)系,最后再按照一定的順序去閱讀源代碼纱昧。

那么刨啸,下一篇文章,咱們就來講解easyutils包的第一個(gè)模塊stock.py的源代碼识脆。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末设联,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子灼捂,更是在濱河造成了極大的恐慌离例,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,542評(píng)論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悉稠,死亡現(xiàn)場離奇詭異宫蛆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)的猛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門耀盗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人卦尊,你說我怎么就攤上這事叛拷。” “怎么了岂却?”我有些...
    開封第一講書人閱讀 158,021評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵忿薇,是天一觀的道長。 經(jīng)常有香客問我躏哩,道長煌恢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,682評(píng)論 1 284
  • 正文 為了忘掉前任震庭,我火速辦了婚禮瑰抵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘器联。我一直安慰自己二汛,他們只是感情好婿崭,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評(píng)論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著肴颊,像睡著了一般氓栈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上婿着,一...
    開封第一講書人閱讀 49,985評(píng)論 1 291
  • 那天授瘦,我揣著相機(jī)與錄音,去河邊找鬼竟宋。 笑死提完,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的丘侠。 我是一名探鬼主播徒欣,決...
    沈念sama閱讀 39,107評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼蜗字!你這毒婦竟也來了打肝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,845評(píng)論 0 268
  • 序言:老撾萬榮一對(duì)情侶失蹤挪捕,失蹤者是張志新(化名)和其女友劉穎粗梭,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體级零,經(jīng)...
    沈念sama閱讀 44,299評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡楼吃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了妄讯。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片孩锡。...
    茶點(diǎn)故事閱讀 38,747評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖亥贸,靈堂內(nèi)的尸體忽然破棺而出躬窜,到底是詐尸還是另有隱情,我是刑警寧澤炕置,帶...
    沈念sama閱讀 34,441評(píng)論 4 333
  • 正文 年R本政府宣布荣挨,位于F島的核電站,受9級(jí)特大地震影響朴摊,放射性物質(zhì)發(fā)生泄漏默垄。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評(píng)論 3 317
  • 文/蒙蒙 一甚纲、第九天 我趴在偏房一處隱蔽的房頂上張望口锭。 院中可真熱鬧,春花似錦、人聲如沸鹃操。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽荆隘。三九已至恩伺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間椰拒,已是汗流浹背晶渠。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留燃观,地道東北人褒脯。 一個(gè)月前我還...
    沈念sama閱讀 46,545評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像仪壮,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子胳徽,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評(píng)論 2 350