Mercurial > hg > orthanc-stone
comparison Resources/CodeGeneration/stonegentool.py @ 507:ce49eae4c887 bgo-commands-codegen
Codegen + Warning fixes
author | Benjamin Golinvaux <bgo@osimis.io> |
---|---|
date | Fri, 01 Mar 2019 16:18:38 +0100 |
parents | 8b6ceae45ba0 |
children | 7105a0bad250 |
comparison
equal
deleted
inserted
replaced
506:801d2697a1b1 | 507:ce49eae4c887 |
---|---|
4 import os | 4 import os |
5 import sys | 5 import sys |
6 from jinja2 import Template | 6 from jinja2 import Template |
7 from io import StringIO | 7 from io import StringIO |
8 import time | 8 import time |
9 import datetime | |
9 | 10 |
10 """ | 11 """ |
11 1 2 3 4 5 6 7 | 12 1 2 3 4 5 6 7 |
12 12345678901234567890123456789012345678901234567890123456789012345678901234567890 | 13 12345678901234567890123456789012345678901234567890123456789012345678901234567890 |
13 """ | 14 """ |
261 # i.e., a struct. | 262 # i.e., a struct. |
262 if IsShortStructType(shortTypename, schema): | 263 if IsShortStructType(shortTypename, schema): |
263 struct = schema[GetLongTypename(shortTypename, schema)] | 264 struct = schema[GetLongTypename(shortTypename, schema)] |
264 # The keys in the struct dict are the member names | 265 # The keys in the struct dict are the member names |
265 # The values in the struct dict are the member types | 266 # The values in the struct dict are the member types |
266 for field in struct.keys(): | 267 if struct: |
267 # we fill the chain of dependent types (starting here) | 268 # we reach this if struct is not None AND not empty |
268 ancestors.append(shortTypename) | 269 for field in struct.keys(): |
269 ComputeOrderFromTypeTree( | 270 # we fill the chain of dependent types (starting here) |
270 ancestors, genOrder, struct[field], schema) | 271 ancestors.append(shortTypename) |
271 # don't forget to restore it! | 272 ComputeOrderFromTypeTree( |
272 ancestors.pop() | 273 ancestors, genOrder, struct[field], schema) |
274 # don't forget to restore it! | |
275 ancestors.pop() | |
273 | 276 |
274 # now we're pretty sure our dependencies have been processed, | 277 # now we're pretty sure our dependencies have been processed, |
275 # we can start marking our code for generation (it might | 278 # we can start marking our code for generation (it might |
276 # already have been done if someone referenced us earlier) | 279 # already have been done if someone referenced us earlier) |
277 if not shortTypename in genOrder: | 280 if not shortTypename in genOrder: |
443 | 446 |
444 def GetTemplatingDictFromSchemaFilename(fn): | 447 def GetTemplatingDictFromSchemaFilename(fn): |
445 obj = LoadSchema(fn) | 448 obj = LoadSchema(fn) |
446 genOrder = ComputeRequiredDeclarationOrder(obj) | 449 genOrder = ComputeRequiredDeclarationOrder(obj) |
447 templatingDict = ProcessSchema(obj, genOrder) | 450 templatingDict = ProcessSchema(obj, genOrder) |
451 currentDT = datetime.datetime.now() | |
452 templatingDict['currentDatetime'] = str(currentDT) | |
448 return templatingDict | 453 return templatingDict |
449 | 454 |
450 # +-----------------------+ | 455 # +-----------------------+ |
451 # | ENTRY POINT | | 456 # | ENTRY POINT | |
452 # +-----------------------+ | 457 # +-----------------------+ |