While working on the MongoDB implementation for enhancement 3, I decided it was time to organize the additional modules I was importing into Noob SNHUbot. I wanted to make sure as few files as necessary were held in the root folder of the project.
To accommodate this, I created another internal Python package for the bot to use, called
BotHelper. I’ve moved and renamed the former
bot_sched.py to this package as
Scheduler.py. No other changes were made to the file itself. The folder structure now appears as below.
noob_snhubot ├── BotHelper │ ├── __init__.py │ ├── MongoConnection.py │ └── Scheduler.py ├── cmds │ ├── __init__.py │ ├── airspeed_velocity.py │ ├── channels.py │ ├── greet_user.py │ ├── help.py │ ├── my_name.py │ ├── packtbook.py │ └── roll.py ├── config.yml ├── LICENSE ├── noob_snhubot.py ├── README.md └── requirements.txt
As can be seen, we keep the
LICENSE, and the new
config.yml, introduced in enhancement 3, in the root folder.
cmds are now packages as indicated by the
__init__.py imports each of the scripts to allow the bot script to import them as if they were part of the
BotHelper, instead of individual modules.
from .Scheduler import Scheduler from .MongoConnection import MongoConnection
from slackclient import SlackClient from BotHelper import Scheduler from BotHelper import MongoConnection