2017-07-18 00:19:51 -04:00
|
|
|
# Zulip API
|
2012-11-27 11:19:05 -05:00
|
|
|
|
2021-02-03 18:25:03 -05:00
|
|
|
[![Build status](https://github.com/zulip/python-zulip-api/workflows/build/badge.svg?branch=master)]
|
|
|
|
(https://github.com/zulip/python-zulip-api/actions?query=branch%3Amaster+workflow%3Abuild)
|
2017-08-22 04:02:25 -04:00
|
|
|
[![Coverage status](https://img.shields.io/codecov/c/github/zulip/python-zulip-api/master.svg)](
|
|
|
|
https://codecov.io/gh/zulip/python-zulip-api)
|
|
|
|
|
2017-07-18 00:19:51 -04:00
|
|
|
This repository contains the source code for Zulip's PyPI packages:
|
2012-11-26 11:54:21 -05:00
|
|
|
|
2017-07-18 00:19:51 -04:00
|
|
|
* `zulip`: [PyPI package](https://pypi.python.org/pypi/zulip/)
|
|
|
|
for Zulip's API bindings.
|
2017-08-07 19:10:20 -04:00
|
|
|
* `zulip_bots`: [PyPI package](https://pypi.python.org/pypi/zulip-bots)
|
|
|
|
for Zulip's bots and bots API.
|
|
|
|
* `zulip_botserver`: [PyPI package](https://pypi.python.org/pypi/zulip-botserver)
|
2018-05-29 04:58:37 -04:00
|
|
|
for Zulip's Flask Botserver.
|
2017-08-07 19:23:15 -04:00
|
|
|
|
2017-11-29 09:36:58 -05:00
|
|
|
The source code is written in *Python 3*.
|
|
|
|
|
2017-08-07 19:23:15 -04:00
|
|
|
## Development
|
|
|
|
|
2018-11-15 18:58:04 -05:00
|
|
|
This is part of the Zulip open source project; see the
|
|
|
|
[contributing guide](https://zulip.readthedocs.io/en/latest/overview/contributing.html)
|
|
|
|
and [commit guidelines](https://zulip.readthedocs.io/en/latest/contributing/version-control.html).
|
|
|
|
|
2017-08-07 19:23:15 -04:00
|
|
|
1. Fork and clone the Git repo:
|
|
|
|
`git clone https://github.com/<your_username>/python-zulip-api.git`
|
|
|
|
|
|
|
|
2. Make sure you have [pip](https://pip.pypa.io/en/stable/installing/)
|
2020-09-22 12:47:34 -04:00
|
|
|
and [virtualenv](https://virtualenv.pypa.io/en/stable/installation.html)
|
2017-08-07 19:23:15 -04:00
|
|
|
installed.
|
|
|
|
|
|
|
|
3. `cd` into the repository cloned earlier:
|
|
|
|
`cd python-zulip-api`
|
|
|
|
|
|
|
|
4. Run:
|
|
|
|
```
|
2018-03-26 01:33:04 -04:00
|
|
|
python3 ./tools/provision
|
2017-08-18 08:13:33 -04:00
|
|
|
```
|
|
|
|
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
|
|
|
|
```
|
2018-03-26 01:33:04 -04:00
|
|
|
python3 ./tools/provision -p <path_to_your_python_version>
|
2017-08-07 19:23:15 -04:00
|
|
|
```
|
|
|
|
|
2018-08-17 15:40:59 -04:00
|
|
|
5. If that succeeds, it will end with printing the following command:
|
2018-03-26 01:33:04 -04:00
|
|
|
```
|
|
|
|
source /.../python-zulip-api/.../activate
|
|
|
|
```
|
2018-10-31 19:44:29 -04:00
|
|
|
You can run this command to enter the virtual environment.
|
2018-03-26 01:33:04 -04:00
|
|
|
You'll want to run this in each new shell before running commands from `python-zulip-api`.
|
2017-11-10 16:03:40 -05:00
|
|
|
|
2018-03-26 01:33:04 -04:00
|
|
|
6. 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.
|
2017-08-07 19:23:15 -04:00
|
|
|
|
|
|
|
### Running tests
|
|
|
|
|
2017-09-05 10:20:59 -04:00
|
|
|
To run the tests for
|
2017-08-07 19:23:15 -04:00
|
|
|
|
2017-09-05 10:20:59 -04:00
|
|
|
* *zulip*: run `./tools/test-zulip`
|
2017-08-07 19:23:15 -04:00
|
|
|
|
2018-12-09 11:46:41 -05:00
|
|
|
* *zulip_bots*: run `./tools/test-lib && ./tools/test-bots`
|
2017-08-07 19:23:15 -04:00
|
|
|
|
2017-09-05 10:20:59 -04:00
|
|
|
* *zulip_botserver*: run `./tools/test-botserver`
|
2017-08-07 19:23:15 -04:00
|
|
|
|
|
|
|
To run the linter, type:
|
|
|
|
|
|
|
|
`./tools/lint`
|
2017-11-13 06:08:14 -05:00
|
|
|
|
|
|
|
To check the type annotations, run:
|
|
|
|
|
|
|
|
`./tools/run-mypy`
|