keiffster / program-y

Python 3.x based AIML 2.0 Chatbot interpreter, framework, related programs and knowledge files
https://keiffster.github.io/program-y/
Other
350 stars 135 forks source link

Use setuptools extras #210

Closed Harmon758 closed 5 years ago

Harmon758 commented 5 years ago

I think the library now has 68 direct and indirect dependencies. A lot of these are specific to certain clients/platforms. Using setuptools extras would allow a user to choose the specific client(s) they want to use and only install the dependencies for that client, instead of requiring them to install every dependency for parts of the library that they won't end up using.

keiffster commented 5 years ago

Certainly something that has been on my mind for sometime. The list of dependencies has grown quite quickly once the core architecture is in place, and to be honest caught me by surprise.

The benefit is that its a simple install followed by configuration. The alternative is either a more complex installation routine that needs to guide the user through, .... or

I have been looking at splitting our all of the clients to their own repos, then use AdminTool to allow you to pick and choose your client for your bot. Needs more work, but might be a more user friendly way for people to get Program-y installed, pick a bot, and then pick 1 or 2 clients in the same way that rails, grails or Django admin tools work

keiffster commented 5 years ago

I've moved the wider discussion into Issue #221 as its more than just libraries the number of clients has now become a bit of a problem with release testing