All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Fixed an issue with
pycord
v2+ where theload_extension
method now returns a list or dictionary instead of a None value. (#30)
- Support for disnake. (#27)
- Support for discord4py (#26)
- Fixed logging support not (fully) working when using libraries other than
discord.py
. (#28) - Fix erroneous error thrown when adding subdirectories to your command directory.
- Support for nextcord. (#19)
- Example code now uses discord.py v2.
- Fixed some minor meta-information bugs / typos.
- Added basic example screenshot on the README.
- Update load_extension calls to use
await
compatible with discord.py v2. (#18)
This release drops support for Python 3.7.
- Terminal output now supports colorized messages. The argument
colors
can be used to disable it. - Explicit error messages for certain actions (NoEntryPoint, ExtensionNotLoaded).
- Fixed a bug where filenames with mixed case would fail. (#14)
- Added explicit checks before loading or unloading cogs. (#15)
- The subclassed bot can now be run via a poetry script
poetry run example
. - The
examples
directory now includes a sample command directory & cog file to demonstrate the expected tree and code structure. (#9)
- Fixed a bug with the logger that was broken in v2.0.0.
- BREAKING: The
cogs_path
parameter is now justpath
. This was done for simplicity and to closer match the general naming convention. - Updated
watchgod
dependency to latest version for performance improvements.
- Fixed path manipulation bug that caused issues between POSIX and Windows systems. Paths
are now handled platform-agnostic with the
os
module. Added tests for regressions. (#6)
- Fixed a bug where nested project structures would break internal path resolution.
- A
ValueError
will now be raised if the user uses invalid input delimiters on thecogs_path
parameter.
- Migrated to the Poetry package & dependency manager.
- New dev dependency for testing:
pytest
. - Included several test cases on
get_dotted_cog_path
andget_cog_name
ensuring they are returning usable values.
- Removed setup.py, requirements.txt, build.ps1 in favor of the Poetry ecosystem.
- Fixed a bug where the watcher would spam errors if the specified cog directory did not exist.
- The watcher will additionally track changes to the command directory name. The watcher will will seek for a matching directory name in the background and restart itself once found (this includes reloading all cogs within that directory, if not loaded).
- Refactored some internal code.
- New example for the classless bot structure and manually instantiating a watcher.
- Fixed a typo in the class-based bot example and renamed it to
subclass_bot.py
to stay in convention with the newclassless_bot.py
.
cogwatch
will now log when a directory is modified within thecogs_path
directory.
- The
Watcher
class andwatch
decorator now accept apreload
argument. If set to True, it will detect and load all cogs on start. If False, you have to handle your own cog loading. Defaults to False. Note: the preloading happens before the debug mode check for auto-reloads, so you can use it as your default cog loader in production.
cogs_path
was not being read in nested path situations.- Exceptions are no longer completely eaten.
- The
watch()
decorator is now the preferred way to use the utility. You can still manually instantiate theWatcher()
and call itsstart()
method, but the decorator does the exact same thing. - A more thorough example is now available in the examples/ directory.
- Updated the Getting Started section to utilize the new
watch()
decorator. - The
cogs_path
argument now defaults to 'commands'.
Initial release!