Skip to content
GitLab
Menu
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Sean Leavey
pykat
Commits
183a2756
Commit
183a2756
authored
Feb 25, 2014
by
Daniel Brown
Browse files
Merge branch 'master' of gitmaster.atlas.aei.uni-hannover.de:pykat/pykat
Conflicts: pykat/finesse.py
parents
8e51b3ba
c7194e77
Changes
1
Hide whitespace changes
Inline
Side-by-side
pykat/finesse.py
View file @
183a2756
...
...
@@ -33,9 +33,8 @@ import pickle
import
pykat
import
warnings
import
re
import
collections
from
collections
import
namedtuple
from
collections
import
namedtuple
,
OrderedDict
from
pykat.node_network
import
NodeNetwork
from
pykat.detectors
import
Detector
...
...
@@ -245,7 +244,7 @@ class kat(object):
self
.
scene
=
None
# scene object for GUI
self
.
verbose
=
True
self
.
__blocks
=
{}
# dictionary of blocks that are used
self
.
__blocks
=
OrderedDict
()
# dictionary of blocks that are used
self
.
__components
=
{}
# dictionary of optical components
self
.
__detectors
=
{}
# dictionary of detectors
self
.
__commands
=
{}
# dictionary of commands
...
...
@@ -394,14 +393,14 @@ class kat(object):
if
values
[
1
]
==
"FTblock"
:
newTag
=
values
[
2
]
if
self
.
__currentTag
!=
None
and
newTag
!=
self
.
__currentTag
:
if
self
.
__currentTag
!=
None
and
self
.
__currentTag
!=
NO_BLOCK
:
warnings
.
warn
(
"found block {0} before block {1} ended"
.
format
(
newTag
,
self
.
__currentTag
))
if
newTag
in
self
.
__blocks
:
raise
pkex
.
BasePyKatException
(
"Block `{0}` has already been read"
.
format
(
newTag
))
self
.
__blocks
[
newTag
]
=
Block
(
newTag
)
# create new list to store all references to components in block
self
.
__currentTag
=
newTag
self
.
__currentTag
=
newTag
if
values
[
1
]
==
"FTend"
:
self
.
__currentTag
=
NO_BLOCK
...
...
@@ -525,7 +524,7 @@ class kat(object):
raise
pkex
.
BasePyKatException
(
"pdtype command `{0}` is incorrect."
.
format
(
line
))
self
.
__currentTag
=
NO_BLOCK
def
saveScript
(
self
,
filename
=
None
):
"""
Saves the current kat object to a Finesse input file
...
...
@@ -805,21 +804,12 @@ class kat(object):
if
fragment
in
obj
:
print
" ** removing line '{0}'"
.
format
(
obj
)
objs
.
remove
(
obj
)
def
generateKatScript
(
self
)
:
""" Generates the kat file which can then be run """
out
=
[]
import
datetime
strtoday
=
datetime
.
datetime
.
now
()
out
.
append
(
strtoday
.
strftime
(
"%% Generated by PyKat %d.%m.%Y %H:%M:%S
\n
"
)
)
for
key
in
self
.
__blocks
:
objs
=
self
.
__blocks
[
key
].
contents
if
key
!=
NO_BLOCK
:
out
.
append
(
"%%% FTblock "
+
key
+
"
\n
"
)
def
writeBlock
():
for
obj
in
objs
:
if
isinstance
(
obj
,
str
):
out
.
append
(
obj
+
'
\n
'
)
...
...
@@ -834,9 +824,33 @@ class kat(object):
else
:
out
.
append
(
txt
+
"
\n
"
)
out
=
[]
import
datetime
strtoday
=
datetime
.
datetime
.
now
()
out
.
append
(
strtoday
.
strftime
(
"%% Generated by PyKat %d.%m.%Y %H:%M:%S
\n
"
)
)
# write the FTblocks
for
key
in
self
.
__blocks
:
objs
=
self
.
__blocks
[
key
].
contents
if
key
!=
NO_BLOCK
:
out
.
append
(
"%%% FTend "
+
key
+
"
\n
"
)
if
np
.
size
(
objs
)
>
0
:
out
.
append
(
"
\n
"
)
out
.
append
(
"%%% FTblock "
+
key
+
"
\n
"
)
writeBlock
()
out
.
append
(
"%%% FTend "
+
key
+
"
\n
"
)
# write the NO_BLOCK blocks
for
key
in
self
.
__blocks
:
objs
=
self
.
__blocks
[
key
].
contents
if
key
==
NO_BLOCK
:
if
np
.
size
(
objs
)
>
0
:
out
.
append
(
"
\n
"
)
writeBlock
()
# now loop through all the nodes and get any gauss commands
for
key
in
self
.
nodes
.
getNodes
():
txt
=
self
.
nodes
.
getNodes
()[
key
].
getFinesseText
()
...
...
@@ -856,7 +870,6 @@ class kat(object):
for
t
in
txt
:
out
.
append
(
t
+
"
\n
"
)
else
:
out
.
append
(
txt
+
"
\n
"
)
if
self
.
vacuum
!=
None
:
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment