Commit graph

17 commits

Author SHA1 Message Date
Anders Kaseorg
d32d442c44 Upgrade mypy to 0.910.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-08-24 20:19:05 -07:00
PIG208
66434d07cf bots: Indicate source of bot (from source/module/registry) upon startup.
Amend tests to include new parameter.
2021-07-29 11:08:33 -07:00
PIG208
4bc0c607c1 bots: Find external packaged bots via 'zulip_bots.registry' entry_point.
Now we will be able to execute `zulip-run-bot` with the `-r` argument
to search for and run bots from the `zulip_bots.registry` entry_point.

Each entry point should have the name correspond to the bot name,
and have the value be the bot module. E.g, an Python package for a
bot called "packaged_bot" should have an `entry_points` setup like
the following:

setup(
    ...
    entry_points={
        "zulip_bot.registry":[
            "packaged_bot=packaged_bot.packaged_bot"
        ]
    }
    ...
)

whose file structure may look like this:

packaged_bot/
├───packaged_bot/
|   ├───packaged_bot.py  # The bot module
|   ├───test_packaged_bot.py
|   ├───packaged_bot.conf
|   └───doc.md
└───setup.py  # Register the entry points here

Add test case.
2021-07-29 11:08:31 -07:00
PIG208
e27ac0ddbe pyupgrade: Replace Text with str.
We uses `pyupgrade --py3-plus` to automatically replace all occurence
of `Text`. But manual fix is required to remove the unused imports. Note
that with this configuration pyupgrade also convert string literals to
.format(...) style, which is manually not included in the commit as well.
2021-06-02 18:45:57 -07:00
PIG208
6f3f9bf7e4 black: Reformat without skipping string normalization. 2021-06-02 18:45:57 -07:00
PIG208
fba21bb00d black: Reformat skipping string normalization. 2021-06-02 18:45:57 -07:00
PIG208
5580c68ae5 isort: Reformat using isort. 2021-06-02 18:45:57 -07:00
Anders Kaseorg
19f5b4f6a6 mypy: Fix exec_module type: ignore comments.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-03-10 09:58:18 -08:00
Anders Kaseorg
f2e2f1c7ff zulip_bots: Remove fallback code for Python < 3.5.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
2021-03-04 15:41:08 -08:00
Ganesh Pawar
44b6fd395a tests: Fix tests failing on Windows.
Tests were failing on Windows since paths are case-insensitive on it.
This uses pathlib library to compare paths on all platforms.

Fixes #651
2021-03-04 11:28:35 -08:00
Anders Kaseorg
1a417b1610 finder: Remove ModuleNotFoundError handler.
ModuleNotFoundError is a subclass of ImportError, which is handled on
the previous line; furthermore, it doesn’t exist in Python 3.5.

Signed-off-by: Anders Kaseorg <anders@zulipchat.com>
2020-04-18 20:20:53 -07:00
neiljp (Neil Pilgrim)
357a5e06f3 mypy: Clarify type hints in zulip_bots/. 2020-03-24 21:25:45 -07:00
neiljp (Neil Pilgrim)
725c7574a5 bots: Use ImportError in Python<3.6 for failed import of bot by name.
This previously caused a traceback if the bot couldn't be found.
2019-07-27 16:38:23 -07:00
novokrest
3448d9c9c1 zulip-run-bot: Add the ability to run a bot by the module name. 2018-07-01 08:08:02 -04:00
Sivagiri Visakan
3e20593da2 bots/finder: Make name a non-default parameter in import_module_from_source. 2018-06-22 07:59:56 -04:00
Sivagiri Visakan
09a7894a34 bots: Extract path resolution logic into a function. 2018-06-22 07:59:56 -04:00
Sivagiri Visakan
d053528925 bots: Move import_module_from_source to finder.py. 2018-06-22 07:59:56 -04:00