pywargame 0.4.1__py3-none-any.whl → 0.4.2__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. pywargame/__init__.py +7 -1
  2. pywargame/common/__init__.py +3 -0
  3. pywargame/common/drawdice.py +12 -3
  4. pywargame/common/test.py +2 -2
  5. pywargame/cyberboard/gbxext.py +13 -9
  6. pywargame/cyberboard/gsnexp.py +15 -10
  7. pywargame/cyberboard/gsnext.py +9 -7
  8. pywargame/cyberboard/testgrid.py +2 -1
  9. pywargame/cyberboard/zeropwd.py +18 -11
  10. pywargame/latex/latexexporter.py +7 -7
  11. pywargame/latex/main.py +10 -6
  12. pywargame/vassal/__init__.py +1 -0
  13. pywargame/vassal/buildfile.py +1 -1
  14. pywargame/vassal/collect.py +3 -2
  15. pywargame/vassal/collectpatch.py +2 -2
  16. pywargame/vassal/dumpvsav.py +7 -2
  17. pywargame/vassal/element.py +1 -1
  18. pywargame/vassal/gameelements.py +28 -11
  19. pywargame/vassal/merge.py +8 -5
  20. pywargame/vassal/moduledata.py +1 -1
  21. pywargame/vassal/patch.py +8 -5
  22. pywargame/vassal/trait.py +13 -10
  23. pywargame/vassal/traits/area.py +4 -2
  24. pywargame/vassal/traits/cargo.py +3 -0
  25. pywargame/vassal/traits/mat.py +3 -0
  26. pywargame/vassal/vmod.py +1 -1
  27. pywargame/zuntzu/__init__.py +9 -0
  28. pywargame/zuntzu/countersheet.py +1 -1
  29. pywargame/zuntzu/ztexp.py +10 -8
  30. {pywargame-0.4.1.dist-info → pywargame-0.4.2.dist-info}/METADATA +51 -31
  31. {pywargame-0.4.1.dist-info → pywargame-0.4.2.dist-info}/RECORD +38 -50
  32. pywargame-0.4.2.dist-info/entry_points.txt +11 -0
  33. pywargame/cyberboard.py +0 -2728
  34. pywargame/gbx0pwd.py +0 -2776
  35. pywargame/gbxextract.py +0 -2795
  36. pywargame/gsnexport.py +0 -16547
  37. pywargame/gsnextract.py +0 -2793
  38. pywargame/vassal/patchcollect.py +0 -28
  39. pywargame/vassal/skel.py +0 -380
  40. pywargame/vassal.py +0 -12544
  41. pywargame/vmodpatch.py +0 -12592
  42. pywargame/vsavdump.py +0 -12577
  43. pywargame/vslmerge.py +0 -13059
  44. pywargame/wgexport.py +0 -16733
  45. pywargame/ztexport.py +0 -14395
  46. /pywargame/vassal/{dumpcollect.py → collectdump.py} +0 -0
  47. /pywargame/vassal/{mrgcollect.py → collectmrg.py} +0 -0
  48. /pywargame/vassal/{xml.py → xmlns.py} +0 -0
  49. {pywargame-0.4.1.dist-info → pywargame-0.4.2.dist-info}/WHEEL +0 -0
  50. {pywargame-0.4.1.dist-info → pywargame-0.4.2.dist-info}/licenses/LICENSE +0 -0
  51. {pywargame-0.4.1.dist-info → pywargame-0.4.2.dist-info}/top_level.txt +0 -0
pywargame/__init__.py CHANGED
@@ -1,2 +1,8 @@
1
1
  '''Top-level of module'''
2
- version = '0.3.0'
2
+ version = '0.4.2'
3
+
4
+ import pywargame.common
5
+ import pywargame.vassal
6
+ import pywargame.cyberboard
7
+ import pywargame.zuntzu
8
+ import pywargame.latex
@@ -1,3 +1,6 @@
1
+ '''Common utilites
2
+
3
+ '''
1
4
  from . singleton import Singleton
2
5
  from . verbose import Verbose
3
6
  from . verboseguard import VerboseGuard
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env python
2
2
 
3
- if __name__ == '__main__':
3
+ # --------------------------------------------------------------------
4
+ def diceMain():
4
5
  from sys import path
5
6
 
6
7
  from argparse import ArgumentParser
7
- from dicedraw import DiceDrawer
8
+ from pywargame.common.dicedraw import DiceDrawer
8
9
 
9
10
  ap = ArgumentParser(description='Make a series of dice images')
10
11
  ap.add_argument('-n','--sides', choices=[4,6,8,10,12,20],
@@ -35,6 +36,14 @@ if __name__ == '__main__':
35
36
  range(1,args.sides+1))
36
37
  for val in vals:
37
38
  dd.draw(val).save(filename=base.format(sides=args.sides,value=val))
39
+
40
+ # --------------------------------------------------------------------
41
+ if __name__ == '__main__':
42
+ diceMain()
43
+
44
+ # --------------------------------------------------------------------
45
+ #
46
+ # EOF
47
+ #
38
48
 
39
-
40
49
 
pywargame/common/test.py CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env python
2
2
 
3
- from verboseguard import VerboseGuard
4
- from verbose import Verbose
3
+ from . verboseguard import VerboseGuard
4
+ from . verbose import Verbose
5
5
 
6
6
  def inner():
7
7
  with VerboseGuard('Entering inner') as g:
@@ -5,17 +5,16 @@
5
5
  # https://github.com/CyberBoardPBEM/cbwindows
6
6
  #
7
7
  #
8
-
8
+ ## BEGIN_IMPORT
9
+ from pywargame.cyberboard.gamebox import GameBox
10
+ from pywargame.cyberboard.extractor import GBXExtractor
11
+ from pywargame.common import Verbose
12
+ ## END_IMPORT
9
13
 
10
14
  # ====================================================================
11
- if __name__ == '__main__':
15
+ def extractMain():
12
16
  from argparse import ArgumentParser, FileType
13
17
  from pathlib import Path
14
- ## BEGIN_IMPORT
15
- from gamebox import GameBox
16
- from extractor import GBXExtractor
17
- from common import Verbose
18
- ## END_IMPORT
19
18
 
20
19
  ap = ArgumentParser(description='Extract information from a '
21
20
  'CyberBoard GameBox file and store in ZIP archive',
@@ -58,7 +57,12 @@ if __name__ == '__main__':
58
57
  print(rat)
59
58
  if 'gbx' in args.dump:
60
59
  print(gbx)
61
-
62
60
 
63
61
 
64
-
62
+ # ====================================================================
63
+ if __name__ == '__main__':
64
+ extractMain()
65
+
66
+ #
67
+ # EOF
68
+ #
@@ -1,16 +1,14 @@
1
1
  #!/usr/bin/env python
2
+ ## BEGIN_IMPORTS
3
+ from pywargame.common import Verbose
4
+ from pywargame.cyberboard.exporter import GSNExporter
5
+ from pywargame.cyberboard.scenario import Scenario
6
+ from pywargame.cyberboard.extractor import GSNExtractor
7
+ from pywargame.cyberboard.head import GBXHeader
8
+ ## END_IMPORTS
2
9
 
3
10
  # ====================================================================
4
- def gsnexp():
5
- ## BEGIN_IMPORTS
6
- from sys import path
7
- path.append('..')
8
- from pywargame.common import Verbose
9
- from pywargame.cyberboard.exporter import GSNExporter
10
- from pywargame.cyberboard.scenario import Scenario
11
- from pywargame.cyberboard.extractor import GSNExtractor
12
- from pywargame.cyberboard.head import GBXHeader
13
- ## END_IMPORTS
11
+ def exportMain():
14
12
 
15
13
  from argparse import ArgumentParser, FileType, \
16
14
  RawDescriptionHelpFormatter
@@ -147,5 +145,12 @@ def gsnexp():
147
145
  raise e
148
146
 
149
147
 
148
+ # ====================================================================
150
149
  if __name__ == '__main__':
151
150
  gsnexp()
151
+
152
+ # ====================================================================
153
+ #
154
+ # EOF
155
+ #
156
+
@@ -5,17 +5,18 @@
5
5
  # https://github.com/CyberBoardPBEM/cbwindows
6
6
  #
7
7
  #
8
-
8
+ # ====================================================================
9
+ ## BEGIN_IMPORT
10
+ from pywargame.cyberboard.scenario import Scenario
11
+ from pywargame.cyberboard.extractor import GSNExtractor
12
+ from pywargame.common import Verbose
13
+ ## END_IMPORT
14
+
9
15
 
10
16
  # ====================================================================
11
- def gsnext():
17
+ def extractMain():
12
18
  from argparse import ArgumentParser, FileType
13
19
  from pathlib import Path
14
- ## BEGIN_IMPORT
15
- from pywargame.cyberboard.scenario import Scenario
16
- from pywargame.cyberboard.extractor import GSNExtractor
17
- from pywargame.common import Verbose
18
- ## END_IMPORT
19
20
 
20
21
  ap = ArgumentParser(description='Extract information from a '
21
22
  'CyberBoard Scenario file and store in ZIP archive',
@@ -50,6 +51,7 @@ def gsnext():
50
51
  if 'gsn' in args.dump:
51
52
  print(gsn)
52
53
 
54
+ # ====================================================================
53
55
  if __name__ == '__main__':
54
56
  gsnext()
55
57
 
@@ -146,7 +146,8 @@ def testall():
146
146
 
147
147
 
148
148
 
149
- testall()
149
+ if __name__ == '__main__':
150
+ testall()
150
151
 
151
152
 
152
153
 
@@ -1,12 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  ## BEGIN_IMPORT
3
- from gamebox import GBXInfo
4
- from head import GBXHeader
5
- from archive import Archive
3
+ from pywargame.cyberboard.gamebox import GBXInfo
4
+ from pywargame.cyberboard.head import GBXHeader
5
+ from pywargame.cyberboard.archive import Archive
6
6
  ## END_IMPORT
7
7
 
8
+ # --------------------------------------------------------------------
8
9
  nullpwd = b'\xee\n\xcbg\xbc\xdb\x92\x1a\x0c\xd2\xf1y\x83*\x96\xc9'
9
10
 
11
+ # --------------------------------------------------------------------
10
12
  def zeropwd(filename):
11
13
  from pathlib import Path
12
14
 
@@ -14,9 +16,7 @@ def zeropwd(filename):
14
16
  with Archive(filename,'rb') as ar:
15
17
  header = GBXHeader(ar,GBXHeader.BOX)
16
18
  box = GBXInfo(ar)
17
-
18
-
19
- pos = ar.tell() - 4*2 - 2 - 2 - 16
19
+ pos = ar.tell() - 4*2 - 2 - 2 - 16
20
20
 
21
21
  with open(filename,'rb') as file:
22
22
  cnt = file.read()
@@ -31,15 +31,22 @@ def zeropwd(filename):
31
31
  with open(on,'wb') as file:
32
32
  file.write(ncnt)
33
33
 
34
-
35
- if __name__ == '__main__':
34
+ # --------------------------------------------------------------------
35
+ def zeroPwdMain():
36
36
  from argparse import ArgumentParser, FileType
37
37
  ap = ArgumentParser(description='Disable password in gamebox')
38
- ap.add_argument('input', type=str, help='The file')
38
+ ap.add_argument('input', type=str, help='The game box file')
39
39
 
40
40
  args = ap.parse_args()
41
41
 
42
42
  zeropwd(args.input)
43
+
44
+ # --------------------------------------------------------------------
45
+ if __name__ == '__main__':
46
+ zeroPwdMain()
43
47
 
44
-
45
-
48
+ # --------------------------------------------------------------------
49
+ #
50
+ # EOF
51
+ #
52
+
@@ -1,11 +1,11 @@
1
1
  ## BEGIN_IMPORTS
2
- from common import VerboseGuard, Verbose
3
- from vassal.buildfile import BuildFile
4
- from vassal.documentation import Documentation
5
- from vassal.traits import *
6
- from vassal.base import *
7
- from vassal.moduledata import ModuleData
8
- from vassal.exporter import Exporter
2
+ from .. common import VerboseGuard, Verbose
3
+ from .. vassal.buildfile import BuildFile
4
+ from .. vassal.documentation import Documentation
5
+ from .. vassal.traits import *
6
+ from .. vassal.base import *
7
+ from .. vassal.moduledata import ModuleData
8
+ from .. vassal.exporter import Exporter
9
9
  from pprint import pprint
10
10
 
11
11
  ## END_IMPORTS
pywargame/latex/main.py CHANGED
@@ -1,8 +1,8 @@
1
1
  #!/usr/bin/env python
2
2
  ## BEGIN_IMPORTS
3
- from latexexporter import LaTeXExporter
4
- from vassal.vmod import VMod
5
- from common import Verbose
3
+ from pywargame.latex.latexexporter import LaTeXExporter
4
+ from pywargame.vassal.vmod import VMod
5
+ from pywargame.common import Verbose
6
6
  ## END_IMPORTS
7
7
 
8
8
  from argparse import ArgumentParser
@@ -88,9 +88,9 @@ def exportIt(args):
88
88
 
89
89
  raise e
90
90
 
91
-
91
+
92
92
  # ====================================================================
93
- if __name__ == '__main__':
93
+ def exportMain():
94
94
  from argparse import ArgumentParser, FileType
95
95
 
96
96
  ap = DefaultSubcommandArgParse(description='Create draft VASSAL module')
@@ -178,7 +178,11 @@ if __name__ == '__main__':
178
178
  patchIt(args)
179
179
  else:
180
180
  exportIt(args)
181
-
181
+
182
+ # ====================================================================
183
+ if __name__ == '__main__':
184
+ exportMain()
185
+
182
186
  #
183
187
  # EOF
184
188
  #
@@ -64,3 +64,4 @@ from . save import *
64
64
  from . vsav import *
65
65
  from . vmod import *
66
66
  from . exporter import *
67
+ from . merger import Merger
@@ -3,7 +3,7 @@ from .. common import VerboseGuard
3
3
  from . base import *
4
4
  from . element import Element
5
5
  from . game import Game
6
- from . xml import xmlns
6
+ from . xmlns import xmlns
7
7
  ## END_IMPORT
8
8
 
9
9
  # --------------------------------------------------------------------
@@ -28,7 +28,7 @@ if __name__ == '__main__':
28
28
  '../common/verbose.py',
29
29
  '../common/verboseguard.py',
30
30
  '../common/dicedraw.py',
31
- 'xml.py',
31
+ 'xmlns.py',
32
32
  'base.py',
33
33
  'element.py',
34
34
  'folder.py',
@@ -93,6 +93,7 @@ if __name__ == '__main__':
93
93
  'vsav.py',
94
94
  'vmod.py',
95
95
  'upgrade.py',
96
- 'exporter.py')
96
+ 'exporter.py',
97
+ 'merger.py')
97
98
 
98
99
 
@@ -2,8 +2,8 @@
2
2
  import sys
3
3
  sys.path.append('..')
4
4
 
5
- from .. common import Verbose, VerboseGuard
6
- from .. common.collector import Collector
5
+ from common import Verbose, VerboseGuard
6
+ from common.collector import Collector
7
7
 
8
8
 
9
9
  if __name__ == '__main__':
@@ -1,9 +1,10 @@
1
1
  #!/usr/bin/env python
2
2
  ## BEGIN_IMPORT
3
- from . import SaveIO
3
+ from pywargame.vassal import SaveIO
4
4
  ## END_IMPORT
5
5
 
6
- if __name__ == '__main__':
6
+ # ====================================================================
7
+ def dumpMain():
7
8
  from argparse import ArgumentParser
8
9
 
9
10
  ap = ArgumentParser(description='Dump VASSAL save or log')
@@ -19,6 +20,10 @@ if __name__ == '__main__':
19
20
  savemeta, modulemeta = ret[2], ret[3]
20
21
 
21
22
  print('\n'.join(lines))
23
+
24
+ # ====================================================================
25
+ if __name__ == '__main__':
26
+ dumpMain()
22
27
  #
23
28
  #
24
29
  #
@@ -1,7 +1,7 @@
1
1
  ## BEGIN_IMPORT
2
2
  from .. common import VerboseGuard
3
3
  from . base import *
4
- from . xml import xmlns
4
+ from . xmlns import xmlns
5
5
  ## END_IMPORT
6
6
 
7
7
  # ====================================================================
@@ -1059,17 +1059,34 @@ class MultiActionButton(GameElement):
1059
1059
  disabledIcon = '', # image when disabled
1060
1060
  menuItems = []): # Button texts
1061
1061
  '''
1062
- <VASSAL.build.module.MultiActionButton
1063
- canDisable="false"
1064
- description="Menu"
1065
- disabledIcon="" hideWhenDisabled="false"
1066
- hotkey="67,130"
1067
- icon="C.png"
1068
- menuItems="Attacked,Defended"
1069
- propertyGate=""
1070
- text=""
1071
- tooltip="Clear combat status flags."
1072
- />
1062
+ A button that executes other buttons (by `buttonText` name)
1063
+
1064
+ Parameters
1065
+ ----------
1066
+ game : pywargame.vassal.Game
1067
+ The game parent
1068
+ node : xml.dom.minidom.Node
1069
+ Possible node
1070
+ description : str
1071
+ Description (comment)
1072
+ text : str
1073
+ Text on button
1074
+ tooltip : str
1075
+ Button tool-tip
1076
+ icon : str
1077
+ Icon on button
1078
+ hotkey : str
1079
+ Hotkey or named command to execute button
1080
+ canDisable : bool
1081
+ If this can be disabled
1082
+ propertyGate : str
1083
+ When property (not expression) is `true`, then disable
1084
+ this button
1085
+ disabledIcon : str
1086
+ Icon to use when disabled
1087
+ menuItems : list of str
1088
+ `buttonText` of other buttons to execute
1089
+ (note, not named commands or hotkeys).
1073
1090
  '''
1074
1091
  super().__init__(game,
1075
1092
  self.TAG,
pywargame/vassal/merge.py CHANGED
@@ -1,12 +1,11 @@
1
1
  #!/usr/bin/env python
2
2
  ## BEGIN_IMPORTS
3
- from . import Merger
4
- from .. common import Verbose
3
+ from pywargame.vassal import Merger
4
+ from pywargame.common import Verbose
5
5
  ## END_IMPORTS
6
6
 
7
-
8
7
  # ====================================================================
9
- if __name__ == '__main__':
8
+ def mergeMain():
10
9
  from argparse import ArgumentParser, FileType
11
10
 
12
11
  ap = ArgumentParser(description='Merge two modules or extensions')
@@ -49,7 +48,11 @@ if __name__ == '__main__':
49
48
  op.unlink(missing_ok=True)
50
49
 
51
50
  raise
52
-
51
+
52
+
53
+ # ====================================================================
54
+ if __name__ == '__main__':
55
+ mergeMain()
53
56
 
54
57
 
55
58
  #
@@ -2,7 +2,7 @@
2
2
  from .. common import VerboseGuard
3
3
  from . base import *
4
4
  from . element import Element
5
- from . xml import xmlns
5
+ from . xmlns import xmlns
6
6
  ## END_IMPORT
7
7
 
8
8
  # --------------------------------------------------------------------
pywargame/vassal/patch.py CHANGED
@@ -2,8 +2,8 @@
2
2
  #
3
3
  # Patch a module
4
4
  ## BEGIN_IMPORTS
5
- from . vmod import VMod
6
- from .. common import Verbose
5
+ from pywargame.vassal import VMod
6
+ from pywargame.common import Verbose
7
7
  ## END_IMPORT
8
8
 
9
9
  # ====================================================================
@@ -18,7 +18,7 @@ def patchIt(args):
18
18
  VMod.patch(vmodname, patchname, args.verbose)
19
19
 
20
20
  # ====================================================================
21
- if __name__ == '__main__':
21
+ def patchMain():
22
22
  from argparse import ArgumentParser, FileType
23
23
 
24
24
  ap = ArgumentParser(description='Patch a module with a Python script')
@@ -35,10 +35,13 @@ if __name__ == '__main__':
35
35
  action='store_true')
36
36
 
37
37
  args = ap.parse_args()
38
-
39
38
 
40
39
  patchIt(args)
41
-
40
+
41
+ # ====================================================================
42
+ if __name__ == '__main__':
43
+ patchMain()
44
+
42
45
  #
43
46
  # EOF
44
47
  #
pywargame/vassal/trait.py CHANGED
@@ -6,7 +6,8 @@ class Trait:
6
6
 
7
7
  Unlike the Element classes, this actually holds state that
8
8
  isn't reflected elsewhere in the DOM. This means that the
9
- data here is local to the object. So when we do
9
+ data here is local to the object. So when we do::
10
+
10
11
 
11
12
  piece = foo.getPieceSlots()[0]
12
13
  traits = p.getTraits()
@@ -14,23 +15,25 @@ class Trait:
14
15
  if trait.ID == 'piece':
15
16
  trait["gpid"] = newPid
16
17
  trait["lpid"] = newPid
17
-
18
+
18
19
  we do not actually change anything in the DOM. To do that, we
19
- must add back _all_ the traits as
20
-
20
+ must add back _all_ the traits as::
21
+
21
22
  piece.setTraits(traits)
22
23
 
23
- We can add traits to a piece, like
24
-
24
+ We can add traits to a piece, like::
25
+
25
26
  piece.addTrait(MarkTrait('Hello','World'))
26
-
27
+
27
28
  But it is not particularly efficient. Better to do
28
- (continuing from above)
29
-
29
+ (continuing from above)::
30
+
31
+
30
32
  traits.append(MarkTrait('Hello','World;)
31
33
  piece.setTraits(traits)
34
+
32
35
 
33
- .. include:: ../../vassal/traits/README.md
36
+ .. include:: traits/README.md
34
37
  :parser: myst_parser.sphinx_
35
38
 
36
39
  '''
@@ -40,8 +40,10 @@ class AreaTrait(Trait):
40
40
  onKey = onKey,
41
41
  offMenuText = offMenuText,
42
42
  offKey = offKey,
43
- globallyVisible = globallyVisible
44
- )
43
+ globallyVisible = globallyVisible)
44
+ '''Create an area effect trait
45
+
46
+ '''
45
47
  self.setState(active = alwaysActive or not globallyVisible)
46
48
 
47
49
  Trait.known_traits.append(AreaTrait)
@@ -14,6 +14,9 @@ class CargoTrait(Trait):
14
14
  detectionDistanceY = 0,
15
15
  attachKey = '',
16
16
  detachKey = ''):
17
+ '''Create cargo trait
18
+
19
+ '''
17
20
  self.setType(description = description,
18
21
  maintainRelativeFacing = maintainRelativeFacing,
19
22
  detectionDistanceX = detectionDistanceX,
@@ -10,6 +10,9 @@ class MatTrait(Trait):
10
10
  def __init__(self,
11
11
  name = 'Mat',
12
12
  description = ''):
13
+ '''Create mat trait
14
+
15
+ '''
13
16
  self.setType(name = name,
14
17
  description = description)
15
18
  self.setState(content='0')
pywargame/vassal/vmod.py CHANGED
@@ -3,7 +3,7 @@
3
3
  # Wrapper around a module
4
4
  #
5
5
  ## BEGIN_IMPORT
6
- from . xml import xmlns
6
+ from . xmlns import xmlns
7
7
  ## END_IMPORT
8
8
 
9
9
  class VMod:
@@ -1,4 +1,13 @@
1
1
  #
2
+ from . base import *
3
+ from . dicehand import *
4
+ from . piece import *
5
+ from . map import *
6
+ from . scenario import *
7
+ from . countersheet import *
8
+ from . gamebox import *
9
+ from . exporter import *
10
+ from . ztexp import *
2
11
 
3
12
  #
4
13
  # EOF
@@ -1,5 +1,5 @@
1
1
  ## BEGIN_IMPORTS
2
- from / base import DomInspect, ZTImage
2
+ from . base import DomInspect, ZTImage
3
3
  from . piece import ZTPiece
4
4
  from pywargame.common import VerboseGuard
5
5
  ## END_IMPORTS
pywargame/zuntzu/ztexp.py CHANGED
@@ -1,15 +1,13 @@
1
1
  #!/usr/bin/env python
2
2
  ## BEGIN_IMPORTS
3
- from sys import path
4
- path.append('..')
5
-
6
- from gamebox import ZTGameBox
7
- from exporter import ZTExporter
8
- from common import Verbose
9
- from base import ZTImage
3
+ from pywargame.zuntzu.gamebox import ZTGameBox
4
+ from pywargame.zuntzu.exporter import ZTExporter
5
+ from pywargame.common import Verbose
6
+ from pywargame.zuntzu.base import ZTImage
10
7
  ## END_IMPORTS
11
8
 
12
- if __name__ == '__main__':
9
+ # ====================================================================
10
+ def exportMain():
13
11
  from argparse import ArgumentParser, FileType, \
14
12
  RawDescriptionHelpFormatter
15
13
  from pathlib import Path
@@ -109,6 +107,10 @@ if __name__ == '__main__':
109
107
  pass
110
108
 
111
109
  raise e
110
+
111
+ # ====================================================================
112
+ if __name__ == '__main__':
113
+ exportMain()
112
114
 
113
115
  #
114
116
  # EOF