-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathtraits.py
executable file
·34 lines (27 loc) · 1.62 KB
/
traits.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
from infcomp.protocol.MessageBody import MessageBody
from infcomp.protocol.Distribution import Distribution
from infcomp.protocol.ReplyTraces import ReplyTraces
from infcomp.protocol.ReplyFinishCompilation import ReplyFinishCompilation
from infcomp.protocol.RequestStartInference import RequestStartInference
from infcomp.protocol.RequestFinishInference import RequestFinishInference
from infcomp.protocol.RequestProposal import RequestProposal
from infcomp.protocol.Normal import Normal
from infcomp.protocol.Discrete import Discrete
from infcomp.protocol.UniformDiscrete import UniformDiscrete
from infcomp.protocol.UniformContinuous import UniformContinuous
# Dynamic type-traits: Enum to class methods
def message_body_class(msg):
message_body_class.dict = {MessageBody.ReplyTraces: ReplyTraces,
MessageBody.ReplyFinishCompilation: ReplyFinishCompilation,
MessageBody.RequestStartInference: RequestStartInference,
MessageBody.RequestFinishInference: RequestFinishInference,
MessageBody.RequestProposal: RequestProposal,
MessageBody.NONE: None}
return message_body_class.dict[msg]
def distribution_class(msg):
distribution_class.dict = {Distribution.Normal: Normal,
Distribution.Discrete: Discrete,
Distribution.UniformDiscrete: UniformDiscrete,
Distribution.UniformContinuous: UniformContinuous,
Distribution.NONE: None}
return distribution_class.dict[msg]