Pārlūkot izejas kodu

auto commit

master
jfinn 2 gadus atpakaļ
vecāks
revīzija
c83de404ce
1 mainītis faili ar 104 papildinājumiem un 2 dzēšanām
  1. 104
    2
      wsps/hot_reload_temp_staging.py

+ 104
- 2
wsps/hot_reload_temp_staging.py Parādīt failu

@@ -1,11 +1,111 @@
1 1
 
2
-import wsps.tasks_loop
2
+import wsps.tasks_loop as *
3 3
 # print("HOTRELOAD")
4 4
 
5 5
 
6 6
 
7 7
 
8 8
 
9
+def mro_wo(klass):
10
+	ret = [*klass.__mro__]
11
+	if object in ret:
12
+		ret.remove(object)
13
+	return ret
14
+
15
+def class_reset_v0(klass):
16
+	# print("\n")
17
+	# print(klass,_klass)
18
+	n = klass.__name__
19
+	n2 = getattr(klass,"_rcls_name","NO ATTR")
20
+	# print("class reset:", klass,n,n2)
21
+	for en in dir(klass):
22
+		if en[:2]=="__":continue
23
+		# p("???")
24
+		attr = getattr(klass,en,"NO ATTR")
25
+		# p("???..",en,klass,attr)
26
+		# p*
27
+
28
+		# print("\t",en,attr)
29
+		# setattr(klass,en,attr)
30
+		if en == "_rcls_name":pass
31
+			# continue
32
+		setattr(klass,en,None)
33
+		delattr(klass,en)
34
+		r'''
35
+		try:
36
+			# z+1
37
+			setattr(klass,en,None)
38
+			p("DEL",en,attr,hasattr(klass,en))
39
+			delattr(klass,en)
40
+			pass
41
+		except Exception as e:
42
+			p("~~",e)
43
+			# inspect.
44
+			# p(dir(inspect))
45
+			# p(dir(e))
46
+			tx= traceback.print_tb(e.__traceback__)
47
+			# traceback.print_tb(e)
48
+			# p()
49
+			p(tx)
50
+			# p(.print_tb())
51
+			raise e
52
+		# '''
53
+
54
+
55
+def get_class_by_name(klass,_klass,dec_c1):
56
+	rcls = None
57
+	# _rcls_name
58
+	__rcls_name = _klass.__name__
59
+	mro = mro_wo(klass)
60
+	if klass in mro and not dec_c1:
61
+		mro.remove(klass)
62
+
63
+	for cls in mro:
64
+		# _rcls_name = getattr(cls,"rcls_name_a",None)
65
+		_rcls_name = getattr(cls,"_rcls_name",None)
66
+		if not rcls and not _rcls_name:
67
+			rcls=cls
68
+		if _rcls_name == __rcls_name:
69
+			rcls=cls
70
+	if not rcls:
71
+		p("OUT OF EMPTY CLASSES")
72
+		raise "class_rld_ERR"
73
+	return rcls
74
+
75
+
76
+def class_reset_mro(klass):
77
+	for cls in mro_wo(klass):
78
+		class_reset_v0(cls)
79
+	
80
+	
81
+def class_edit_v2(__klass,_klass,reset=0,dec_c1=0):
82
+	# print("\n")
83
+	# rglob.cls_e.append((__klass.__name__,_klass.__name__))
84
+	klass = get_class_by_name(__klass,_klass,dec_c1)
85
+	cls_name = _klass.__name__
86
+
87
+	# klass._rcls_name=cls_name
88
+	# setattr(klass,"rcls_name_a",cls_name)
89
+	print(klass,_klass)
90
+	
91
+	if reset:
92
+		class_reset_v0(klass)
93
+	if reset == "rmv":
94
+		return
95
+
96
+	setattr(klass,"_rcls_name",cls_name)
97
+
98
+	for en in dir(_klass):
99
+		if en[:2]=="__":continue
100
+		attr = getattr(_klass,en,"NO ATTR")
101
+		# print("\t",en)
102
+		setattr(klass,en,attr)
103
+class_edit = class_edit_v2
104
+class_reset = class_reset_mro
105
+
106
+
107
+
108
+
9 109
 
10 110
 class DevMixin_R1():
11 111
 
@@ -166,5 +266,7 @@ class DevMixin_R2_DevSto():
166 266
 
167 267
 
168 268
 
169
-# def run_to
269
+def init_class_edits():
270
+	class_edit(Mixins.DevMixin,DevMixin_R1)
271
+	class_edit(Mixins.DevMixin,DevMixin_R2_DevSto)
170 272
 

Notiek ielāde…
Atcelt
Saglabāt