Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
TASTE
OpenGEODE
Commits
4074e186
Commit
4074e186
authored
Mar 26, 2018
by
Maxime Perrotin
Browse files
Merge branch 'asn1scc_v4' of
https://github.com/esa/opengeode
into asn1scc_v4
parents
42e7d7e5
90355dd8
Changes
3
Hide whitespace changes
Inline
Side-by-side
README.md
View file @
4074e186
...
...
@@ -141,6 +141,10 @@ The background pattern was downloaded from www.subtlepatterns.com
Changelog
=========
2.
0.3 (03/2018)
-
Optimize calls to asn1scc
-
Fix paste error when input symbol is selected
2.
0.2 (03/2018)
-
Better support of ASN.1 constants
-
Support timer when using process type
...
...
opengeode/Asn1scc.py
View file @
4074e186
...
...
@@ -21,6 +21,8 @@ import distutils.spawn as spawn
import
sys
import
importlib
import
logging
import
traceback
import
hashlib
from
PySide.QtCore
import
QProcess
,
QFile
import
icons
...
...
@@ -33,6 +35,7 @@ LOG.addHandler(handler_console)
# global needed to store the imported module and list of modules ever loaded
AST
=
{}
# Same for the modules imported by the call to asn2DataModel
ASN2DM
=
{}
...
...
@@ -78,6 +81,18 @@ def parse_asn1(*files, **options):
This function uses QProcess to launch the ASN.1 compiler because
the subprocess module from Python has issues on the Windows platform
'''
# make sure the same files are not parsed more than once if not modified
filehash
=
hashlib
.
md5
()
file_list
=
list
(
*
files
)
for
each
in
file_list
:
filehash
.
update
(
open
(
each
).
read
())
new_hash
=
filehash
.
hexdigest
()
fileset
=
""
.
join
(
file_list
)
if
fileset
in
AST
.
viewkeys
()
and
AST
[
fileset
][
'hash'
]
==
new_hash
:
return
AST
[
fileset
][
'ast'
]
else
:
AST
[
fileset
]
=
{
'hash'
:
new_hash
}
ast_version
=
options
.
get
(
'ast_version'
,
ASN1
.
UniqueEnumeratedNames
)
rename_policy
=
options
.
get
(
'rename_policy'
,
ASN1
.
NoRename
)
flags
=
options
.
get
(
'flags'
,
[
ASN1
.
AstOnly
])
...
...
@@ -133,13 +148,8 @@ def parse_asn1(*files, **options):
_
=
waitfor_qprocess
(
asn1scc
,
"ASN.1 Compiler"
)
if
filename
in
AST
.
viewkeys
():
# Re-import module if it was already loaded
ast
=
AST
[
filename
]
reload
(
ast
)
else
:
ast
=
importlib
.
import_module
(
filename
)
AST
[
filename
]
=
ast
ast
=
importlib
.
import_module
(
filename
)
AST
[
fileset
][
'ast'
]
=
ast
if
pprint
:
# add the path to the optionally-gernated pretty-printed HTML file
ast
.
html
=
out_html
...
...
opengeode/opengeode.py
View file @
4074e186
...
...
@@ -139,7 +139,7 @@ except ImportError:
__all__
=
[
'opengeode'
,
'SDL_Scene'
,
'SDL_View'
,
'parse'
]
__version__
=
'2.0.
2
'
__version__
=
'2.0.
3
'
if
hasattr
(
sys
,
'frozen'
):
# Detect if we are running on Windows (py2exe-generated)
...
...
@@ -990,7 +990,7 @@ class SDL_Scene(QtGui.QGraphicsScene, object):
Paste previously copied symbols at selection point
'''
if
self
.
context
==
'process'
and
self
.
readonly
:
# with readonly flag, forbid item delet
t
ion
# with readonly flag, forbid item deletion
return
parent
=
list
(
self
.
selected_symbols
)
if
len
(
parent
)
>
1
:
...
...
@@ -1027,6 +1027,7 @@ class SDL_Scene(QtGui.QGraphicsScene, object):
item
.
cam
(
item
.
pos
(),
item
.
pos
())
self
.
undo_stack
.
endMacro
()
self
.
refresh
()
self
.
selectionChanged
.
emit
()
def
sdl_to_statechart
(
self
,
basic
=
True
,
view
=
None
):
...
...
@@ -2122,7 +2123,7 @@ class SDL_View(QtGui.QGraphicsView, object):
def
check_model
(
self
):
''' Parse the model and check for warnings and errors '''
# If the current scene is a nested one,
save
the top parent
# If the current scene is a nested one,
go first to
the top parent
scene
=
self
.
top_scene
()
# Keep track of this check - to avoid repeating if user wants to
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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