Which is quite powerful, because now we can include this as part of shell scripts that can invoke/leverage existing xml-rpc service.

client.py script

The CustomXmlRpcExtensionTransport is what allows xml-rpc extensions to be parsed properly via the client. Here, (limited) support for Apache xml-rpc extension data types is added. Specifically – ex:nil as None; ex:i2, ex:i4, ex:i8 as numbers/int. This approach does not override original xmlrpclib implementation, but rather extends it.

Python

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

82

83

84

85

86

87

88

89

90

fromxmlrpclibimportTransport,ServerProxy

importreadline

importcmd

importtraceback

importpprint

importdatetime

fromoptparseimportOptionParser

importsys

classCustomXmlRpcExtensionTransport(Transport):

"""

This Transport allows for the parser's dispatch object to be modified to cater for additional

extension tags. In case the client need to be extend to interoperate with other provider,