__init__.py 5.94 KB
Newer Older
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
1
2
3
4
5
#!/usr/bin/python
# -*- coding: utf-8 -*-
#
# ================= FILE HEADER ========================================
#
Philipp Gast's avatar
Philipp Gast committed
6
#   myplotlib v3.0.1,
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
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
#
#   @file      __init__.py
#   @author    Yori 'AGy' Fournier
#   @licence   CC-BY-SA
#
#   Import and Configuration file for myplotlib
#
#   @section Import
#
#   myplotlib is base on matplotlib therefore it requires
#   Figure and Axes as main classes and a few further functions.
#
#   @section Config
#
#   Default value for user parameters
#   and configuration for the default plotting
#
#   @section Module Import
#
#   Import of myplotlib classes and function
#
#   @section History
#
#   v 0.0.0 - __init__.py file for the myplotlib module
#
# ======================================================================
#
#
# IMPORT ---------------------------------------------------------------
Yori Fournier's avatar
Yori Fournier committed
36
from .config import INFO, WARN, SEVR, DBUG, SPCE
37
from .config import D_HIERARCHY
Yori Fournier's avatar
Yori Fournier committed
38

Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
39
40
41
import os as os
import numpy as np

Yori Fournier's avatar
Yori Fournier committed
42
43
44
from signal import Signal, Query, Status, Answer
from mpl_unpickler import MplUnpickler

45
46
47
np.set_printoptions(threshold='nan')


48
49
# matplotlib import for client/local -----------------------------------
if D_HIERARCHY in ('CLIENT', 'client', 'LOCAL', 'local'):
Yori Fournier's avatar
Yori Fournier committed
50

51
    if D_HIERARCHY in ('CLIENT', 'client'):
52
        print(INFO+'Import '+__package__+' as a client.')
53
    else:
54
        print(INFO+'Import '+__package__+' for local use.')
55

56
57
    # Test mpl version:
    from matplotlib import __version__ as mplvers
Yori Fournier's avatar
Yori Fournier committed
58

59
60
61
62
63
64
    if int(mplvers.replace('.', '')[:3]) < 143 :
        print('\n\n' + WARN + 72*'=' + '\n' + SPCE
             + 'The matplotlib version you are using is not supported.\n'
             + SPCE + 'Most of myplotlib should work, but some stuff may not.\n'
             + SPCE + 'ex: expect an error with test203\n' + SPCE 
             + 72 * '=' + '\n\n')
65

66
67
68
69
70
71
72
    # matplotlib
    from matplotlib.pyplot import figure
    from matplotlib.pyplot import rc
    from matplotlib.pyplot import show, draw, ion, ioff, clf
    from matplotlib.pyplot import close as mpclose
    from matplotlib.pyplot import fignum_exists, savefig
    from matplotlib.axes import Axes
73
    from matplotlib.figure import Figure_type
74
75
    from matplotlib import is_interactive
    from matplotlib import use
76
77
78

    from .config import D_HOST, D_PORT
    from socket import socket, AF_INET, SOCK_STREAM
79

80
elif D_HIERARCHY in ('SERVER', 'server'):
81
82
    if DBUG :
         print(INFO+'Import '+__package__+' as a server.')
83
    from .config import D_HOST, D_PORT
84
    from socket import socket, AF_INET, SOCK_STREAM, SOL_SOCKET, SO_REUSEADDR
85

86
else:
87
88
    print(SEVR+'the value of D_HIERARCHY has to be SERVER or CLIENT')
    raise ImportError
89

Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
90
# myplotlib
91
from .myData import MyData
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
92

93
94
95
96
97
98
# CONFIGURATION --------------------------------------------------------
from .config import D_FIGNUM, D_FIGSIZE, D_REFORMAT, D_FORMATTED
from .config import D_RAWDATA, D_INPUTARG
from .config import D_IPATH
from .config import D_OPATH, D_OFORMAT
from .config import D_DEBUG
99
100

if D_HIERARCHY in ('CLIENT', 'client', 'LOCAL', 'local'):
101

102
    from .rconfig import rcParams
103

104
if D_HIERARCHY in ('CLIENT', 'client'):
105

106
    # MyAxes: Overlay on matplotlib.Axes class
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
107
    from .myAxes_client import MyAxes_client as MyAxes
108
109

    # MyFig: Overlay on matplotlib.Figure class
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
110
111
    from .myFig_client import MyFig_client as MyFig

112
    from .progressbar import ProgressBar
113

114
    from .mplClient2 import MplClient2
115
116

elif(D_HIERARCHY in ('SERVER', 'server')):
117

118
119
120
121
122
     # MyAxes: Overlay on matplotlib.Axes class
    from .myAxes_server import MyAxes_server as MyAxes

    # MyFig: Overlay on matplotlib.Figure class
    from .myFig_server import MyFig_server as MyFig
123
124

#    from .test import FigTestServer
Yori Fournier's avatar
Yori Fournier committed
125
#    from .test import FigTest
126
127

# for testing purpose
Yori Fournier's avatar
Yori Fournier committed
128
#    from .test import readStupidData, readStupidData2
129

Yori Fournier's avatar
Yori Fournier committed
130
131
132
133
134
135
    SERVER_IOFUNCTIONS = {
#        'readStupidData': readStupidData,
#        'readStupidData2': readStupidData2
    }
    SERVER_FIGURES = {
        #'FigTest': FigTest
136
    }
137

138
    from .mplServer2 import MplServer2, MplHandler
139
140
141
    
elif D_HIERARCHY in ('LOCAL', 'local'):
    
142
143
    # MyAxes: Overlay on matplotlib.Axes class
    from .myAxes import MyAxes
144

145
146
    # MyFig: Overlay on matplotlib.Figure class
    from .myFig import MyFig
147

148
149
    from .mplGrid import Grid, VerticalGrid, HorizontalGrid
    
150
151
152
    from .empty_fig import EmptyFig
    from .empty_axes import EmptyAxes

153
else:
154

155
    print(SEVR+'the value of D_HIERARCHY has to be SERVER, CLIENT or LOCAL')
156
157
    raise ImportError

158
159

if D_HIERARCHY in ('CLIENT', 'client', 'LOCAL', 'local'):
160

161
    _G_WINDOWS = []
162

163
164
165
166
167
168
169
170
171
172
173
174
    # MyWin: Overlay on matplotlib.FigureManager class
    if rcParams['backend'] == u'TkAgg':
        from .myWin_TkAgg import MyWin_TkAgg as MyWin
    elif rcParams['backend'] == u'GTKAgg':
        from .myWin_GTKAgg import MyWin_GTKAgg as MyWin
    elif rcParams['backend'] == u'WXAgg':
        from .myWin_WXAgg import MyWin_WXAgg as MyWin
    elif rcParams['backend'] == u'Qt4Agg':
        from .myWin_Qt4Agg import MyWin_Qt4Agg as MyWin
    elif rcParams['backend'] == u'MacOSX':
        from .myWin_MacOSx import MyWin_MacOSx as MyWin
    else:
175
176
        print(SEVR + """The backend you choosed is not 
                supported interactive mode not available""")
177

Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
178
179
# myTool.*: interface functions to use myplotlib interactively

180
181
182
#from .mytool import print2file  # need to make tools for server ?? or just put them in client/local
#from .mytool import FigOneAxes 

Yori Fournier's avatar
Yori Fournier committed
183
#if D_HIERARCHY in ('CLIENT', 'client', 'LOCAL', 'local'):
184

Yori Fournier's avatar
Yori Fournier committed
185
186
187
188
189
190
#    from .mytool import print2file  # need to make tools for server ?? or just put them in client/local
#    from .mytool import FigOneAxes 
#    from .mytool import window_exists, getCurrentWindowIDs
#    from .mytool import print2file, print2screen, printListCurrentWindows
#    from .mytool import getWindow, getFigOnWindow, drawFigOnWindow, giveDataToWindow
#    from .mytool import closeWindow, closeAllWindows
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
191

192
# TESTS ----------------------------------------------------------------
193

194
195
#    from .test import myTest
#    from .test import testList
Yori Fournier's avatar
Yori Fournier committed
196
#    from .test import FigTest