__init__.py 4.69 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

42
43
# matplotlib import for client/local -----------------------------------
if D_HIERARCHY in ('CLIENT', 'client', 'LOCAL', 'local'):
Yori Fournier's avatar
Yori Fournier committed
44

45
46
47
48
49
50
51
    if D_HIERARCHY in ('CLIENT', 'client'):
        print(INFO+'Import myplotlib as a client.')
    else:
        print(INFO+'Import myplotlib for local use.')
    
    # Test mpl version:
    from matplotlib import __version__ as mplvers
Yori Fournier's avatar
Yori Fournier committed
52

53
54
    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')
55

56
57
58
59
60
61
62
63
64
65
66
67
68
    # 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
    from matplotlib.figure import Figure
    from matplotlib import is_interactive
    from matplotlib import use
    
elif D_HIERARCHY in ('SERVER', 'server'):
    print(INFO+'Import myplotlib as a server.')
69
70
    from .config import D_HOST, D_PORT
    from socket import socket, AF_INET, SOCK_STREAM
71
72
73
74
75

else:    
    print(SEVR+'the value of D_HIERARCHY has to be SERVER or CLIENT')
    raise ImportError
    
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
76
# myplotlib
77
from .myData import MyData
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
78

79
80
81
82
83
84
# 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
85
86

if D_HIERARCHY in ('CLIENT', 'client', 'LOCAL', 'local'):
87
    
88
89
90
91
    from .rconfig import rcParams
    
    # BACKEND: u'TKAgg', u'GTKAgg', u'WXAgg', u'Qt4Agg', u'MacOSX'
    rcParams['backend'] = u'GTKAgg'
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
92

93
94
    # MyAxes: Overlay on matplotlib.Axes class
    from .myAxes import MyAxes
95

96
97
98
    # MyFig: Overlay on matplotlib.Figure class
    from .myFig import MyFig
    
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
    _G_WINDOWS = []
    
    # 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:
        print(SEVR + "The backend you choosed is not supported interactive mode not available")
114

115
116
117
118
119
120
121
122
123
124
125
126
127
128
elif(D_HIERARCHY in ('SERVER', 'server')):
    
     # 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

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

        
Yori 'AGy' Fournier's avatar
Yori 'AGy' Fournier committed
129
# myTool.*: interface functions to use myplotlib interactively
130
131
132
133
134
135
136
137
138
#from .mytool import print2file  # need to make tools for server ?? or just put them in client/local
#from .mytool import FigOneAxes 

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

    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
139

140
# TESTS ----------------------------------------------------------------
141

142
143
144
145
if D_HIERARCHY in ('CLIENT', 'client', 'LOCAL', 'local'):
    
    from .test import myTest
    from .test import testList