-
Notifications
You must be signed in to change notification settings - Fork 0
/
objects.py
81 lines (66 loc) · 3.14 KB
/
objects.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
#$Id$
# -*- coding: utf8 -*-
from timecontext import TimeContext, _Timed2overTimeContext
from disabled import Disabled4Timed as _Disabled4Timed
class TimedObject( _Timed2overTimeContext, _Disabled4Timed):
'''
всички времеви обекти трябва да наследяват този (освен модулите по-долу).
иначе всичката тая сложнотия с наследяванията е за лесна подмяна/настройка -
(всяка жаба да си гледа гьола).
Крайният резултат може би трябва да е само един плосък клас - всичко в едно:
- Timed2 ползва направо TimeContext, вместо тези преобразувания напред-назад
- TimedObject == Disabled4Timed в/у Timed2 - без _get_val/_put_val
като Тази йерархия трябва да се пази (съвместима) за лесно заместване
'''
__slots__ = ()
def _get_val( me, time, **kargs): return _Timed2overTimeContext.get( me, time, **kargs)
def _get_range_val( me, timeFrom, timeTo, **kargs): return _Timed2overTimeContext.getRange( me, timeFrom, timeTo, **kargs)
def _put_val( me, value, time): return _Timed2overTimeContext.put( me, value, time)
get = _Disabled4Timed._get
put = _Disabled4Timed._put
delete = _Disabled4Timed.delete
getRange= _Disabled4Timed._getRange
###############
import module_timed as _module_timed
class _mod2time_converter( _module_timed.mod2time__trans_in_fname__valid_in_module):
str2time1 = staticmethod( _module_timed.dateYYYYMMDD2datetime)
def maketime( me, trans, valid):
return TimeContext( trans=trans, valid=valid)
class TimedModule( _module_timed.Module):
'''
всички време-зависими модули (алгоритми, справки, документи и пр.)
трябва да наследяват това.
'''
__slots__ = ()
def __init__( me, name):
_module_timed.Module.__init__( name,
_Timed2overTimeContext,
_mod2time_converter
)
if __name__ == '__main__':
from timecontext import _Test
test2 = _Test()
t = TimedObject()
objects = test2.fill( t, [1,3,2,4] )
err = test2.test_db( t,)
test2.test_get( t, objects,)
if test2.err:
test2.exit()
#####
from timed_wrapper import test_protocol2Timed_protocol
class Timed_Wrapper4test( TimedObject, test_protocol2Timed_protocol):
'''testing purposes only'''
@staticmethod
def _valid_trans2time( valid, trans):
return TimeContext( trans=trans, valid=valid)
# test_protocol2Timed_protocol:
timed_get = TimedObject.get
timed_put = TimedObject.put
timed_getRange = TimedObject.getRange
# test_protocol:
get = test_protocol2Timed_protocol.get
put = test_protocol2Timed_protocol.put
getRange = test_protocol2Timed_protocol.getRange
import test
test.test( Timed_Wrapper4test)
# vim:ts=4:sw=4:expandtab