Skip to main content

Automatic hot-reloading for your discord.py (or other supported libaries) command files.

Project description

Cog Watch

Automatic hot-reloading for your discord.py command files.

Version Python Version

cogwatch is a utility that you can plug into your discord.py bot (or various supported bot libraries) that will watch your command files directory (cogs) and automatically reload them as you modify or move them around in real-time.

No more reloading your commands manually every time you edit an embed just to make sure it looks perfect!


Features

  • Automatically reloads commands in real-time as you edit them (no !reload <command_name> needed).
  • Optionally handles the loading of all your commands on start-up (removes boilerplate).

Supported Libraries

cogwatch should work with any library that forked from discord.py. However, these libraries have been explicitly tested to work:

Getting Started

You can install the library with pip install cogwatch.

Import the watch decorator and apply it to your on_ready method and let the magic take effect.

See the examples directory for more details.

import asyncio
from discord.ext import commands
from cogwatch import watch


class ExampleBot(commands.Bot):
    def __init__(self):
        super().__init__(command_prefix='!')

    @watch(path='commands', preload=True) # This is all you need to add.
    async def on_ready(self):
        print('Bot ready.')

    async def on_message(self, message):
        if message.author.bot:
            return

        await self.process_commands(message)


async def main():
    client = ExampleBot()
    await client.start('YOUR_TOKEN_GOES_HERE')

if __name__ == '__main__':
    asyncio.run(main())

Configuration

These options can be passed to the decorator (or the class if manually initializing):

path: Path of the directory where your command files exist; cogwatch will watch recursively within this directory. Defaults to 'commands'.

preload: Whether to detect and load all cogs on start. Defaults to False.

colors: Whether to use colorized terminal outputs or not. Defaults to True.

default_logger: Whether to use the default logger (to sys.stdout) or not. Defaults to True.

loop: Custom event loop. Defaults to the current running event loop.

debug: Whether to run the bot only when the Python __debug__ flag is True. Defaults to True.

NOTE: cogwatch will only run if the __debug__ flag is set on Python. You can read more about that here. In short, unless you run Python with the -O flag from your command line, __debug__ will be True. If you just want to bypass this feature, pass in debug=False and it won't matter if the flag is enabled or not.

Logging

By default, the utility has a logger configured so users can get output to the console. You can disable this by passing in default_logger=False. If you want to hook into the logger -- for example, to pipe your output to another terminal or tail a file -- you can set up a custom logger like so:

import logging
import sys

watch_log = logging.getLogger('cogwatch')
watch_log.setLevel(logging.INFO)
watch_handler = logging.StreamHandler(sys.stdout)
watch_handler.setFormatter(logging.Formatter('[%(name)s] %(message)s'))
watch_log.addHandler(watch_handler)

License

cogwatch is available under the MIT License.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cogwatch-3.3.0.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

cogwatch-3.3.0-py3-none-any.whl (8.1 kB view details)

Uploaded Python 3

File details

Details for the file cogwatch-3.3.0.tar.gz.

File metadata

  • Download URL: cogwatch-3.3.0.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.10.10 Linux/6.2.8-arch1-1

File hashes

Hashes for cogwatch-3.3.0.tar.gz
Algorithm Hash digest
SHA256 799ccd8bdb0a6322b782dc3491cb81672632b9a3ed13f301a83c838fe7e62851
MD5 6c813f3e355c78c38d23136d3649274b
BLAKE2b-256 075a8bb8472e3a3e43c62c89d77838fce42f4cb4b47ac8f614a202d5d432fce7

See more details on using hashes here.

Provenance

File details

Details for the file cogwatch-3.3.0-py3-none-any.whl.

File metadata

  • Download URL: cogwatch-3.3.0-py3-none-any.whl
  • Upload date:
  • Size: 8.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.4.1 CPython/3.10.10 Linux/6.2.8-arch1-1

File hashes

Hashes for cogwatch-3.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2afac3eebb56b6375a63025a210ceeed0201c72b9bcc4f42e9796680d8ccbb76
MD5 5781eaf778e0493a3a9c0471180ae44c
BLAKE2b-256 02c79cc29fa23066f493d9a1fa3999de2525b6c6e97e4ed0197e7a8604957b1d

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page