isort: Reformat using isort.
This commit is contained in:
parent
37e2596124
commit
5580c68ae5
|
@ -1,4 +1,5 @@
|
|||
from typing import List
|
||||
|
||||
from zulint.custom_rules import RuleList
|
||||
|
||||
MYPY = False
|
||||
|
|
10
tools/deploy
10
tools/deploy
|
@ -1,14 +1,14 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from typing import Any, List, Dict, Callable
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import zipfile
|
||||
import textwrap
|
||||
import requests
|
||||
import urllib.parse
|
||||
import zipfile
|
||||
from typing import Any, Callable, Dict, List
|
||||
|
||||
import requests
|
||||
from requests import Response
|
||||
|
||||
red = '\033[91m' # type: str
|
||||
|
|
|
@ -3,9 +3,9 @@
|
|||
import argparse
|
||||
import sys
|
||||
|
||||
from zulint.command import add_default_linter_arguments, LinterConfig
|
||||
from zulint.command import LinterConfig, add_default_linter_arguments
|
||||
|
||||
from custom_check import python_rules, non_py_rules
|
||||
from custom_check import non_py_rules, python_rules
|
||||
|
||||
EXCLUDED_FILES = [
|
||||
# This is an external file that doesn't comply with our codestyle
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import subprocess
|
||||
import glob
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
ZULIP_BOTS_DIR = os.path.join(CURRENT_DIR, '..', 'zulip_bots')
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from contextlib import contextmanager
|
||||
import os
|
||||
import argparse
|
||||
import glob
|
||||
import os
|
||||
import shutil
|
||||
import tempfile
|
||||
from contextlib import contextmanager
|
||||
|
||||
import crayons
|
||||
import twine.commands.upload
|
||||
import setuptools.sandbox
|
||||
import twine.commands.upload
|
||||
|
||||
REPO_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
import subprocess
|
||||
import sys
|
||||
|
||||
|
||||
def exit(message: str) -> None:
|
||||
print('PROBLEM!')
|
||||
print(message)
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import os
|
||||
import subprocess
|
||||
|
||||
import sys
|
||||
from collections import OrderedDict
|
||||
from pathlib import PurePath
|
||||
from typing import Dict, List, cast
|
||||
|
||||
from zulint import lister
|
||||
from typing import cast, Dict, List
|
||||
|
||||
TOOLS_DIR = os.path.dirname(os.path.abspath(__file__))
|
||||
os.chdir(os.path.dirname(TOOLS_DIR))
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import unittest
|
||||
import pytest
|
||||
import os
|
||||
import shutil
|
||||
import sys
|
||||
import unittest
|
||||
|
||||
import pytest
|
||||
|
||||
TOOLS_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||||
os.chdir(os.path.dirname(TOOLS_DIR))
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from os.path import dirname, basename
|
||||
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
import glob
|
||||
import os
|
||||
import sys
|
||||
import unittest
|
||||
from os.path import basename, dirname
|
||||
|
||||
import pytest
|
||||
|
||||
|
||||
def parse_args():
|
||||
description = """
|
||||
Script to run test_<bot_name>.py files in the
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import os
|
||||
import argparse
|
||||
import multiprocessing as mp
|
||||
import zulip
|
||||
import os
|
||||
import sys
|
||||
from typing import Any, Callable, Dict
|
||||
|
||||
import interrealm_bridge_config
|
||||
|
||||
from typing import Any, Callable, Dict
|
||||
import zulip
|
||||
|
||||
|
||||
def create_pipe_event(to_client: zulip.Client, from_bot: Dict[str, Any],
|
||||
|
|
|
@ -5,10 +5,11 @@
|
|||
#
|
||||
|
||||
import argparse
|
||||
import zulip
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
import zulip
|
||||
|
||||
usage = """./irc-mirror.py --irc-server=IRC_SERVER --channel=<CHANNEL> --nick-prefix=<NICK> --stream=<STREAM> [optional args]
|
||||
|
||||
Example:
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import multiprocessing as mp
|
||||
from typing import Any, Dict
|
||||
|
||||
import irc.bot
|
||||
import irc.strings
|
||||
from irc.client import Event, ServerConnection, ip_numstr_to_quad
|
||||
from irc.client_aio import AioReactor
|
||||
import multiprocessing as mp
|
||||
from typing import Any, Dict
|
||||
|
||||
|
||||
class IRCBot(irc.bot.SingleServerIRCBot):
|
||||
|
|
|
@ -1,23 +1,22 @@
|
|||
#!/usr/bin/env python3
|
||||
import os
|
||||
import logging
|
||||
import signal
|
||||
import traceback
|
||||
import zulip
|
||||
import sys
|
||||
import argparse
|
||||
import re
|
||||
import configparser
|
||||
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import signal
|
||||
import sys
|
||||
import traceback
|
||||
from collections import OrderedDict
|
||||
|
||||
from types import FrameType
|
||||
from typing import Any, Callable, Dict, Optional
|
||||
|
||||
from matrix_client.errors import MatrixRequestError
|
||||
from matrix_client.client import MatrixClient
|
||||
from matrix_client.errors import MatrixRequestError
|
||||
from requests.exceptions import MissingSchema
|
||||
|
||||
import zulip
|
||||
|
||||
GENERAL_NETWORK_USERNAME_REGEX = '@_?[a-zA-Z0-9]+_([a-zA-Z0-9-_]+):[a-zA-Z0-9.]+'
|
||||
MATRIX_USERNAME_REGEX = '@([a-zA-Z0-9-_]+):matrix.org'
|
||||
|
||||
|
|
|
@ -1,22 +1,17 @@
|
|||
from .matrix_bridge import (
|
||||
check_zulip_message_validity,
|
||||
zulip_to_matrix,
|
||||
)
|
||||
|
||||
from unittest import TestCase, mock
|
||||
from subprocess import Popen, PIPE
|
||||
import os
|
||||
|
||||
import shutil
|
||||
|
||||
from contextlib import contextmanager
|
||||
from subprocess import PIPE, Popen
|
||||
from tempfile import mkdtemp
|
||||
from unittest import TestCase, mock
|
||||
|
||||
from .matrix_bridge import check_zulip_message_validity, zulip_to_matrix
|
||||
|
||||
script_file = "matrix_bridge.py"
|
||||
script_dir = os.path.dirname(__file__)
|
||||
script = os.path.join(script_dir, script_file)
|
||||
|
||||
from typing import List, Iterator
|
||||
from typing import Iterator, List
|
||||
|
||||
sample_config_path = "matrix_test.conf"
|
||||
|
||||
|
|
|
@ -8,11 +8,11 @@ import threading
|
|||
import traceback
|
||||
from typing import Any, Callable, Dict
|
||||
|
||||
import bridge_with_slack_config
|
||||
import slack_sdk
|
||||
import zulip
|
||||
from slack_sdk.rtm import RTMClient
|
||||
|
||||
import bridge_with_slack_config
|
||||
import zulip
|
||||
|
||||
# change these templates to change the format of displayed message
|
||||
ZULIP_MESSAGE_TEMPLATE = "**{username}**: {message}"
|
||||
|
|
|
@ -8,15 +8,15 @@
|
|||
#
|
||||
# python-dateutil is a dependency for this script.
|
||||
|
||||
import requests
|
||||
import logging
|
||||
import pytz
|
||||
import time
|
||||
import sys
|
||||
import os
|
||||
|
||||
import sys
|
||||
import time
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
import pytz
|
||||
import requests
|
||||
|
||||
try:
|
||||
import dateutil.parser
|
||||
except ImportError as e:
|
||||
|
@ -26,12 +26,14 @@ except ImportError as e:
|
|||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import zulip_codebase_config as config
|
||||
|
||||
VERSION = "0.9"
|
||||
|
||||
if config.ZULIP_API_PATH is not None:
|
||||
sys.path.append(config.ZULIP_API_PATH)
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
import zulip
|
||||
from typing import Any, List, Dict, Optional
|
||||
|
||||
client = zulip.Client(
|
||||
email=config.ZULIP_USER,
|
||||
|
|
|
@ -9,20 +9,22 @@
|
|||
# For example:
|
||||
# aa453216d1b3e49e7f6f98441fa56946ddcd6a20 68f7abf4e6f922807889f52bc043ecd31b79f814 refs/heads/master
|
||||
|
||||
from typing import Text
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import os.path
|
||||
import subprocess
|
||||
import sys
|
||||
from typing import Text
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import zulip_git_config as config
|
||||
|
||||
VERSION = "0.9"
|
||||
|
||||
if config.ZULIP_API_PATH is not None:
|
||||
sys.path.append(config.ZULIP_API_PATH)
|
||||
|
||||
import zulip
|
||||
|
||||
client = zulip.Client(
|
||||
email=config.ZULIP_USER,
|
||||
site=config.ZULIP_SITE,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#
|
||||
from typing import Dict, Text, Optional
|
||||
from typing import Dict, Optional, Text
|
||||
|
||||
# Name of the stream to send notifications to, default is "commits"
|
||||
STREAM_NAME = 'commits'
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
#!/usr/bin/env python3
|
||||
import os
|
||||
|
||||
from oauth2client import client
|
||||
from oauth2client import tools
|
||||
from oauth2client.file import Storage
|
||||
|
||||
from typing import Optional
|
||||
|
||||
from oauth2client import client, tools
|
||||
from oauth2client.file import Storage
|
||||
|
||||
try:
|
||||
import argparse
|
||||
flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args() # type: Optional[argparse.Namespace]
|
||||
|
|
|
@ -2,20 +2,21 @@
|
|||
#
|
||||
# This script depends on python-dateutil and python-pytz for properly handling
|
||||
# times and time zones of calendar events.
|
||||
import argparse
|
||||
import datetime
|
||||
import dateutil.parser
|
||||
import httplib2
|
||||
import itertools
|
||||
import logging
|
||||
import argparse
|
||||
import os
|
||||
import pytz
|
||||
import sys
|
||||
import time
|
||||
from typing import List, Optional, Set, Tuple
|
||||
|
||||
import dateutil.parser
|
||||
import httplib2
|
||||
import pytz
|
||||
from oauth2client import client
|
||||
from oauth2client.file import Storage
|
||||
|
||||
try:
|
||||
from googleapiclient import discovery
|
||||
except ImportError:
|
||||
|
|
|
@ -5,10 +5,13 @@
|
|||
# This hook is called when changesets are pushed to the master repository (ie
|
||||
# `hg push`). See https://zulip.com/integrations for installation instructions.
|
||||
|
||||
import zulip
|
||||
import sys
|
||||
from typing import Text
|
||||
from mercurial import ui, repository as repo
|
||||
|
||||
from mercurial import repository as repo
|
||||
from mercurial import ui
|
||||
|
||||
import zulip
|
||||
|
||||
VERSION = "0.9"
|
||||
|
||||
|
|
|
@ -1,13 +1,15 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
import os
|
||||
import traceback
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import traceback
|
||||
from types import FrameType
|
||||
|
||||
from zulip import RandomExponentialBackoff
|
||||
|
||||
|
||||
def die(signal: int, frame: FrameType) -> None:
|
||||
"""We actually want to exit, so run os._exit (so as not to be caught and restarted)"""
|
||||
os._exit(1)
|
||||
|
|
|
@ -23,6 +23,11 @@
|
|||
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
# SOFTWARE.
|
||||
|
||||
import logging
|
||||
import optparse
|
||||
import sys
|
||||
from configparser import SafeConfigParser
|
||||
|
||||
# The following is a table showing which kinds of messages are handled by the
|
||||
# mirror in each mode:
|
||||
#
|
||||
|
@ -37,18 +42,13 @@
|
|||
# | other sender| x | | |
|
||||
# public mode +-------------+-----+----+--------+----
|
||||
# | self sender | | | |
|
||||
from typing import Dict, List, Set, Optional
|
||||
from typing import Any, Callable, Dict, List, Optional, Set
|
||||
|
||||
import logging
|
||||
import optparse
|
||||
|
||||
from sleekxmpp import ClientXMPP, InvalidJID, JID
|
||||
from sleekxmpp import JID, ClientXMPP, InvalidJID
|
||||
from sleekxmpp.stanza import Message as JabberMessage
|
||||
from configparser import SafeConfigParser
|
||||
import sys
|
||||
|
||||
import zulip
|
||||
from zulip import Client
|
||||
from typing import Any, Callable
|
||||
|
||||
__version__ = "1.1"
|
||||
|
||||
|
|
|
@ -5,8 +5,8 @@ import errno
|
|||
import os
|
||||
import platform
|
||||
import re
|
||||
import sys
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import traceback
|
||||
|
||||
|
@ -25,9 +25,10 @@ except ImportError:
|
|||
import json
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), "../../"))
|
||||
import zulip
|
||||
from typing import List
|
||||
|
||||
import zulip
|
||||
|
||||
temp_dir = "/var/tmp/" if os.name == "posix" else tempfile.gettempdir()
|
||||
|
||||
def mkdir_p(path: str) -> None:
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import zulip
|
||||
|
||||
from typing import Any, Dict, Text
|
||||
|
||||
import zulip
|
||||
|
||||
VERSION = "0.9"
|
||||
# Nagios passes the notification details as command line options.
|
||||
# In Nagios, "output" means "first line of output", and "long
|
||||
|
|
|
@ -9,12 +9,14 @@ from typing import Dict
|
|||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import zulip_openshift_config as config
|
||||
|
||||
VERSION = '0.1'
|
||||
|
||||
if config.ZULIP_API_PATH is not None:
|
||||
sys.path.append(config.ZULIP_API_PATH)
|
||||
|
||||
import zulip
|
||||
|
||||
client = zulip.Client(
|
||||
email=config.ZULIP_USER,
|
||||
site=config.ZULIP_SITE,
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
# https://github.com/python/mypy/issues/1141
|
||||
from typing import Dict, Text, Optional
|
||||
from typing import Dict, Optional, Text
|
||||
|
||||
# Change these values to configure authentication for the plugin
|
||||
ZULIP_USER = 'openshift-bot@example.com'
|
||||
|
|
|
@ -15,8 +15,8 @@ For example:
|
|||
'''
|
||||
|
||||
import os
|
||||
import sys
|
||||
import os.path
|
||||
import sys
|
||||
|
||||
import git_p4
|
||||
|
||||
|
@ -24,12 +24,14 @@ __version__ = "0.1"
|
|||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
import zulip_perforce_config as config
|
||||
|
||||
if config.ZULIP_API_PATH is not None:
|
||||
sys.path.append(config.ZULIP_API_PATH)
|
||||
|
||||
import zulip
|
||||
|
||||
client = zulip.Client(
|
||||
email=config.ZULIP_USER,
|
||||
site=config.ZULIP_SITE,
|
||||
|
|
|
@ -3,21 +3,23 @@
|
|||
# RSS integration for Zulip
|
||||
#
|
||||
|
||||
import argparse
|
||||
import calendar
|
||||
import errno
|
||||
import hashlib
|
||||
from html.parser import HTMLParser
|
||||
import logging
|
||||
import argparse
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import urllib.parse
|
||||
from typing import Dict, List, Tuple, Any
|
||||
from html.parser import HTMLParser
|
||||
from typing import Any, Dict, List, Tuple
|
||||
|
||||
import feedparser
|
||||
|
||||
import zulip
|
||||
|
||||
VERSION = "0.9" # type: str
|
||||
RSS_DATA_DIR = os.path.expanduser(os.path.join('~', '.cache', 'zulip-rss')) # type: str
|
||||
OLDNESS_THRESHOLD = 30 # type: int
|
||||
|
|
|
@ -10,19 +10,22 @@
|
|||
# /srv/svn/carols 1843
|
||||
|
||||
import os
|
||||
import sys
|
||||
import os.path
|
||||
import pysvn
|
||||
import sys
|
||||
from typing import Any, Dict, Optional, Text, Tuple
|
||||
|
||||
import pysvn
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import zulip_svn_config as config
|
||||
|
||||
VERSION = "0.9"
|
||||
|
||||
if config.ZULIP_API_PATH is not None:
|
||||
sys.path.append(config.ZULIP_API_PATH)
|
||||
|
||||
import zulip
|
||||
|
||||
client = zulip.Client(
|
||||
email=config.ZULIP_USER,
|
||||
site=config.ZULIP_SITE,
|
||||
|
|
|
@ -11,12 +11,15 @@
|
|||
# You may then need to restart trac (or restart Apache) for the bot
|
||||
# (or changes to the bot) to actually be loaded by trac.
|
||||
|
||||
import os.path
|
||||
import sys
|
||||
|
||||
from trac.core import Component, implements
|
||||
from trac.ticket import ITicketChangeListener
|
||||
import sys
|
||||
import os.path
|
||||
|
||||
sys.path.insert(0, os.path.dirname(__file__))
|
||||
import zulip_trac_config as config
|
||||
|
||||
VERSION = "0.9"
|
||||
|
||||
from typing import Any, Dict
|
||||
|
@ -25,6 +28,7 @@ if config.ZULIP_API_PATH is not None:
|
|||
sys.path.append(config.ZULIP_API_PATH)
|
||||
|
||||
import zulip
|
||||
|
||||
client = zulip.Client(
|
||||
email=config.ZULIP_USER,
|
||||
site=config.ZULIP_SITE,
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
# An easy Trello integration for Zulip.
|
||||
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import sys
|
||||
|
||||
try:
|
||||
import requests
|
||||
|
|
|
@ -2,12 +2,13 @@
|
|||
|
||||
# Twitter integration for Zulip
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import sys
|
||||
import argparse
|
||||
from configparser import ConfigParser, NoSectionError, NoOptionError
|
||||
from configparser import ConfigParser, NoOptionError, NoSectionError
|
||||
|
||||
import zulip
|
||||
|
||||
VERSION = "0.9"
|
||||
CONFIGFILE = os.path.expanduser("~/.zulip_twitterrc")
|
||||
INSTRUCTIONS = r"""
|
||||
|
|
|
@ -1,16 +1,17 @@
|
|||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import time
|
||||
import hashlib
|
||||
import logging
|
||||
import optparse
|
||||
import random
|
||||
import logging
|
||||
import subprocess
|
||||
import hashlib
|
||||
import zephyr
|
||||
import zulip
|
||||
|
||||
import sys
|
||||
import time
|
||||
from typing import Dict, List, Set, Tuple
|
||||
|
||||
import zephyr
|
||||
|
||||
import zulip
|
||||
|
||||
parser = optparse.OptionParser()
|
||||
parser.add_option('--verbose',
|
||||
dest='verbose',
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
#!/usr/bin/env python3
|
||||
import os
|
||||
import sys
|
||||
import subprocess
|
||||
import base64
|
||||
import os
|
||||
import subprocess
|
||||
import sys
|
||||
|
||||
short_user = sys.argv[1]
|
||||
api_key = sys.argv[2]
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
#!/usr/bin/env python3
|
||||
import sys
|
||||
import os
|
||||
import logging
|
||||
import argparse
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import unicodedata
|
||||
|
||||
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'api'))
|
||||
import zulip
|
||||
|
||||
|
||||
def write_public_streams() -> None:
|
||||
public_streams = set()
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import sys
|
||||
import subprocess
|
||||
import os
|
||||
import traceback
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import traceback
|
||||
|
||||
sys.path[:0] = [os.path.dirname(__file__)]
|
||||
from zephyr_mirror_backend import parse_args
|
||||
|
@ -13,6 +13,7 @@ from zephyr_mirror_backend import parse_args
|
|||
|
||||
from types import FrameType
|
||||
|
||||
|
||||
def die(signal: int, frame: FrameType) -> None:
|
||||
|
||||
# We actually want to exit, so run os._exit (so as not to be caught and restarted)
|
||||
|
|
|
@ -1,21 +1,20 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from typing import Any, Dict, IO, List, NoReturn, Optional, Set, Tuple, Union
|
||||
from types import FrameType
|
||||
|
||||
import sys
|
||||
import hashlib
|
||||
import json
|
||||
import re
|
||||
import time
|
||||
import subprocess
|
||||
import logging
|
||||
import optparse
|
||||
import os
|
||||
import textwrap
|
||||
import signal
|
||||
import logging
|
||||
import hashlib
|
||||
import tempfile
|
||||
import re
|
||||
import select
|
||||
import signal
|
||||
import subprocess
|
||||
import sys
|
||||
import tempfile
|
||||
import textwrap
|
||||
import time
|
||||
from types import FrameType
|
||||
from typing import IO, Any, Dict, List, NoReturn, Optional, Set, Tuple, Union
|
||||
|
||||
from typing_extensions import Literal, TypedDict
|
||||
|
||||
|
|
|
@ -1,11 +1,9 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from typing import Any, Dict, Generator, List, Tuple
|
||||
|
||||
import itertools
|
||||
import os
|
||||
import sys
|
||||
|
||||
import itertools
|
||||
from typing import Any, Dict, Generator, List, Tuple
|
||||
|
||||
with open("README.md") as fh:
|
||||
long_description = fh.read()
|
||||
|
@ -73,13 +71,14 @@ setuptools_info = dict(
|
|||
)
|
||||
|
||||
try:
|
||||
from setuptools import setup, find_packages
|
||||
from setuptools import find_packages, setup
|
||||
package_info.update(setuptools_info)
|
||||
package_info['packages'] = find_packages(exclude=['tests'])
|
||||
|
||||
except ImportError:
|
||||
from distutils.core import setup
|
||||
from distutils.version import LooseVersion
|
||||
|
||||
# Manual dependency check
|
||||
try:
|
||||
import requests
|
||||
|
|
|
@ -1,15 +1,16 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import io
|
||||
import os
|
||||
import unittest
|
||||
import zulip
|
||||
|
||||
from unittest import TestCase
|
||||
from zulip import ZulipError
|
||||
from unittest.mock import patch
|
||||
|
||||
import zulip
|
||||
from zulip import ZulipError
|
||||
|
||||
|
||||
class TestDefaultArguments(TestCase):
|
||||
|
||||
def test_invalid_arguments(self) -> None:
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import unittest
|
||||
from unittest import TestCase
|
||||
|
||||
import zulip
|
||||
|
||||
from unittest import TestCase
|
||||
|
||||
class TestHashUtilDecode(TestCase):
|
||||
def test_hash_util_decode(self) -> None:
|
||||
|
|
|
@ -1,21 +1,34 @@
|
|||
import json
|
||||
import requests
|
||||
import time
|
||||
import traceback
|
||||
import sys
|
||||
import os
|
||||
import optparse
|
||||
import argparse
|
||||
import json
|
||||
import logging
|
||||
import optparse
|
||||
import os
|
||||
import platform
|
||||
import random
|
||||
import sys
|
||||
import time
|
||||
import traceback
|
||||
import types
|
||||
import urllib.parse
|
||||
from configparser import SafeConfigParser
|
||||
from distutils.version import LooseVersion
|
||||
from typing import (
|
||||
IO,
|
||||
Any,
|
||||
Callable,
|
||||
Dict,
|
||||
Iterable,
|
||||
List,
|
||||
Mapping,
|
||||
Optional,
|
||||
Sequence,
|
||||
Text,
|
||||
Tuple,
|
||||
Union,
|
||||
)
|
||||
|
||||
import distro
|
||||
from configparser import SafeConfigParser
|
||||
import urllib.parse
|
||||
import logging
|
||||
from typing import Any, Callable, Dict, Iterable, IO, List, Mapping, Optional, Text, Tuple, Union, Sequence
|
||||
import requests
|
||||
|
||||
__version__ = "0.8.0"
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import os
|
||||
|
||||
import zulip
|
||||
|
||||
import argparse
|
||||
|
||||
def main() -> None:
|
||||
usage = """zulip-api-examples [script_name]
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
#!/usr/bin/env python3
|
||||
import logging
|
||||
import sys
|
||||
|
||||
from typing import Any, Dict, List
|
||||
|
||||
import zulip
|
||||
import click
|
||||
|
||||
import zulip
|
||||
|
||||
logging.basicConfig(stream=sys.stdout, level=logging.INFO)
|
||||
log = logging.getLogger("zulip-cli")
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import json
|
||||
from typing import Dict, List, Any
|
||||
from typing import Any, Dict, List
|
||||
|
||||
import zulip
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
|
||||
from typing import Any, Dict
|
||||
|
||||
usage = """print-events [options]
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
|
||||
from typing import Any, Dict
|
||||
|
||||
usage = """print-messages [options]
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
import argparse
|
||||
|
||||
from io import StringIO as _StringIO
|
||||
from typing import IO, Any
|
||||
|
||||
import zulip
|
||||
|
||||
|
||||
class StringIO(_StringIO):
|
||||
name = '' # https://github.com/python/typeshed/issues/598
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
from typing import Any, Dict, List
|
||||
|
||||
import zulip
|
||||
from typing import Any, List, Dict
|
||||
|
||||
welcome_text = 'Hello {}, Welcome to Zulip!\n \
|
||||
* The first thing you should do is to install the development environment. \
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
#!/usr/bin/env python3
|
||||
# zulip-send -- Sends a message to the specified recipients.
|
||||
|
||||
import sys
|
||||
import argparse
|
||||
import logging
|
||||
|
||||
import sys
|
||||
from typing import Any, Dict
|
||||
|
||||
import zulip
|
||||
|
|
|
@ -70,7 +70,7 @@ setuptools_info = dict(
|
|||
)
|
||||
|
||||
try:
|
||||
from setuptools import setup, find_packages
|
||||
from setuptools import find_packages, setup
|
||||
package_info.update(setuptools_info)
|
||||
package_info['packages'] = find_packages()
|
||||
package_info['package_data'] = package_data
|
||||
|
|
|
@ -1,9 +1,12 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
|
||||
from typing import Any, List, Dict
|
||||
from zulip_bots.lib import BotHandler
|
||||
from typing import Any, Dict, List
|
||||
|
||||
import requests
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class BaremetricsHandler:
|
||||
def initialize(self, bot_handler: BotHandler) -> None:
|
||||
self.config_info = bot_handler.get_config_info('baremetrics')
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
from unittest.mock import patch
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
from zulip_bots.test_lib import StubBotHandler
|
||||
|
||||
from zulip_bots.bots.baremetrics.baremetrics import BaremetricsHandler
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests, StubBotHandler
|
||||
|
||||
|
||||
class TestBaremetricsBot(BotTestCase, DefaultTests):
|
||||
bot_name = "baremetrics"
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
import requests
|
||||
import logging
|
||||
from typing import Dict
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
import requests
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
help_message = '''
|
||||
You can add datapoints towards your beeminder goals \
|
||||
following the syntax shown below :smile:.\n \
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
from unittest.mock import patch
|
||||
from zulip_bots.test_lib import StubBotHandler, BotTestCase, DefaultTests, get_bot_message_handler
|
||||
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests, StubBotHandler, get_bot_message_handler
|
||||
|
||||
|
||||
class TestBeeminderBot(BotTestCase, DefaultTests):
|
||||
bot_name = "beeminder"
|
||||
normal_config = {
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
import copy
|
||||
import re
|
||||
from typing import Any, Dict, Optional
|
||||
|
||||
import chess
|
||||
import chess.uci
|
||||
import re
|
||||
import copy
|
||||
from typing import Any, Optional, Dict
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
START_REGEX = re.compile('start with other user$')
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestChessBot(BotTestCase, DefaultTests):
|
||||
bot_name = "chessbot"
|
||||
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
from zulip_bots.game_handler import GameAdapter
|
||||
from zulip_bots.bots.connect_four.controller import ConnectFourModel
|
||||
from typing import Any
|
||||
|
||||
from zulip_bots.bots.connect_four.controller import ConnectFourModel
|
||||
from zulip_bots.game_handler import GameAdapter
|
||||
|
||||
|
||||
class ConnectFourMessageHandler:
|
||||
tokens = [':blue_circle:', ':red_circle:']
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from copy import deepcopy
|
||||
from functools import reduce
|
||||
|
||||
from zulip_bots.game_handler import BadMoveException
|
||||
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
from typing import Dict, List
|
||||
|
||||
from zulip_bots.bots.connect_four.connect_four import ConnectFourModel
|
||||
from zulip_bots.game_handler import BadMoveException
|
||||
from typing import Dict, List
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestConnectFourBot(BotTestCase, DefaultTests):
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
|
||||
import copy
|
||||
from math import log10, floor
|
||||
from math import floor, log10
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from zulip_bots.bots.converter import utils
|
||||
|
||||
from typing import Any, Dict, List
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
def is_float(value: Any) -> bool:
|
||||
try:
|
||||
float(value)
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
from zulip_bots.bots.converter import utils
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
from zulip_bots.bots.converter import utils
|
||||
|
||||
class TestConverterBot(BotTestCase, DefaultTests):
|
||||
bot_name = "converter"
|
||||
|
|
|
@ -1,12 +1,14 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
import logging
|
||||
import requests
|
||||
import html2text
|
||||
import string
|
||||
|
||||
from typing import Dict
|
||||
|
||||
import html2text
|
||||
import requests
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class DefineHandler:
|
||||
'''
|
||||
This plugin define a word that the user inputs. It
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
from unittest.mock import patch
|
||||
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestDefineBot(BotTestCase, DefaultTests):
|
||||
bot_name = "define"
|
||||
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
import logging
|
||||
import json
|
||||
import logging
|
||||
from typing import Dict
|
||||
|
||||
import apiai
|
||||
|
||||
from typing import Dict
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
help_message = '''DialogFlow bot
|
||||
|
|
|
@ -1,12 +1,10 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests, read_bot_fixture_data
|
||||
|
||||
import json
|
||||
from contextlib import contextmanager
|
||||
|
||||
from typing import ByteString, Iterator
|
||||
from unittest.mock import patch
|
||||
|
||||
from typing import Iterator, ByteString
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests, read_bot_fixture_data
|
||||
|
||||
import json
|
||||
|
||||
class MockHttplibRequest():
|
||||
def __init__(self, response: str) -> None:
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
from dropbox import Dropbox
|
||||
from typing import Any, Dict, List, Tuple
|
||||
from zulip_bots.lib import BotHandler
|
||||
import re
|
||||
from typing import Any, Dict, List, Tuple
|
||||
|
||||
from dropbox import Dropbox
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
URL = "[{name}](https://www.dropbox.com/home{path})"
|
||||
|
||||
|
|
|
@ -1,14 +1,15 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
from unittest.mock import patch
|
||||
|
||||
from zulip_bots.bots.dropbox_share.test_util import (
|
||||
MockFileMetadata,
|
||||
MockHttpResponse,
|
||||
MockListFolderResult,
|
||||
MockPathLinkMetadata,
|
||||
MockSearchMatch,
|
||||
MockSearchResult,
|
||||
MockPathLinkMetadata,
|
||||
MockHttpResponse
|
||||
)
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
def get_root_files_list(*args, **kwargs):
|
||||
return MockListFolderResult(
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from typing import List
|
||||
|
||||
|
||||
class MockFileMetadata:
|
||||
def __init__(self, name: str, path_lower: str):
|
||||
self.name = name
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
from typing import Dict
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
def encrypt(text: str) -> str:
|
||||
# This is where the actual ROT13 is applied
|
||||
# WHY IS .JOIN NOT WORKING?!
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestEncryptBot(BotTestCase, DefaultTests):
|
||||
bot_name = "encrypt"
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
from typing import Dict
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
from typing import Dict
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class FileUploaderHandler:
|
||||
def usage(self) -> str:
|
||||
|
|
|
@ -1,11 +1,8 @@
|
|||
from pathlib import Path
|
||||
from unittest.mock import Mock, patch
|
||||
|
||||
from zulip_bots.test_lib import (
|
||||
BotTestCase,
|
||||
DefaultTests,
|
||||
)
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
from pathlib import Path
|
||||
|
||||
class TestFileUploaderBot(BotTestCase, DefaultTests):
|
||||
bot_name = "file_uploader"
|
||||
|
|
|
@ -1,9 +1,11 @@
|
|||
import logging
|
||||
from typing import Any, Dict, List, Optional, Tuple
|
||||
|
||||
import requests
|
||||
from typing import Any, Dict, List, Tuple, Optional
|
||||
from zulip_bots.lib import BotHandler
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
USERS_LIST_URL = 'https://api.flock.co/v1/roster.listContacts'
|
||||
SEND_MESSAGE_URL = 'https://api.flock.co/v1/chat.sendMessage'
|
||||
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
from unittest.mock import patch
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestFlockBot(BotTestCase, DefaultTests):
|
||||
bot_name = "flock"
|
||||
normal_config = {"token": "12345"}
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
from typing import Dict
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class FollowupHandler:
|
||||
'''
|
||||
This plugin facilitates creating follow-up tasks when
|
||||
|
|
|
@ -1,7 +1,4 @@
|
|||
from zulip_bots.test_lib import (
|
||||
BotTestCase,
|
||||
DefaultTests,
|
||||
)
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestFollowUpBot(BotTestCase, DefaultTests):
|
||||
|
|
|
@ -1,8 +1,11 @@
|
|||
import requests
|
||||
import re
|
||||
from typing import Any, Dict
|
||||
|
||||
import requests
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class FrontHandler:
|
||||
FRONT_API = "https://api2.frontapp.com/conversations/{}"
|
||||
COMMANDS = [
|
||||
|
|
|
@ -2,6 +2,7 @@ from typing import Any, Dict, Optional
|
|||
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestFrontBot(BotTestCase, DefaultTests):
|
||||
bot_name = 'front'
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from zulip_bots.game_handler import GameAdapter, BadMoveException
|
||||
from typing import List, Any
|
||||
from typing import Any, List
|
||||
|
||||
from zulip_bots.game_handler import BadMoveException, GameAdapter
|
||||
|
||||
|
||||
class GameHandlerBotMessageHandler:
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
from zulip_bots.game_handler import GameInstance
|
||||
from typing import Any, Dict, List
|
||||
|
||||
from mock import patch
|
||||
|
||||
from typing import Any, Dict, List
|
||||
from zulip_bots.game_handler import GameInstance
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestGameHandlerBot(BotTestCase, DefaultTests):
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
import copy
|
||||
from typing import Any, Dict, List, Tuple
|
||||
|
||||
from zulip_bots.game_handler import BadMoveException, GameAdapter
|
||||
|
||||
from typing import List, Any, Tuple, Dict
|
||||
from zulip_bots.game_handler import GameAdapter, BadMoveException
|
||||
|
||||
class GameOfFifteenModel:
|
||||
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
from typing import Dict, List, Tuple
|
||||
|
||||
from zulip_bots.bots.game_of_fifteen.game_of_fifteen import GameOfFifteenModel
|
||||
from zulip_bots.game_handler import BadMoveException
|
||||
from typing import Dict, List, Tuple
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestGameOfFifteenBot(BotTestCase, DefaultTests):
|
||||
|
|
|
@ -1,10 +1,11 @@
|
|||
from typing import Dict, Union
|
||||
from zulip_bots.lib import BotHandler
|
||||
import requests
|
||||
import logging
|
||||
from requests.exceptions import HTTPError, ConnectionError
|
||||
from typing import Dict, Union
|
||||
|
||||
import requests
|
||||
from requests.exceptions import ConnectionError, HTTPError
|
||||
|
||||
from zulip_bots.custom_exceptions import ConfigValidationError
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
GIPHY_TRANSLATE_API = 'http://api.giphy.com/v1/gifs/translate'
|
||||
GIPHY_RANDOM_API = 'http://api.giphy.com/v1/gifs/random'
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
from unittest.mock import patch
|
||||
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from zulip_bots.test_lib import StubBotHandler, BotTestCase, DefaultTests, get_bot_message_handler
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests, StubBotHandler, get_bot_message_handler
|
||||
|
||||
|
||||
class TestGiphyBot(BotTestCase, DefaultTests):
|
||||
bot_name = "giphy"
|
||||
|
|
|
@ -1,11 +1,12 @@
|
|||
import re
|
||||
import logging
|
||||
import re
|
||||
from typing import Any, Dict, Tuple, Union
|
||||
|
||||
import requests
|
||||
|
||||
from typing import Dict, Any, Tuple, Union
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class GithubHandler:
|
||||
'''
|
||||
This bot provides details on github issues and pull requests when they're
|
||||
|
|
|
@ -1,9 +1,5 @@
|
|||
from zulip_bots.test_lib import (
|
||||
StubBotHandler,
|
||||
BotTestCase,
|
||||
DefaultTests,
|
||||
get_bot_message_handler,
|
||||
)
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests, StubBotHandler, get_bot_message_handler
|
||||
|
||||
|
||||
class TestGithubDetailBot(BotTestCase, DefaultTests):
|
||||
bot_name = "github_detail"
|
||||
|
|
|
@ -1,13 +1,13 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
import logging
|
||||
from typing import Dict, List
|
||||
|
||||
import requests
|
||||
|
||||
from bs4 import BeautifulSoup
|
||||
|
||||
from typing import Dict, List
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
def google_search(keywords: str) -> List[Dict[str, str]]:
|
||||
query = {'q': keywords}
|
||||
# Gets the page
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
from unittest.mock import patch
|
||||
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
from unittest.mock import patch
|
||||
|
||||
class TestGoogleSearchBot(BotTestCase, DefaultTests):
|
||||
bot_name = 'google_search'
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
import requests
|
||||
|
||||
|
||||
class GoogleTranslateHandler:
|
||||
'''
|
||||
This bot will translate any messages sent to it using google translate.
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
from unittest.mock import patch
|
||||
|
||||
from requests.exceptions import ConnectionError
|
||||
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests, StubBotHandler
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
|
||||
from typing import Any, Dict
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class HelloWorldHandler:
|
||||
def usage(self) -> str:
|
||||
return '''
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestHelpBot(BotTestCase, DefaultTests):
|
||||
bot_name = "helloworld" # type: str
|
||||
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
from typing import Dict
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
|
||||
class HelpHandler:
|
||||
def usage(self) -> str:
|
||||
return '''
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestHelpBot(BotTestCase, DefaultTests):
|
||||
bot_name = "help"
|
||||
|
||||
|
|
|
@ -1,8 +1,9 @@
|
|||
import requests
|
||||
import logging
|
||||
import re
|
||||
from typing import Any, Dict, List, Optional
|
||||
|
||||
import requests
|
||||
|
||||
from typing import Any, Dict, Optional, List
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
API_BASE_URL = "https://beta.idonethis.com/api/v2"
|
||||
|
|
|
@ -2,6 +2,7 @@ from unittest.mock import patch
|
|||
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests
|
||||
|
||||
|
||||
class TestIDoneThisBot(BotTestCase, DefaultTests):
|
||||
bot_name = "idonethis" # type: str
|
||||
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
import json
|
||||
import re
|
||||
from typing import Any, Dict, Tuple
|
||||
|
||||
from zulip_bots.lib import BotHandler
|
||||
|
||||
QUESTION = 'How should we handle this?'
|
||||
|
|
|
@ -1,8 +1,10 @@
|
|||
# See readme.md for instructions on running this code.
|
||||
|
||||
from typing import Dict
|
||||
|
||||
from zulip_bots.lib import BotHandler, use_storage
|
||||
|
||||
|
||||
class IncrementorHandler:
|
||||
META = {
|
||||
'name': 'Incrementor',
|
||||
|
|
|
@ -1,11 +1,7 @@
|
|||
from unittest.mock import patch
|
||||
|
||||
from zulip_bots.test_lib import (
|
||||
get_bot_message_handler,
|
||||
StubBotHandler,
|
||||
DefaultTests,
|
||||
BotTestCase,
|
||||
)
|
||||
from zulip_bots.test_lib import BotTestCase, DefaultTests, StubBotHandler, get_bot_message_handler
|
||||
|
||||
|
||||
class TestIncrementorBot(BotTestCase, DefaultTests):
|
||||
bot_name = "incrementor"
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue