[Help] [Newbie] Require help migrating from Perl to Python 2.7 (namespaces)

Thomas Bach thbach at students.uni-mainz.de
Mon Dec 24 06:18:55 CET 2012


Hi there,

On Sun, Dec 23, 2012 at 01:42:14PM -0800, prilisauer at googlemail.com wrote:
> […] In the lower section you see, that the modules should execute
> sqls. In case It could occur that two queries occur at the same
> time.  PS: IT IS NOT A QUESTION ABOUT SQL, etc. I do not understand,
> how I could handle the part which is marked with Problemsection1 and
> Problemsection2

I actually do not understand the problem you are stating. But, did you
have a look at SQLAlchemy? If you are coping a lot with SQL it really
makes your life much easier and they also provide the necessary
mechanisms for threading.

> import HomeLog # LogHandler

Modules should be written all lower-case separated by underscores.

> # Attach Loghandler
> Loghandler = HomeLog.Logging()

Have a look at the logging module and tutorial. I don't know what is
in HomeLog.Logging, but this doesn't seem right. 

Variables defined at module level should be written all upper-case.

> # Attach SocketServer
> HomeSocketServer.HomeSocketServerStart()
> 
> # Attach Scheduler
> HomeSched = HomeScheduler.HomeScheduler()
> […]
> # This is a "Sample" that builds 2byte Cmd and transmits it on bus
> PowerOnLamp1=Dali.send(0,0,1,80)

You do all this on the module level? These things should go into
functions with proper names or at least into a 

if __name__ == '__main__':
    pass


> ###############################################################
> HomeDaliServer.py
> ........
> def send (self,DaliAdress,RequestType,Request,RequestValue):
> # Problemsection1:
> # Here it's getting Interesting
> # We're at the HomeDaliServer, and now I want to use QuerySqlite()
> in the file HomeDatastore.py

So, where's the problem?

# make sure not to introduce cyclic dependence here!
import home_data_store

def send (connection,DaliAdress,RequestType,Request,RequestValue):
    results = home_data_store.query_sqlite(connection, …)
    return results


> ###############################################################
> HomeScheduler.py
> # Problemsection2:
> # If new workerthread is started, Informations must be queried using
> QuerySlite() and also update data

So, here's a first sketch (untested):

def query():
    data = do_something()
    return data

def update(data):
    do_something_with(data)


> HomeDatastore.py
> def QuerySqlite():
> #doing something here..
> # returning Data

Have you read the Python tutorial by the way?

Regards,
	Thomas.



More information about the Python-list mailing list