File: import_workflow.svg

package info (click to toggle)
python-django-import-export 4.3.5-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 4,300 kB
  • sloc: python: 11,650; makefile: 180; sh: 63; javascript: 50
file content (1 line) | stat: -rw-r--r-- 56,726 bytes parent folder | download
1
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="1448" height="2643"><desc>%23%20sequencediagram.org%0A%0Aparticipant%20Resource%0Aparticipant%20Result%0Aparticipant%20RowResult%0Aparticipant%20InstanceLoader%0Aparticipant%20Field%0Aparticipant%20Widget%0A%0AResource-%3EResource%3A%22%22import_data(data%2C%20%5C*%5C*kwargs)%22%22%0Aactivate%20Resource%0AResource-%3EResult%3A%22%22__init__()%22%22%0Aactivate%20Result%0AResource%3C--Result%3A%22%22Result%22%22%0Adeactivate%20Result%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22before_import(dataset%2C%20%5C*%5C*kwargs)%22%22%0A%0Aloop%20%23pink%20each%20row%20in%20dataset%0AResource-%3EResource%3A%22%22import_row(row%2C%20instance_loader%2C%20%5C*%5C*kwargs)%22%22%0Aactivate%20Resource%20%23lightblue%0AResource-%3ERowResult%3A%22%22__init__()%22%22%0Aactivate%20RowResult%0AResource%3C--RowResult%3A%22%22RowResult%22%22%0Adeactivate%20RowResult%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22before_import_row(row%2C%20%5C*%5C*kwargs)%22%22%0A%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22get_or_init_instance(instance_loader%2C%20%5Cn%20%20%20%20row)%22%22%0Aactivate%20Resource%20%23lightgrey%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22get_instance(instance_loader%2C%20row)%22%22%0Aactivate%20Resource%20%23lightgreen%0AResource-%3EInstanceLoader%3A%22%22get_instance(row)%22%22%0Aactivate%20InstanceLoader%0Anote%20over%20InstanceLoader%3A%20Existing%20Instance%20is%20returned%20if%20exists%2C%5Cn%20otherwise%20a%20new%20Instance%20is%20created.%0A%0AResource%3C--InstanceLoader%3A%22%22Instance%22%22%0Adeactivate%20InstanceLoader%0AResource--%3EResource%3A%22%22Instance%22%22%0Adeactivate%20Resource%0AResource--%3EResource%3A%22%22Instance%2C%20bool%22%22%0Adeactivate%20Resource%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22after_init_instance(instance%2C%20new%2C%20row%20%5Cn%20%20%20%5C*%5C*kwargs)%22%22%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22for_delete(row%2C%20instance)%22%22%0Aactivate%20Resource%20%23lightgrey%0Anote%20over%20Resource%3A%20If%20True%2C%20row%20is%20deleted.%0AResource--%3EResource%3A%22%22bool%22%22%0A%0Adeactivate%20Resource%0A%0AResource-%3EResource%3A%22%22import_instance(instance%2C%20row%2C%20%5C*%5C*kwargs)%22%22%0Aactivate%20Resource%20%23lightgrey%0A%0Aloop%20%23green%20each%20field%20in%20row%0AResource-%3EField%3A%22%22save(instance%2C%20row%2C%20is_m2m%2C%20%5C*%5C*kwargs)%22%22%0Anote%20over%20Field%3A%20save%20logic%20determines%20the%20correct%20value%5Cnand%20sets%20attribute%20on%20instance.%0AField-%3EField%3A%22%22clean(row%2C%20%5C*%5C*kwargs)%22%22%0Aactivate%20Field%0AField-%3EWidget%3A%22%22clean(value%2C%20row%2C%20%5C*%5C*kwargs)%22%22%0Aactivate%20Widget%0AField%3C--Widget%3A%22%22value%22%22%0Adeactivate%20Widget%0Adeactivate%20Field%0Aend%0A%0Adeactivate%20Resource%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22skip_row(instance%2C%20original%2C%20row%2C%20%5Cn%20%20%20%20import_validation_errors)%22%22%0Aactivate%20Resource%20%23lightgrey%0Anote%20over%20Resource%3A%20If%20True%2C%20row%20is%20skipped.%0AResource--%3EResource%3A%22%22bool%22%22%0Adeactivate%20Resource%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22validate_instance(instance%2C%20%5Cn%20%20%20import_validation_errors)%22%22%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22save_instance(instance%2C%20row%2C%20new%2C%20%5Cn%20%20%20%20%5C*%5C*kwargs)%22%22%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22save_m2m(instance%2C%20row%2C%20%5C*%5C*kwargs)%22%22%0A%0AResource-%3EResource%3A%3Cbackground%3A%23yellow%3E%22%22after_import_row(row%2C%20row_result%2C%20%5Cn%20%20%20%20%5C*%5C*kwargs)%22%22%0A%0A%0AResource--%3EResource%3A%22%22RowResult%22%22%0Adeactivate%20Resource%0Aend%0A%0AResource%3C--Resource%3A%22%22Result%22%22%0Adeactivate%20Resource%0A</desc><defs/><g><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g/><g><rect fill="white" stroke="none" x="0" y="0" width="1448" height="2643"/></g><g><rect fill="rgb(255,242,245)" stroke="none" x="-8.795878700000003" y="337.233989358" width="1430.7230054772579" height="2172.5820388999996"/><rect fill="rgb(204,230,204)" stroke="none" x="71.70536283421876" y="1489.4940990579998" width="1332.6300065430391" height="351.8351479999999"/></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 133.27651373421875 59.284222437999986 L 133.27651373421875 2643.5133844979996" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="13.532121076923076,5.863919133333333"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 578.9992837566147 59.284222437999986 L 578.9992837566147 2643.5133844979996" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="13.532121076923076,5.863919133333333"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 690.9820355129546 59.284222437999986 L 690.9820355129546 2643.5133844979996" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="13.532121076923076,5.863919133333333"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 862.5993740383842 59.284222437999986 L 862.5993740383842 2643.5133844979996" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="13.532121076923076,5.863919133333333"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 1040.7306514676225 59.284222437999986 L 1040.7306514676225 2643.5133844979996" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="13.532121076923076,5.863919133333333"/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 1342.7642184772578 59.284222437999986 L 1342.7642184772578 2643.5133844979996" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="13.532121076923076,5.863919133333333"/></g><g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 82.81867601039454 11.786477457999997 L 183.73435145804297 11.786477457999997 L 183.73435145804297 59.284222437999986 L 82.81867601039454 59.284222437999986 L 82.81867601039454 11.786477457999997 Z" stroke-miterlimit="10" stroke-width="2.814681184" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="101.90573278939453" y="41.692465037999995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Resource</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 539.1355698731224 11.786477457999997 L 618.8629976401069 11.786477457999997 L 618.8629976401069 59.284222437999986 L 539.1355698731224 59.284222437999986 L 539.1355698731224 11.786477457999997 Z" stroke-miterlimit="10" stroke-width="2.814681184" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="558.2226266521225" y="41.692465037999995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Result</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 636.4547550401069 11.786477457999997 L 745.5093159858022 11.786477457999997 L 745.5093159858022 59.284222437999986 L 636.4547550401069 59.284222437999986 L 636.4547550401069 11.786477457999997 Z" stroke-miterlimit="10" stroke-width="2.814681184" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="655.5418118191069" y="41.692465037999995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">RowResult</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 792.9790530992279 11.786477457999997 L 932.2196949775405 11.786477457999997 L 932.2196949775405 59.284222437999986 L 792.9790530992279 59.284222437999986 L 792.9790530992279 11.786477457999997 Z" stroke-miterlimit="10" stroke-width="2.814681184" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="812.066109878228" y="41.692465037999995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">InstanceLoader</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 1005.7559832994623 11.786477457999997 L 1075.7053196357826 11.786477457999997 L 1075.7053196357826 59.284222437999986 L 1005.7559832994623 59.284222437999986 L 1005.7559832994623 11.786477457999997 Z" stroke-miterlimit="10" stroke-width="2.814681184" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="1024.8430400784623" y="41.692465037999995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Field</text></g><path fill="none" stroke="none"/><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 1300.8639979409336 11.786477457999997 L 1384.664439013582 11.786477457999997 L 1384.664439013582 59.284222437999986 L 1300.8639979409336 59.284222437999986 L 1300.8639979409336 11.786477457999997 Z" stroke-miterlimit="10" stroke-width="2.814681184" stroke-dasharray=""/></g><g><g/><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="1319.9510547199336" y="41.692465037999995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Widget</text></g></g><g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 124.48063503421875 140.206306478 L 142.07239243421876 140.206306478 L 142.07239243421876 2559.0729489779997 L 124.48063503421875 2559.0729489779997 L 124.48063503421875 140.206306478" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 570.2034050566147 189.46322719799997 L 587.7951624566147 189.46322719799997 L 587.7951624566147 238.72014791799995 L 570.2034050566147 238.72014791799995 L 570.2034050566147 189.46322719799997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="lightblue" stroke="black" paint-order="fill stroke markers" d=" M 133.27651373421875 430.47030357799997 L 150.86827113421876 430.47030357799997 L 150.86827113421876 2460.559107538 L 133.27651373421875 2460.559107538 L 133.27651373421875 430.47030357799997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 682.1861568129546 479.72722429799995 L 699.7779142129546 479.72722429799995 L 699.7779142129546 528.9841450179999 L 682.1861568129546 528.9841450179999 L 682.1861568129546 479.72722429799995" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="lightgrey" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 690.8283130979999 L 159.66414983421876 690.8283130979999 L 159.66414983421876 1067.291921458 L 142.07239243421876 1067.291921458 L 142.07239243421876 690.8283130979999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="lightgreen" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 762.9545184379998 L 168.46002853421876 762.9545184379998 L 168.46002853421876 995.1657161179998 L 150.86827113421876 995.1657161179998 L 150.86827113421876 762.9545184379998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 853.8034953383842 812.2114391579998 L 871.3952527383842 812.2114391579998 L 871.3952527383842 945.9087953979998 L 853.8034953383842 945.9087953979998 L 853.8034953383842 812.2114391579998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="lightgrey" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 1252.005374158 L 159.66414983421876 1252.005374158 L 159.66414983421876 1368.110972998 L 142.07239243421876 1368.110972998 L 142.07239243421876 1252.005374158" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="lightgrey" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 1463.106462958 L 159.66414983421876 1463.106462958 L 159.66414983421876 1841.3292470579997 L 142.07239243421876 1841.3292470579997 L 142.07239243421876 1463.106462958" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 1031.9347727676225 1716.4277695179999 L 1049.5265301676225 1716.4277695179999 L 1049.5265301676225 1814.9416109579997 L 1031.9347727676225 1814.9416109579997 L 1031.9347727676225 1716.4277695179999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 1333.9683397772578 1765.6846902379998 L 1351.5600971772578 1765.6846902379998 L 1351.5600971772578 1814.9416109579997 L 1333.9683397772578 1814.9416109579997 L 1333.9683397772578 1765.6846902379998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><path fill="lightgrey" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 1931.0472097979998 L 159.66414983421876 1931.0472097979998 L 159.66414983421876 2047.1528086379997 L 142.07239243421876 2047.1528086379997 L 142.07239243421876 1931.0472097979998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g><g><rect fill="white" stroke="none" x="162.88930535755208" y="94.46773723799998" width="242.80798376296875" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="165.5280689675521" y="110.30031889799997" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">import_data(data, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 133.27651373421875 117.33702185799999 L 212.43942203421875 117.33702185799999 L 212.43942203421875 140.206306478 L 156.5562726935521 140.206306478" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(142.07239243421876,140.206306478) translate(-142.07239243421876,-140.206306478)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 156.73219026755208 132.8764075613333 L 142.07239243421876 140.206306478 L 156.73219026755208 147.53620539466667 Z"/></g></g><g><g><rect fill="white" stroke="none" x="309.51201355338543" y="166.59394257799997" width="93.2517703840625" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="312.15077716338544" y="182.42652423799998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">__init__()</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 189.46322719799997 L 555.7195247972813 189.46322719799997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(570.2034050566147,189.46322719799997) translate(-570.2034050566147,-189.46322719799997)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 555.5436072232814 182.1333282813333 L 570.2034050566147 189.46322719799997 L 555.5436072232814 196.79312611466665 Z"/></g></g><g><g><rect fill="white" stroke="none" x="327.10686218619793" y="215.85086329799995" width="58.062073118437496" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="329.74562579619794" y="231.68344495799997" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Result</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 570.2034050566147 238.72014791799995 L 156.5562726935521 238.72014791799995" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(142.07239243421876,238.72014791799995) translate(-142.07239243421876,-238.72014791799995)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 156.73219026755208 231.39024900133327 L 142.07239243421876 238.72014791799995 L 156.73219026755208 246.05004683466663 Z"/></g></g><g><g><rect fill="white" stroke="none" x="162.88930535755208" y="265.10778401799996" width="286.795105345" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="165.5280689675521" y="267.92246520199996" width="281.517578125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="165.5280689675521" y="280.940365678" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">before_import(dataset, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 287.977068638 L 212.43942203421875 287.977068638 L 212.43942203421875 310.84635325799997 L 156.5562726935521 310.84635325799997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(142.07239243421876,310.84635325799997) translate(-142.07239243421876,-310.84635325799997)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 156.73219026755208 303.5164543413333 L 142.07239243421876 310.84635325799997 L 156.73219026755208 318.1762521746666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="384.73173433799997" width="374.7693485090625" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="400.564315998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">import_row(row, instance_loader, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 407.601018958 L 221.23530073421875 407.601018958 L 221.23530073421875 430.47030357799997 L 165.3521513935521 430.47030357799997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(150.86827113421876,430.47030357799997) translate(-150.86827113421876,-430.47030357799997)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 423.1404046613333 L 150.86827113421876 430.47030357799997 L 165.5280689675521 437.8002024946666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="369.9013287815554" y="456.857939678" width="93.2517703840625" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="372.5400923915554" y="472.690521338" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">__init__()</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 479.72722429799995 L 667.7022765536212 479.72722429799995" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(682.1861568129546,479.72722429799995) translate(-682.1861568129546,-479.72722429799995)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 667.5263589796213 472.3973253813333 L 682.1861568129546 479.72722429799995 L 667.5263589796213 487.0571232146666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="374.3000409397585" y="506.11486039799996" width="84.45434606765625" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="376.9388045497585" y="521.947442058" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">RowResult</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 682.1861568129546 528.9841450179999 L 165.3521513935521 528.9841450179999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(150.86827113421876,528.9841450179999) translate(-150.86827113421876,-528.9841450179999)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 521.6542461013332 L 150.86827113421876 528.9841450179999 L 165.5280689675521 536.3140439346666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="555.371781118" width="286.795105345" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="558.1864623019999" width="281.517578125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="571.2043627779999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">before_import_row(row, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 578.2410657379999 L 221.23530073421875 578.2410657379999 L 221.23530073421875 601.1103503579999 L 165.3521513935521 601.1103503579999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(150.86827113421876,601.1103503579999) translate(-150.86827113421876,-601.1103503579999)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 593.7804514413332 L 150.86827113421876 601.1103503579999 L 165.5280689675521 608.4402492746666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="627.4979864579999" width="339.5796512434375" height="22.86928462"/></g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="645.0897438579999" width="75.65692175125" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="183.1198263675521" y="630.3126676419998" width="334.3021240234375" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="643.3305681179999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">get_or_init_instance(instance_loader, </text><g><rect fill="yellow" stroke="none" x="183.1198263675521" y="647.9044250419998" width="70.37939453125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="660.9223255179999" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">    row)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 667.9590284779998 L 230.03117943421876 667.9590284779998 L 230.03117943421876 690.8283130979999 L 174.1480300935521 690.8283130979999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(159.66414983421876,690.8283130979999) translate(-159.66414983421876,-690.8283130979999)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 174.3239476675521 683.4984141813331 L 159.66414983421876 690.8283130979999 L 174.3239476675521 698.1582120146666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="189.27694145755206" y="717.2159491979999" width="304.3899539778125" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="191.91570506755207" y="720.0306303819998" width="299.1124267578125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="191.91570506755207" y="733.0485308579998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">get_instance(instance_loader, row)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 159.66414983421876 740.0852338179998 L 238.82705813421873 740.0852338179998 L 238.82705813421873 762.9545184379998 L 182.94390879355205 762.9545184379998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(168.46002853421874,762.9545184379998) translate(-168.46002853421874,-762.9545184379998)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 183.11982636755206 755.6246195213331 L 168.46002853421874 762.9545184379998 L 183.11982636755206 770.2844173546665 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="433.71489163684834" y="789.3421545379998" width="154.83374059890625" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="436.35365524684835" y="805.1747361979998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">get_instance(row)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 168.46002853421874 812.2114391579998 L 839.3196150790509 812.2114391579998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(853.8034953383842,812.2114391579998) translate(-853.8034953383842,-812.2114391579998)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 839.1436975050509 804.8815402413331 L 853.8034953383842 812.2114391579998 L 839.1436975050509 819.5413380746666 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 717.3696716129546 838.5990752579997 L 991.9964948038139 838.5990752579997 L 1007.8290764638139 854.4316569179997 L 1007.8290764638139 896.6518746779998 L 717.3696716129546 896.6518746779998 L 717.3696716129546 838.5990752579997 M 991.9964948038139 838.5990752579997 L 991.9964948038139 854.4316569179997 L 1007.8290764638139 854.4316569179997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="741.9981319729545" y="863.2275356179998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Existing Instance is returned if exists,</text><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="741.9981319729545" y="880.8192930179998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve"> otherwise a new Instance is created.</text></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="473.30330106067646" y="923.0395107779998" width="75.65692175125" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="475.9420646706765" y="938.8720924379998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Instance</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 853.8034953383842 945.9087953979998 L 182.94390879355205 945.9087953979998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(168.46002853421874,945.9087953979998) translate(-168.46002853421874,-945.9087953979998)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 183.11982636755206 938.5788964813331 L 168.46002853421874 945.9087953979998 L 183.11982636755206 953.2386943146665 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="189.27694145755206" y="972.2964314979998" width="75.65692175125" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="191.91570506755207" y="988.1290131579998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Instance</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 168.46002853421874 995.1657161179998 L 238.82705813421873 995.1657161179998 L 238.82705813421873 1018.0350007379998 L 174.14803009355205 1018.0350007379998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(159.66414983421873,1018.0350007379998) translate(-159.66414983421873,-1018.0350007379998)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 174.32394766755206 1010.7051018213331 L 159.66414983421873 1018.0350007379998 L 174.32394766755206 1025.3648996546665 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="1044.4226368379998" width="128.4414676496875" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="1060.2552184979997" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Instance, bool</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 159.66414983421876 1067.291921458 L 230.03117943421876 1067.291921458 L 230.03117943421876 1090.1612060779999 L 165.3521513935521 1090.1612060779999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(150.86827113421876,1090.1612060779999) translate(-150.86827113421876,-1090.1612060779999)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 1082.8313071613331 L 150.86827113421876 1090.1612060779999 L 165.5280689675521 1097.4911049946666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="1116.5488421779999" width="348.3770755598438" height="22.86928462"/></g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="1134.1405995779999" width="110.846619016875" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="1119.3635233619998" width="343.09954833984375" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="1132.3814238379998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">after_init_instance(instance, new, row </text><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="1136.9552807619998" width="105.569091796875" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="1149.9731812379998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">   **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 1157.009884198 L 221.23530073421875 1157.009884198 L 221.23530073421875 1179.879168818 L 165.3521513935521 1179.879168818" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(150.86827113421876,1179.879168818) translate(-150.86827113421876,-1179.879168818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 1172.5492699013332 L 150.86827113421876 1179.879168818 L 165.5280689675521 1187.2090677346666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="1206.266804918" width="225.21313513015625" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="183.1198263675521" y="1209.0814861019999" width="219.93560791015625" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="1222.099386578" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">for_delete(row, instance)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 1229.136089538 L 230.03117943421876 1229.136089538 L 230.03117943421876 1252.005374158 L 174.1480300935521 1252.005374158" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(159.66414983421876,1252.005374158) translate(-159.66414983421876,-1252.005374158)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 174.3239476675521 1244.6754752413333 L 159.66414983421876 1252.005374158 L 174.3239476675521 1259.3352730746667 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 36.40040322773437 1278.393010258 L 214.32004258070313 1278.393010258 L 230.15262424070312 1294.225591918 L 230.15262424070312 1318.854052278 L 36.40040322773437 1318.854052278 L 36.40040322773437 1278.393010258 M 214.32004258070313 1278.393010258 L 214.32004258070313 1294.225591918 L 230.15262424070312 1294.225591918" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="61.02886358773438" y="1303.0214706179997" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">If True, row is deleted.</text></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="1345.241688378" width="40.467224485624996" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="1361.074270038" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">bool</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 159.66414983421876 1368.110972998 L 230.03117943421876 1368.110972998 L 230.03117943421876 1390.980257618 L 165.3521513935521 1390.980257618" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(150.86827113421876,1390.980257618) translate(-150.86827113421876,-1390.980257618)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 1383.6503587013333 L 150.86827113421876 1390.980257618 L 165.5280689675521 1398.3101565346667 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="1417.367893718" width="357.17449987625" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="1433.200475378" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">import_instance(instance, row, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 1440.2371783380001 L 230.03117943421876 1440.2371783380001 L 230.03117943421876 1463.106462958 L 174.1480300935521 1463.106462958" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(159.66414983421876,1463.106462958) translate(-159.66414983421876,-1463.106462958)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 174.3239476675521 1455.7765640413334 L 159.66414983421876 1463.106462958 L 174.3239476675521 1470.4363618746668 Z"/></g></g><g><g><rect fill="rgb(204,230,204)" stroke="none" x="434.80628718740496" y="1536.991844038" width="330.7822269270313" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="437.445050797405" y="1552.824425698" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">save(instance, row, is_m2m, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 159.66414983421876 1559.8611286579999 L 1026.2467712082891 1559.8611286579999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(1040.7306514676225,1559.8611286579999) translate(-1040.7306514676225,-1559.8611286579999)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 1026.070853634289 1552.5312297413332 L 1040.7306514676225 1559.8611286579999 L 1026.070853634289 1567.1910275746666 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 888.9870101383842 1586.2487647579999 L 1176.6417111368607 1586.2487647579999 L 1192.4742927968607 1602.0813464179998 L 1192.4742927968607 1644.3015641779998 L 888.9870101383842 1644.3015641779998 L 888.9870101383842 1586.2487647579999 M 1176.6417111368607 1586.2487647579999 L 1176.6417111368607 1602.0813464179998 L 1192.4742927968607 1602.0813464179998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="913.6154704983842" y="1610.8772251179996" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">save logic determines the correct value</text><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="913.6154704983842" y="1628.4689825179996" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">and sets attribute on instance.</text></g><g><g><rect fill="rgb(204,230,204)" stroke="none" x="1070.3434430909558" y="1670.6892002779998" width="181.226013548125" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="1072.9822067009559" y="1686.5217819379998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">clean(row, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 1040.7306514676225 1693.558484898 L 1119.8935597676225 1693.558484898 L 1119.8935597676225 1716.4277695179999 L 1064.0104104269558 1716.4277695179999" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(1049.5265301676225,1716.4277695179999) translate(-1049.5265301676225,-1716.4277695179999)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 1064.1863280009559 1709.0978706013332 L 1049.5265301676225 1716.4277695179999 L 1064.1863280009559 1723.7576684346666 Z"/></g></g><g><g><rect fill="rgb(204,230,204)" stroke="none" x="1070.3434430909558" y="1742.8154056179999" width="242.80798376296875" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="1072.9822067009559" y="1758.6479872779998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">clean(value, row, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 1049.5265301676225 1765.6846902379998 L 1319.4844595179245 1765.6846902379998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(1333.9683397772578,1765.6846902379998) translate(-1333.9683397772578,-1765.6846902379998)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 1319.3085419439244 1758.354791321333 L 1333.9683397772578 1765.6846902379998 L 1319.3085419439244 1773.0145891546665 Z"/></g></g><g><g><rect fill="rgb(204,230,204)" stroke="none" x="1167.1151105714246" y="1792.0723263379998" width="49.264648802031246" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="1169.7538741814246" y="1807.9049079979998" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">value</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 1333.9683397772578 1814.9416109579997 L 1064.0104104269558 1814.9416109579997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(1049.5265301676225,1814.9416109579997) translate(-1049.5265301676225,-1814.9416109579997)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 1064.1863280009559 1807.611712041333 L 1049.5265301676225 1814.9416109579997 L 1064.1863280009559 1822.2715098746664 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="1867.7168831579997" width="304.3899539778125" height="22.86928462"/></g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="1885.3086405579998" width="260.4028323957813" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="183.1198263675521" y="1870.5315643419997" width="299.1124267578125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="1883.5494648179997" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">skip_row(instance, original, row, </text><g><rect fill="yellow" stroke="none" x="183.1198263675521" y="1888.1233217419997" width="255.12530517578125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="1901.1412222179997" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">    import_validation_errors)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 1908.177925178 L 230.03117943421876 1908.177925178 L 230.03117943421876 1931.0472097979998 L 174.1480300935521 1931.0472097979998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(159.66414983421876,1931.0472097979998) translate(-159.66414983421876,-1931.0472097979998)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 174.3239476675521 1923.717310881333 L 159.66414983421876 1931.0472097979998 L 174.3239476675521 1938.3771087146665 Z"/></g></g><path fill="white" stroke="black" paint-order="fill stroke markers" d=" M 35.1835148 1957.4348458979998 L 215.5369310084375 1957.4348458979998 L 231.3695126684375 1973.2674275579998 L 231.3695126684375 1997.8958879179997 L 35.1835148 1997.8958879179997 L 35.1835148 1957.4348458979998 M 215.5369310084375 1957.4348458979998 L 215.5369310084375 1973.2674275579998 L 231.3695126684375 1973.2674275579998" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g><text fill="black" stroke="none" font-family="sans-serif" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="59.81197516" y="1982.0633062579996" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">If True, row is skipped.</text></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="180.48106275755208" y="2024.2835240179995" width="40.467224485624996" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="183.1198263675521" y="2040.1161056779995" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">bool</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 159.66414983421876 2047.1528086379997 L 230.03117943421876 2047.1528086379997 L 230.03117943421876 2070.0220932579996 L 165.3521513935521 2070.0220932579996" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(150.86827113421876,2070.0220932579996) translate(-150.86827113421876,-2070.0220932579996)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 2062.692194341333 L 150.86827113421876 2070.0220932579996 L 165.5280689675521 2077.351992174666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2096.409729358" width="251.605408079375" height="22.86928462"/></g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2114.001486758" width="251.605408079375" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="2099.224410542" width="246.327880859375" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2112.242311018" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">validate_instance(instance, </text><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="2116.816167942" width="246.327880859375" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2129.834068418" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">   import_validation_errors)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 2136.8707713779995 L 221.23530073421875 2136.8707713779995 L 221.23530073421875 2159.7400559979997 L 165.3521513935521 2159.7400559979997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(150.86827113421876,2159.7400559979997) translate(-150.86827113421876,-2159.7400559979997)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 2152.410157081333 L 150.86827113421876 2159.7400559979997 L 165.5280689675521 2167.069954914666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2186.127692098" width="304.3899539778125" height="22.86928462"/></g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2203.719449498" width="119.64404333328125" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="2188.942373282" width="299.1124267578125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2201.960273758" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">save_instance(instance, row, new, </text><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="2206.534130682" width="114.36651611328125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2219.552031158" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">    **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 2226.5887341179996 L 221.23530073421875 2226.5887341179996 L 221.23530073421875 2249.4580187379997 L 165.3521513935521 2249.4580187379997" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(150.86827113421876,2249.4580187379997) translate(-150.86827113421876,-2249.4580187379997)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 2242.1281198213333 L 150.86827113421876 2249.4580187379997 L 165.5280689675521 2256.787917654666 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2275.845654838" width="295.5925296614063" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="2278.660336022" width="290.31500244140625" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2291.678236498" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">save_m2m(instance, row, **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 2298.7149394579997 L 221.23530073421875 2298.7149394579997 L 221.23530073421875 2321.584224078 L 165.3521513935521 2321.584224078" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(150.86827113421876,2321.584224078) translate(-150.86827113421876,-2321.584224078)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 2314.2543251613333 L 150.86827113421876 2321.584224078 L 165.5280689675521 2328.9141229946663 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2347.971860178" width="304.3899539778125" height="22.86928462"/></g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2365.563617578" width="119.64404333328125" height="22.86928462"/></g><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="2350.786541362" width="299.1124267578125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2363.804441838" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">after_import_row(row, row_result, </text><g><rect fill="yellow" stroke="none" x="174.3239476675521" y="2368.378298762" width="114.36651611328125" height="17.767674974"/><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2381.396199238" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">    **kwargs)</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 2388.4329021979997 L 221.23530073421875 2388.4329021979997 L 221.23530073421875 2411.302186818 L 165.3521513935521 2411.302186818" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray=""/><g transform="translate(150.86827113421876,2411.302186818) translate(-150.86827113421876,-2411.302186818)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 165.5280689675521 2403.9722879013334 L 150.86827113421876 2411.302186818 L 165.5280689675521 2418.6320857346664 Z"/></g></g><g><g><rect fill="rgb(255,242,245)" stroke="none" x="171.68518405755208" y="2437.689822918" width="84.45434606765625" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="174.3239476675521" y="2453.522404578" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">RowResult</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 150.86827113421876 2460.559107538 L 221.23530073421875 2460.559107538 L 221.23530073421875 2483.428392158 L 156.5562726935521 2483.428392158" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(142.07239243421876,2483.428392158) translate(-142.07239243421876,-2483.428392158)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 156.73219026755208 2476.0984932413335 L 142.07239243421876 2483.428392158 L 156.73219026755208 2490.7582910746664 Z"/></g></g><g><g><rect fill="white" stroke="none" x="162.88930535755208" y="2536.203664358" width="58.062073118437496" height="22.86928462"/></g><text fill="black" stroke="none" font-family="monospace" font-size="11pt" font-style="normal" font-weight="normal" text-decoration="normal" x="165.5280689675521" y="2552.036246018" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">Result</text></g><g><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 142.07239243421876 2559.0729489779997 L 212.43942203421875 2559.0729489779997 L 212.43942203421875 2581.942233598 L 147.7603939935521 2581.942233598" stroke-miterlimit="10" stroke-width="1.4659797833333332" stroke-dasharray="7.0367029599999995"/><g transform="translate(133.27651373421875,2581.942233598) translate(-133.27651373421875,-2581.942233598)"><path fill="black" stroke="none" paint-order="stroke fill markers" d=" M 147.93631156755208 2574.6123346813333 L 133.27651373421875 2581.942233598 L 147.93631156755208 2589.2721325146663 Z"/></g></g><g><g/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M -8.795878700000003 337.233989358 L 1421.9271267772579 337.233989358 L 1421.9271267772579 2509.8160282579997 L -8.795878700000003 2509.8160282579997 L -8.795878700000003 337.233989358 Z" stroke-miterlimit="10" stroke-width="2.5131082" stroke-dasharray=""/><path fill="pink" stroke="black" paint-order="fill stroke markers" d=" M -8.795878700000003 337.233989358 L -8.795878700000003 358.34409823799996 L 51.142030631249995 358.34409823799996 L 61.697085071249994 347.78904379799997 L 61.697085071249994 337.233989358 L -8.795878700000003 337.233989358" stroke-miterlimit="10" stroke-width="2.5131082" stroke-dasharray=""/><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="8.795878699999996" y="351.30739527799994" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">loop</text><g><rect fill="rgb(255,242,245)" stroke="none" x="76.65007886125" y="338.64132994999994" width="121.95309484695312" height="18.295427696"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="79.28884247124999" y="351.30739527799994" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[each row in dataset]</text></g><g><g/><path fill="none" stroke="black" paint-order="fill stroke markers" d=" M 71.70536283421876 1489.4940990579998 L 1404.3353693772578 1489.4940990579998 L 1404.3353693772578 1841.3292470579997 L 71.70536283421876 1841.3292470579997 L 71.70536283421876 1489.4940990579998 Z" stroke-miterlimit="10" stroke-width="2.5131082" stroke-dasharray=""/><path fill="green" stroke="black" paint-order="fill stroke markers" d=" M 71.70536283421876 1489.4940990579998 L 71.70536283421876 1510.604207938 L 131.64327216546877 1510.604207938 L 142.19832660546876 1500.049153498 L 142.19832660546876 1489.4940990579998 L 71.70536283421876 1489.4940990579998" stroke-miterlimit="10" stroke-width="2.5131082" stroke-dasharray=""/><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="89.29712023421877" y="1503.567504978" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">loop</text><g><rect fill="rgb(204,230,204)" stroke="none" x="157.15132039546876" y="1490.90143965" width="104.99385107253906" height="18.295427696"/></g><text fill="black" stroke="none" font-family="sans-serif" font-size="8.8pt" font-style="normal" font-weight="bold" text-decoration="normal" x="159.79008400546877" y="1503.567504978" text-anchor="start" dominant-baseline="alphabetic" xml:space="preserve">[each field in row]</text></g></g><g/><g/><g/><g/><g/><g/></g></g></g></g></g></g></g></g></g></g></g></g></g></g></g></g></g></g></svg>