分类目录归档:github

Hug 使API开发尽可能简单


Hug的目标是使开发Python驱动的API尽可能简单,但并不简单。因此,它极大地简化了Python API开发

Hug的设计目标:

  • 使开发Python驱动的API与书面定义一样简洁
  • 框架应该鼓励编写自我文档代码
  • 它应该是快的。出于性能原因,开发人员永远不会觉得有必要寻找其他地方。
  • 为在Hug之上编写的API编写测试应该是简单而直观的
  • 在API框架中只做一次比将问题集推给API框架的用户要好
  • 成为下一代Python API的基础,采用最新技术

作为这些目标的结果,Hug仅支持Python3+,并且是在此基础上构建的Falcon’s高性能HTTP库

支持拥抱发展

Get professionally supported hug with the Tidelift Subscription

拥抱的专业支持是作为Tidelift
Subscription
Tidelift为软件开发团队提供了购买和维护软件的单一来源,并由最了解该技术的专家提供专业级别保证,同时与现有工具无缝集成

安装拥抱

安装Hug非常简单,只需:

pip3 install hug --upgrade

理想情况下,在virtual environment

快速入门

只需几行代码即可使用简单端点构建示例API

# filename: happy_birthday.py
"""A basic (single function) API written using hug"""
import hug


@hug.get('/happy_birthday')
def happy_birthday(name, age:hug.types.number=1):
    """Says happy birthday to a user"""
    return "Happy {age} Birthday {name}!".format(**locals())

要运行,请在命令行中键入:

hug -f happy_birthday.py

您可以在浏览器中访问该示例,网址为:localhost:8000/happy_birthday?name=hug&age=1然后在以下位置查看您的API的文档localhost:8000/documentation

参数也可以在URL中编码(签出happy_birthday.py对于整个示例)

@hug.get('/greet/{event}')
def greet(event: str):
    """Greets appropriately (from http://blog.ketchum.com/how-to-write-10-common-holiday-greetings/)  """
    greetings = "Happy"
    if event == "Christmas":
        greetings = "Merry"
    if event == "Kwanzaa":
        greetings = "Joyous"
    if event == "wishes":
        greetings = "Warm"

    return "{greetings} {event}!".format(**locals())

一旦您按照上述方式运行服务器,您就可以通过以下方式使用它:

curl http://localhost:8000/greet/wishes
"Warm wishes!"

拥抱着版本化

# filename: versioning_example.py
"""A simple example of a hug API call with versioning"""
import hug

@hug.get('/echo', versions=1)
def echo(text):
    return text


@hug.get('/echo', versions=range(2, 5))
def echo(text):
    return "Echo: {text}".format(**locals())

要运行示例,请执行以下操作:

hug -f versioning_example.py

然后,您可以从以下位置访问该示例localhost:8000/v1/echo?text=Hi/localhost:8000/v2/echo?text=Hi或从以下地址访问您的API的文档localhost:8000

注意:Hug中的版本控制自动支持版本头和直接基于URL的规范

Hug接口测试

拥抱的http方法装饰器不会修改您的原始函数。这使得测试Hug API与测试任何其他Python函数一样简单。此外,这意味着与其他Python代码中的API函数交互与仅调用Python API函数一样简单。Hug使测试API的完整Python堆栈变得容易,方法是使用hug.test模块:

import hug
import happy_birthday

hug.test.get(happy_birthday, 'happy_birthday', {'name': 'Timothy', 'age': 25}) # Returns a Response object

你可以用这个Response测试断言的对象(签出test_happy_birthday.py):

def tests_happy_birthday():
    response = hug.test.get(happy_birthday, 'happy_birthday', {'name': 'Timothy', 'age': 25})
    assert response.status == HTTP_200
    assert response.data is not None

与其他基于WSGI的服务器运行Hug

拥抱暴露出一种__hug_wsgi__自动在每个API模块上使用魔法方法。在任何标准的WSGI服务器上运行基于Hug的API都应该很简单,只需将其指向module_name__hug_wsgi__

例如:

uwsgi --http 0.0.0.0:8000 --wsgi-file examples/hello_world.py --callable __hug_wsgi__

要运行hello world hug示例API,请执行以下操作

Hug API的构建块

在使用Hug框架构建API时,您将使用以下概念:

方法装饰器getpostupdate等HTTP方法修饰器,在保持Python方法不变的同时将Python函数公开为API

@hug.get() # <- Is the hug METHOD decorator
def hello_world():
    return "Hello"

Hug使用您修饰的函数结构自动为API用户生成文档。Hug始终将请求、响应和API_VERSION变量传递给函数(如果它们是在函数定义中定义的参数

类型批注可选地附加到方法参数的函数,用于指定如何验证参数并将其转换为Python类型

@hug.get()
def math(number_1:int, number_2:int): #The :int after both arguments is the Type Annotation
    return number_1 + number_2

类型批注还会馈送到hug的自动文档生成,让API用户知道要提供什么数据

指令与请求/响应数据一起执行的函数,这些函数基于在API_Function中作为参数被请求。这些仅作为输入参数应用,当前不能作为输出格式或转换应用

@hug.get()
def test_time(hug_timer):
    return {'time_taken': float(hug_timer)}

指令可以通过带有hug_前缀,或使用Python3类型批注。后者是更现代的方法,建议使用。模块中声明的指令可以通过使用它们的完全限定名作为类型注释来访问(例如:module.directive_name)

除了明显的输入转换用例之外,还可以使用指令将数据输送到API函数中,即使它们没有出现在请求查询字符串、POST正文等中。有关如何以这种方式使用指令的示例,请参阅Examples文件夹中的身份验证示例

添加您自己的指令非常简单:

@hug.directive()
def square(value=1, **kwargs):
    '''Returns passed in parameter multiplied by itself'''
    return value * value

@hug.get()
@hug.local()
def tester(value: square=10):
    return value

tester() == 100

为完整起见,下面是通过魔术名称方法访问指令的示例:

@hug.directive()
def multiply(value=1, **kwargs):
    '''Returns passed in parameter multiplied by itself'''
    return value * value

@hug.get()
@hug.local()
def tester(hug_multiply=10):
    return hug_multiply

tester() == 100

输出表单事项获取API函数的输出并对其进行格式化以便传输给API用户的函数

@hug.default_output_format()
def my_output_formatter(data):
    return "STRING:{0}".format(data)

@hug.get(output=hug.output_format.json)
def hello():
    return {'hello': 'world'}

如图所示,您可以轻松地更改整个API和单个API调用的输出格式

输入表事项一个函数,它从API的用户处获取数据体,并对其进行格式化以进行处理

@hug.default_input_format("application/json")
def my_input_formatter(data):
    return ('Results', hug.input_format.json(data))

输入格式化程序基于content_type请求数据,并且仅执行基本解析。更详细的解析应该由您的api_function

中间件Hug API处理的每个请求都会调用的函数

@hug.request_middleware()
def process_data(request, response):
    request.env['SERVER_NAME'] = 'changed'

@hug.response_middleware()
def process_data(request, response, resource):
    response.set_header('MyHeader', 'Value')

您还可以使用以下工具轻松添加任何Falcon样式的中间件:

__hug__.http.add_middleware(MiddlewareObject())

参数映射可用于覆盖推断的参数名称,例如。对于保留关键字:

import marshmallow.fields as fields
...

@hug.get('/foo', map_params={'from': 'from_date'})  # API call uses 'from'
def get_foo_by_date(from_date: fields.DateTime()):
    return find_foo(from_date)

输入格式化程序基于content_type请求数据,并且仅执行基本解析。更详细的解析应该由您的api_function

多文件拆分API

Hug使您能够以任何您认为合适的方式组织大型项目。您可以导入任何包含Hug修饰函数(请求处理、指令、类型处理程序等)的模块,并使用该模块扩展您的基础API

例如:

something.py

import hug

@hug.get('/')
def say_hi():
    return 'hello from something'

可以导入到主API文件中:

__init__.py

import hug
from . import something

@hug.get('/')
def say_hi():
    return "Hi from root"

@hug.extend_api('/something')
def something_api():
    return [something]

或者,对于这样的情况,每个URL路由只包含一个模块:

#alternatively
hug.API(__name__).extend(something, '/something')

配置拥抱404

默认情况下,当用户尝试访问未定义的端点时,Hug返回自动生成的API规范。如果您不想退还此规范,可以关闭404文档:

从命令行应用程序执行以下操作:

hug -nd -f {file} #nd flag tells hug not to generate documentation on 404

此外,您还可以轻松创建自定义404处理程序,方法是使用hug.not_found装饰师:

@hug.not_found()
def not_found_handler():
    return "Not Found"

此修饰器的工作方式与Hug HTTP方法修饰器相同,甚至可以识别版本:

@hug.not_found(versions=1)
def not_found_handler():
    return ""

@hug.not_found(versions=2)
def not_found_handler():
    return "Not Found"

Asyncio支持

在使用getcli协程上的方法修饰器,Hug将调度协程的执行

使用异步协同程序装饰器

@hug.get()
@asyncio.coroutine
def hello_world():
    return "Hello"

使用Python 3.5异步关键字

@hug.get()
async def hello_world():
    return "Hello"

注意:Hug在顶部的Falcon上运行,它不是异步服务器。即使使用Asyncio,仍将同步处理请求

使用Docker

如果您希望在Docker中进行开发并保持系统整洁,您可以这样做,但您需要首先安装Docker Compose

一旦你这样做了,你就需要cd进入到docker目录并运行中指定的Web服务器(Gunicorn./docker/gunicorn/Dockerfile之后,您可以在主机上的浏览器中预览API的输出

$ cd ./docker
# This will run Gunicorn on port 8000 of the Docker container.
$ docker-compose up gunicorn

# From the host machine, find your Dockers IP address.
# For Windows & Mac:
$ docker-machine ip default

# For Linux:
$ ifconfig docker0 | grep 'inet' | cut -d: -f2 | awk '{ print $1}' | head -n1

默认情况下,IP为172.17.0.1。假设这也是您看到的IP,那么您将转到http://172.17.0.1:8000/在您的浏览器中查看您的API

您还可以登录到可以考虑您的工作空间的Docker容器。此工作区安装了Python和Pip,因此您可以在Docker中使用这些工具。例如,如果您需要测试CLI接口,您可以使用以下代码

$ docker-compose run workspace bash

在你的码头上workspace容器中的./docker/templates主计算机上的目录挂载到/src在码头集装箱里。这是在下指定的services>app./docker/docker-compose.yml

bash-4.3# cd /src
bash-4.3# tree
.
├── __init__.py
└── handlers
    ├── birthday.py
    └── hello.py

1 directory, 3 files

安全联系信息

Hug认真对待安全和质量。这就是为什么我们只依赖经过彻底测试的组件并利用静电分析工具(如Banddit和SAFE)来验证我们代码库的安全性的原因。如果您发现或遇到任何潜在的安全问题,请立即通知我们,以便我们解决

若要报告安全漏洞,请使用Tidelift security contactTidelift将协调修复和披露

为什么要拥抱?

拥抱只是希望有用的向导的意思。这代表了该项目的目标,即帮助指导开发人员创建编写良好且直观的API


谢谢,我希望你能找到拥抱对您开发下一个Python API很有帮助!

~蒂莫西·克罗斯利

Fsociety-FSociety黑客工具包–一个渗透测试框架

一个渗透测试框架,您将拥有黑客需要的所有脚本。适用于Python 2。有关Python 3版本,请参阅我们的更新版本,网址为fsociety-team/fsociety

fSociety包含了“机器人先生”系列中使用的所有工具

菜单

  • 信息收集
  • 密码攻击
  • 无线测试
  • 开发工具
  • 嗅探和欺骗
  • 网络黑客攻击
  • 私人网络黑客攻击
  • 后剥削
  • 贡献者
  • 安装和更新

信息收集:

  • nmap
  • Setoolkit
  • 主机到IP
  • WPScan
  • CMS扫描仪
  • XSStrike
  • Dok-Google Dorks被动漏洞审计器
  • 扫描服务器的用户
  • 克里普斯

密码攻击:

  • 杯子
  • Ncrack

无线测试:

  • 掠夺者
  • Pixiewps
  • 蓝牙蜜罐

开发工具:

  • ATSCAN
  • sqlmap
  • 贝努布
  • 逗号
  • FTP自动绕过
  • JBoss Autopwn

嗅探和欺骗:

  • Setoolkit
  • SSLTrip
  • PyPISHER
  • SMTP邮件程序

网络黑客:

  • Drupal黑客攻击
  • Inurlbr
  • WordPress和Joomla扫描仪
  • 重力式扫描仪
  • 文件上载检查器
  • WordPress漏洞扫描程序
  • WordPress插件扫描程序
  • 外壳和目录查找器
  • Joomla!1.5-3.4.5远程代码执行
  • vBulletin 5.X远程代码执行
  • BruteX-自动暴力强制目标上运行的所有服务
  • Arachni-Web应用程序安全扫描程序框架

私人网络黑客攻击:

  • 获取所有网站
  • 获取Joomla网站
  • 获取WordPress网站
  • 控制面板查找器
  • Zip文件查找器
  • 上传文件查找器
  • 获取服务器用户
  • SQLI扫描仪
  • 端口扫描(端口范围)
  • 端口扫描(通用端口)
  • 获取服务器信息
  • 绕过CloudFlare

后剥削:

  • 外壳检查器
  • 诗人
  • 魏曼

安装

安装Linux

bash <(wget -qO- https://git.io/vAtmB)

安装

下载Termux

bash <(wget -qO- https://git.io/vAtmB)

请关注此视频Arif – Tech

安装Windows

下载Linux Bash LikeCygwin

下载Python

使用Google云控制台Cloud Shell

或者使用免费的Ubuntu VPSc9.io

Docker用法

依赖关系

Docker

Docker-compose

docker-compose build
docker-compose up -d
docker-compose exec fsociety fsociety
docker-compose down # destroys instance

屏幕截图

贡献者

alexcreek

mswell

Ev3

huangsam

RyanFilho

gabru-md

jdrago999

CRO-TheHacker

许可证

MIT Licence

SpaceshipGenerator-用于程序化生成3D宇宙飞船的Blender脚本

宇宙飞船生成器

用于从随机种子按程序生成3D宇宙飞船的Blender脚本

用法

  • 安装Blender 2.80或更高版本:http://blender.org/download/
  • 下载最新版本add_mesh_SpaceshipGenerator.zipReleases部分
  • 在编辑>首选项下。>加载项>安装。打开下载的ZIP文件
  • 在编辑>首选项下。>加载项启用“添加网格:宇宙飞船生成器”脚本(搜索“宇宙飞船”)
  • 在3D视图中的添加>网格>宇宙飞船下添加宇宙飞船
  • 展开显示在视口左下角的宇宙飞船选项卡,以调整程序生成设置

它是如何工作的

在YouTube上观看:https://www.youtube.com/watch?v=xJZyXqJ6nog

  • 从一个盒子开始
  • 构建外壳:多次挤出前/后表面,沿途添加随机平移/缩放/旋转
  • 将不对称添加到外壳:拾取随机面并以类似的方式将其挤出,每次都缩小比例
  • 为船体添加细节:按方向对每个面进行分类,并在其上生成细节,如引擎、天线、武器炮塔、灯光等
  • 有时应用水平对称
  • 添加倒角修改器以使形状稍微倾斜
  • 将材质应用于最终结果
  • 用你的新的无限的宇宙飞船舰队接管整个宇宙

极端的例子

以下屏幕截图是使用船体分段数和不对称分段数的极值创建的,以显示算法的工作原理

小贴士和小窍门

  • 默认情况下,该脚本将删除以开头的所有对象Spaceship在制造新的宇宙飞船之前。要禁用此功能,请删除或注释掉对reset_scene()在主函数中的第735行附近
  • 您可以将种子提供给generate_spaceship()功能以始终生成相同的宇宙飞船。例如,generate_spaceship('michael')
  • 这个generate_spaceship()函数接受更多影响生成过程的参数。试试和他们玩吧!
  • 您可以用自己的纹理替换纹理。所有纹理都使用全局空间立方体UV应用。hull_normal.png是添加额外曲面“问候语”的法线贴图。hull_lights_diffuse.png是一种附加漫反射纹理,用于设置窗光的颜色。hull_lights_emit.png是一种发光纹理,使窗户在黑暗中发光

学分

为了好玩而写的,作为/r/proceduralgeneration2016年6月monthly challenge

根据MIT License

迈克尔·戴维斯编写和维护

GitHub@a1studmuffin推特@butterparty

特别感谢@panzi对于错误修复,需要合适的GUI和构建脚本。也可以@mjrthemes用于错误修复,以及@LendoK对于2.80端口

Backtrader-用于交易策略的Python回测库

下面是一个简单移动平均线交叉的代码片段。这可以用几种不同的方式来完成。使用文档(和示例),Luke!
from datetime import datetime
import backtrader as bt

class SmaCross(bt.SignalStrategy):
    def __init__(self):
        sma1, sma2 = bt.ind.SMA(period=10), bt.ind.SMA(period=30)
        crossover = bt.ind.CrossOver(sma1, sma2)
        self.signal_add(bt.SIGNAL_LONG, crossover)

cerebro = bt.Cerebro()
cerebro.addstrategy(SmaCross)

data0 = bt.feeds.YahooFinanceData(dataname='MSFT', fromdate=datetime(2011, 1, 1),
                                  todate=datetime(2012, 12, 31))
cerebro.adddata(data0)

cerebro.run()
cerebro.plot()

包括一张功能齐全的图表。试试看!这包含在样本中,作为sigsmacross/sigsmacross2.py沿着这条路走sigsmacross.py可以从命令行参数化的

功能:

用Python编写的实时交易和回测平台

  • 实时数据馈送和交易
    • 互动代理(需求IbPy并极大地受益于已安装的pytz)
    • 视觉图表)需要一把叉子comtypes直到拉入请求集成到版本中并受益于pytz)
    • OANDA(需要oandapy)(仅限睡觉接口-v20实现时不支持流媒体)
  • 来自CSV/文件、在线来源或来自的数据馈送熊猫猛火
  • 数据筛选器,如将每日条形图分成块以模拟日内或使用Renko砖块
  • 支持多种数据馈送和多种策略
  • 一次多个时间范围
  • 集成重采样和重放
  • 逐步回溯测试或一次性回测(战略评估除外)
  • 一体式指示器电池
  • Ta-Lib指示器支持(需要pythonTa-lib/检查文档)
  • 轻松开发自定义指标
  • 分析器(例如:TimeReturn、Sharpe Ratio、SQN)和pyfolio集成(已弃用)
  • 灵活界定佣金计划
  • 集成代理模拟与市场限制停止限制停止轨迹StopTrailLimit*和*OCO订单、托架订单、滑移、成交量填充策略和未来类工具的持续现金调整
  • 用于自动打桩的定尺器
  • 关闭时作弊和打开时作弊模式
  • 调度程序
  • 交易日历
  • 打印(需要matplotlib)

文档

博客:

要阅读完整文档,请访问:

内置指示器列表(122)

Python 2/3支持

  • Python>=3.2
  • 它还可以与pypypypy3(不得图谋-matplotlib在以下情况下不受支持PyPy)

安装

backtrader是自包含的,没有外部依赖项(除非您想要打印)

从…琵琶

  • pip install backtrader
  • pip install backtrader[plotting]

    如果matplotlib未安装,您希望执行一些打印操作

注意事项

matplotlib的最低版本为1.4.1

以下是一个示例IB数据馈送/交易:

  • IbPy似乎不在PyPi里。执行以下任一操作:
    pip install git+https://github.com/blampe/IbPy.git
    

    或(如果git在您的系统中不可用):

    pip install https://github.com/blampe/IbPy/archive/master.zip
    

对于其他功能,如:Visual ChartOandaTA-Lib,请检查文档中的依赖项

来源:

  • Backtrader在项目内部的源代码中找到的目录

版本编号

X.Y.Z.I

  • X:主版本号。应该保持稳定,除非有大的改变,比如大修以使用numpy
  • Y:次要版本号。在添加完整的新功能或(上帝保佑)不兼容的API更改时进行更改
  • Z:修订版本号。针对文档更新、小更改、小错误修复进行更改
  • i:平台中已内置的指标数量

Pydantic-使用Python类型提示进行数据解析和验证

使用Python类型提示进行数据验证和设置管理

快速且可扩展,虚伪的很好地玩你的短裤/IDE/大脑。定义数据在纯规范Python3.6+中的格式;使用以下命令进行验证虚伪的

帮助

看见documentation有关更多详细信息,请参阅

安装

使用以下方式安装pip install -U pydanticconda install pydantic -c conda-forge有关要进行的更多安装选项,请参阅虚伪的更快,请参阅Install部分,请参阅文档中的

一个简单的例子

from datetime import datetime
from typing import List, Optional
from pydantic import BaseModel

class User(BaseModel):
    id: int
    name = 'John Doe'
    signup_ts: Optional[datetime] = None
    friends: List[int] = []

external_data = {'id': '123', 'signup_ts': '2017-06-01 12:22', 'friends': [1, '2', b'3']}
user = User(**external_data)
print(user)
#> User id=123 name='John Doe' signup_ts=datetime.datetime(2017, 6, 1, 12, 22) friends=[1, 2, 3]
print(user.id)
#> 123

贡献

有关设置开发环境以及如何为虚伪的,请参见Contributing to Pydantic

报告安全漏洞

请参阅我们的security policy

Labelme-使用Python的图像多边形批注(多边形、矩形、圆、直线、点和图像级标志批注)

Labelme是一个图形图像标注工具,灵感来自http://labelme.csail.mit.edu
它是用Python编写的,并使用Qt作为其图形界面


各种图元(多边形、矩形、圆、直线和点)

功能

要求

安装

有以下选项:

python

您需要安装Anaconda,然后在下面运行:

# python2
conda create --name=labelme python=2.7
source activate labelme
# conda install -c conda-forge pyside2
conda install pyqt
pip install labelme
# if you'd like to use the latest version. run below:
# pip install git+https://github.com/wkentaro/labelme.git

# python3
conda create --name=labelme python=3.6
source activate labelme
# conda install -c conda-forge pyside2
# conda install pyqt
# pip install pyqt5  # pyqt5 can be installed via pip on python3
pip install labelme
# or you can install everything by conda command
# conda install labelme -c conda-forge

码头工人

您需要安装docker,然后在下面运行:

# on macOS
socat TCP-LISTEN:6000,reuseaddr,fork UNIX-CLIENT:\"$DISPLAY\" &
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=docker.for.mac.host.internal:0 -v $(pwd):/root/workdir wkentaro/labelme

# on Linux
xhost +
docker run -it -v /tmp/.X11-unix:/tmp/.X11-unix -e DISPLAY=:0 -v $(pwd):/root/workdir wkentaro/labelme

Ubuntu

# Ubuntu 14.04 / Ubuntu 16.04
# Python2
# sudo apt-get install python-qt4  # PyQt4
sudo apt-get install python-pyqt5  # PyQt5
sudo pip install labelme
# Python3
sudo apt-get install python3-pyqt5  # PyQt5
sudo pip3 install labelme

# or install standalone executable from:
# https://github.com/wkentaro/labelme/releases

Ubuntu 19.10+/debian(Sid)

sudo apt-get install labelme

MacOS

# macOS Sierra
brew install pyqt  # maybe pyqt5
pip install labelme  # both python2/3 should work

# or install standalone executable/app from:
# https://github.com/wkentaro/labelme/releases

窗口

安装Anaconda,然后在python提示运行中:

# python3
conda create --name=labelme python=3.6
conda activate labelme
pip install labelme

用法

labelme --help有关详细信息,请参阅
批注另存为JSON文件

labelme  # just open gui

# tutorial (single image example)
cd examples/tutorial
labelme apc2016_obj3.jpg  # specify image file
labelme apc2016_obj3.jpg -O apc2016_obj3.json  # close window after the save
labelme apc2016_obj3.jpg --nodata  # not include image data but relative image path in JSON file
labelme apc2016_obj3.jpg \
  --labels highland_6539_self_stick_notes,mead_index_cards,kong_air_dog_squeakair_tennis_ball  # specify label list

# semantic segmentation example
cd examples/semantic_segmentation
labelme data_annotated/  # Open directory to annotate all images in it
labelme data_annotated/ --labels labels.txt  # specify label list with a file

有关更高级的用法,请参阅示例:

命令行参数

  • --output指定将写入批注的位置。如果位置以.json结尾,则此文件中将写入单个注释。如果使用.json指定位置,则只能注释一个图像。如果位置不是以.json结尾,程序将假定它是一个目录。批注将存储在此目录中,其名称与在其上进行批注的图像相对应
  • 第一次运行labelme时,它将在~/.labelmerc您可以编辑此文件,更改将在下次启动labelme时应用。如果您希望使用来自其他位置的配置文件,可以使用--config旗帜
  • 如果没有--nosortlabels标志时,程序将按字母顺序列出标签。当程序使用此标志运行时,它将按照标签提供的顺序显示标签
  • 将标志分配给整个图像。Example
  • 标签指定给单个多边形。Example

常见问题解答

测试

pip install hacking pytest pytest-qt
flake8 .
pytest -v tests

发展中的

git clone https://github.com/wkentaro/labelme.git
cd labelme

# Install anaconda3 and labelme
curl -L https://github.com/wkentaro/dotfiles/raw/master/local/bin/install_anaconda3.sh | bash -s .
source .anaconda3/bin/activate
pip install -e .

如何构建独立的可执行文件

下面显示了如何在MacOS、Linux和Windows上构建独立的可执行文件

# Setup conda
conda create --name labelme python==3.6.0
conda activate labelme

# Build the standalone executable
pip install .
pip install pyinstaller
pyinstaller labelme.spec
dist/labelme --version

如何做出贡献

确保以下测试在您的环境中通过
看见.github/workflows/ci.yml有关更多详细信息,请参阅

pip install black hacking pytest pytest-qt

flake8 .
black --line-length 79 --check labelme/
MPLBACKEND='agg' pytest tests/ -m 'not gpu'

确认

这项回购是mpitid/pylabelme,它的发育已经停止了

引用此项目

如果您在研究中使用此项目或希望参考自述文件中发布的基线结果,请使用以下BibTeX条目

@misc{labelme2016,
  author =       {Kentaro Wada},
  title =        {{labelme: Image Polygonal Annotation with Python}},
  howpublished = {\url{https://github.com/wkentaro/labelme}},
  year =         {2016}
}

Qutebrowser-基于PyQt5的键盘驱动、类似VIM的浏览器

QuteBrowser是一款以键盘为中心的浏览器,具有最小的GUI。它基于Python和PyQt5以及GPL许可的自由软件

它的灵感来自于其他浏览器/插件,如DWB和Vperator/Pentadactyl

QuteBrowser的主要维护人员-Compiler目前在捐款的资助下兼职开发QuteBrowser要使这种情况持续很长时间,需要您的帮助!请参阅GitHub Sponsors page了解更多信息。根据您的注册日期和保持一定级别的时间,您可以获得QuteBrowser T恤、贴纸等!

下载次数

请参阅github releases
page
有关可用的下载和INSTALL有关如何在各种平台上运行QuteBrowser的详细说明,请参阅

文档和获取帮助

请参阅help page有关可用的文档页面和支持频道

贡献/错误

您想为QuteBrowser做贡献吗?太棒了!请阅读the contribution guidelines以获取详细信息和有用的提示

如果您发现错误或有功能请求,可以通过以下几种方式进行报告:

有关安全漏洞,请直接通过以下地址与我联系mail@qutebrowser.org,GPG ID0x916eb0c8fd55a072

要求

运行QuteBrowser需要以下软件和库:

  • Python3.6.1或更高版本
  • Qt带有以下模块的5.12.0或更高版本(建议使用5.12 LTS或5.15):
    • QtCore/qtbase
    • QtQuick(在某些发行版中是qtbase或qt声明性的一部分)
    • QtSQL(某些发行版中的qtbase的一部分)
    • QtDBus(在某些发行版中是qtbase的一部分;请注意,在运行时连接到DBus是可选的)
    • QtOpenGL
    • QtWebEngine,或
    • 或者QtWebKit(5.212)-不建议这样做由于QtWebKit中已知的安全问题,您很可能希望使用具有默认QtWebEngine后端(基于Chromium)的quteBrowser。引用QtWebKit releases page[最新的QtWebKit]版本基于[一个]旧的WebKit版本,其中包含已知的未打补丁的漏洞。请谨慎使用,避免访问不可信的网站和用于传输敏感数据
  • PyQt适用于Python 3的5.12.0或更高版本
  • jinja2
  • PyYAML

在较早的Python版本(3.6/3.7/3.8)上,还需要以下后端口:

以下库是可选的:

  • adblock(对于使用ABP语法改进的广告阻止)
  • pygments对于语法突出显示,请使用:view-source在QtWebKit上,或在使用:view-source --pygments使用(默认)QtWebEngine后端
  • 在Windows上,colorama对于彩色日志输出
  • importlib_resources在Python3.7或更早版本上,当通过pip安装PyQtWebEngine时,为了改进QtWebEngine版本检测(因此,此依赖项通常与打包程序无关)
  • asciidoc要生成文档,请执行以下操作:help命令,当使用git存储库(而不是发行版)时。

看见the documentation有关如何安装QuteBrowser及其依赖项的说明

捐赠

QuteBrowser的主要维护人员-Compiler目前在捐款的资助下兼职开发QuteBrowser要使这种情况持续很长时间,需要您的帮助!请参阅GitHub Sponsors page了解更多信息。根据您的注册日期和保持一定级别的时间,您可以获得QuteBrowser T恤、贴纸等!

GitHub赞助商允许一次性捐款(使用“选择级别”旁边的按钮)和自定义金额。对于欧元或瑞士法郎以外的货币,这是首选的捐赠方式GitHub使用Stripe接受信用卡付款,不收取任何费用。通过PayPal付款也是可用的,费用比直接PayPal交易要少

或者,也可以使用以下捐赠方式, - 请注意,是否有资格获得礼品(衬衫/贴纸/等)请按具体情况处理。get in touch有关详细信息,请参阅

  • 国家环保总局欧洲境内银行转账(不收费):
    • 账户持有人:弗洛里安·布鲁欣(Florian Bruhin)
    • 国家:瑞士
    • 伊班(欧元):CH13 0900 0000 9160 4094 6
    • IBAN(其他):CH800 0900 0000 8711 8587 3
    • 银行:PostFinance AG,Mingerstrasse 20,3030 Bern,Swiss(BIC:POFICHBEXXX)
    • 如果您需要任何其他信息:请通过以下方式与我联系mail@qutebrowser.org
  • 贝宝:CHFEURUSD注:费用可能非常高(根据捐赠金额的不同,约为5-40%)-考虑使用GitHub赞助商(接受信用卡或贝宝!)或SEPA银行转账
  • 加密货币:
    • 比特币:bc1q3ptyw8hxrcfz6ucfgmglphfvhqpy8xr6k25p00
    • 比特币现金:1BnxUbnJ5MrEPeh5nuUMx83tbiRAvqJV3N
    • 以太:0x10c2425856F7a8799EBCaac4943026803b1089c6
    • Litecoin:MDt3YQciuCh6QyFmr8TiWNxB94PVzbnPm2
    • 其他:请get in touch,我很乐意设置任何东西supported by Ledger Live

赞助商

非常感谢MacStadium通过其免费托管的Mac Mini支持QuteBrowserOpen Source Project

(他们不需要在这里包括这些-我只是对他们的提议非常满意,没有他们,就不会有MacOS版本或测试)

多亏了HSR Hochschule für Technik Rapperswil,这使得将quteBrowser扩展作为学生研究项目进行研究成为可能。


作者

QuteBrowser的主要作者是Florian Bruhin(编译器),但是如果没有hundreds of contributors好了!

此外,以下人员还提供了图形:

  • Jad/yelo(新建图标)
  • WOFALL(原始图标)
  • regines(密钥绑定小抄)

另外,感谢为QuteBrowser的其中一个项目做出贡献的每一个人crowdfunding campaigns好了!

类似的项目

像QuteBrowser这样有着相似目标的项目还有很多。在某种程度上,他们中的许多人都是QuteBrowser的灵感来源,谢谢你!

活动的

不活动

许可证

本程序是自由软件:您可以根据自由软件基金会发布的GNU通用公共许可证的条款、许可证的版本3或(根据您的选择)对其进行再分发和/或修改

分发本程序的目的是希望它有用,但没有任何担保;甚至没有对适销性或是否适用于特定目的的默示担保。有关更多详细信息,请参阅GNU通用公共许可证

您应该已经收到此程序附带的GNU通用公共许可证副本。如果没有,请参见https://www.gnu.org/licenses/gpl-3.0.txt

pdf.js

QuteBrowser可以选择使用pdf.js要在浏览器中显示PDF文件,请执行以下操作。Windows版本附带捆绑的pdf.js

pdf.js是按照Apache许可证的条款分发的。您可以在以下位置找到许可证的副本qutebrowser/3rdparty/pdfjs/LICENSE(在Windows发行版中或在运行scripts/dev/update_3rdparty.py)或在线here

Webshell-这是一个WebShell开放源码项目

WebShell|English

这是一个WebShell收集项目

送人玫瑰,手有余香,如果各位下载了本项目,也请您能提交外壳

本项目涵盖各种常用脚本

如:asp、aspx、php、jsp、pl、py

如提交各种WebShell,请勿更改名称和密码

注意:所有外壳本人不保证是否有后门,但是自己上传的绝不会故意加后门

各位提交的,也请勿加后门

如发现存在后门代码,请问题。

本项目提供的工具,禁止从事非法活动,此项目,仅供测试,所造成的一切后果,与本人无关.

在扩展一个项目

  1. webshell-venom
  2. 免杀WebShell无限生成工具

免杀WebShell无限生成工具(免杀一句话生成|免杀D盾|免杀安全狗护卫神河马查杀等一切晶圆)

作者:yzddmr6

https://github.com/pureqh/webshell

请自行鉴别后门

其他Webshell项目(更新2021-04-03)

  1. xl7dev/WebShell
  2. JohnTroony/php-webshells
  3. BlackArch/webshells
  4. LandGrey/webshell-detect-bypass
  5. JoyChou93/webshell
  6. bartblaze/PHP-backdoors
  7. WangYihang/Webshell-Sniper
  8. threedr3am/JSP-Webshells
  9. DeEpinGh0st/PHP-bypass-collection
  10. lcatro/PHP-WebShell-Bypass-WAF
  11. ysrc/webshell-sample
  12. tanjiti/webshellSample
  13. webshellpub/awsome-webshell
  14. tdifg/WebShell
  15. malwares/WebShell
  16. lhlsec/webshell
  17. oneoneplus/webshell
  18. vnhacker1337/Webshell
  19. backlion/webshell
  20. twepl/wsophp8的WSO

顺便在推一波网站管理工具

  1. 中国菜刀
  2. C刀
  3. Altman
  4. 西泽
  5. Weevely
  6. quasibot
  7. Webshell-Sniper
  8. 蚁剑 antSword
  9. 冰蝎 Behinder
  10. webacoo
  11. 哥斯拉 Godzilla
  12. PhpSploit
  13. 以上排名不分先后

作者:Tennc

http://tennc.github.io/webshell

许可证:GPL v3

下载链接

检查GitHub版本。最新消息:

https://github.com/tennc/webshell/releases

感谢Jetbrains

Pyro-基于Python和PyTorch的深度通用概率编程

Pyro是一个构建在PyTorch之上的灵活的、可伸缩的深度概率编程库。值得注意的是,它的设计考虑到了以下原则:
  • 通用的:pyro是一种通用的PPL-它可以表示任何可计算的概率分布
  • 可扩展:pyro可扩展到大型数据集,与手写代码相比开销很小
  • 极小值:pyro是灵活的,可维护的。它是由强大的、可组合的抽象组成的一个小核心来实现的
  • 灵活性:PYRO的目标是在需要的时候实现自动化,在需要的时候进行控制。这是通过高级抽象来表示生成和推理模型来实现的,同时允许专家方便地访问自定义推理

Pyro最初是由Uber AI开发的,现在由社区贡献者积极维护,包括在Broad Institute2019年,PyrobecameLinux基金会的一个项目,这是一个在开源软件、开放标准、开放数据和开放硬件方面进行协作的中立空间

有关Pyro的高级动机的更多信息,请查看我们的launch blog post有关其他博客帖子,请查看experimental designtime-to-event modeling在Pyro中

正在安装

安装稳定的Pyro版本

使用pip安装:

Pyro支持Python 3.6+

pip install pyro-ppl

从源安装:

git clone git@github.com:pyro-ppl/pyro.git
cd pyro
git checkout master  # master is pinned to the latest release
pip install .

使用额外的软件包进行安装:

要安装运行中包含的概率模型所需的依赖项,请执行以下操作examples/tutorials目录,请使用以下命令:

pip install pyro-ppl[extras]

确保这些模型来自同一版本的Pyro source code因为您已经安装了

安装Pyro dev分支

对于最新的功能,您可以从源代码安装Pyro

使用pip安装Pyro:

pip install git+https://github.com/pyro-ppl/pyro.git

或者,使用extras依赖项来运行包含在examples/tutorials目录:

pip install git+https://github.com/pyro-ppl/pyro.git#egg=project[extras]

从源安装Pyro:

git clone https://github.com/pyro-ppl/pyro
cd pyro
pip install .  # pip install .[extras] for running models in examples/tutorials

从Docker容器运行Pyro

请参阅说明here

引文

如果您使用Pyro,请考虑引用:

@article{bingham2019pyro,
  author    = {Eli Bingham and
               Jonathan P. Chen and
               Martin Jankowiak and
               Fritz Obermeyer and
               Neeraj Pradhan and
               Theofanis Karaletsos and
               Rohit Singh and
               Paul A. Szerlip and
               Paul Horsfall and
               Noah D. Goodman},
  title     = {Pyro: Deep Universal Probabilistic Programming},
  journal   = {J. Mach. Learn. Res.},
  volume    = {20},
  pages     = {28:1--28:6},
  year      = {2019},
  url       = {http://jmlr.org/papers/v20/18-403.html}
}

Lbry-sdk-用于构建分散的、抗审查的、货币化的数字内容应用程序的LBRY SDK

LBRY SDK

LBRY是一种用于发布和访问数字内容的分散式对等协议。它利用LBRY blockchain作为数字内容的全局命名空间和数据库。区块链条目包含可搜索的内容元数据、身份、权限和访问规则。LBRY还提供一个数据网络,该数据网络包括可能为换取付款而从其他对等点上载和下载数据的对等点(种子点),以及对等点用来发现其他对等点的分布式哈希表

LBRY SDK for Python是目前功能最齐全的LBRY网络协议实现,包括许多用于构建分散应用程序的有用组件和工具。主要功能和组件包括:

  • 基于Python3.7和asyncio
  • Kademlia DHT(分布式哈希表)实现,用于查找要下载的对等点,并向对等点宣布我们必须托管的内容(lbry.dht)
  • BLOB交换协议,用于传输加密的内容BLOB并协商付款(lbry.blob_exchange)
  • 用于对区块链上存储的元数据进行编码和解码的Protobuf模式(lbry.schema)
  • LBRY区块链的钱包实施(lbry.wallet)
  • 带有JSON-RPC API的守护进程,可轻松构建任何语言的最终用户应用程序并自动执行各种任务(lbry.extras.daemon)

安装

我们的releases page包含MacOS、基于Debian的Linux和Windows的最新版本、预发布版本和以前版本的预构建二进制文件。Automated travis builds也可用于测试

用法

lbrynet start要启动API服务器,请执行以下操作

默认情况下,lbrynet将在以下位置提供JSON-RPC服务器http://localhost:5279通过CURL或SSANE编程语言可以很容易地与其交互

我们的quickstart guide提供简单的演练和学习示例。

在守护进程运行的情况下,lbrynet commands将向您显示命令列表

完整的API已记录在案here

从源运行

从源代码安装也相对容易。完整的说明在INSTALL.md

贡献

对这个项目的贡献是受欢迎、鼓励和补偿的。欲了解更多详情,请查看this链接

许可证

这个项目是麻省理工学院授权的。有关完整许可证,请参阅LICENSE

安全性

我们认真对待安全问题。请联系security@lbry.com关于任何安全问题。Our PGP key is here如果你需要的话

联系方式

此项目的主要联系人是@eukreign

更多信息和链接

可以找到该API的文档here

记录了守护程序默认设置、端口和其他设置here

可以使用daemon-settings.yml文件配置设置。可以找到一个例子here