diff --git a/Pipfile b/Pipfile index 91db1358c..3a106caeb 100644 --- a/Pipfile +++ b/Pipfile @@ -14,7 +14,7 @@ pytest-asyncio = "*" sphinx = ">1.7" sphinxcontrib-asyncio = "*" sphinx-rtd-theme = "*" -black = {version = "*", python_version = ">= '3.6'"} +black = "*" [pipenv] allow_prereleases = true diff --git a/Pipfile.lock b/Pipfile.lock index e5a038940..f8959d31e 100644 --- a/Pipfile.lock +++ b/Pipfile.lock @@ -1,7 +1,7 @@ { "_meta": { "hash": { - "sha256": "d340e4a19777736703970e45766d05d67b973db38b87382b6ef8696cb53abb60" + "sha256": "b6f739015def0fc7efb2b9aab7b0cc7e21d88e56b9b73f8611669d8c0814bc64" }, "pipfile-spec": 6, "requires": {}, @@ -248,19 +248,18 @@ }, "babel": { "hashes": [ - "sha256:8ce4cb6fdd4393edd323227cba3a077bceb2a6ce5201c902c65e730046f41f14", - "sha256:ad209a68d7162c4cff4b29cdebe3dec4cef75492df501b0049a9433c96ce6f80" + "sha256:6778d85147d5d85345c14a26aada5e478ab04e39b078b0745ee6870c2b5cf669", + "sha256:8cba50f48c529ca3fa18cf81fa9403be176d374ac4d60738b839122dfaaa3d23" ], - "version": "==2.5.3" + "version": "==2.6.0" }, "black": { "hashes": [ - "sha256:4fec2566f9fbbd4a58de50a168cbe3ab952713530410d227e82e4c65d1fad946", - "sha256:5fec0f25486046b9edb97961c946412ced96021247dd1a60ecd9f0567b68b030" + "sha256:c956857a831e508e75f0dc754b86982bad98d95c96aae39c20749209b3958ad7", + "sha256:fa8d4b58aeb454443d4ef02c9daa615cd9a241f0cbe5f2b38b5965209d26dd1c" ], "index": "pypi", - "markers": "python_version >= '3.6'", - "version": "==18.5b0" + "version": "==18.5b1" }, "certifi": { "hashes": [ @@ -413,11 +412,11 @@ }, "sphinx": { "hashes": [ - "sha256:2e7ad92e96eff1b2006cf9f0cdb2743dacbae63755458594e9e8238b0c3dc60b", - "sha256:e9b1a75a3eae05dded19c80eb17325be675e0698975baae976df603b6ed1eb10" + "sha256:85f7e32c8ef07f4ba5aeca728e0f7717bef0789fba8458b8d9c5c294cad134f3", + "sha256:d45480a229edf70d84ca9fae3784162b1bc75ee47e480ffe04a4b7f21a95d76d" ], "index": "pypi", - "version": "==1.7.4" + "version": "==1.7.5" }, "sphinx-rtd-theme": { "hashes": [ diff --git a/redbot/cogs/admin/admin.py b/redbot/cogs/admin/admin.py index d4f755503..1e722b943 100644 --- a/redbot/cogs/admin/admin.py +++ b/redbot/cogs/admin/admin.py @@ -40,7 +40,6 @@ RUNNING_ANNOUNCEMENT = ( class Admin: - def __init__(self, config=Config): self.conf = config.get_conf(self, 8237492837454039, force_registration=True) diff --git a/redbot/cogs/admin/announcer.py b/redbot/cogs/admin/announcer.py index 09272080f..9ee9cffbc 100644 --- a/redbot/cogs/admin/announcer.py +++ b/redbot/cogs/admin/announcer.py @@ -5,7 +5,6 @@ from discord.ext import commands class Announcer: - def __init__(self, ctx: commands.Context, message: str, config=None): """ :param ctx: diff --git a/redbot/cogs/admin/converters.py b/redbot/cogs/admin/converters.py index ac446f067..d73d52f6f 100644 --- a/redbot/cogs/admin/converters.py +++ b/redbot/cogs/admin/converters.py @@ -3,7 +3,6 @@ from discord.ext import commands class MemberDefaultAuthor(commands.Converter): - async def convert(self, ctx: commands.Context, arg: str) -> discord.Member: member_converter = commands.MemberConverter() try: @@ -17,7 +16,6 @@ class MemberDefaultAuthor(commands.Converter): class SelfRole(commands.Converter): - async def convert(self, ctx: commands.Context, arg: str) -> discord.Role: admin = ctx.command.instance if admin is None: diff --git a/redbot/cogs/alias/alias_entry.py b/redbot/cogs/alias/alias_entry.py index 48fa40f12..9bf06d41a 100644 --- a/redbot/cogs/alias/alias_entry.py +++ b/redbot/cogs/alias/alias_entry.py @@ -5,7 +5,6 @@ from redbot.core import commands class AliasEntry: - def __init__( self, name: str, command: Tuple[str], creator: discord.Member, global_: bool = False ): diff --git a/redbot/cogs/audio/audio.py b/redbot/cogs/audio/audio.py index 26a713371..868e13a09 100644 --- a/redbot/cogs/audio/audio.py +++ b/redbot/cogs/audio/audio.py @@ -20,7 +20,6 @@ __author__ = ["aikaterna", "billy/bollo/ati"] @cog_i18n(_) class Audio: - def __init__(self, bot): self.bot = bot self.config = Config.get_conf(self, 2711759130, force_registration=True) diff --git a/redbot/cogs/customcom/customcom.py b/redbot/cogs/customcom/customcom.py index 4c97f8d61..dd6d3f759 100644 --- a/redbot/cogs/customcom/customcom.py +++ b/redbot/cogs/customcom/customcom.py @@ -25,7 +25,6 @@ class AlreadyExists(CCError): class CommandObj: - def __init__(self, **kwargs): config = kwargs.get("config") self.bot = kwargs.get("bot") diff --git a/redbot/cogs/downloader/checks.py b/redbot/cogs/downloader/checks.py index b0d6fd3ad..6217da0e8 100644 --- a/redbot/cogs/downloader/checks.py +++ b/redbot/cogs/downloader/checks.py @@ -17,7 +17,6 @@ REPO_INSTALL_MSG = ( def install_agreement(): - async def pred(ctx: commands.Context): downloader = ctx.command.instance if downloader is None: diff --git a/redbot/cogs/downloader/converters.py b/redbot/cogs/downloader/converters.py index 20ab09a07..801db62fb 100644 --- a/redbot/cogs/downloader/converters.py +++ b/redbot/cogs/downloader/converters.py @@ -5,7 +5,6 @@ from .installable import Installable class InstalledCog(commands.Converter): - async def convert(self, ctx: commands.Context, arg: str) -> Installable: downloader = ctx.bot.get_cog("Downloader") if downloader is None: diff --git a/redbot/cogs/downloader/downloader.py b/redbot/cogs/downloader/downloader.py index 60a71240e..1b80e7504 100644 --- a/redbot/cogs/downloader/downloader.py +++ b/redbot/cogs/downloader/downloader.py @@ -27,7 +27,6 @@ _ = Translator("Downloader", __file__) @cog_i18n(_) class Downloader: - def __init__(self, bot: Red): self.bot = bot diff --git a/redbot/cogs/downloader/errors.py b/redbot/cogs/downloader/errors.py index af1892dea..2b25adc9a 100644 --- a/redbot/cogs/downloader/errors.py +++ b/redbot/cogs/downloader/errors.py @@ -17,6 +17,7 @@ class DownloaderException(Exception): """ Base class for Downloader exceptions. """ + pass @@ -31,6 +32,7 @@ class InvalidRepoName(DownloaderException): Throw when a repo name is invalid. Check the message for a more detailed reason. """ + pass @@ -39,6 +41,7 @@ class ExistingGitRepo(DownloaderException): Thrown when trying to clone into a folder where a git repo already exists. """ + pass @@ -47,6 +50,7 @@ class MissingGitRepo(DownloaderException): Thrown when a git repo is expected to exist but does not. """ + pass @@ -54,6 +58,7 @@ class CloningError(GitException): """ Thrown when git clone returns a non zero exit code. """ + pass @@ -62,6 +67,7 @@ class CurrentHashError(GitException): Thrown when git returns a non zero exit code attempting to determine the current commit hash. """ + pass @@ -70,6 +76,7 @@ class HardResetError(GitException): Thrown when there is an issue trying to execute a hard reset (usually prior to a repo update). """ + pass @@ -77,6 +84,7 @@ class UpdateError(GitException): """ Thrown when git pull returns a non zero error code. """ + pass @@ -84,6 +92,7 @@ class GitDiffError(GitException): """ Thrown when a git diff fails. """ + pass @@ -91,4 +100,5 @@ class PipError(DownloaderException): """ Thrown when pip returns a non-zero return code. """ + pass diff --git a/redbot/cogs/downloader/repo_manager.py b/redbot/cogs/downloader/repo_manager.py index a686959e1..b2a747d27 100644 --- a/redbot/cogs/downloader/repo_manager.py +++ b/redbot/cogs/downloader/repo_manager.py @@ -495,7 +495,6 @@ class Repo(RepoJSONMixin): class RepoManager: - def __init__(self): self._repos = {} diff --git a/redbot/cogs/economy/economy.py b/redbot/cogs/economy/economy.py index 5dfa45656..d2cb46e24 100644 --- a/redbot/cogs/economy/economy.py +++ b/redbot/cogs/economy/economy.py @@ -74,7 +74,6 @@ SLOT_PAYOUTS_MSG = _( def guild_only_check(): - async def pred(ctx: commands.Context): if await bank.is_global(): return True @@ -87,7 +86,6 @@ def guild_only_check(): class SetParser: - def __init__(self, argument): allowed = ("+", "-") self.sum = int(argument) diff --git a/redbot/cogs/general/general.py b/redbot/cogs/general/general.py index 965e61366..7fce063f3 100644 --- a/redbot/cogs/general/general.py +++ b/redbot/cogs/general/general.py @@ -21,7 +21,6 @@ class RPS(Enum): class RPSParser: - def __init__(self, argument): argument = argument.lower() if argument == "rock": diff --git a/redbot/cogs/image/image.py b/redbot/cogs/image/image.py index 3cedc8f08..156aec9ef 100644 --- a/redbot/cogs/image/image.py +++ b/redbot/cogs/image/image.py @@ -13,6 +13,7 @@ GIPHY_API_KEY = "dc6zaTOxFJmzC" @cog_i18n(_) class Image: """Image related commands.""" + default_global = {"imgur_client_id": None} def __init__(self, bot): diff --git a/redbot/cogs/mod/checks.py b/redbot/cogs/mod/checks.py index 3cb1baaf5..5f8de3663 100644 --- a/redbot/cogs/mod/checks.py +++ b/redbot/cogs/mod/checks.py @@ -3,7 +3,6 @@ import discord def mod_or_voice_permissions(**perms): - async def pred(ctx: commands.Context): author = ctx.author guild = ctx.guild @@ -31,7 +30,6 @@ def mod_or_voice_permissions(**perms): def admin_or_voice_permissions(**perms): - async def pred(ctx: commands.Context): author = ctx.author guild = ctx.guild @@ -54,7 +52,6 @@ def admin_or_voice_permissions(**perms): def bot_has_voice_permissions(**perms): - async def pred(ctx: commands.Context): guild = ctx.guild for vc in guild.voice_channels: diff --git a/redbot/cogs/permissions/converters.py b/redbot/cogs/permissions/converters.py index 2a0cd3bb0..de4526b26 100644 --- a/redbot/cogs/permissions/converters.py +++ b/redbot/cogs/permissions/converters.py @@ -3,7 +3,6 @@ from typing import Tuple class CogOrCommand(commands.Converter): - async def convert(self, ctx: commands.Context, arg: str) -> Tuple[str]: ret = ctx.bot.get_cog(arg) if ret: @@ -16,7 +15,6 @@ class CogOrCommand(commands.Converter): class RuleType(commands.Converter): - async def convert(self, ctx: commands.Context, arg: str) -> str: if arg.lower() in ("allow", "whitelist", "allowed"): return "allow" diff --git a/redbot/cogs/streams/streamtypes.py b/redbot/cogs/streams/streamtypes.py index 10f41046a..8c4e95b1c 100644 --- a/redbot/cogs/streams/streamtypes.py +++ b/redbot/cogs/streams/streamtypes.py @@ -30,7 +30,6 @@ def rnd(url): class TwitchCommunity: - def __init__(self, **kwargs): self.name = kwargs.pop("name") self.id = kwargs.pop("id", None) @@ -119,7 +118,6 @@ class TwitchCommunity: class Stream: - def __init__(self, **kwargs): self.name = kwargs.pop("name", None) self.channels = kwargs.pop("channels", []) @@ -148,7 +146,6 @@ class Stream: class YoutubeStream(Stream): - def __init__(self, **kwargs): self.id = kwargs.pop("id", None) self._token = kwargs.pop("token", None) @@ -213,7 +210,6 @@ class YoutubeStream(Stream): class TwitchStream(Stream): - def __init__(self, **kwargs): self.id = kwargs.pop("id", None) self._token = kwargs.pop("token", None) @@ -288,7 +284,6 @@ class TwitchStream(Stream): class HitboxStream(Stream): - async def is_online(self): url = "https://api.hitbox.tv/media/live/" + self.name @@ -326,7 +321,6 @@ class HitboxStream(Stream): class MixerStream(Stream): - async def is_online(self): url = "https://mixer.com/api/v1/channels/" + self.name @@ -368,7 +362,6 @@ class MixerStream(Stream): class PicartoStream(Stream): - async def is_online(self): url = "https://api.picarto.tv/v1/channel/name/" + self.name diff --git a/redbot/cogs/trivia/trivia.py b/redbot/cogs/trivia/trivia.py index eec6b0e06..fe67c3a8b 100644 --- a/redbot/cogs/trivia/trivia.py +++ b/redbot/cogs/trivia/trivia.py @@ -18,6 +18,7 @@ UNIQUE_ID = 0xb3c0e453 class InvalidListError(Exception): """A Trivia list file is in invalid format.""" + pass diff --git a/redbot/core/__init__.py b/redbot/core/__init__.py index 803982e0b..172371be4 100644 --- a/redbot/core/__init__.py +++ b/redbot/core/__init__.py @@ -4,7 +4,6 @@ __all__ = ["Config", "__version__"] class VersionInfo: - def __init__(self, major, minor, micro, releaselevel, serial): self._levels = ["alpha", "beta", "final"] self.major = major diff --git a/redbot/core/checks.py b/redbot/core/checks.py index a72249781..68ebb7be2 100644 --- a/redbot/core/checks.py +++ b/redbot/core/checks.py @@ -16,7 +16,6 @@ async def check_overrides(ctx, *, level): def is_owner(**kwargs): - async def check(ctx): override = await check_overrides(ctx, level="owner") return override if override is not None else await ctx.bot.is_owner(ctx.author, **kwargs) @@ -73,7 +72,6 @@ async def is_admin_or_superior(ctx): def mod_or_permissions(**perms): - async def predicate(ctx): override = await check_overrides(ctx, level="mod") return ( @@ -86,7 +84,6 @@ def mod_or_permissions(**perms): def admin_or_permissions(**perms): - async def predicate(ctx): override = await check_overrides(ctx, level="admin") return ( @@ -99,7 +96,6 @@ def admin_or_permissions(**perms): def bot_in_a_guild(**kwargs): - async def predicate(ctx): return len(ctx.bot.guilds) > 0 @@ -107,7 +103,6 @@ def bot_in_a_guild(**kwargs): def guildowner_or_permissions(**perms): - async def predicate(ctx): has_perms_or_is_owner = await check_permissions(ctx, perms) if ctx.guild is None: diff --git a/redbot/core/commands/commands.py b/redbot/core/commands/commands.py index 03a39a1c4..1061b9880 100644 --- a/redbot/core/commands/commands.py +++ b/redbot/core/commands/commands.py @@ -55,6 +55,7 @@ class Group(Command, commands.Group): This class inherits from `discord.ext.commands.Group`, with `Command` mixed in. """ + pass diff --git a/redbot/core/config.py b/redbot/core/config.py index b4ec00131..a217bc13e 100644 --- a/redbot/core/config.py +++ b/redbot/core/config.py @@ -441,6 +441,7 @@ class Config: attempting to access data. """ + GLOBAL = "GLOBAL" GUILD = "GUILD" CHANNEL = "TEXTCHANNEL" diff --git a/redbot/core/drivers/red_base.py b/redbot/core/drivers/red_base.py index 7766a44e9..38b8bb14f 100644 --- a/redbot/core/drivers/red_base.py +++ b/redbot/core/drivers/red_base.py @@ -2,7 +2,6 @@ __all__ = ["BaseDriver"] class BaseDriver: - def __init__(self, cog_name, identifier): self.cog_name = cog_name self.unique_cog_identifier = identifier diff --git a/redbot/core/events.py b/redbot/core/events.py index 15eb3ff6d..9eb872818 100644 --- a/redbot/core/events.py +++ b/redbot/core/events.py @@ -49,7 +49,6 @@ def should_log_sentry(exception) -> bool: def init_events(bot, cli_flags): - @bot.event async def on_connect(): if bot.uptime is None: diff --git a/redbot/core/global_checks.py b/redbot/core/global_checks.py index 2ef57166b..40edd0c1f 100644 --- a/redbot/core/global_checks.py +++ b/redbot/core/global_checks.py @@ -3,7 +3,6 @@ from . import commands def init_global_checks(bot): - @bot.check async def global_perms(ctx): """Check the user is/isn't globally whitelisted/blacklisted.""" diff --git a/redbot/core/rpc.py b/redbot/core/rpc.py index 5edced847..692833e68 100644 --- a/redbot/core/rpc.py +++ b/redbot/core/rpc.py @@ -89,7 +89,6 @@ methods = Methods() class BaseRPCMethodMixin: - def __init__(self): methods.add(self.all_methods, name="all_methods") diff --git a/redbot/core/utils/antispam.py b/redbot/core/utils/antispam.py index e2bc12ed8..8135b8330 100644 --- a/redbot/core/utils/antispam.py +++ b/redbot/core/utils/antispam.py @@ -18,6 +18,7 @@ class AntiSpam: Where quantity represents the maximum amount of times something should be allowed in an interval. """ + # TODO : Decorator interface for command check using `spammy` # with insertion of the antispam element into context # for manual stamping on succesful command completion diff --git a/setup.py b/setup.py index e9be9f23d..1b497a94b 100644 --- a/setup.py +++ b/setup.py @@ -113,6 +113,6 @@ setup( "mongo": ["motor"], "docs": ["sphinx>=1.7", "sphinxcontrib-asyncio", "sphinx_rtd_theme"], "voice": ["red-lavalink>=0.0.4"], - "style": ["black"], + "style": ["black==18.5b1"], }, ) diff --git a/tests/cogs/downloader/test_downloader.py b/tests/cogs/downloader/test_downloader.py index 2fc2ccf1e..9c894622c 100644 --- a/tests/cogs/downloader/test_downloader.py +++ b/tests/cogs/downloader/test_downloader.py @@ -25,7 +25,6 @@ async def fake_run_noprint(*args, **kwargs): @pytest.fixture(scope="module", autouse=True) def patch_relative_to(monkeysession): - def fake_relative_to(self, some_path: Path): return self diff --git a/tests/conftest.py b/tests/conftest.py index d8a541093..4ecfc2048 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -27,7 +27,6 @@ def override_data_path(tmpdir): @pytest.fixture() def coroutine(): - async def some_coro(*args, **kwargs): return args, kwargs @@ -74,7 +73,6 @@ def guild_factory(): mock_guild = namedtuple("Guild", "id members") class GuildFactory: - def get(self): return mock_guild(random.randint(1, 999999999), []) @@ -103,7 +101,6 @@ def member_factory(guild_factory): mock_member = namedtuple("Member", "id guild display_name") class MemberFactory: - def get(self): return mock_member(random.randint(1, 999999999), guild_factory.get(), "Testing_Name") @@ -120,7 +117,6 @@ def user_factory(): mock_user = namedtuple("User", "id") class UserFactory: - def get(self): return mock_user(random.randint(1, 999999999))