CONTRIBUTING

注意:

这个项目需要 Python 3.5 及以上版本。

复刻项目代码

复刻项目代码到工作目录,然后切换到项目的目录:

cd path/to/your/workspace/directory/
git clone https://github.com/tanbro/ks33requests.git
cd ks33requests

准备开发环境

强烈建议在 virtual environment 中进行开发工作。

  • 如果使用标准库:

    使用标准库的 venvpip 直接新建名为venv的虚拟环境目录,将本项目以“开发模式”安装到这个环境,并安装开发工作所要使用的包:

    path/of/your/python -m venv venv
    venv/bin/python setup.py develop
    venv/bin/python -m pip install -r requires/dev.txt
    
  • 如果使用 Pipenv:

    使用 Pipenv 命令直接安装:

    pipenv install --dev
    
  • 如果使用 conda

    使用 conda 从配置文件新建一个专用于这个项目的、名为ks33requests-dev的环境,然后激活它,将本项目以“开发模式”安装到这个环境:

    conda env create -f environment.yml
    conda activate ks33requests-dev
    python setup.py develop
    

XML Schema

金山云 KS3 的 WebAPI 数据结构有许多与S3兼容。 所以,这个项目直接使用考虑来自 http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.xsd 的 Schema。

我们使用 generateDS 工具,从xsd文件生成 Python 类型定义:

mkdir -p schemas
wget http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.xsd -P schemas
generateDS.py -f -o s3_api.py -s s3_sub.py --super=s3_api  schemas/AmazonS3.xsd

生成的源代码文件复制到名称空间 ks33requests.schemas 中,小幅修改 s3_sub.py 即可使用。

运行测试用例

python setup.py test

测试用例很少,陆续补充中…

Docs

如果模块有增减,需要删除原来的 Sphinx-Docs API 自动文档并重新生成:

rm -rf docs/ks3requests.rst docs/api
sphinx-apidoc -e -f -o docs/api src/ks33requests src/ks33requests/schemas/s3_*.py