跳转到主要内容

一个小型库,用于查询加密货币交易所和其他价格来源

项目描述

Python加密货币交易所一体化库

Documentation Status Build Status Codecov PyPi Version License Button PyPI - Downloads PyPI - Python Version GitHub last commit

一个小型库,用于查询加密货币交易所和其他价格来源

官方仓库: https://github.com/privex/python-exchange

警告:建设中

信息

此Python交易所库已在Privex Inc.由@someguy123开发,用于轻松获取任意硬币之间的汇率,包括那些在交易所通常没有对子的硬币,如HIVE/LTC

它使用了以下库

  • HTTPX 用于对交易所的异步请求
  • Attrs 用于更友好的对象,如 privex.exchange.base.PriceData
  • Privex的Helper库 包含了整个包中使用的各种小函数。
+===================================================+
|                 © 2020 Privex Inc.                |
|               https://www.privex.io               |
+===================================================+
|                                                   |
|        Python Exchange Library                    |
|        License: X11/MIT                           |
|                                                   |
|        Core Developer(s):                         |
|                                                   |
|          (+)  Chris (@someguy123) [Privex]        |
|                                                   |
+===================================================+

Python Exchange Library - A small library for querying Cryptocurrency exchanges and other price sources
Copyright (c) 2020    Privex Inc. ( https://www.privex.io )

快速安装/使用

pip3 install privex-exchange
from privex.exchange import ExchangeManager

exm = ExchangeManager()

async def main():
    rate = await exm.get_pair('btc', 'usd')
    print(rate)
    # 6900.318
    tickers = await exm.get_tickers('btc', 'usd')
    print(tickers)
    # {'binance': Decimal('6679.70000000'),
    #  'bittrex': Decimal('6691.56500000'),
    #  'kraken': Decimal('6689.10000'),
    #  'coingecko': Decimal('6704.97999999')}

有关完整参数文档,当您尝试使用类时,PyCharm等IDE和Visual Studio Code应该会显示我们的PyDoc注释。

Screenshot of PyCharm SteemEngine Help

对于PyCharm,按F1键并将键盘光标放在类上,可以查看完整的功能文档,包括返回类型、参数和一般使用信息。您还可以在方法的大括号内(包括构造函数的大括号)按CMD-P键,以查看您可以使用参数。

或者,只需查看 privex/steemengine/ 内的文件 - 大多数方法和构造函数都附有充分的PyDoc注释。

文档

Read the Documentation

此项目的完整文档在上文(点击“阅读文档”图片)中可用,包括

  • 如何安装应用程序及其依赖项
  • 如何使用各种函数和类
  • 为贡献者提供的模块和类的通用文档

构建文档

git clone https://github.com/Privex/python-exchange
cd python-exchange/docs
pip3 install -r requirements.txt

# It's recommended to run make clean to ensure old HTML files are removed
# `make html` generates the .html and static files in docs/build for production
make clean && make html

# After the files are built, you can live develop the docs using `make live`
# then browse to http://127.0.0.1:8100/
# If you have issues with content not showing up correctly, try make clean && make html
# then run make live again.
make live

安装

由于使用了参数和返回类型提示,我们建议您使用至少Python 3.4+。

使用 pip 从 PyPi 安装

您可以通过 pip 安装此包

pip3 install privex-exchange

(替代方案) 从 Git 手动安装

如果您不想使用 PyPi(例如,对于尚未在 PyPi 上发布的开发版本),您可以直接从我们的 Git 仓库安装项目。

除非您有手动安装的特定原因,您应该像上面那样通常使用 pip3 安装。

选项 1 - 使用 pip 直接从 Github 安装

pip3 install git+https://github.com/Privex/python-exchange

选项 2 - 克隆并手动安装

# Clone the repository from Github
git clone https://github.com/Privex/python-exchange
cd python-exchange

# RECOMMENDED MANUAL INSTALL METHOD
# Use pip to install the source code
pip3 install .

# ALTERNATIVE INSTALL METHOD
# If you don't have pip, or have issues with installing using it, then you can use setuptools instead.
python3 setup.py install

日志记录

默认情况下,此包将把任何 >=WARNING 级别的日志记录到控制台。您可以通过调整 privex.exchange 日志记录实例来覆盖此设置。

我们建议您查看我们的 Python 包 Python Loghelper,它使您能够轻松管理日志配置,并将其复制到其他日志实例,例如这个实例。

# Without LogHelper
import logging
l = logging.getLogger('privex.exchange')
l.setLevel(logging.ERROR)

# With LogHelper (pip3 install privex-loghelper)
from privex.loghelper import LogHelper
# Set up logging for **your entire app**. In this case, log only messages >=error
lh = LogHelper('myapp', handler_level=logging.ERROR)
lh.add_file_handler('test.log')        # Log messages to the file `test.log` in the current directory
lh.copy_logger('privex.exchange')   # Easily copy your logging settings to any other module loggers
log = lh.get_logger()                  # Grab your app's logging instance, or use logging.getLogger('myapp')
log.error('Hello World')

单元测试

单元测试在 tests/ 目录中。我们还设置了项目 [Travis CI](https://travis-ci.cn/Privex/python -exchange),以便在新的版本导致测试失败时通知我们。

要手动运行测试,请使用 pytest

git clone https://github.com/Privex/python-exchange
cd python-exchange
pipenv install --dev
pipenv shell

python3 -m pytest -v -rxXs --log-cli-level=INFO tests/

贡献

我们非常乐意接受拉取请求,并处理向我们报告的任何问题。

以下是一些重要信息

报告问题

  • 对于错误报告,您应该包括以下信息
    • privex-exchangehttpx 和其他测试的库版本 - 使用 pip3 freeze
      • 如果没有通过 PyPi 版本安装,则测试问题时使用的 git 修订版本号 - git log -n1
    • 您的 python3 版本 - python3 -V
    • 您的操作系统和操作系统版本(例如,Ubuntu 18.04,Debian 7)
  • 对于功能请求/更改
    • 请避免提出需要新依赖的建议。此工具的设计目标是轻量级,不包含外部依赖。
    • 清楚地说明您想添加的功能/更改
    • 解释为什么这个功能/更改对我们或其他工具用户是有用的
    • 请注意,那些难以添加或我们认为对我们的工具使用无用的功能/更改可能不会被添加(但我们可能接受 PR)

拉取请求

  • 我们将欣然接受只添加代码注释或 README 修改的 PR
  • 在贡献代码时请使用 4 个空格,而不是制表符
  • 您可以使用 Python 3.4+ 的功能(我们的项目使用 Python 3.7+)
    • 需要尚未发布到 Ubuntu Server LTS 最新稳定版本的 Python 版本的功能将不会被接受(目前是 Ubuntu 18.04 Bionic)
  • 在标题和描述中清楚地说明您的拉取请求的目的
    • 您做了哪些更改?
    • 为什么您要做出这些更改?
  • 请确保代码贡献有适当的注释 - 我们不会接受涉及未注释、高度简短的单行的更改。

贡献的合法声明

没有人愿意阅读充满法律文本的长文档,所以我们在这里总结了重要部分。

如果您贡献了您创建/拥有的内容到 Privex 创建/拥有的项目,例如代码或文档,那么您可能自动授予我们不受限制的使用权,无论我们的项目适用的开源许可证是什么。

如果您不想授予我们您内容的不受限制的使用权,您应该确保将您的内容放在单独的文件中,确保在文件的开始处(例如代码注释)或其中(例如名为 LICENSE 的文件)清楚地显示您的内容的许可证。

您应该在您的拉取请求或问题中告诉我们您已包含受单独许可证许可的文件,以便我们确保没有可能阻止我们接受您的贡献的许可证冲突。

如果您想阅读整个法律文本,它应作为 privex_contribution_agreement.txt 包含。

许可证

本项目采用 X11 / MIT 许可协议。有关详细信息,请参阅 LICENSE 文件。

以下是重要内容

  • 如果您修改/分发/复制本项目的一部分或全部,必须包含/显示许可协议和版权声明(LICENSE)。
  • 未经我们许可,您不得使用我们的名称推广/支持您的产品。然而,您可以声明您的产品使用了本项目的一些或全部内容。

感谢阅读!

如果本项目对您有所帮助,请考虑从 Privex 购买 VPS 或专用服务器 - 价格低至每月仅需 8 美元(我们接受加密货币!)

项目详情


下载文件

下载适合您平台文件的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源代码分发

privex_exchange-0.2.0.tar.gz (33.5 kB 查看散列)

上传时间: 源代码

构建分发

privex_exchange-0.2.0-py3-none-any.whl (37.6 kB 查看散列)

上传时间: Python 3

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面