Sounds like it would break a LOT of stuff! It has been painful enough getting extension writers to embrace Python 3 and WeeWX 4. But, that transition required them only to rewrite an extension in Python 3. Old extensions continued to work just fine under Python 2 and WeeWX V4.
If I'm understanding your proposal, something like import weedb.sqlite would become import weewx.weedb.sqlite That would require hundreds of changes across dozens of extensions. The upside just doesn't seem worth it. -tk On Mon, May 4, 2020 at 2:12 PM Till Maas <[email protected]> wrote: > Hi Tom, > > On Mon, May 04, 2020 at 08:36:57AM -0700, Tom Keffer wrote: > > > As you can imagine, there have been many discussions both offline and in > > weewx-development about these topics. The biggest problem is that weewx > is > > a program, not a module, which is what pip typically expects to install. > > > > Maybe you're more of a distutils whiz than I am, but, try as I may, I > could > > not find a combo that allowed pip to install weewx. So, we gave up and > went > > our own way. > > sure, I can give it a try. For this, it might be necessary/simpler to > rename the current setup.py script to make it available for a setuptools > script that follows normal conventions. Then we can adjust until > everything is migrated. Would it be important to be able to install > everything into /home/weewx in the future? Would it suffice to be able > to install into /home/weewx/.local? > > > But, I'm curious when you say that you cannot use "standard approaches" > > with weewx. For example, I use PyCharm and Eclipse. Both work fine with > our > > configuration. Any particular problems? > > What is hurting most is that pip install does not work. Therefore a > custom installation script would be needed to make it available when > creating a tox config that would run unit tests or pylint/pyflake. > Also after installing, it needs a custom PYTHONPATH setting. > > Therefore it would be nice to start by moving ./bin/weewx to ./weewx in > the source code. Then adding a build script for creating a module for it > would be simple. Then it looks like it would be good to move: > > ./bin/daemon.py -> ./weewx/daemon.py > ./bin/six.py should be removed in the future or moved into a > external_lib directory since it seems to be a copy of the six python > module. > > All the directories like ./bin/weedb could be moved to ./weewx/weedb or > ./weewx/db to make them part of the module > > The code from the tools like ./bin/wee_util could be moved into > ./weewx/weeutil/main.py > > Alternatively, the sub packages for the tools could also be moved along > weewx, so > > ./weeutil/main.py > ./weewx/... > > etc. > > I need to look more into the extension and bin/user to propose a change > for this. > > After moving the modules and the main methods, it should be easily > supported to let setuptools create stubs that will run the main method > for the modules. > > The code from setup.py to create a new config or to update configs > should probably be moved into their own helper scripts. > > To develop drivers, it is most useful to have weewx available as a > pip-installable module, so I suggest to prepare an example with this, if > you like the overall idea. > > What do you think? > > Thanks > Till > -- You received this message because you are subscribed to the Google Groups "weewx-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/weewx-development/CAPq0zEBAgecCVXBSjggtnEDx8ed9Z3vPeJHMfZCudHtRryERJw%40mail.gmail.com.
