def sanitizeName(name, isClass): if (name == None or len(name) == 0): return '' result = name if (isClass): result = result[0].upper() + name[1:] else: result = result[0].lower() + name[1:] result = result.replace(' ', '') result = result.replace('/', '') result = result.replace('.', '') result = result.replace(' ', '') result = result.replace("'", '') result = result.replace('´', '') result = result.replace('`', '') result = result.replace('(', '_') result = result.replace(')', '_') result = result.replace('-', '_') SDTAbbreviate.abbreviate(result) return result
def print3OneM2MXSD(domain, directory, options): global headerText, domainDefinition, namespacePrefix, enumTypes, doAbbreviations, targetNamespace global abbreviationsInFile # # Get various parameters # # read license text lfile = options['licensefile'] if lfile != None: with open(lfile, 'rt') as f: headerText = f.read() # get the domain and domain prefix domainDefinition = options['domain'] if domainDefinition == None: domainDefinition = '' namespacePrefix = options['namespaceprefix'] if namespacePrefix == None: # ERROR print('Error: XSD name space prefix not set') return # get target name space targetNamespace = options['xsdtargetnamespace'] if targetNamespace == None: targetNamespace = 'undefined' # get in and out file names for abbreviations abbreviationsInFile = options['abbreviationsinfile'] # Read abbreviations SDTAbbreviate.readAbbreviations(abbreviationsInFile) # Create package path and make directories packagePath = directory + os.sep + domain.id.replace('.', os.sep) path = pathlib.Path(packagePath) try: path.mkdir(parents=True) except FileExistsError as e: pass # on purpose. We override files for now package = sanitizePackage(domain.id) # Export ModuleClasses for module in domain.modules: exportModuleClass(module, package, path) # Export Devices for device in domain.devices: exportDevice(device, package, path) # Export enum types exportEnumTypes(path) # Export found Actions exportActions(path) # Export abbreviations exportAbbreviations(path, SDTAbbreviate.getAbbreviations())