~sjdv1982/spyder-framework/spyder-kernel

« back to all changes in this revision

Viewing changes to __init__.py

  • Committer: sjoerd
  • Date: 2009-07-17 12:54:16 UTC
  • Revision ID: sjoerd@sjoerd-laptop-20090717125416-7xu0lczr7v3jzs2f
v:2.3: changes to namespace, fixed inheritance bug

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
  raise ImportError("Spyder could not locate its core functions. Your Spyder install seems to be broken")
20
20
 
21
21
import imp as __imp, functools as __functools
22
 
__namespace = __functools.partial(__imp.new_module, "Spydernamespace")
 
22
 
 
23
"""
 
24
def __newnamespace():
 
25
  __newnamespace.__counter += 1
 
26
  print "NAMESPACECOUNTER:", __newnamespace.__counter
 
27
  return __imp.new_module("Spydernamespace%d" %  __newnamespace.__counter)  
 
28
__newnamespace.__counter = 0  
 
29
"""
 
30
__newnamespace = __functools.partial(__imp.new_module, "Spydernamespace")
23
31
 
24
32
def __register_spyderobject(spyderstr, obj):
25
33
  global __spyderobjects
58
66
  while tt.endswith("Array"):
59
67
    arraycounter += 1
60
68
    tt = tt[:-len("Array")]
61
 
  if tt not in __state.arraycount: __state.arraycount[tt] = 0
 
69
  if tt not in __state.arraycount: __state.arraycount[tt] = 3
62
70
  if arraycounter > __state.arraycount[tt]: 
63
71
    ret = True      
64
72
    __state.arraycount[tt] = arraycounter
78
86
      if __do_extend_array(tt): extend_array = True
79
87
  for tt in arraytypes: 
80
88
    if __do_extend_array(tt): extend_array = True
81
 
    
82
 
  if minnr > currmaxnr and currmaxnr > -1 and not extend_array:      
 
89
  if minnr > currmaxnr and currmaxnr > -1 and not extend_array: 
 
90
    #Just add the missing modules
83
91
    allnam = [v for v in namespaces if v[1] in newnrs]
84
92
    allnam.sort(__sortfunc)
85
93
    for nam, nr, namespace in allnam:
89
97
      os.chdir(olddir)
90
98
      exec(code, __shell)
91
99
  else:      
 
100
    #Initialize all over
 
101
    if currmaxnr > -1 and "SILENT" not in system.assesspar.enabled:
 
102
        print >> sys.stderr, "Re-initializing Spyder..."
92
103
    __run()
93
104
 
94
105
def __load_spydertype(spydertype):
100
111
  nr = __system.namespacelist.index(nam)
101
112
  namespace = __state.namespaces[nam]
102
113
  for nam2 in namespace.called:
103
 
    if nam2 != nam: __load_namespace(nam2)
 
114
    if nam2 != nam: 
 
115
      __load_namespace(nam2)
104
116
  return __load_namespaces([(nam,nr,namespace)])
105
117
 
106
118
def __addsystemtypes(code, definedtypes, currstate):
146
158
  __systemlines = [s for s in __systemlines_backup]
147
159
  __switches = set()
148
160
  __args = []
149
 
  core = __namespace()
 
161
  core = __newnamespace()
150
162
  __system.Spyder.core = core
151
 
  core.namespace = __namespace
 
163
  core.newnamespace = __newnamespace
152
164
  core.defineunimethod = __system.defineunimethod
153
165
  core.definemacro = __system.definemacro
154
166
  core.definestatement = __system.definestatement
194
206
  __reset()
195
207
  __switches = set(switches)
196
208
  if tempdir != None: __tempdir = str(tempdir)
197
 
  __state = __namespace()  
 
209
  __state = __newnamespace()  
198
210
  __toplevelfiles = []
199
211
  olddir = os.getcwd()
200
212
  filteredargs = []
213
225
  __state.arraycount = {}
214
226
  __state.commandlinetypes = []
215
227
  __reset()
216
 
  shellspace = __namespace()
 
228
  shellspace = __newnamespace()
217
229
  shellspace.core = __system.Spyder.core
218
230
  shellspace.getvar = getvar
219
231
  shellspace.getvars = getvars
229
241
  for mod in __state.namespaces.keys():
230
242
    globals()[mod] = __module_wrapper(mod)
231
243
  
232
 
  shellspace = __namespace()
 
244
  shellspace = __newnamespace()
233
245
  shellspace.core = __system.Spyder.core
234
246
  shellspace.getvar = getvar
235
247
  shellspace.getvars = getvars  
329
341
  __system.reset()
330
342
  
331
343
  __system.Spyder.core.__arraycount = __state.arraycount 
332
 
  __system.Spyder.core.register_spyderobject = __register_spyderobject
 
344
  __system.Spyder.core.__register_spyderobject = __register_spyderobject
 
345
  __system.Spyder.core.__retrieve_spyderobject = __retrieve_spyderobject
 
346
  __system.Spyder.core.__retrieve_all_spyderobjects = __retrieve_all_spyderobjects
333
347
  __system.Spyder.core.__constructor = __constructor
334
348
  __system.Spyder.core.set_temp = __set_temp
335
349
  __system.Spyder.core.get_temp = __get_temp
403
417
  def __getattr__(self, *args, **kwargs):
404
418
    self.wrapmodule = globals()["__module_export"](self.wrapmodulename)
405
419
    return getattr(self.wrapmodule, *args, **kwargs)  
406
 
  def namespace(self):
 
420
  def getnamespace(self):
407
421
    self.wrapmodule = globals()["__module_export"](self.wrapmodulename)
408
422
    return self.wrapmodule
409
423