PyHubWeekly | 第十九期:谁偷看了你的电脑?

本文涉及的产品
日志服务 SLS,月写入数据量 50GB 1个月
NLP自然语言处理_高级版,每接口累计50万次
NLP 自学习平台,3个模型定制额度 1个月
简介: PyHubWeekly每周定期更新,精选GitHub上优质的Python项目/小工具。我把PyHubWeekly托管到了Github,感兴趣的可以搜索Github项目PyHubWeekly[1],如果喜欢,麻烦给个Star支持一下吧。此外,欢迎大家通过提交issue来投稿和推荐自己的项目~本期为大家推荐GitHub上5个优质的Python项目,它们分别是:•vardbg•yfinance•Keylogger•numerizer•sentry-python

下面分别来介绍一下上述5个GitHub项目。


vardbg

Star:508


vardbg[2]是一款可以把Python代码调试生成可视化图像的工具。


代码调试是开发过程中占比很重的一个环节,也是非常繁琐、复杂的一个阶段。开发者一直在考虑,如果实现更加高效、准确的代码调试。


记得前不久看到Microsoft也在测试vs code的代码调试可视化工具,这让我颇为期待,我想,和我有同样心理的开发者应该不在少数。


其实,不需要等待vs code正式发布,我们就可以尝鲜这项功能。


vardbg可以把代码程序执行流程生成可视化图像,这样不仅可以有助于调试代码,还可以帮助可视化算法流程,有助于算法的学习。


35.gif


安装使用

可以直接使用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是一款跨平台的开源免费工具,它同时支持如下操作系统,

WindowsmacOSLinux


numerizer

Star:73

numerizer[5]是一款将自然语言中数字转化成int或者float型数字的Python小工具。

在文本分析或者网页爬虫时,无法避免的会遇到很多数字处理的问题,例如,forty twoone 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.
相关文章
|
7月前
|
算法 数据可视化 数据挖掘
大学生必备!GitHub星标破千的matlab教程(从新手到骨灰级玩家)
MATLAB(Matrix Laboratory)是MathWorks公司推出的用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境的商业数学软件。 MATLAB具有数值分析、数值和符号计算、工程与科学绘图、数字图像处理、财务与金融工程等功能,为众多科学领域提供了全面的解决方案。
膜拜!清华大佬手撸多线程并发源码笔记Github上线3天星标35k+
你为什么要学习多线程?是因为理想吗?是因为热爱吗? 哦~原来是为了面试打基础、做准备啊!没错,这真的很现实!
膜拜!清华大佬手撸多线程并发源码笔记Github上线3天星标35k+
|
编解码 自然语言处理 安全
电脑小白必备的五款软件,让你的电脑变身神器
你想让你的电脑更好用吗?这里有五款电脑软件可以帮你,它们可以让你的电脑更高效、美观、安全,快来看看吧!
159 1
电脑小白必备的五款软件,让你的电脑变身神器
|
Web App开发 前端开发 程序员
电脑上终极的摸鱼神器,非它莫属。
电脑上终极的摸鱼神器,非它莫属。
|
存储 安全 程序员
为什么我放弃了有道云笔记,选择了 Obsidian
为什么我放弃了有道云笔记,选择了 Obsidian
612 0
|
SQL JavaScript Java
搭建情人节表白网站(超详细过程,包教包会)
网站的搭建其实在七夕的时候就已经弄好了,只是当时不会搭建,然后就放了好几个月,偶然发现情人节快到了,遂重新搭建了这个网站,不过说实话除了网站还真想不出有啥能够体现程序员的特长,你说各种代码,c,c++,java即时给你做出不错的GUI界面,人家还不一定会打开,网站最容易了,有手(机)就行,下面是它的效果展示视频,觉得好的记得三连哦
444 0
搭建情人节表白网站(超详细过程,包教包会)
|
iOS开发 MacOS Windows
Xmind2023电脑版永久免费的思维导图软件
等待许久的Xmind 2023成功激活,全新的思维导图软件,它具有新主题,其中一些具有更柔和的色调,以提供更现代的外观。它的独特功能是“禅宗模式”,它将自动隐藏额外的面板,使您可以专注于自己的想法并添加到文档中,而不会分心。XMind2023这款软件能够为用户提供非常先进的产品功能和体验,使用过后你会惊奇的发现,你的各项工作效率都在大大提高,这样会帮助你节省大量的时间,方便提升自己工作上的便利,就我个人而言,使用几天后还是非常方便的,效率提升很大。
1261 0
|
SQL 前端开发 JavaScript
情人节Github开源项目大“赏”,花样表白她!
情人节Github开源项目大“赏”,花样表白她!
565 0
情人节Github开源项目大“赏”,花样表白她!
|
存储 安全 数据安全/隐私保护
关于我用无影玩游戏这件事
用无影玩游戏多是一件‘’美事‘’
8874 0
关于我用无影玩游戏这件事