This repository contains the source code for Zulip's PyPI packages:
zulip
: PyPI package
for Zulip's API bindings.zulip_bots
: PyPI package
for Zulip's bots and bots API.zulip_botserver
: PyPI package
for Zulip's Flask Botserver.The source code is written in Python 3.
This is part of the Zulip open source project; see the contributing guide and commit guidelines.
Fork and clone the Git repo, and set upstream to zulip/python-zulip-api:
git clone https://github.com/<your_username>/python-zulip-api.git
cd python-zulip-api
git remote add upstream https://github.com/zulip/python-zulip-api.git
git fetch upstream
Make sure you have pip.
Run:
python3 ./tools/provision
This sets up a virtual Python environment in zulip-api-py<your_python_version>-venv
,
where <your_python_version>
is your default version of Python. If you would like to specify
a different Python version, run
python3 ./tools/provision -p <path_to_your_python_version>
If that succeeds, it will end with printing the following command:
source /.../python-zulip-api/.../activate
You can run this command to enter the virtual environment.
You'll want to run this in each new shell before running commands from python-zulip-api
.
Once you've entered the virtualenv, you should see something like this on the terminal:
(zulip-api-py3-venv) user@pc ~/python-zulip-api $
You should now be able to run any commands/tests/etc. in this virtual environment.
You can run all the tests with:
pytest
or test individual packages with pytest zulip
, pytest zulip_bots
,
or pytest zulip_botserver
(see the pytest
documentation
for more options).
To run the linter, type:
./tools/lint
To check the type annotations, run:
./tools/run-mypy