rename_duplicate_classes
xsdata.codegen.handlers.rename_duplicate_classes
RenameDuplicateClasses
Bases: ContainerHandlerInterface
Resolve class name conflicts depending on the output structure style.
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
|
run()
Detect and resolve class name conflicts.
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
should_use_names()
Determine if names or qualified names should be used for detection.
Strict unique names
- Single package
- Clustered packages
- All classes have the same source location.
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
38 39 40 41 42 43 44 45 46 47 48 49 |
|
merge_classes(classes)
Remove the duplicate classes and update all references.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
classes | List[Class] | A list of duplicate classes | required |
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
51 52 53 54 55 56 57 58 59 60 61 62 63 |
|
rename_classes(classes, use_name)
Rename all the classes in the list.
Protect classes derived from xs:element if there is only one in the list.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
classes | List[Class] | A list of classes with duplicate names | required |
use_name | bool | Whether simple or qualified names should be used during renaming | required |
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
|
rename_class(target, use_name)
Find the next available class name.
Save the original name in the class metadata and update the class qualified name and all classes that depend on the target class.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
target | Class | The target class instance to rename | required |
use_name | bool | Whether simple or qualified names should be used during renaming | required |
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
|
next_qname(namespace, name, use_name)
Use int suffixes to get the next available qualified name.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
namespace | str | The class namespace | required |
name | str | The class name | required |
use_name | bool | Whether simple or qualified names should be used during renaming | required |
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 |
|
update_class_references(target, search, replace)
Go through all class types and update all references.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
target | Class | The target class instance to update | required |
search | Set[int] | A set of class references to find | required |
replace | int | The new class reference to replace | required |
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 |
|
rename_class_dependencies(target, reference, replace)
Search and replace the old qualified class name in all classes.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
target | Class | The target class instance to inspect | required |
reference | int | The reference id of the renamed class | required |
replace | str | The new qualified name of the renamed class | required |
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 |
|
rename_attr_dependencies(attr, reference, replace)
Search and replace the old qualified class name in the attr types.
This also covers any choices and references to enum values.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
attr | Attr | The target attr instance to inspect | required |
reference | int | The reference id of the renamed class | required |
replace | str | The new qualified name of the renamed class | required |
Source code in xsdata/codegen/handlers/rename_duplicate_classes.py
172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 |
|