Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dmt
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
TASTE
dmt
Commits
33891182
Commit
33891182
authored
Jul 30, 2019
by
Maxime Perrotin
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
https://gitrepos.estec.esa.int/taste/dmt
into MORA
parents
1cb51c5b
f516eaf4
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
78 additions
and
25 deletions
+78
-25
.circleci/config.yml
.circleci/config.yml
+1
-1
Dockerfile
Dockerfile
+1
-1
dmt/B_mappers/pyside_B_mapper.py
dmt/B_mappers/pyside_B_mapper.py
+1
-1
dmt/aadl2glueC.py
dmt/aadl2glueC.py
+61
-13
dmt/asn2aadlPlus.py
dmt/asn2aadlPlus.py
+6
-6
dmt/commonPy/asnParser.py
dmt/commonPy/asnParser.py
+2
-2
dmt/msgPrinter.py
dmt/msgPrinter.py
+5
-0
setup.py
setup.py
+1
-1
No files found.
.circleci/config.yml
View file @
33891182
...
...
@@ -13,4 +13,4 @@ jobs:
paths
:
-
~/docker
-
run
:
command
:
docker run -it -v $(pwd):/root/tests dmt bash -c 'cd /root/tests ; LANG=C LC_ALL=C PATH=$PATH:/asn1scc make'
command
:
docker run -it -v $(pwd):/root/tests dmt bash -c 'cd /root/tests ;
pip3 uninstall dmt ; pip3 install --upgrade . ;
LANG=C LC_ALL=C PATH=$PATH:/asn1scc make'
Dockerfile
View file @
33891182
...
...
@@ -5,7 +5,7 @@ RUN cat /etc/apt/apt.conf.d/99badproxies
RUN
apt-get update
RUN
apt-get
install
-y
libxslt-dev libxml2-dev python-psycopg2 mono-runtime libmono-system-data4.0-cil libmono-system-web4.0-cil libfsharp-core4.3-cil
RUN
apt-get
install
-y
wget python3-pip
RUN
wget
-O
-
-q
https://github.com/ttsiodras/asn1scc/releases/download/4.
1e/asn1scc-bin-4.1e
.tar.bz2 |
tar
jxvf -
RUN
wget
-O
-
-q
https://github.com/ttsiodras/asn1scc/releases/download/4.
2.0.1.f/asn1scc-bin-4.2.0.1f
.tar.bz2 |
tar
jxvf -
RUN
apt-get
install
-y
python-pip
RUN
wget
-O
-
-q
https://github.com/ttsiodras/DataModellingTools/files/335591/antlr-2.7.7.tar.gz |
tar
zxvf -
;
cd
antlr-2.7.7/lib/python
;
pip2
install
.
RUN
pip2
install
SQLAlchemy psycopg2
...
...
dmt/B_mappers/pyside_B_mapper.py
View file @
33891182
...
...
@@ -222,7 +222,7 @@ def setSharedLib(dll=None):
'''
.
format
(
fvName
=
FVname
,
tcName
=
CleanSP
))
g_PyDataModel
.
write
(
'
\n
tc["{tcName}"] = '
.
format
(
tcName
=
CleanSP
.
lower
()))
tcName
=
CleanSP
.
lower
()))
buttons
=
([[
"sendButton"
,
"Send TC"
],
[
"loadButton"
,
"Load TC"
],
[
"saveButton"
,
"Save TC"
]])
classType
=
"asn1Editor"
...
...
dmt/aadl2glueC.py
View file @
33891182
...
...
@@ -80,6 +80,7 @@ but with an extra call to OnFinal at the end.
import
os
import
sys
import
hashlib
from
distutils
import
spawn
from
typing
import
cast
,
Optional
,
Dict
,
List
,
Tuple
,
Set
,
Any
# NOQA pylint: disable=unused-import
...
...
@@ -145,17 +146,48 @@ def ParseAADLfilesAndResolveSignals() -> None:
'''Invokes the ANTLR generated AADL parser, and resolves
all references to AAADL Data types into the param._signal member
of each SUBPROGRAM param.'''
import
tempfile
f
=
tempfile
.
NamedTemporaryFile
(
delete
=
False
)
astFile
=
f
.
name
f
.
close
()
os
.
unlink
(
astFile
)
parserUtility
=
os
.
path
.
join
(
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
)),
"parse_aadl.py"
)
cmd
=
"python2 "
+
parserUtility
+
" -o "
+
astFile
+
' '
+
' '
.
join
(
sys
.
argv
[
1
:])
if
os
.
system
(
cmd
)
!=
0
:
if
os
.
path
.
exists
(
astFile
):
os
.
unlink
(
astFile
)
panic
(
"AADL parsing failed. Aborting..."
)
projectCache
=
os
.
getenv
(
"PROJECT_CACHE"
)
if
projectCache
is
not
None
:
if
not
os
.
path
.
isdir
(
projectCache
):
panic
(
"The configured cache folder:
\n\n\t
"
+
projectCache
+
"
\n\n
...is not there!
\n
"
)
cachedModelExists
=
False
aadlASTcache
=
None
if
projectCache
is
not
None
:
filehash
=
hashlib
.
md5
()
for
each
in
sorted
(
sys
.
argv
[
1
:]):
filehash
.
update
(
open
(
each
).
read
().
encode
(
'utf-8'
))
newHash
=
filehash
.
hexdigest
()
# set the name of the Pickle files containing the dumped AST
aadlASTcache
=
projectCache
+
os
.
sep
+
newHash
+
"_aadl_ast.pickle"
if
not
os
.
path
.
exists
(
aadlASTcache
):
print
(
"[DMT] No cached AADL model found for"
,
","
.
join
(
sys
.
argv
[
1
:]))
else
:
cachedModelExists
=
True
print
(
"[DMT] Reusing cached AADL model for"
,
","
.
join
(
sys
.
argv
[
1
:]))
import
pickle
if
cachedModelExists
:
astInfo
=
pickle
.
load
(
open
(
aadlASTcache
,
'rb'
),
fix_imports
=
False
)
else
:
import
tempfile
f
=
tempfile
.
NamedTemporaryFile
(
delete
=
False
)
astFile
=
f
.
name
f
.
close
()
os
.
unlink
(
astFile
)
parserUtility
=
os
.
path
.
join
(
os
.
path
.
abspath
(
os
.
path
.
dirname
(
__file__
)),
"parse_aadl.py"
)
cmd
=
"python2 "
+
parserUtility
+
" -o "
+
astFile
+
' '
+
\
' '
.
join
(
sys
.
argv
[
1
:])
if
os
.
system
(
cmd
)
!=
0
:
if
os
.
path
.
exists
(
astFile
):
os
.
unlink
(
astFile
)
panic
(
"AADL parsing failed. Aborting..."
)
astInfo
=
pickle
.
load
(
open
(
astFile
,
'rb'
),
fix_imports
=
False
)
if
aadlASTcache
:
pickle
.
dump
(
astInfo
,
open
(
aadlASTcache
,
'wb'
),
fix_imports
=
False
)
def
FixMetaClasses
(
sp
:
ApLevelContainer
)
->
None
:
def
patchMe
(
o
:
Any
)
->
None
:
...
...
@@ -179,8 +211,6 @@ of each SUBPROGRAM param.'''
for
cn
in
sp
.
_connections
:
patchMe
(
cn
)
try
:
import
pickle
astInfo
=
pickle
.
load
(
open
(
astFile
,
'rb'
),
fix_imports
=
False
)
for
k
in
[
'g_processImplementations'
,
'g_apLevelContainers'
,
'g_signals'
,
'g_systems'
,
'g_subProgramImplementations'
,
'g_threadImplementations'
]:
...
...
@@ -452,6 +482,24 @@ def main() -> None:
import
pdb
# pragma: no cover pylint: disable=wrong-import-position,wrong-import-order
pdb
.
set_trace
()
# pragma: no cover
if
"-profile"
in
sys
.
argv
:
sys
.
argv
.
remove
(
"-profile"
)
import
cProfile
import
pstats
import
io
pr
=
cProfile
.
Profile
()
pr
.
enable
()
import
atexit
def
dumpSpeedData
()
->
None
:
pr
.
disable
()
s
=
io
.
StringIO
()
sortby
=
'cumulative'
ps
=
pstats
.
Stats
(
pr
,
stream
=
s
).
sort_stats
(
sortby
)
ps
.
print_stats
()
print
(
s
.
getvalue
())
atexit
.
register
(
dumpSpeedData
)
if
"-v"
in
sys
.
argv
:
import
pkg_resources
# pragma: no cover
version
=
pkg_resources
.
require
(
"dmt"
)[
0
].
version
# pragma: no cover
...
...
dmt/asn2aadlPlus.py
View file @
33891182
...
...
@@ -121,7 +121,7 @@ def calculateForNativeAndASN1SCC(absASN1SCCpath, autosrc, names, inputFiles):
configMT
.
outputDir
=
autosrc
+
os
.
sep
# dumpable.CreateDumpableCtypes(uniqueASNfiles)
for
asnTypename
in
list
(
names
.
keys
(
)):
for
asnTypename
in
sorted
(
list
(
names
.
keys
()
)):
node
=
names
[
asnTypename
]
if
node
.
_isArtificial
:
continue
...
...
@@ -135,7 +135,7 @@ def calculateForNativeAndASN1SCC(absASN1SCCpath, autosrc, names, inputFiles):
# Code generation - asn1c part
# Create a dictionary to lookup the asn-types from their corresponding c-type
namesDict
=
{}
for
asnTypename
in
list
(
names
.
keys
(
)):
for
asnTypename
in
sorted
(
list
(
names
.
keys
()
)):
node
=
names
[
asnTypename
]
if
node
.
_isArtificial
:
continue
...
...
@@ -407,7 +407,7 @@ properties
Data_Model::Data_Representation => Character;
end Stream_Element_Buffer;
'''
)
for
asnTypename
in
list
(
asnParser
.
g_names
.
keys
(
)):
for
asnTypename
in
sorted
(
list
(
asnParser
.
g_names
.
keys
()
)):
node
=
asnParser
.
g_names
[
asnTypename
]
if
node
.
_isArtificial
:
continue
...
...
@@ -502,7 +502,7 @@ end Stream_Element_Buffer;
o
.
write
(
'END Taste_DataView;
\n\n
'
)
o
.
write
(
'SYSTEM IMPLEMENTATION Taste_DataView.others
\n
'
)
o
.
write
(
'SUBCOMPONENTS
\n
'
)
for
asnTypename
in
list
(
asnParser
.
g_names
.
keys
(
)):
for
asnTypename
in
sorted
(
list
(
asnParser
.
g_names
.
keys
()
)):
node
=
asnParser
.
g_names
[
asnTypename
]
if
node
.
_isArtificial
:
continue
...
...
@@ -511,11 +511,11 @@ end Stream_Element_Buffer;
o
.
write
(
'END Taste_DataView.others;
\n
'
)
listOfAsn1Files
=
{}
for
asnTypename
in
list
(
asnParser
.
g_names
.
keys
(
)):
for
asnTypename
in
sorted
(
list
(
asnParser
.
g_names
.
keys
()
)):
listOfAsn1Files
[
asnParser
.
g_names
[
asnTypename
].
_asnFilename
]
=
1
if
bAADLv2
:
for
asnFilename
in
list
(
listOfAsn1Files
.
keys
(
)):
for
asnFilename
in
sorted
(
list
(
listOfAsn1Files
.
keys
()
)):
base
=
os
.
path
.
splitext
(
os
.
path
.
basename
(
asnFilename
))[
0
]
possibleACN
=
ASNtoACN
(
asnFilename
)
if
os
.
path
.
exists
(
possibleACN
):
...
...
dmt/commonPy/asnParser.py
View file @
33891182
...
...
@@ -408,12 +408,12 @@ def ParseAsnFileList(listOfFilenames: List[str]) -> None: # pylint: disable=inv
xmlAST2
=
projectCache
+
os
.
sep
+
newHash
+
"_ast_v1.xml"
if
not
os
.
path
.
exists
(
xmlAST
)
or
not
os
.
path
.
exists
(
xmlAST2
):
someFilesHaveChanged
=
True
print
(
"[DMT]
ASN.1 model changed, re-processing..."
)
print
(
"[DMT]
No cached model found for"
,
","
.
join
(
listOfFilenames
)
)
else
:
# no projectCache set, so xmlAST and xmlAST2 are set to None
someFilesHaveChanged
=
True
if
not
someFilesHaveChanged
:
print
(
"[DMT]
No change in ASN.1 model."
)
print
(
"[DMT]
Reusing cached ASN.1 AST for "
,
","
.
join
(
listOfFilenames
)
)
if
not
xmlAST
:
(
dummy
,
xmlAST
)
=
tempfile
.
mkstemp
()
...
...
dmt/msgPrinter.py
View file @
33891182
...
...
@@ -152,6 +152,11 @@ class Printer(RecursiveMapper):
def
main
():
if
"-pdb"
in
sys
.
argv
:
sys
.
argv
.
remove
(
"-pdb"
)
# pragma: no cover
import
pdb
# pragma: no cover pylint: disable=wrong-import-position,wrong-import-order
pdb
.
set_trace
()
# pragma: no cover
if
sys
.
argv
.
count
(
"-o"
)
!=
0
:
idx
=
sys
.
argv
.
index
(
"-o"
)
try
:
...
...
setup.py
View file @
33891182
...
...
@@ -11,7 +11,7 @@ from setuptools import setup, find_packages
setup
(
name
=
'dmt'
,
version
=
"2.1.3
1
"
,
version
=
"2.1.3
3
"
,
packages
=
find_packages
(),
author
=
'Thanassis Tsiodras'
,
author_email
=
'Thanassis.Tsiodras@esa.int'
,
...
...
Write
Preview
Markdown
is supported
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