[albatross-users] Simple/Class based register?

Cameron Blackwood korg at darkqueen.org
Tue Jul 1 16:30:28 EST 2003


Im sick of forgetting to register my classes. :-/

Can anyone see a problem with doing something like this? 
(Besides speed, which is obviously going to be slower than hardcoding).


----------- 8< also.py >8 -----------
import p

class   page_also1(p.AlbatrossClass): pass
class   page_also2(p.AlbatrossClass): pass
----------- 8< also.py >8 -----------


----------- 8< p.py >8 -----------

class   app:
  def   __init__(s):
    startpage=None
    for name,value in globals().items():
      is_albatross_start= is_albatross= None
      try:
        if value not in [AlbatrossClass, AlbatrossStartClass]:
          is_albatross_start=value.is_albatross_start_class
          is_albatross=      value.is_albatross_class
      except: pass
#     if startpage and is_albatross_start: squid=squid-donut() # error!
      if is_albatross_start:  startpage=name
      if is_albatross:        print 'I should register',name,value
    print 'Start page is:',startpage

class   AlbatrossClass:
  is_albatross_class=1
  is_albatross_start_class=0
class   AlbatrossStartClass(AlbatrossClass):
  is_albatross_start_class=1

class   page1(AlbatrossStartClass): pass
class   page2(AlbatrossClass): pass
class   page3(AlbatrossClass): pass


def     main():
  MyApp=app()

if __name__=="__main__": main()
----------- 8< p.py >8 -----------


Running   python p.py   gives me

----------- 8< output >8 -----------
register page_also1 also.page_also1
register page_also2 also.page_also2
register page3 __main__.page3
register page2 __main__.page2
register page1 __main__.page1
start page is: page1
----------- 8< output >8 -----------


cheers,
cam

--
 / `Rev Dr'   cam  at darkqueen.org            Roleplaying, virtual goth \
<   http://darkqueen.org        Poly, *nix, Python, C/C++, genetics, ATM  >
 \  [+61 3] 9809 1523[h]         skeptic, Evil GM(tm). Sysadmin for hire /
                      ---------- Random Quote ----------
There is no such thing as fortune.  Try again.



More information about the Albatross-users mailing list