色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

推薦幾個不錯的Python庫

Spinal FPGA ? 來源:Spinal FPGA ? 2023-12-16 11:05 ? 次閱讀

編 者 按

作為一個在數據中心搬磚的邏輯開發,日常不是僅僅簡單的寫寫RTL就可以完事兒的。在數據中心,你可能連板卡都看不到,日常常打交道的,也就是PCIe。作為邏輯版本的生產者,出現問題往往需要自己有詳細的定位手段和方式(沒有誰比設計者更清楚邏輯的功能。專門的軟件人員來做當然沒問題,但增加溝通成本),那么一套自己常用的軟件工具還是非常有必要的。對于這種工具型工具,C就顯得太笨重了,而Python才是首選。


推薦幾個不錯的Python庫

ctypes
作為常與PCIe打交道的人來說,99%的定位方式都是通過寄存器來進行定位信息。在python中自然也可以通過mmap來實現PCIe Bar空間的映射,但有一個問題就是Python下的mmap一次讀或者寫有時往往會產生兩次TLP讀寫。這么高深的問題自然邏輯開發人員是解不了的。那這時候最好的方式就是通過ctypes來實現與C的打通,mmap與寄存器讀寫功能API交給C代碼來做,生成.so后Python通過ctypes來實現調用即可,方便簡潔。

rich

linux環境里,基本上就是一個命令行窗口,那么基本上就是各種打印了。有些時候想基于Python的print自己實現各種功能還是太略顯麻煩了。那么rich庫是一個很好的選擇。

82149f36-9bbc-11ee-8b88-92fbcf53809c.jpg

Rich 是一個 Python 庫,可以為您在終端中提供富文本和精美格式。

Rich 的 API 讓在終端輸出顏色和樣式變得很簡單。此外,Rich 還可以繪制漂亮的表格、進度條、markdown、語法高亮的源代碼以及棧回溯信息(tracebacks)等——開箱即用。 網上關于rich庫的介紹挺多的,這里就不拾人牙慧了。借助rich的豐富功能,可以基于少量的代碼來實現相對比較豐富的功能。

舉個例子,對于設計而言,維護寄存器/文檔的一致性除非代碼用腳本生成的那么其他情況下往往項目做到最后越來越文不對題。在邏輯開發中,我會基于SpinalHDL中的regif來在代碼中進行定義寄存器實現,在其上面基礎上重定義了它文檔生成的代碼,用來能夠生成整個系統的寄存器文檔。日常會輸出一份html寄存器文檔以及一份Json格式寄存器文檔。隨后在做集成工具時會通過命令行參數直接將json文件直接傳給命令行工具,解析后借助rich的table直接能夠一鍵dump所有的寄存器,并精確給到每個寄存器每個比特的注釋說明,這比讀一個寄存器,再去對照寄存器文檔去看什么意思簡直不要方便太多!

當然,借助chatgpt來實現基于rich定義各種顯示功能這種體力勞動更能節省思考和動手能力。

Fire

既然定位是工具類型的,那么我們最終需要的肯定是一個命令行工具CLIs。這里推薦使用Fire這個庫。不為別的,它最簡單,簡單到令人發指!

importfire

defadd(x, y):
returnx + y

defmultiply(x, y):
returnx * y

if__name__ == '__main__':
fire.Fire({
'add': add,
'multiply': multiply,
})


在上面這段代碼里,我們定義的功能函數僅需把函數注冊到Fire里就能自動生成命令行工具:

$ pythonexample.pyadd1020
30
$ pythonexample.pymultiply 1020
200


基本零成本實現一個CLI工具,簡直太香了。

在VSCode中配合autoDocstring - Python Docstring Generator這個插件可以方便的為函數增加注釋,從而在上面生成的命令行中很方便的生成幫助信息

importfire
defadd(x:int, y:int)-> int:
"""add operation

Args:
x (int): data
y (int): data

Returns:
int: sum
"""
returnx + y

defmultiply(x:int, y:int)-> int:
"""multiply operation

Args:
x (int): data
y (int): data

Returns:
int: multiply
"""
returnx*y

defversion()-> str:
"""get version info

Returns:
str: version number
"""
return"1.2.3"

if__name__ == '__main__':
fire.Fire()

運行時:

python3test.py--help
NAME
test.py

SYNOPSIS
test.pyGROUP | COMMAND

GROUPS
GROUP isone of the following:

fire
The Python Fire module.

COMMANDS
COMMAND isone of the following:

add
addoperation

multiply
multiply operation

version
getversioninfo

python3test.pyadd--help

NAME
test.pyadd- addoperation

SYNOPSIS
test.pyaddXY

DESCRIPTION
addoperation

POSITIONAL ARGUMENTS
X
Type: int
data
Y
Type: int
data

NOTES
You can also use flags syntaxforPOSITIONAL ARGUMENTS



白嫖的即視感!

pyinstaller


這種腳本在不同的機器上運行,自然是不希望直接將代碼復制到機器上的,畢竟還要安裝各種依賴包,有時候這些機器往往是不聯網的。那么最簡單的方式就是通過pyinstaller打包成一個可執行文件了。pyinstaller網上資料也比較多,也可以記住chatgpt來獲取如何打包的方式。


比如針對上面的需要帶.so的打包,我們僅需針對python main文件執行一條指令即可:

pyinstaller --onefile --add-binary='./clib/a.so:.' Test.py

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 寄存器
    +關注

    關注

    31

    文章

    5392

    瀏覽量

    121922
  • Linux
    +關注

    關注

    87

    文章

    11378

    瀏覽量

    211339
  • 數據中心
    +關注

    關注

    16

    文章

    4964

    瀏覽量

    72686
  • python
    +關注

    關注

    56

    文章

    4813

    瀏覽量

    85314

原文標題:數據中心邏輯搬磚要會的——幾個好用的Python庫

文章出處:【微信號:Spinal FPGA,微信公眾號:Spinal FPGA】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    動態封裝成python模塊的方法

    之前的文章 將靜態封裝成 python 模塊中講解了如何將靜態封裝成 python 模塊,靜態封裝相對來說還是有點復雜,今天來介紹下動
    發表于 07-13 15:24 ?746次閱讀

    Python機器學習常用

    Python是一種面向對象的解釋型計算機程序設計語言,具有豐富和強大的,再加上其簡單、易學、速度快、開源免費、可移植性、可擴展性以及面向對象的特點,Python成為2017年最受歡迎的最受
    發表于 03-26 16:29

    2018年受到眾多開發者關注的7個Python

    幾個還不太知名的引起了Python開發者的關注。
    的頭像 發表于 10-02 09:30 ?4888次閱讀

    Python幾個表情包

    今天制作表情包用到的技術還是之前提到的Turtle,可以從之前的文章除了畫佩奇我們還要玩點更高級的,去學習Turtle的常用語法,然后就是PIL,之前通過這篇文章:Python騷操作|用P
    的頭像 發表于 02-11 11:13 ?5286次閱讀

    140種Python標準、第三方和外部工具都有了

    Python標準Python自帶的標準Python標準無需安裝,只需要先通過impor
    的頭像 發表于 08-02 09:24 ?3423次閱讀

    幾個Python繪圖Turtle的范例資料免費下載

    本文檔的主要內容詳細介紹的是幾個Python繪圖Turtle的范例資料免費下載。
    發表于 06-04 08:00 ?0次下載

    ADM1266 Python

    ADM1266 Python
    發表于 03-23 15:47 ?1次下載
    ADM1266 <b class='flag-5'>Python</b><b class='flag-5'>庫</b>

    Python連接Oracle數據

    Python連接Oracle數據(深圳市核達中遠通電源技術股份有限公司招聘)-該文檔為Python連接Oracle數據講解文檔,是一份不錯
    發表于 09-24 17:20 ?6次下載
    <b class='flag-5'>Python</b>連接Oracle數據<b class='flag-5'>庫</b>

    如何安裝常用Python

    Python作為一種流行的編程語言,擁有豐富的第三方資源,這些可以幫助開發者輕松實現各種功能,從數據分析到Web開發,從機器學習到圖像處理,涵蓋了各個領域。在Python的開發過程
    的頭像 發表于 04-14 12:11 ?1277次閱讀

    Python常用的幾個命令介紹

    Python是一種功能強大的編程語言,廣泛用于數據分析、人工智能和Web開發等領域。在使用Python時,需要掌握一些基本的命令,以便更好地管理和運行代碼。下面將介紹Python常用的幾個
    的頭像 發表于 06-21 17:12 ?2487次閱讀

    SQLite數據python的區別

    SQLite數據python的區別 SQLite是一種輕量級關系型數據管理系統,是一個嵌入式的數據引擎。Python是一種高級編程語
    的頭像 發表于 08-28 16:41 ?970次閱讀

    python有什么用 如何用python創建數據

    python有什么用 如何用python創建數據 Python是一種高級編程語言,可以用于開發各種類型的應用程序和工具。它的廣泛應用使它在編程領域中極為受歡迎。
    的頭像 發表于 08-28 16:41 ?1302次閱讀

    python讀取數據數據 python查詢數據 python數據連接

    python讀取數據數據 python查詢數據 python數據連接
    的頭像 發表于 08-28 17:09 ?1956次閱讀

    如何使用Python和PinPong控制Arduino

    與傳感器和其他物理設備集成的應用程序。如果您已經掌握了Python的基礎知識,那么您可以通過使用Python來控制Arduino來入門。本文目的主要是向您展示如何使用PinPong通過Pyt
    的頭像 發表于 10-13 10:59 ?1144次閱讀
    如何使用<b class='flag-5'>Python</b>和PinPong<b class='flag-5'>庫</b>控制Arduino

    python中如何引入math

    Python中,要使用math,首先需要先引入它。mathPython的一個標準,它提供了許多數學函數和常數。通過使用math
    的頭像 發表于 11-22 11:03 ?4657次閱讀
    主站蜘蛛池模板: 国产精品美女久久久网站动漫 | 日本久久精品免视看国产成人 | 欧美一区二区三区激情视频 | 免费在线视频a | 色视频色露露永久免费观看 | 午夜影视免费 | 国产精品2020观看久久 | 大咪咪dvd | 国产精品女上位好爽在线短片 | 国产精品你懂的在线播放 | 色偷偷成人网免费视频男人的天堂 | 成人在无码AV在线观看一 | 国产亚洲精品精华液 | 20岁中国男同志china1069 20岁αsrian男同志免费 | 亚洲国产成人综合 | 国产一区二区内射最近更新 | 少妇的肉体AA片免费观看 | JAPANRCEP老熟妇乱子伦视频 | 蜜桃狠狠色伊人亚洲综合网站 | 疯狂做受XXXX高潮欧美日本 | 日日碰狠狠躁久久躁综合网 | 日本美女抠逼 | 亚洲色图在线播放 | 欧美一级久久久久久久久大 | 亚洲精品久久久久久偷窥 | 18美女腿打开无遮软件 | 看电影来5566一区.二区 | 国产一区二区三区四区五在线观看 | 中国少妇内射XXXX狠干 | 春药按摩人妻中文字幕 | 扒开胸罩揉她的乳尖视频 | 中文在线无码高潮潮喷在线 | 色尼玛亚洲综合 | 2023国产精品一卡2卡三卡4卡 | 日本熟妇多毛XXXXX视频 | 午夜婷婷一夜七次郎 | 国产一级特黄aa毛片 | 成人国内精品久久久久影院 | chinese野外男女free | 武汉美女洗澡 | 久久九九精品国产自在现线拍 |