httpbin(1):HTTP请求和响应服务
一个Kenneth Reitz项目
本地运行:
docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin
看见http://httpbin.org了解更多信息
一个Kenneth Reitz项目
本地运行:
docker pull kennethreitz/httpbin
docker run -p 80:80 kennethreitz/httpbin
看见http://httpbin.org了解更多信息
PyInstaller将Python应用程序及其所有依赖项捆绑到单个包中。用户无需安装Python解释器或任何模块即可运行打包的应用程序
文档: | https://pyinstaller.readthedocs.io/ |
---|---|
网站: | http://www.pyinstaller.org/ |
代码: | https://github.com/pyinstaller/pyinstaller |
PyInstaller读取您编写的Python脚本。它分析您的代码以发现您的脚本执行所需的所有其他模块和库。然后,它会收集所有这些文件的副本–包括活动的Python解释器!–并将它们与脚本放在单个文件夹中,或者也可以放在单个可执行文件中
PyInstaller在Windows、MacOSX和GNU/Linux上进行了测试。但是,它不是交叉编译器:要制作Windows应用程序,您需要在Windows中运行PyInstaller;要制作GNU/Linux应用程序,需要在GNU/Linux等环境中运行它。PyInstaller已成功用于AIX、Solaris、FreeBSD和OpenBSD,但作为持续集成测试的一部分,没有针对它们进行测试
PyInstaller在PyPI上可用。您可以通过pip安装它:
pip install pyinstaller
- 3.6-3.9
- tinyaes1.0+(仅当使用字节码加密时)。与其安装天鹅座,
pip install pyinstaller[encryption]
取而代之的是
- PyInstaller应该可以在Windows 7或更新版本上运行,但我们只正式支持Windows 8+
- 由于以下原因,当不使用虚拟环境时,我们不支持从Windows商店安装Pythonpermission errors那不是很容易修好的
- LDD:用于打印每个程序或共享库所需共享库的控制台应用程序。这通常可以在分发包glibc或libc-bin中找到
- objdump:显示对象文件信息的控制台应用程序。这通常可以在分发包的binutils中找到
- objcopy:复制和翻译目标文件的控制台应用程序。这通常也可以在分发包的binutils中找到
- Mac OS X 10.13(High Sierra)或更高版本
基本用法非常简单,只需针对您的主脚本运行即可:
pyinstaller /path/to/yourscript.py
有关更多详细信息,请参阅manual
已经贡献了以下平台,欢迎对这些平台进行任何反馈或增强
- LDD
- LDD
- 对象转储
- AIX 6.1或更高版本。PyInstaller不能使用静态链接的Python库
- LDD
在使用任何贡献的平台之前,您需要构建PyInstaller引导加载器,因为我们不提供二进制包。下载PyInstaller源代码,并构建引导加载器:
cd bootloader python ./waf all
然后安装PyInstaller:
python setup.py install
或者直接从源代码(pyinstaller.py)使用它
看见http://www.pyinstaller.org/support.html有关如何获得帮助以及商业支持的信息
您可以在以下位置找到此版本中更改的详细列表Changelog手册的一节
进展如何:
Gamestonk Terminal为投资研究提供了一个基于Python的现代集成环境,允许普通的Joe零售交易员利用最先进的数据科学和机器学习技术
作为一个基于Python的现代环境,GamestonkTerminal打开了对数据科学(Pandas、Numpy、Scipy、Jupyter)、机器学习(Pytorch、TensorFlow、SkLearning、FLAIR)和数据采集(Beautiful Soup)和众多第三方API中众多Python数据库的访问
Gamestonk终端是一个免费的开源软件。这意味着整个代码库是公开的,任何用户都可以免费使用
我们的一个小团队一直在努力为项目提供尽可能多的更新,这是在工作时间之外完成的,通常是深夜来改进这个工具。虽然我们没有从Gamestonk终端赚到任何钱,但我们希望确保我们所有的用户都能从我们的软件中获得最好的投资。随着我们继续在这个项目上继续建设,我们将非常感谢任何形式的捐赠或支持,这样我们就可以购买更多的咖啡来为我们提供更多的燃料!
这是我们的Patreon页面:https://www.patreon.com/gamestonkterminal
有很多方法可以帮助支持商品及服务税。如果您想提供非货币性的帮助,请加入我们的discord与朋友共享终端也会有很大帮助。先谢谢猩猩
如果您想看安装过程的视频记录,@JohnnyDankSeed已经提供了一个here
user@mchow01已经提供了关于以下内容的教程how to run the terminal on an Apple M1
该项目支持Python 3.7、3.8和3.9
我们当前的建议是将此项目与Anaconda的Python发行版一起使用-可以是完整的Anaconda3 Latest或Miniconda3 Latest该项目中的几个功能利用了机器学习。机器学习Python依赖项是可选的。如果您决定在以后添加机器学习功能,则使用Anaconda的Python发行版可能会获得更好的用户体验
使用以下命令确认您拥有它:conda -V
输出应该是类似以下内容的内容:conda 4.9.2
conda install -c anaconda git
git clone https://github.com/GamestonkTerminal/GamestonkTerminal.git
git clone git@github.com:GamestonkTerminal/GamestonkTerminal.git
cd GamestonkTerminal/
您可以随心所欲地命名环境。尽管您可以使用如下名称:welikethestock
,thisistheway
或diamondhands
,我们推荐一些简单直观的东西,比如gst
这是因为从现在开始将使用这个名称。
conda env create -n gst --file build/conda/conda-3-8-env.yaml
conda activate gst
注意:最后,您可以使用以下命令将其停用:conda deactivate
poetry install
如果您在诗歌方面遇到问题(例如,在Windows系统上),只需使用pip安装Requirements.txt即可
pip install -r requirements.txt
python terminal.py
安装Gamestonk终端后,您会发现一个名为“Gamestonk Terminal.bat”的文件。您可以使用此文件更快地打开Gamestonk终端。如果您愿意,可以将此文件移动到您的桌面。如果您在尝试运行批处理文件时遇到问题。如果您遇到批处理文件的问题,请编辑该文件并检查目录是否匹配。此文件假定您在安装时使用了默认目录
注:当您关闭终端并重新打开它时,您需要重新调用的唯一命令是conda activate gst
在你打电话之前python terminal.py
又一次
故障排除:如果您在安装时遇到问题,请查看我们的最新版本troubleshoot page
如果您是高级用户并使用其他Python发行版,我们有几个Requirements.txt文档可供您选择以下载项目依赖项
如果在步骤5中使用的是conda而不是build/conda/conda-3-8-env.yaml配置文件,请使用build/conda/conda-3-8-env-full
注意:在requirements.txt文件已经过测试并可用于此项目,但是,这些文件可能是较旧的版本。因此,建议用户在安装它们之前设置一个虚拟Python环境。这允许将不同项目所需的依赖项保存在不同的位置
如果您想使用可选的机器学习功能:
ENABLE_PREDICT = os.getenv("GTFF_ENABLE_PREDICT") or True
poetry install -E prediction
如果要设置坞站映像,请执行以下操作:
docker build .
docker run -it gamestonkterminal:dev
注意:docker的问题是它不会输出matplotlib图形
终端不断更新新功能和错误修复,因此,要更新您的终端,您可以运行:
git pull
要获取最新更改,请执行以下操作
如果由于您修改了一些python文件而导致此操作失败,并且与更新冲突,您可以使用:
git stash
然后,重新运行poetry install
或pip install -r requirements.txt
要获取任何新的依赖项,请执行以下操作
安装完成后,您就可以开始游戏了
如果你stashed
您以前所做的更改,您可以使用以下命令取消隐藏:
git stash pop
该项目围绕几个不同API调用构建,无论是访问历史数据还是财务数据
以下是需要密钥的情况:
获得这些信息后,不要忘记更新config_terminal.py
或者,也可以将它们设置为以下环境变量:
网站 | 变量 |
---|---|
Alpha Vantage | GT_API_KEY_ALPHAVANTAGE |
Binance | GT_API_BINANCE_KEY GT_API_BINANCE_SECRET |
CoinMarketCap | GT_CMC_API_KEY GT_CMC_API_KEY |
DEGIRO | GT_DG_用户名 GT_DG_PASSWORD GT_DG_TOTP_SECRET |
FRED | GT_API_FRED_KEY |
Financial Modeling Prep | GT_API_KEY_FINANCIALMODELINGPREP |
Finhub | GT_API_FINNHUB_KEY |
News | GT_API_NEWS_TOKEN |
Oanda | GT_OANDA_TOKEN GT_OANDA_ACCOUNT |
Polygon | GT_API_POLYGON_KEY |
Quandl | GT_API_KEY_QUANDL |
GT_API_Reddit_Client_ID GT_API_Reddit_Client_Secret GT_API_Reddit_用户名 GT_API_Reddit_USER_AGENT GT_API_Reddit_Password |
|
Tradier | GT_Tradier_Token |
GT_API_Twitter_KEY GT_API_Twitter_SECRET_KEY GT_API_Twitter_承载令牌 |
示例:
export GT_API_REDDIT_USERNAME=SexyYear
环境变量也可以在.env
回购顶部的文件。git会忽略此文件,因此您的API密钥将保密。上面的示例存储在.env
将是:
GT_API_REDDIT_USERNAME=SexyYear
请注意,GT_API_REDDIT_USER_AGENT
获取Reddit API密钥时设置的脚本名称。请注意,获取每日OHLC值不需要有效的Alpha Vantage密钥
首先加载感兴趣的自动收报机:
load -t GME
加载自动收报机后,菜单将扩展到其所有菜单
查看该股票的历史数据:
view
通过加载自动收报机并设置起始点对历史数据进行切片,例如
load -t GME -s 2020-06-04
使用进入技术分析菜单
ta
并使用以下条件运行SMA:
sma
但是,假设您想要更改窗口的长度,因为您不想走得太长,而是想做一个摆动,因此需要一个较小的窗口。检查SMA命令上有哪些可用设置:
sma -h
一旦看到这一点,请在标记参数后设置所需的参数。在这种情况下,要将长度窗口更改为10,我们必须执行以下操作:
sma -l 10
示例:
对这个项目的贡献主要有3种方式
对于在添加新功能的同时解释repo体系结构的1小时编码会议,请查看https://www.youtube.com/watch?v=9BMI9cleTTg
成为贡献者🦍
如果你买了DIP,我会推荐你,而股价却一直在下跌。你最好在石块上升的时候让自己忙碌起来。
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)pre-commit install
每次提交更改时,Linters都将自动运行。在更改时,您必须重新提交git push origin feature/AmazingFeature
)成为一名卡伦人🤷
推荐你是否采取了高买低卖的策略
我们感兴趣的是您对哪种产品的看法features会让你买得更高卖得更低
另外,如果你因为这个航站楼而坐了好几英里,别忘了报告一个bug这样团队就可以修正,并保持旧的方式
加入🙌💎帮派
如果红色是你最喜欢的颜色,而且你从不亏本出售
欢迎加入俱乐部,并随时支持这个令人惊叹的开源项目背后的开发人员。
在麻省理工学院的许可下分发。看见LICENSE了解更多信息
“有几件事我不是.我不是猫.我不是机构投资者,也不是对冲基金.我没有客户,也不提供个性化的投资建议收取费用或佣金.”DFV
金融工具交易涉及高风险,包括损失部分或全部投资额的风险,可能并不适合所有投资者。在决定交易金融工具之前,您应该充分了解与金融市场交易相关的风险和成本,仔细考虑您的投资目标、经验水平和风险偏好,并在需要的地方寻求专业建议。商品及服务税中包含的数据不一定准确。对于因您的交易或您对所显示信息的依赖而造成的任何损失或损害,GST和本网站中包含的任何数据提供商将不承担任何责任。
Didier Rodrigues Lopes–dro.lopes@campus.fct.unl.pt
Artem Veremy–artem@veremey.net
James Maslek–jmaslek11@gmail.com
欢迎在以下网址分享迷失色情、迷因或任何问题:
Forex
菜单cClauss,shadycuz,lolrenx,buzzCraft,衣夹,arcutright,jperkins12,nodesocket,akx,sigaloid,pchaganti,danielorf,henrytdsimmons,rowanharley,sabujp,qTipTip,gmerrall,bfxavier,donno2048,noufal85,rmassoth,benkulbertis,ricleal-fugue,rmassoth,benkulbertis,ricleal-fugue,
TPOT代表T基于REE的PipelineO优化T哦哦。将TPOT视为您的数据科学助理TPOT是一种Python自动机器学习工具,可使用遗传编程优化机器学习管道
TPOT将通过智能地探索数千个可能的管道来找到最适合您数据的管道,从而自动化机器学习中最繁琐的部分
一个机器学习流水线示例
一旦TPOT完成搜索(或者您厌倦了等待),它就会为您提供它找到的最佳管道的Python代码,这样您就可以从那里修补管道了
TPOT构建在SCRICKIT-LEARN之上,因此它生成的所有代码看起来都应该很熟悉。如果你熟悉SCRICKIT-不管怎样,还是要学
TPOT仍在积极发展中我们鼓励您定期检查此存储库是否有更新
有关TPOT的更多信息,请参阅project documentation
请参阅repository license有关TPOT的许可和使用信息
通常,我们已经授权TPOT使其尽可能广泛使用
我们坚持TPOT installation instructions在文档中。TPOT需要Python的正常安装
可以使用TPOTon the command line或with Python code
单击相应的链接以在文档中查找有关TPOT用法的更多信息
以下是光学识别手写数字数据集的最小工作示例
from tpot import TPOTClassifier
from sklearn.datasets import load_digits
from sklearn.model_selection import train_test_split
digits = load_digits()
X_train, X_test, y_train, y_test = train_test_split(digits.data, digits.target,
train_size=0.75, test_size=0.25, random_state=42)
tpot = TPOTClassifier(generations=5, population_size=50, verbosity=2, random_state=42)
tpot.fit(X_train, y_train)
print(tpot.score(X_test, y_test))
tpot.export('tpot_digits_pipeline.py')
运行此代码应该会发现达到约98%测试准确率的管道,并且相应的Python代码应该导出到tpot_digits_pipeline.py
文件,如下所示:
import numpy as np
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline, make_union
from sklearn.preprocessing import PolynomialFeatures
from tpot.builtins import StackingEstimator
from tpot.export_utils import set_param_recursive
# NOTE: Make sure that the outcome column is labeled 'target' in the data file
tpot_data = pd.read_csv('PATH/TO/DATA/FILE', sep='COLUMN_SEPARATOR', dtype=np.float64)
features = tpot_data.drop('target', axis=1)
training_features, testing_features, training_target, testing_target = \
train_test_split(features, tpot_data['target'], random_state=42)
# Average CV score on the training set was: 0.9799428471757372
exported_pipeline = make_pipeline(
PolynomialFeatures(degree=2, include_bias=False, interaction_only=False),
StackingEstimator(estimator=LogisticRegression(C=0.1, dual=False, penalty="l1")),
RandomForestClassifier(bootstrap=True, criterion="entropy", max_features=0.35000000000000003, min_samples_leaf=20, min_samples_split=19, n_estimators=100)
)
# Fix random state for all the steps in exported pipeline
set_param_recursive(exported_pipeline.steps, 'random_state', 42)
exported_pipeline.fit(training_features, training_target)
results = exported_pipeline.predict(testing_features)
同样,TPOT可以针对回归问题优化管道。下面是使用Practice波士顿房价数据集的最小工作示例
from tpot import TPOTRegressor
from sklearn.datasets import load_boston
from sklearn.model_selection import train_test_split
housing = load_boston()
X_train, X_test, y_train, y_test = train_test_split(housing.data, housing.target,
train_size=0.75, test_size=0.25, random_state=42)
tpot = TPOTRegressor(generations=5, population_size=50, verbosity=2, random_state=42)
tpot.fit(X_train, y_train)
print(tpot.score(X_test, y_test))
tpot.export('tpot_boston_pipeline.py')
这将导致管道达到约12.77的均方误差(MSE),并且中的Python代码tpot_boston_pipeline.py
应与以下内容类似:
import numpy as np
import pandas as pd
from sklearn.ensemble import ExtraTreesRegressor
from sklearn.model_selection import train_test_split
from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import PolynomialFeatures
from tpot.export_utils import set_param_recursive
# NOTE: Make sure that the outcome column is labeled 'target' in the data file
tpot_data = pd.read_csv('PATH/TO/DATA/FILE', sep='COLUMN_SEPARATOR', dtype=np.float64)
features = tpot_data.drop('target', axis=1)
training_features, testing_features, training_target, testing_target = \
train_test_split(features, tpot_data['target'], random_state=42)
# Average CV score on the training set was: -10.812040755234403
exported_pipeline = make_pipeline(
PolynomialFeatures(degree=2, include_bias=False, interaction_only=False),
ExtraTreesRegressor(bootstrap=False, max_features=0.5, min_samples_leaf=2, min_samples_split=3, n_estimators=100)
)
# Fix random state for all the steps in exported pipeline
set_param_recursive(exported_pipeline.steps, 'random_state', 42)
exported_pipeline.fit(training_features, training_target)
results = exported_pipeline.predict(testing_features)
请查看文档以了解more examples and tutorials
我们欢迎您的光临check the existing issues以获取要处理的错误或增强功能。如果您有扩展TPOT的想法,请file a new issue这样我们就可以讨论一下了
在提交任何投稿之前,请审阅我们的contribution guidelines
请check the existing open and closed issues看看您的问题是否已经得到处理。如果没有,file a new issue在此存储库上,以便我们可以检查您的问题
如果您在科学出版物中使用TPOT,请考虑至少引用以下一篇论文:
陈天乐,傅维轩,杰森·H·摩尔(2020)。Scaling tree-based automated machine learning to biomedical big data with a feature set selector生物信息学36(1):250-256
BibTeX条目:
@article{le2020scaling,
title={Scaling tree-based automated machine learning to biomedical big data with a feature set selector},
author={Le, Trang T and Fu, Weixuan and Moore, Jason H},
journal={Bioinformatics},
volume={36},
number={1},
pages={250--256},
year={2020},
publisher={Oxford University Press}
}
兰德尔·S·奥尔森、瑞安·J·厄巴诺维茨、彼得·C·安德鲁斯、妮可·A·拉文德、拉克里斯·基德和杰森·H·摩尔(2016)。Automating biomedical data science through tree-based pipeline optimization进化计算的应用,第123-137页
BibTeX条目:
@inbook{Olson2016EvoBio,
author={Olson, Randal S. and Urbanowicz, Ryan J. and Andrews, Peter C. and Lavender, Nicole A. and Kidd, La Creis and Moore, Jason H.},
editor={Squillero, Giovanni and Burelli, Paolo},
chapter={Automating Biomedical Data Science Through Tree-Based Pipeline Optimization},
title={Applications of Evolutionary Computation: 19th European Conference, EvoApplications 2016, Porto, Portugal, March 30 -- April 1, 2016, Proceedings, Part I},
year={2016},
publisher={Springer International Publishing},
pages={123--137},
isbn={978-3-319-31204-0},
doi={10.1007/978-3-319-31204-0_9},
url={http://dx.doi.org/10.1007/978-3-319-31204-0_9}
}
兰德尔·S·奥尔森、内森·巴特利、瑞安·J·厄巴诺维奇和杰森·H·摩尔(2016)。Evaluation of a Tree-based Pipeline Optimization Tool for Automating Data ScienceGECCO 2016论文集,第485-492页
BibTeX条目:
@inproceedings{OlsonGECCO2016,
author = {Olson, Randal S. and Bartley, Nathan and Urbanowicz, Ryan J. and Moore, Jason H.},
title = {Evaluation of a Tree-based Pipeline Optimization Tool for Automating Data Science},
booktitle = {Proceedings of the Genetic and Evolutionary Computation Conference 2016},
series = {GECCO '16},
year = {2016},
isbn = {978-1-4503-4206-3},
location = {Denver, Colorado, USA},
pages = {485--492},
numpages = {8},
url = {http://doi.acm.org/10.1145/2908812.2908918},
doi = {10.1145/2908812.2908918},
acmid = {2908918},
publisher = {ACM},
address = {New York, NY, USA},
}
或者,您也可以使用以下DOI直接引用存储库:
TPOT是在Computational Genetics Lab在University of Pennsylvania有了来自NIH在赠款R01 AI117694项下。我们非常感谢美国国立卫生研究院和宾夕法尼亚大学在这个项目的发展过程中给予的支持
TPOT标志是由托德·纽穆伊斯(Todd Newmuis)设计的,他慷慨地为该项目贡献了时间
Chalice是一个用python编写无服务器应用程序的框架。它允许您快速创建和部署使用AWS Lambda的应用程序。它提供:
您可以创建睡觉接口:
from chalice import Chalice
app = Chalice(app_name="helloworld")
@app.route("/")
def index():
return {"hello": "world"}
定期运行的任务:
from chalice import Chalice, Rate
app = Chalice(app_name="helloworld")
# Automatically runs every 5 minutes
@app.schedule(Rate(5, unit=Rate.MINUTES))
def periodic_task(event):
return {"hello": "world"}
您可以将lambda函数连接到S3事件:
from chalice import Chalice
app = Chalice(app_name="helloworld")
# Whenever an object is uploaded to 'mybucket'
# this lambda function will be invoked.
@app.on_s3_event(bucket='mybucket')
def handler(event):
print("Object uploaded for bucket: %s, key: %s"
% (event.bucket, event.key))
以及SQS队列:
from chalice import Chalice
app = Chalice(app_name="helloworld")
# Invoke this lambda function whenever a message
# is sent to the ``my-queue-name`` SQS queue.
@app.on_sqs_message(queue='my-queue-name')
def handler(event):
for record in event:
print("Message body: %s" % record.body)
以及其他几个AWS资源
一旦您编写了代码,您只需运行chalice deploy
Chalice负责部署您的应用程序
$ chalice deploy ... https://endpoint/dev $ curl https://endpoint/api {"hello": "world"}
在不到30秒的时间内启动并运行。试一试这个项目,并在Github上与我们分享您的反馈
文档是可用的here
在本教程中,您将使用chalice
用于创建和部署基本睡觉应用编程接口的命令行实用程序。此快速入门使用Python3.7,但AWS Chalice支持AWS Lambda支持的所有版本的Python,包括python2.7、python3.6、python3.7、python3.8。我们建议您使用Python3的版本。您可以在Python download page
要安装Chalice,我们将首先在python3.7中创建并激活一个虚拟环境:
$ python3 --version Python 3.7.3 $ python3 -m venv venv37 $ . venv37/bin/activate
接下来,我们将使用以下命令安装圣杯pip
:
$ python3 -m pip install chalice
您可以通过运行以下命令来验证您是否安装了圣杯:
$ chalice --help Usage: chalice [OPTIONS] COMMAND [ARGS]... ...
在部署应用程序之前,请确保已配置凭据。如果您之前已将计算机配置为运行boto3(AWS SDK For Python)或AWS CLI,则可以跳过此部分
如果这是您第一次为AWS配置凭据,您可以按照以下步骤快速入门:
$ mkdir ~/.aws $ cat >> ~/.aws/config [default] aws_access_key_id=YOUR_ACCESS_KEY_HERE aws_secret_access_key=YOUR_SECRET_ACCESS_KEY region=YOUR_REGION (such as us-west-2, us-west-1, etc)
如果需要有关所有支持的凭据配置方法的详细信息,请参阅boto3 docs
接下来我们要做的是使用chalice
用于创建新项目的命令:
$ chalice new-project helloworld
这将创建一个helloworld
目录。cd放入此目录。您将看到已为您创建了几个文件:
$ cd helloworld $ ls -la drwxr-xr-x .chalice -rw-r--r-- app.py -rw-r--r-- requirements.txt
您可以忽略.chalice
目录,我们现在要关注的两个主要文件是app.py
和requirements.txt
我们来看一下app.py
文件:
from chalice import Chalice
app = Chalice(app_name='helloworld')
@app.route('/')
def index():
return {'hello': 'world'}
这个new-project
命令创建了定义单个视图的示例应用程序,/
,调用时将返回JSON正文{"hello": "world"}
让我们部署此应用程序。一定要确保你在helloworld
目录并运行chalice deploy
:
$ chalice deploy Creating deployment package. Creating IAM role: helloworld-dev Creating lambda function: helloworld-dev Creating Rest API Resources deployed: - Lambda ARN: arn:aws:lambda:us-west-2:12345:function:helloworld-dev - Rest API URL: https://abcd.execute-api.us-west-2.amazonaws.com/api/
现在,您已经使用API Gateway和Lambda启动并运行了API:
$ curl https://qxea58oupc.execute-api.us-west-2.amazonaws.com/api/ {"hello": "world"}
尝试从中更改返回的词典index()
功能。然后,您可以通过运行以下命令重新部署更改chalice deploy
现在,您已经使用以下工具创建了您的第一个应用程序chalice
您可以修改您的app.py
文件并重新运行chalice deploy
要重新部署更改,请执行以下操作
此时,您可以采取以下几个步骤
如果您已经完成了对Chalice的实验,并且您想要进行清理,您可以使用chalice delete
命令,则Chalice将删除它在运行chalice deploy
命令
$ chalice delete Deleting Rest API: abcd4kwyl4 Deleting function aws:arn:lambda:region:123456789:helloworld-dev Deleting IAM Role helloworld-dev
我们也很想听到你的消息。请为您想要查看的其他功能创建任何Github问题,请访问https://github.com/aws/chalice/issues您也可以在GITER上与我们聊天:https://gitter.im/awslabs/chalice
#matrix:matrix.org
或#test:localhost:8448
@matthew:matrix.org
(尽管在将来,您通常会使用第三方标识符(3PID)来指代自己和他人:电子邮件地址、电话号码等,而不是操纵矩阵用户ID)整体架构为:
client <----> homeserver <=====================> homeserver <----> client https://somewhere.org/_matrix https://elsewhere.net/_matrix
#matrix:matrix.org
是Matrix的官方支持室,任何客户端都可以从https://matrix.org/docs/projects/try-matrix-now.html或通过irc://irc.Libera.chat/Matrix上的IRC桥
Synapse目前正处于快速开发阶段,但从0.5版开始,我们相信它已经足够稳定,可以作为面向互联网的服务真正使用!
Matrix指定一组实用的RESTful HTTP JSON API作为开放标准,它们处理:
这些API旨在广泛的服务器、服务和客户端上实施,让开发人员在完全开放的Matrix生态系统之上构建消息传送和VoIP功能,而不是使用封闭或专有的解决方案。我们希望Matrix能成为新一代完全开放、可互操作的互联网消息传递和VoIP应用程序的基石
Synapse是由matrix.org的核心开发团队用Python/Twisted编写的Matrix的参考“本地服务器”实现。它的目的是展示Matrix的概念,让人们在代码库的上下文中查看规范,并让您运行自己的家庭服务器,通常帮助引导生态系统
在Matrix中,每个用户都运行一个或多个Matrix客户端,这些客户端连接到Matrix主服务器。家庭服务器存储他们所有的个人聊天历史记录和用户帐户信息-就像邮件客户端连接到IMAP/SMTP服务器一样。就像电子邮件一样,您可以运行自己的Matrix Home服务器并控制自己的通信和历史记录,也可以使用由其他人托管的服务器(例如matrix.org)-Matrix中没有单一控制点或强制服务提供商,这与WhatsApp、Facebook、Hangout等不同
我们邀请您加入#Matrix:matrix.org(通过https://matrix.org/docs/projects/try-matrix-now.html),运行送货上门服务,看看Matrix spec,并尝试使用APIs和Client SDKs
感谢您使用Matrix!
要获得安装或管理Synapse的支持,请加入#synapse:matrix.org
(如果需要,可以从matrix.org帐户)并在那里提问。我们不将GitHub问题用于支持请求,仅用于错误报告和功能请求
试用新的Synapse安装的最简单方法是从Web客户端连接到它
除非您在本地计算机上运行Synapse的测试实例,否则通常需要启用TLS支持,然后才能从客户端成功连接:请参见TLS certificates
一种简单的入门方法是通过Element登录或注册,地址为https://app.element.io/#/login或https://app.element.io/#/register分别为。您需要更改从其登录的服务器matrix.org
并改为将Homeserver URL指定为https://<server_name>:8448
(或仅https://<server_name>
如果您正在使用反向代理)。如果您更喜欢使用其他客户端,请参阅我们的client breakdown
如果一切顺利,您至少应该能够登录、创建文件室并开始发送消息
默认情况下,禁用通过Matrix客户端注册新用户。要启用它,请指定enable_registration: true
在……里面homeserver.yaml
(然后建议还设置验证码-请参阅docs/CAPTCHA_SETUP.md)
一次enable_registration
设置为true
,则可以通过Matrix客户端注册用户
您的新用户名将部分由server_name
,部分来自您在创建帐户时指定的本地部分。您的名字将采用以下形式:
@localpart:my.domain.name
(读作“at localpart on my dot domain dot name”)
与登录时一样,您需要指定“自定义服务器”。指定您需要的localpart
在“用户名”框中
Matrix在某些API中提供用户提供的原始数据–具体地说,content
repository endpoints
虽然我们做出合理的努力来缓解XSS攻击(例如,通过使用CSP),则Matrix主服务器不应托管在托管其他Web应用程序的域上。这尤其适用于与Matrix Web客户端和其他敏感应用程序(如WebMail)共享域。看见https://developer.github.com/changes/2014-04-25-user-content-security了解更多信息
理想情况下,主服务器不应该简单地位于不同的子域上,而应该位于完全不同的子域上registered domain(也称为顶级站点或eTLD+1)。这是因为some attacks只要这两个应用程序共享相同的注册域,仍然是可能的
为了举例说明这一点,如果您的Element Web或其他敏感的Web应用程序托管在A.example1.com
,理想情况下,您应该将Synapse托管在example2.com
通过在上托管可提供一定程度的保护B.example1.com
相反,因此这在某些情况下也是可以接受的。但是,您应该不托管您的SynapseA.example1.com
请注意,以上所有内容仅指Synapse中使用的域public_baseurl
设置。特别是,它对该服务器上托管的MXID中提到的域没有影响
遵循此建议可确保即使在Synapse中找到XSS,对其他应用程序的影响也将微乎其微
升级synapse的说明在the upgrade notes请检查这些说明,因为某些版本的Synapse升级可能需要额外的步骤
建议将反向代理(如nginx,Apache,Caddy,HAProxy或relayd在Synapse面前。这样做的一个好处是,这意味着您可以向Matrix客户端公开默认的https端口(443),而无需使用root权限运行Synapse
有关配置的信息,请参见docs/reverse_proxy.md
身份服务器负责将电子邮件地址和其他第三方ID(3PID)映射到矩阵用户ID,并在创建映射之前验证3PID的所有权
它们不是存储帐户或凭据的位置-它们位于家庭服务器上。身份服务器仅用于将第三方ID映射到矩阵ID
此过程对安全非常敏感,因为如果注册Matrix帐户或获取3PID数据太容易,则存在明显的垃圾邮件风险。长远来说,我们希望建立一个分散的系统来管理它(matrix-doc #712),但同时,在Matrix生态系统中管理可信身份的角色被外包给一群已知的可信生态系统合作伙伴,这些合作伙伴运行“Matrix Identity Server”,例如Sydent,其角色纯粹是验证和跟踪3PID登录并发布最终用户公钥
您可以托管您自己的Sydent副本,但这将阻止您通过Matrix生态系统中的其他用户的电子邮件地址联系到他们,并阻止他们找到您。因此,我们建议您使用位于https://matrix.org
或https://vector.im
就目前而言
再次重申:仅当您选择将电子邮件地址与您的帐户相关联,或通过其他用户的电子邮件地址向其发送邀请时,才会使用身份服务器
用户可以通过其客户端重置其密码。或者,服务器管理员可以使用admin API或者直接编辑数据库,如下所示
首先计算新密码的哈希:
$ ~/synapse/env/bin/hash_password Password: Confirm password: $2a$12$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
然后更新users
数据库中的表:
UPDATE users SET password_hash='$2a$12$xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' WHERE name='@test:test.com';
在Matrix上加入我们的开发人员社区:#synapse-dev:matrix.org
在为synapse设置开发环境之前,请确保已安装系统依赖项(如python头文件)请参阅Installing from source
要签出用于开发的synapse,请将git存储库克隆到您选择的工作目录中:
git clone https://github.com/matrix-org/synapse.git cd synapse
Synapse有许多外部依赖项,最容易使用pip和viralenv进行安装:
python3 -m venv ./env source ./env/bin/activate pip install -e ".[all,test]"
这将运行下载所有需要的依赖项并将其安装到虚拟环境中的过程。如果任何依赖项安装失败,请尝试单独安装出现故障的模块:
pip install -e "module-name"
我们建议使用演示来启动在端口8080-8082上运行的3个联合实例
/demo/start.sh
(要停止,可以使用./demo/stop.sh)
如果您只想启动应用程序的单个实例并直接运行,请执行以下操作:
# Create the homeserver.yaml config once python -m synapse.app.homeserver \ --server-name my.domain.name \ --config-path homeserver.yaml \ --generate-config \ --report-stats=[yes|no] # Start the app python -m synapse.app.homeserver --config-path homeserver.yaml
在启动和运行之后,您可能希望运行Synapse的单元测试来检查一切是否安装正确:
trial tests
这应该以“通过”的结果结束(请注意,确切的数字会有所不同):
Ran 1337 tests in 716.064s PASSED (skips=15, successes=1322)
有关运行单元测试的更多提示,如运行特定测试或查看日志记录输出,请参见CONTRIBUTING doc
Synapse伴随着SyTest作为Matrix本地服务器集成测试套件,它使用HTTP请求来访问API,就像Matrix客户端一样。它可以直接从源树运行Synapse,因此不需要安装服务器
建议使用SyTest进行测试,以验证与客户端-服务器API相关的更改是否正常运行。请参阅SyTest installation
instructions有关详细信息,请参阅
Synapse使用许多平台依赖项,如Python和PostgreSQL,目标是遵循受支持的上游版本。请参阅docs/deprecation_policy.md有关更多详细信息,请参阅文档
需要帮忙吗?在Matrix上加入我们的社区支持室:#synapse:matrix.org
如果synapse用完了文件句柄,它通常会严重失败-100%CPU的实时锁定,和/或无法接受新的TCP连接(阻塞连接的客户端)。Matrix目前可以合法地使用大量文件句柄,这要归功于#Matrix:matrix.org这样包含数百个参与服务器的繁忙房间。当服务器第一次在房间中通话时,它将尝试同时连接到所有参与的服务器,这可能会耗尽DNS查询和HTTPS套接字之间的可用文件描述符,特别是在DNS响应较慢的情况下。(我们需要改进过去比全网状更好的路由算法,但截至2019年3月,这还没有发生)
如果您进入此故障模式,我们建议将打开文件句柄的最大数量增加到至少4096个(假设默认值为1024或256)。这通常通过编辑来完成/etc/security/limits.conf
另外,如果入站HTTP请求在处理过程中受阻,Synapse可能会泄漏文件句柄-例如,锁定后被阻塞或与远程服务器通信等。最佳诊断方法是匹配“已接收的请求”和“已处理的请求”日志行,并查找执行时间超过几秒钟的任何“已处理的请求”行。如果您看到此故障模式,请在#synapse:matrix.org上通知我们,以便我们可以帮助对其进行调试
首先,确保您正在运行最新版本的Synapse,将Python 3与PostgreSQL数据库配合使用
Synapse的架构目前非常需要RAM-我们故意在RAM中缓存大量最近的房间数据和元数据,以加快常见请求的速度。我们将在将来改进这一点,但目前减少RAM使用(冒着放慢速度的风险)的最简单方法是将几乎没有文档记录的SYNAPSE_CACHE_FACTOR
环境变量。默认值为0.5,可以减少内存受限环境中的RAM使用量,也可以在性能开始下降时增加此值
但是,由于缓存系数低而导致的性能下降(这在磁盘速度较慢的计算机上很常见)通常会导致由于积压的请求而导致内存使用量激增。在这种情况下,降低缓存因子会使情况变得更糟。取而代之的是,试着大幅增加它。2.0是个不错的起始值
使用libjemalloc还可以显著提高总体内存使用率,特别是在将RAM返还给操作系统方面。要使用它,只需在启动Synapse时将库放入LD_PRELOAD环境变量中即可。在Debian上,这可以通过安装libjemalloc1
打包并将此行添加到/etc/default/matrix-synapse
:
LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libjemalloc.so.1
这可能会对Python 2.7产生重大影响-目前还不清楚它对Python 3.x有多大改进
如果您遇到Synapse进程本身的高CPU使用率,您可能会受到状态跟踪错误的影响,该错误会导致大量过多的传出联合请求(请参见discussion)。如果指标表明您的服务器发出的传出联合请求也远远多于您的用户活动所能解释的数量,这可能是一个原因。通过在Synapse配置文件中设置以下内容,可以解决该错误行为:
presence:
enabled: false
这里典型的失败模式是,您向某人发送加入房间或直接聊天的邀请,但当他们接受邀请时,他们会收到一个错误(通常类似于“无效签名”)。他们可能会在日志中看到类似以下内容:
2019-09-11 19:32:04,271 - synapse.federation.transport.server - 288 - WARNING - GET-11752 - authenticate_request failed: 401: Invalid signature for server <server> with key ed25519:a_EqML: Unable to verify signature for <server>
这通常是由反向代理中的错误配置引起的。看见docs/reverse_proxy.md并仔细检查您的设置是否正确
AutoKera:一个基于KERS的AutoML系统。它是由DATA Lab在德克萨斯农工大学。AutoKera的目标是让每个人都可以使用机器学习
import autokeras as ak
clf = ak.ImageClassifier()
clf.fit(x_train, y_train)
results = clf.predict(x_test)
要安装该软件包,请使用pip
安装步骤如下:
pip3 install autokeras
请按照installation guide有关更多详细信息,请参阅
注:目前,AutoKera仅与Python>=3.5和TensorFlow>=2.3.0
推特:你也可以在推特上关注我们@autokeras了解最新消息
电子邮件:订阅我们的email list接收通知的步骤
GitHub讨论:请在我们的GitHub Discussions这是一个在GitHub上托管的论坛。我们将在那里监控并回答问题
松弛:Request an invitation使用#autokeras通信通道
QQ群:加入我们的QQ群1150366085。密码:akqqgroup
在线会议:加入online meeting Google group日历事件将出现在您的Google日历上
我们致力于让AutoKera的一切向公众开放。每个人都可以很容易地以开发人员的身份加入。以下是我们如何管理我们的项目
请加入我们的Slack给金海峰发个口信。或顺道拜访我们的online meetings然后跟我们谈谈。我们将帮助您入门!
请参阅我们的Contributing Guide学习最佳实践
感谢所有的贡献者!
我们接受财政上的支持Open Collective感谢每一位赞助商对我们的支持!
金海峰、宋清泉、夏虎。“Auto-keras:一种高效的神经结构搜索系统。”第25届ACM SIGKDD知识发现与数据挖掘国际会议论文集。ACM,2019年。(Download)
Biblatex条目:
@inproceedings{jin2019auto,
title={Auto-Keras: An Efficient Neural Architecture Search System},
author={Jin, Haifeng and Song, Qingquan and Hu, Xia},
booktitle={Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery \& Data Mining},
pages={1946--1956},
year={2019},
organization={ACM}
}
作者感谢国防高级研究计划局(DARPA)通过AFRL合同FA8750-17-2-0116、德克萨斯农工学院和德克萨斯农工大学管理的D3M计划
Pwntools是一个CTF框架和开发开发库。它是用Python编写的,专为快速原型和开发而设计,旨在使利用代码尽可能简单
from pwn import *
context(arch = 'i386', os = 'linux')
r = remote('exploitme.example.com', 31337)
# EXPLOIT CODE GOES HERE
r.send(asm(shellcraft.sh()))
r.interactive()
我们的文档位于docs.pwntools.com
还提供了一系列教程available online
为了帮助您入门,我们为过去的CTF挑战提供了一些示例解决方案,在我们的write-ups repository
Pwntools最受64位Ubuntu LTS版本(14.04、16.04、18.04和20.04)的支持。大多数功能应该适用于任何类似POSIX的发行版(Debian、Arch、FreeBSD、OSX等)
建议使用Python3,但Pwntools仍然适用于Python2.7。pwntools的大部分功能都是自包含的,并且只支持Python。您应该能够快速使用
apt-get update
apt-get install python3 python3-pip python3-dev git libssl-dev libffi-dev build-essential
python3 -m pip install --upgrade pip
python3 -m pip install --upgrade pwntools
但是,某些特性(组装/反汇编外来体系结构)需要非Python依赖项。有关更多信息,请参阅complete installation instructions here
如果您有任何不值得回答的问题bug report,加入不一致服务器,地址为https://discord.gg/96VA2zvjCB