下面分别来介绍一下上述5个GitHub项目。
vardbg
Star:508
vardbg[2]是一款可以把Python代码调试生成可视化图像的工具。
代码调试是开发过程中占比很重的一个环节,也是非常繁琐、复杂的一个阶段。开发者一直在考虑,如果实现更加高效、准确的代码调试。
记得前不久看到Microsoft也在测试vs code的代码调试可视化工具,这让我颇为期待,我想,和我有同样心理的开发者应该不在少数。
其实,不需要等待vs code正式发布,我们就可以尝鲜这项功能。
vardbg可以把代码程序执行流程生成可视化图像,这样不仅可以有助于调试代码,还可以帮助可视化算法流程,有助于算法的学习。
安装使用
可以直接使用pip命令安装,
pip install vardbg
也可以通过源码安装,
git clone https://github.com/CCExtractor/vardbg cd vardbg python3 -m venv venv source venv/bin/activate pip install poetry poetry install . ./debug.py pip install
下面是执行一个快速排序代码的示例,
vardbg run sort.py quick_sort -o qsort.json -a 9 -a 3 -a 5 -a 1
然后,它就可以生成一个记录执行过程的可视化视频。
vardbg replay qsort.json -v sort_vis.mp4
yfinance
Star:1.8k
yfinance[3]是一款Yahoo!金融数据下载工具。
数据对于从事数据分析、挖掘方向的同学一直都是一个巨大挑战。算法、编码都是非常成熟的。但是,如果没有数据,其余的都无从谈起。
金融,作为数据应用的一个典型的应用场景,受到很多同学的青睐,但是,从哪里获取到金融数据,却成了一个令人困扰的问题。
yfinance提供一种可靠、线程化、Python化的方式,使得能够轻松从雅虎下载金融市场数据。
安装使用
通过pip安装,
pip install yfinance --upgrade --no-cache-dir
通过conda安装,
conda install -c ranaroussi yfinance
下载数据,
import yfinance as yf data = yf.download("SPY AAPL", start="2017-01-01", end="2017-04-30") data = yf.download( # or pdr.get_data_yahoo(... # tickers list or string as well tickers = "SPY AAPL MSFT", # use "period" instead of start/end # valid periods: 1d,5d,1mo,3mo,6mo,1y,2y,5y,10y,ytd,max # (optional, default is '1mo') period = "ytd", # fetch data by interval (including intraday if period < 60 days) # valid intervals: 1m,2m,5m,15m,30m,60m,90m,1h,1d,5d,1wk,1mo,3mo # (optional, default is '1d') interval = "1m", # group by ticker (to access via data['SPY']) # (optional, default is 'column') group_by = 'ticker', # adjust all OHLC automatically # (optional, default is False) auto_adjust = True, # download pre/post regular market hours data # (optional, default is False) prepost = True, # use threads for mass downloading? (True/False/Integer) # (optional, default is True) threads = True, # proxy URL scheme use use when downloading? # (optional, default is None) proxy = None )
Keylogger
Star:802
Keylogger[4]是一款用于记录敲击键盘记录,同时生成一份日志文件的工具。
通过这款工具,你可以应用于很多场景的监控之中,例如,
•监控员工工作
•记录禁用的字符
•保护个人隐私,确保自己不在时没有人使用你的计算机
•自我分析
Keylogger是一款跨平台的开源免费工具,它同时支持如下操作系统,
•Windows•macOS•Linux
numerizer
Star:73
numerizer[5]是一款将自然语言中数字转化成int
或者float
型数字的Python小工具。
在文本分析或者网页爬虫时,无法避免的会遇到很多数字处理的问题,例如,forty two
、one million two hundred and fifty thousand and seven
。想要把这些语言表述转化为数据,往往需要写一个工具类,建立自然语言与数值之间的对应关系,
同时还要处理自然语言的逻辑,这样显然会复杂很多。
numerizer是一款一行命令就可以实现自然语言数字到int和float的转化。
安装使用
可以通过pip命令安装,
pip install numerizer
也可以通过github源码安装,
git clone https://github.com/jaidevd/numerizer.git cd numerizer pip install -e .
可以通过以下简单示例,了解numerizer的使用,
>>> from numerizer import numerize >>> numerize('forty two') '42' >>> numerize('forty-two') '42' >>> numerize('four hundred and sixty two') '462' >>> numerize('one fifty') '150' >>> numerize('twelve hundred') '1200' >>> numerize('twenty one thousand four hundred and seventy three') '21473' >>> numerize('one million two hundred and fifty thousand and seven') '1250007' >>> numerize('one billion and one') '1000000001' >>> numerize('nine and three quarters') '9.75' >>> numerize('platform nine and three quarters') 'platform 9.75'
sentry-python
Star:665
sentry-python[6]是Sentry的开源Python SDK。
那么问题就来到,”Sentry是什么?“
在一个完善的系统中,算法、开发只占据很小的一部分。我认为,负责过正式商业化项目的同学都应该清楚日志的重要性丝毫不亚于那些看似高大上的机器学习算法。系统出现了报警和异常,日志可以协助我们快速定位并修复问题。
Sentry就是一个代码实时事件日志记录和聚合平台,可以用于监控代码的报错及后续调试时所需的所有信息。
而通过sentry-python,我们可以很轻松的在Python中调用Sentry的SDK,
from sentry_sdk import init, capture_message init("https://mydsn@sentry.io/123") capture_message("Hello World") # Will create an event. raise ValueError() # Will also create an event.