evelink, EVE API的python 绑定

分享于 

5分钟阅读

GitHub

  繁體 雙語
Python bindings for the EVE API.
  • 源代码名称:evelink
  • 源代码网址:http://www.github.com/eve-val/evelink
  • evelink源代码文档
  • evelink源代码下载
  • Git URL:
    git://www.github.com/eve-val/evelink.git
    Git Clone代码到本地:
    git clone http://www.github.com/eve-val/evelink
    Subversion代码到本地:
    $ svn co --depth empty http://www.github.com/eve-val/evelink
    Checked out revision 1.
    $ cd repo
    $ svn up trunk
    
    EVELink - EVE API的python 绑定

    EVELink提供了一种从 python 访问 EVE的方法。

    PyPI

    示例用法

    import evelink.api # Raw API accessimport evelink.char # Wrapped API access for the/char/API pathimport evelink.eve # Wrapped API access for the/eve/API path# Using the raw access level to get the name of a characterapi = evelink.api.API()
    response = api.get('eve/CharacterName', {'IDs': [1]})print response.result.find('rowset').findall('row')[0].attrib['name']# Using the wrapped access level to get the name of a charactereve = evelink.eve.EVE()
    response = eve.character_name_from_id(1)print response.result# Using authenticated callsapi = evelink.api.API(api_key=(12345, 'longvcodestring'))
    id_response = eve.character_id_from_name("Character Name")
    char = evelink.char.Char(char_id=id_response.result, api=api)
    balance_response = char.wallet_balance()print balance_response.result

    依赖项

    EVELink使用 six 库来维护 python 2和 3的兼容性。 这是唯一需要的依赖项。

    但是,如果在 python 环境中可以用,EVELink还会使用 requests 库,因为它可以使用一个持久的HTTP连接。 这消除了为每个 EVE API调用建立新的tcp/ip连接的开销,从而导致整个性能的增加。 由于这个原因,强烈建议安装 requests,但是要保持EVELink免费的外部依赖性,这是所有用户的选择。

    如果你开发EVELink本身( 为这个项目贡献),则需要以下软件包来运行测试:

    • mock
    • nose
    • unittest2 ( 仅适用于 python 2.x )

    作为开发人员的一部分,requirements_{py2,py3}.txt 作为存储库的一部分提供。

    设计

    EVELink旨在支持 3"色阶"访问 EVE API资源: 原始,包装和对象。

    原始访问

    Raw是最低级别的访问- 它基本上只是一个小类,采用API路径和参数,而 APIResult的结果部分是一个 xml.etree.ElementTree 对象。 你可以能不希望使用这层访问,但是对于EVELink调用来说,尚不支持更高级别的访问。

    所有 APIResult 对象还包含时间戳和过期字段,指示从API获取结果和缓存值的时间。

    封装访问

    包装是访问的中间层。 包装访问层中的方法仍然直接映射到EVE端点,但"较好"可以使用。 它们是实际的python 函数,所以你可以确保传递正确的参数。 它们的APIResult 结果字段包含基本的python 类型,这些类型很简单。

    对象访问

    ( 还没有实现)

    对象访问是访问的最高层和最封装的。 尽管在包装访问层更完整之后,实现被延迟,这里的目标是模拟一组ORM对象。 Character(id=1234).corporation.name 获取具有 1234 character字符的公司的NAME。

    插件开发

    Build StatusCoverage Status

    获取库的开发副本并设置测试要求:

    $ git clone https://github.com/eve-val/evelink.git
    $ cd evelink
    $ virtualenv venv
    $ source venv/bin/activate
    $ pip install -r requirements_{py2,py3}.txt

    要运行测试:

    $ nosetests

    要运行测试,包括appengine的( 这要求你有 appengine SDK安装的Google ):

    $ nosetests --with-gae

    开发者的其他信息是在这里提供的,这里是


    相关文章