meerk40t 0.9.3001__py2.py3-none-any.whl → 0.9.7010__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- meerk40t/__init__.py +1 -1
- meerk40t/balormk/balor_params.py +167 -167
- meerk40t/balormk/clone_loader.py +457 -457
- meerk40t/balormk/controller.py +1566 -1512
- meerk40t/balormk/cylindermod.py +64 -0
- meerk40t/balormk/device.py +966 -1959
- meerk40t/balormk/driver.py +778 -591
- meerk40t/balormk/galvo_commands.py +1195 -0
- meerk40t/balormk/gui/balorconfig.py +237 -111
- meerk40t/balormk/gui/balorcontroller.py +191 -184
- meerk40t/balormk/gui/baloroperationproperties.py +116 -115
- meerk40t/balormk/gui/corscene.py +845 -0
- meerk40t/balormk/gui/gui.py +179 -147
- meerk40t/balormk/livelightjob.py +466 -382
- meerk40t/balormk/mock_connection.py +131 -109
- meerk40t/balormk/plugin.py +133 -135
- meerk40t/balormk/usb_connection.py +306 -301
- meerk40t/camera/__init__.py +1 -1
- meerk40t/camera/camera.py +514 -397
- meerk40t/camera/gui/camerapanel.py +1241 -1095
- meerk40t/camera/gui/gui.py +58 -58
- meerk40t/camera/plugin.py +441 -399
- meerk40t/ch341/__init__.py +27 -27
- meerk40t/ch341/ch341device.py +628 -628
- meerk40t/ch341/libusb.py +595 -589
- meerk40t/ch341/mock.py +171 -171
- meerk40t/ch341/windriver.py +157 -157
- meerk40t/constants.py +13 -0
- meerk40t/core/__init__.py +1 -1
- meerk40t/core/bindalias.py +550 -539
- meerk40t/core/core.py +47 -47
- meerk40t/core/cutcode/cubiccut.py +73 -73
- meerk40t/core/cutcode/cutcode.py +315 -312
- meerk40t/core/cutcode/cutgroup.py +141 -137
- meerk40t/core/cutcode/cutobject.py +192 -185
- meerk40t/core/cutcode/dwellcut.py +37 -37
- meerk40t/core/cutcode/gotocut.py +29 -29
- meerk40t/core/cutcode/homecut.py +29 -29
- meerk40t/core/cutcode/inputcut.py +34 -34
- meerk40t/core/cutcode/linecut.py +33 -33
- meerk40t/core/cutcode/outputcut.py +34 -34
- meerk40t/core/cutcode/plotcut.py +335 -335
- meerk40t/core/cutcode/quadcut.py +61 -61
- meerk40t/core/cutcode/rastercut.py +168 -148
- meerk40t/core/cutcode/waitcut.py +34 -34
- meerk40t/core/cutplan.py +1843 -1316
- meerk40t/core/drivers.py +330 -329
- meerk40t/core/elements/align.py +801 -669
- meerk40t/core/elements/branches.py +1844 -1507
- meerk40t/core/elements/clipboard.py +229 -219
- meerk40t/core/elements/element_treeops.py +4561 -2837
- meerk40t/core/elements/element_types.py +125 -105
- meerk40t/core/elements/elements.py +4329 -3617
- meerk40t/core/elements/files.py +117 -64
- meerk40t/core/elements/geometry.py +473 -224
- meerk40t/core/elements/grid.py +467 -316
- meerk40t/core/elements/materials.py +158 -94
- meerk40t/core/elements/notes.py +50 -38
- meerk40t/core/elements/offset_clpr.py +933 -912
- meerk40t/core/elements/offset_mk.py +963 -955
- meerk40t/core/elements/penbox.py +339 -267
- meerk40t/core/elements/placements.py +300 -83
- meerk40t/core/elements/render.py +785 -687
- meerk40t/core/elements/shapes.py +2618 -2092
- meerk40t/core/elements/trace.py +651 -563
- meerk40t/core/elements/tree_commands.py +415 -409
- meerk40t/core/elements/undo_redo.py +116 -58
- meerk40t/core/elements/wordlist.py +319 -200
- meerk40t/core/exceptions.py +9 -9
- meerk40t/core/laserjob.py +220 -220
- meerk40t/core/logging.py +63 -63
- meerk40t/core/node/blobnode.py +83 -86
- meerk40t/core/node/bootstrap.py +105 -103
- meerk40t/core/node/branch_elems.py +40 -31
- meerk40t/core/node/branch_ops.py +45 -38
- meerk40t/core/node/branch_regmark.py +48 -41
- meerk40t/core/node/cutnode.py +29 -32
- meerk40t/core/node/effect_hatch.py +375 -257
- meerk40t/core/node/effect_warp.py +398 -0
- meerk40t/core/node/effect_wobble.py +441 -309
- meerk40t/core/node/elem_ellipse.py +404 -309
- meerk40t/core/node/elem_image.py +1082 -801
- meerk40t/core/node/elem_line.py +358 -292
- meerk40t/core/node/elem_path.py +259 -201
- meerk40t/core/node/elem_point.py +129 -102
- meerk40t/core/node/elem_polyline.py +310 -246
- meerk40t/core/node/elem_rect.py +376 -286
- meerk40t/core/node/elem_text.py +445 -418
- meerk40t/core/node/filenode.py +59 -40
- meerk40t/core/node/groupnode.py +138 -74
- meerk40t/core/node/image_processed.py +777 -766
- meerk40t/core/node/image_raster.py +156 -113
- meerk40t/core/node/layernode.py +31 -31
- meerk40t/core/node/mixins.py +135 -107
- meerk40t/core/node/node.py +1427 -1304
- meerk40t/core/node/nutils.py +117 -114
- meerk40t/core/node/op_cut.py +462 -335
- meerk40t/core/node/op_dots.py +296 -251
- meerk40t/core/node/op_engrave.py +414 -311
- meerk40t/core/node/op_image.py +755 -369
- meerk40t/core/node/op_raster.py +787 -522
- meerk40t/core/node/place_current.py +37 -40
- meerk40t/core/node/place_point.py +329 -126
- meerk40t/core/node/refnode.py +58 -47
- meerk40t/core/node/rootnode.py +225 -219
- meerk40t/core/node/util_console.py +48 -48
- meerk40t/core/node/util_goto.py +84 -65
- meerk40t/core/node/util_home.py +61 -61
- meerk40t/core/node/util_input.py +102 -102
- meerk40t/core/node/util_output.py +102 -102
- meerk40t/core/node/util_wait.py +65 -65
- meerk40t/core/parameters.py +709 -707
- meerk40t/core/planner.py +875 -785
- meerk40t/core/plotplanner.py +656 -652
- meerk40t/core/space.py +120 -113
- meerk40t/core/spoolers.py +706 -705
- meerk40t/core/svg_io.py +1836 -1549
- meerk40t/core/treeop.py +534 -445
- meerk40t/core/undos.py +278 -124
- meerk40t/core/units.py +784 -680
- meerk40t/core/view.py +393 -322
- meerk40t/core/webhelp.py +62 -62
- meerk40t/core/wordlist.py +513 -504
- meerk40t/cylinder/cylinder.py +247 -0
- meerk40t/cylinder/gui/cylindersettings.py +41 -0
- meerk40t/cylinder/gui/gui.py +24 -0
- meerk40t/device/__init__.py +1 -1
- meerk40t/device/basedevice.py +322 -123
- meerk40t/device/devicechoices.py +50 -0
- meerk40t/device/dummydevice.py +163 -128
- meerk40t/device/gui/defaultactions.py +618 -602
- meerk40t/device/gui/effectspanel.py +114 -0
- meerk40t/device/gui/formatterpanel.py +253 -290
- meerk40t/device/gui/warningpanel.py +337 -260
- meerk40t/device/mixins.py +13 -13
- meerk40t/dxf/__init__.py +1 -1
- meerk40t/dxf/dxf_io.py +766 -554
- meerk40t/dxf/plugin.py +47 -35
- meerk40t/external_plugins.py +79 -79
- meerk40t/external_plugins_build.py +28 -28
- meerk40t/extra/cag.py +112 -116
- meerk40t/extra/coolant.py +403 -0
- meerk40t/extra/encode_detect.py +198 -0
- meerk40t/extra/ezd.py +1165 -1165
- meerk40t/extra/hershey.py +835 -340
- meerk40t/extra/imageactions.py +322 -316
- meerk40t/extra/inkscape.py +630 -622
- meerk40t/extra/lbrn.py +424 -424
- meerk40t/extra/outerworld.py +284 -0
- meerk40t/extra/param_functions.py +1542 -1556
- meerk40t/extra/potrace.py +257 -253
- meerk40t/extra/serial_exchange.py +118 -0
- meerk40t/extra/updater.py +602 -453
- meerk40t/extra/vectrace.py +147 -146
- meerk40t/extra/winsleep.py +83 -83
- meerk40t/extra/xcs_reader.py +597 -0
- meerk40t/fill/fills.py +781 -335
- meerk40t/fill/patternfill.py +1061 -1061
- meerk40t/fill/patterns.py +614 -567
- meerk40t/grbl/control.py +87 -87
- meerk40t/grbl/controller.py +990 -903
- meerk40t/grbl/device.py +1081 -768
- meerk40t/grbl/driver.py +989 -771
- meerk40t/grbl/emulator.py +532 -497
- meerk40t/grbl/gcodejob.py +783 -767
- meerk40t/grbl/gui/grblconfiguration.py +373 -298
- meerk40t/grbl/gui/grblcontroller.py +485 -271
- meerk40t/grbl/gui/grblhardwareconfig.py +269 -153
- meerk40t/grbl/gui/grbloperationconfig.py +105 -0
- meerk40t/grbl/gui/gui.py +147 -116
- meerk40t/grbl/interpreter.py +44 -44
- meerk40t/grbl/loader.py +22 -22
- meerk40t/grbl/mock_connection.py +56 -56
- meerk40t/grbl/plugin.py +294 -264
- meerk40t/grbl/serial_connection.py +93 -88
- meerk40t/grbl/tcp_connection.py +81 -79
- meerk40t/grbl/ws_connection.py +112 -0
- meerk40t/gui/__init__.py +1 -1
- meerk40t/gui/about.py +2042 -296
- meerk40t/gui/alignment.py +1644 -1608
- meerk40t/gui/autoexec.py +199 -0
- meerk40t/gui/basicops.py +791 -670
- meerk40t/gui/bufferview.py +77 -71
- meerk40t/gui/busy.py +170 -133
- meerk40t/gui/choicepropertypanel.py +1673 -1469
- meerk40t/gui/consolepanel.py +706 -542
- meerk40t/gui/devicepanel.py +687 -581
- meerk40t/gui/dialogoptions.py +110 -107
- meerk40t/gui/executejob.py +316 -306
- meerk40t/gui/fonts.py +90 -90
- meerk40t/gui/functionwrapper.py +252 -0
- meerk40t/gui/gui_mixins.py +729 -0
- meerk40t/gui/guicolors.py +205 -182
- meerk40t/gui/help_assets/help_assets.py +218 -201
- meerk40t/gui/helper.py +154 -0
- meerk40t/gui/hersheymanager.py +1430 -846
- meerk40t/gui/icons.py +3422 -2747
- meerk40t/gui/imagesplitter.py +555 -508
- meerk40t/gui/keymap.py +354 -344
- meerk40t/gui/laserpanel.py +892 -806
- meerk40t/gui/laserrender.py +1470 -1232
- meerk40t/gui/lasertoolpanel.py +805 -793
- meerk40t/gui/magnetoptions.py +436 -0
- meerk40t/gui/materialmanager.py +2917 -0
- meerk40t/gui/materialtest.py +1722 -1694
- meerk40t/gui/mkdebug.py +646 -359
- meerk40t/gui/mwindow.py +163 -140
- meerk40t/gui/navigationpanels.py +2605 -2467
- meerk40t/gui/notes.py +143 -142
- meerk40t/gui/opassignment.py +414 -410
- meerk40t/gui/operation_info.py +310 -299
- meerk40t/gui/plugin.py +494 -328
- meerk40t/gui/position.py +714 -669
- meerk40t/gui/preferences.py +901 -650
- meerk40t/gui/propertypanels/attributes.py +1461 -1131
- meerk40t/gui/propertypanels/blobproperty.py +117 -114
- meerk40t/gui/propertypanels/consoleproperty.py +83 -80
- meerk40t/gui/propertypanels/gotoproperty.py +77 -0
- meerk40t/gui/propertypanels/groupproperties.py +223 -217
- meerk40t/gui/propertypanels/hatchproperty.py +489 -469
- meerk40t/gui/propertypanels/imageproperty.py +2244 -1384
- meerk40t/gui/propertypanels/inputproperty.py +59 -58
- meerk40t/gui/propertypanels/opbranchproperties.py +82 -80
- meerk40t/gui/propertypanels/operationpropertymain.py +1890 -1638
- meerk40t/gui/propertypanels/outputproperty.py +59 -58
- meerk40t/gui/propertypanels/pathproperty.py +389 -380
- meerk40t/gui/propertypanels/placementproperty.py +1214 -383
- meerk40t/gui/propertypanels/pointproperty.py +140 -136
- meerk40t/gui/propertypanels/propertywindow.py +313 -181
- meerk40t/gui/propertypanels/rasterwizardpanels.py +996 -912
- meerk40t/gui/propertypanels/regbranchproperties.py +76 -0
- meerk40t/gui/propertypanels/textproperty.py +770 -755
- meerk40t/gui/propertypanels/waitproperty.py +56 -55
- meerk40t/gui/propertypanels/warpproperty.py +121 -0
- meerk40t/gui/propertypanels/wobbleproperty.py +255 -204
- meerk40t/gui/ribbon.py +2468 -2210
- meerk40t/gui/scene/scene.py +1100 -1051
- meerk40t/gui/scene/sceneconst.py +22 -22
- meerk40t/gui/scene/scenepanel.py +439 -349
- meerk40t/gui/scene/scenespacewidget.py +365 -365
- meerk40t/gui/scene/widget.py +518 -505
- meerk40t/gui/scenewidgets/affinemover.py +215 -215
- meerk40t/gui/scenewidgets/attractionwidget.py +315 -309
- meerk40t/gui/scenewidgets/bedwidget.py +120 -97
- meerk40t/gui/scenewidgets/elementswidget.py +137 -107
- meerk40t/gui/scenewidgets/gridwidget.py +785 -745
- meerk40t/gui/scenewidgets/guidewidget.py +765 -765
- meerk40t/gui/scenewidgets/laserpathwidget.py +66 -66
- meerk40t/gui/scenewidgets/machineoriginwidget.py +86 -86
- meerk40t/gui/scenewidgets/nodeselector.py +28 -28
- meerk40t/gui/scenewidgets/rectselectwidget.py +589 -346
- meerk40t/gui/scenewidgets/relocatewidget.py +33 -33
- meerk40t/gui/scenewidgets/reticlewidget.py +83 -83
- meerk40t/gui/scenewidgets/selectionwidget.py +2952 -2756
- meerk40t/gui/simpleui.py +357 -333
- meerk40t/gui/simulation.py +2431 -2094
- meerk40t/gui/snapoptions.py +208 -203
- meerk40t/gui/spoolerpanel.py +1227 -1180
- meerk40t/gui/statusbarwidgets/defaultoperations.py +480 -353
- meerk40t/gui/statusbarwidgets/infowidget.py +520 -483
- meerk40t/gui/statusbarwidgets/opassignwidget.py +356 -355
- meerk40t/gui/statusbarwidgets/selectionwidget.py +172 -171
- meerk40t/gui/statusbarwidgets/shapepropwidget.py +754 -236
- meerk40t/gui/statusbarwidgets/statusbar.py +272 -260
- meerk40t/gui/statusbarwidgets/statusbarwidget.py +268 -270
- meerk40t/gui/statusbarwidgets/strokewidget.py +267 -251
- meerk40t/gui/themes.py +200 -78
- meerk40t/gui/tips.py +591 -0
- meerk40t/gui/toolwidgets/circlebrush.py +35 -35
- meerk40t/gui/toolwidgets/toolcircle.py +248 -242
- meerk40t/gui/toolwidgets/toolcontainer.py +82 -77
- meerk40t/gui/toolwidgets/tooldraw.py +97 -90
- meerk40t/gui/toolwidgets/toolellipse.py +219 -212
- meerk40t/gui/toolwidgets/toolimagecut.py +25 -132
- meerk40t/gui/toolwidgets/toolline.py +39 -144
- meerk40t/gui/toolwidgets/toollinetext.py +79 -236
- meerk40t/gui/toolwidgets/toollinetext_inline.py +296 -0
- meerk40t/gui/toolwidgets/toolmeasure.py +160 -216
- meerk40t/gui/toolwidgets/toolnodeedit.py +2088 -2074
- meerk40t/gui/toolwidgets/toolnodemove.py +92 -94
- meerk40t/gui/toolwidgets/toolparameter.py +754 -668
- meerk40t/gui/toolwidgets/toolplacement.py +108 -108
- meerk40t/gui/toolwidgets/toolpoint.py +68 -59
- meerk40t/gui/toolwidgets/toolpointlistbuilder.py +294 -0
- meerk40t/gui/toolwidgets/toolpointmove.py +183 -0
- meerk40t/gui/toolwidgets/toolpolygon.py +288 -403
- meerk40t/gui/toolwidgets/toolpolyline.py +38 -196
- meerk40t/gui/toolwidgets/toolrect.py +211 -207
- meerk40t/gui/toolwidgets/toolrelocate.py +72 -72
- meerk40t/gui/toolwidgets/toolribbon.py +598 -113
- meerk40t/gui/toolwidgets/tooltabedit.py +546 -0
- meerk40t/gui/toolwidgets/tooltext.py +98 -89
- meerk40t/gui/toolwidgets/toolvector.py +213 -204
- meerk40t/gui/toolwidgets/toolwidget.py +39 -39
- meerk40t/gui/usbconnect.py +98 -91
- meerk40t/gui/utilitywidgets/buttonwidget.py +18 -18
- meerk40t/gui/utilitywidgets/checkboxwidget.py +90 -90
- meerk40t/gui/utilitywidgets/controlwidget.py +14 -14
- meerk40t/gui/utilitywidgets/cyclocycloidwidget.py +343 -340
- meerk40t/gui/utilitywidgets/debugwidgets.py +148 -0
- meerk40t/gui/utilitywidgets/handlewidget.py +27 -27
- meerk40t/gui/utilitywidgets/harmonograph.py +450 -447
- meerk40t/gui/utilitywidgets/openclosewidget.py +40 -40
- meerk40t/gui/utilitywidgets/rotationwidget.py +54 -54
- meerk40t/gui/utilitywidgets/scalewidget.py +75 -75
- meerk40t/gui/utilitywidgets/seekbarwidget.py +183 -183
- meerk40t/gui/utilitywidgets/togglewidget.py +142 -142
- meerk40t/gui/utilitywidgets/toolbarwidget.py +8 -8
- meerk40t/gui/wordlisteditor.py +985 -931
- meerk40t/gui/wxmeerk40t.py +1444 -1169
- meerk40t/gui/wxmmain.py +5578 -4112
- meerk40t/gui/wxmribbon.py +1591 -1076
- meerk40t/gui/wxmscene.py +1635 -1453
- meerk40t/gui/wxmtree.py +2410 -2089
- meerk40t/gui/wxutils.py +1769 -1099
- meerk40t/gui/zmatrix.py +102 -102
- meerk40t/image/__init__.py +1 -1
- meerk40t/image/dither.py +429 -0
- meerk40t/image/imagetools.py +2778 -2269
- meerk40t/internal_plugins.py +150 -130
- meerk40t/kernel/__init__.py +63 -12
- meerk40t/kernel/channel.py +259 -212
- meerk40t/kernel/context.py +538 -538
- meerk40t/kernel/exceptions.py +41 -41
- meerk40t/kernel/functions.py +463 -414
- meerk40t/kernel/jobs.py +100 -100
- meerk40t/kernel/kernel.py +3809 -3571
- meerk40t/kernel/lifecycles.py +71 -71
- meerk40t/kernel/module.py +49 -49
- meerk40t/kernel/service.py +147 -147
- meerk40t/kernel/settings.py +383 -343
- meerk40t/lihuiyu/controller.py +883 -876
- meerk40t/lihuiyu/device.py +1181 -1069
- meerk40t/lihuiyu/driver.py +1466 -1372
- meerk40t/lihuiyu/gui/gui.py +127 -106
- meerk40t/lihuiyu/gui/lhyaccelgui.py +377 -363
- meerk40t/lihuiyu/gui/lhycontrollergui.py +741 -651
- meerk40t/lihuiyu/gui/lhydrivergui.py +470 -446
- meerk40t/lihuiyu/gui/lhyoperationproperties.py +238 -237
- meerk40t/lihuiyu/gui/tcpcontroller.py +226 -190
- meerk40t/lihuiyu/interpreter.py +53 -53
- meerk40t/lihuiyu/laserspeed.py +450 -450
- meerk40t/lihuiyu/loader.py +90 -90
- meerk40t/lihuiyu/parser.py +404 -404
- meerk40t/lihuiyu/plugin.py +101 -102
- meerk40t/lihuiyu/tcp_connection.py +111 -109
- meerk40t/main.py +231 -165
- meerk40t/moshi/builder.py +788 -781
- meerk40t/moshi/controller.py +505 -499
- meerk40t/moshi/device.py +495 -442
- meerk40t/moshi/driver.py +862 -696
- meerk40t/moshi/gui/gui.py +78 -76
- meerk40t/moshi/gui/moshicontrollergui.py +538 -522
- meerk40t/moshi/gui/moshidrivergui.py +87 -75
- meerk40t/moshi/plugin.py +43 -43
- meerk40t/network/console_server.py +102 -57
- meerk40t/network/kernelserver.py +10 -9
- meerk40t/network/tcp_server.py +142 -140
- meerk40t/network/udp_server.py +103 -77
- meerk40t/network/web_server.py +390 -0
- meerk40t/newly/controller.py +1158 -1144
- meerk40t/newly/device.py +874 -732
- meerk40t/newly/driver.py +540 -412
- meerk40t/newly/gui/gui.py +219 -188
- meerk40t/newly/gui/newlyconfig.py +116 -101
- meerk40t/newly/gui/newlycontroller.py +193 -186
- meerk40t/newly/gui/operationproperties.py +51 -51
- meerk40t/newly/mock_connection.py +82 -82
- meerk40t/newly/newly_params.py +56 -56
- meerk40t/newly/plugin.py +1214 -1246
- meerk40t/newly/usb_connection.py +322 -322
- meerk40t/rotary/gui/gui.py +52 -46
- meerk40t/rotary/gui/rotarysettings.py +240 -232
- meerk40t/rotary/rotary.py +202 -98
- meerk40t/ruida/control.py +291 -91
- meerk40t/ruida/controller.py +138 -1088
- meerk40t/ruida/device.py +672 -231
- meerk40t/ruida/driver.py +534 -472
- meerk40t/ruida/emulator.py +1494 -1491
- meerk40t/ruida/exceptions.py +4 -4
- meerk40t/ruida/gui/gui.py +71 -76
- meerk40t/ruida/gui/ruidaconfig.py +239 -72
- meerk40t/ruida/gui/ruidacontroller.py +187 -184
- meerk40t/ruida/gui/ruidaoperationproperties.py +48 -47
- meerk40t/ruida/loader.py +54 -52
- meerk40t/ruida/mock_connection.py +57 -109
- meerk40t/ruida/plugin.py +124 -87
- meerk40t/ruida/rdjob.py +2084 -945
- meerk40t/ruida/serial_connection.py +116 -0
- meerk40t/ruida/tcp_connection.py +146 -0
- meerk40t/ruida/udp_connection.py +73 -0
- meerk40t/svgelements.py +9671 -9669
- meerk40t/tools/driver_to_path.py +584 -579
- meerk40t/tools/geomstr.py +5583 -4680
- meerk40t/tools/jhfparser.py +357 -292
- meerk40t/tools/kerftest.py +904 -890
- meerk40t/tools/livinghinges.py +1168 -1033
- meerk40t/tools/pathtools.py +987 -949
- meerk40t/tools/pmatrix.py +234 -0
- meerk40t/tools/pointfinder.py +942 -942
- meerk40t/tools/polybool.py +940 -940
- meerk40t/tools/rasterplotter.py +1660 -547
- meerk40t/tools/shxparser.py +989 -901
- meerk40t/tools/ttfparser.py +726 -446
- meerk40t/tools/zinglplotter.py +595 -593
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/LICENSE +21 -21
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/METADATA +150 -139
- meerk40t-0.9.7010.dist-info/RECORD +445 -0
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/WHEEL +1 -1
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/top_level.txt +0 -1
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/zip-safe +1 -1
- meerk40t/balormk/elementlightjob.py +0 -159
- meerk40t-0.9.3001.dist-info/RECORD +0 -437
- test/bootstrap.py +0 -63
- test/test_cli.py +0 -12
- test/test_core_cutcode.py +0 -418
- test/test_core_elements.py +0 -144
- test/test_core_plotplanner.py +0 -397
- test/test_core_viewports.py +0 -312
- test/test_drivers_grbl.py +0 -108
- test/test_drivers_lihuiyu.py +0 -443
- test/test_drivers_newly.py +0 -113
- test/test_element_degenerate_points.py +0 -43
- test/test_elements_classify.py +0 -97
- test/test_elements_penbox.py +0 -22
- test/test_file_svg.py +0 -176
- test/test_fill.py +0 -155
- test/test_geomstr.py +0 -1523
- test/test_geomstr_nodes.py +0 -18
- test/test_imagetools_actualize.py +0 -306
- test/test_imagetools_wizard.py +0 -258
- test/test_kernel.py +0 -200
- test/test_laser_speeds.py +0 -3303
- test/test_length.py +0 -57
- test/test_lifecycle.py +0 -66
- test/test_operations.py +0 -251
- test/test_operations_hatch.py +0 -57
- test/test_ruida.py +0 -19
- test/test_spooler.py +0 -22
- test/test_tools_rasterplotter.py +0 -29
- test/test_wobble.py +0 -133
- test/test_zingl.py +0 -124
- {test → meerk40t/cylinder}/__init__.py +0 -0
- /meerk40t/{core/element_commands.py → cylinder/gui/__init__.py} +0 -0
- {meerk40t-0.9.3001.dist-info → meerk40t-0.9.7010.dist-info}/entry_points.txt +0 -0
meerk40t/core/node/rootnode.py
CHANGED
@@ -1,219 +1,225 @@
|
|
1
|
-
from meerk40t.core.node.node import Node
|
2
|
-
|
3
|
-
|
4
|
-
class RootNode(Node):
|
5
|
-
"""
|
6
|
-
RootNode is one of the few directly declarable node-types and serves as the base type for all Node classes.
|
7
|
-
|
8
|
-
The notifications are shallow. They refer *only* to the node in question, not to any children or parents.
|
9
|
-
"""
|
10
|
-
|
11
|
-
def __init__(self, context, **kwargs):
|
12
|
-
_ = context._
|
13
|
-
super().__init__(type="root", **kwargs)
|
14
|
-
self._root = self
|
15
|
-
self.context = context
|
16
|
-
self.listeners = []
|
17
|
-
self.add(type="branch ops", label=_("Operations"))
|
18
|
-
self.add(type="branch elems", label=_("Elements"))
|
19
|
-
self.add(type="branch reg", label=_("Regmarks"))
|
20
|
-
|
21
|
-
def __repr__(self):
|
22
|
-
return f"RootNode({str(self.context)})"
|
23
|
-
|
24
|
-
def __copy__(self):
|
25
|
-
return RootNode(self.context)
|
26
|
-
|
27
|
-
def is_draggable(self):
|
28
|
-
return False
|
29
|
-
|
30
|
-
def listen(self, listener):
|
31
|
-
self.listeners.append(listener)
|
32
|
-
|
33
|
-
def unlisten(self, listener):
|
34
|
-
self.listeners.remove(listener)
|
35
|
-
|
36
|
-
def
|
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
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
1
|
+
from meerk40t.core.node.node import Node
|
2
|
+
|
3
|
+
|
4
|
+
class RootNode(Node):
|
5
|
+
"""
|
6
|
+
RootNode is one of the few directly declarable node-types and serves as the base type for all Node classes.
|
7
|
+
|
8
|
+
The notifications are shallow. They refer *only* to the node in question, not to any children or parents.
|
9
|
+
"""
|
10
|
+
|
11
|
+
def __init__(self, context, **kwargs):
|
12
|
+
_ = context._
|
13
|
+
super().__init__(type="root", **kwargs)
|
14
|
+
self._root = self
|
15
|
+
self.context = context
|
16
|
+
self.listeners = []
|
17
|
+
self.add(type="branch ops", label=_("Operations"))
|
18
|
+
self.add(type="branch elems", label=_("Elements"))
|
19
|
+
self.add(type="branch reg", label=_("Regmarks"))
|
20
|
+
|
21
|
+
def __repr__(self):
|
22
|
+
return f"RootNode({str(self.context)})"
|
23
|
+
|
24
|
+
def __copy__(self):
|
25
|
+
return RootNode(self.context)
|
26
|
+
|
27
|
+
def is_draggable(self):
|
28
|
+
return False
|
29
|
+
|
30
|
+
def listen(self, listener):
|
31
|
+
self.listeners.append(listener)
|
32
|
+
|
33
|
+
def unlisten(self, listener):
|
34
|
+
self.listeners.remove(listener)
|
35
|
+
|
36
|
+
def notify_frozen(self, status):
|
37
|
+
# Tells the listener that an update of its visual apperance is not necessary
|
38
|
+
for listen in self.listeners:
|
39
|
+
if hasattr(listen, "frozen"):
|
40
|
+
listen.frozen(status)
|
41
|
+
|
42
|
+
def notify_created(self, node=None, **kwargs):
|
43
|
+
if node is None:
|
44
|
+
node = self
|
45
|
+
for listen in self.listeners:
|
46
|
+
if hasattr(listen, "node_created"):
|
47
|
+
listen.node_created(node, **kwargs)
|
48
|
+
|
49
|
+
def notify_destroyed(self, node=None, **kwargs):
|
50
|
+
if node is None:
|
51
|
+
node = self
|
52
|
+
for listen in self.listeners:
|
53
|
+
if hasattr(listen, "node_destroyed"):
|
54
|
+
listen.node_destroyed(node, **kwargs)
|
55
|
+
|
56
|
+
def notify_attached(self, node=None, **kwargs):
|
57
|
+
if node is None:
|
58
|
+
node = self
|
59
|
+
for listen in self.listeners:
|
60
|
+
if hasattr(listen, "node_attached"):
|
61
|
+
listen.node_attached(node, **kwargs)
|
62
|
+
|
63
|
+
def notify_detached(self, node=None, **kwargs):
|
64
|
+
if node is None:
|
65
|
+
node = self
|
66
|
+
for listen in self.listeners:
|
67
|
+
if hasattr(listen, "node_detached"):
|
68
|
+
listen.node_detached(node, **kwargs)
|
69
|
+
|
70
|
+
def notify_changed(self, node=None, **kwargs):
|
71
|
+
if node is None:
|
72
|
+
node = self
|
73
|
+
for listen in self.listeners:
|
74
|
+
if hasattr(listen, "node_changed"):
|
75
|
+
listen.node_changed(node, **kwargs)
|
76
|
+
|
77
|
+
def notify_selected(self, node=None, **kwargs):
|
78
|
+
if node is None:
|
79
|
+
node = self
|
80
|
+
for listen in self.listeners:
|
81
|
+
if hasattr(listen, "selected"):
|
82
|
+
listen.selected(node, **kwargs)
|
83
|
+
|
84
|
+
def notify_emphasized(self, node=None, **kwargs):
|
85
|
+
if node is None:
|
86
|
+
node = self
|
87
|
+
for listen in self.listeners:
|
88
|
+
if hasattr(listen, "emphasized"):
|
89
|
+
listen.emphasized(node, **kwargs)
|
90
|
+
|
91
|
+
def notify_targeted(self, node=None, **kwargs):
|
92
|
+
if node is None:
|
93
|
+
node = self
|
94
|
+
for listen in self.listeners:
|
95
|
+
if hasattr(listen, "targeted"):
|
96
|
+
listen.targeted(node, **kwargs)
|
97
|
+
|
98
|
+
def notify_highlighted(self, node=None, **kwargs):
|
99
|
+
if node is None:
|
100
|
+
node = self
|
101
|
+
for listen in self.listeners:
|
102
|
+
if hasattr(listen, "highlighted"):
|
103
|
+
listen.highlighted(node, **kwargs)
|
104
|
+
|
105
|
+
def notify_modified(self, node=None, **kwargs):
|
106
|
+
"""
|
107
|
+
Notifies any listeners that a value in the tree has been changed such that the matrix or other property
|
108
|
+
values have changed. But that the underlying data object itself remains intact.
|
109
|
+
@param node: node that was modified.
|
110
|
+
@param kwargs:
|
111
|
+
@return:
|
112
|
+
"""
|
113
|
+
if node is None:
|
114
|
+
node = self
|
115
|
+
self._bounds = None
|
116
|
+
for listen in self.listeners:
|
117
|
+
if hasattr(listen, "modified"):
|
118
|
+
listen.modified(node, **kwargs)
|
119
|
+
|
120
|
+
def notify_translated(self, node=None, dx=0, dy=0, interim=False, **kwargs):
|
121
|
+
"""
|
122
|
+
Notifies any listeners that a value in the tree has been changed such that the matrix or other property
|
123
|
+
values have changed. But that the underlying data object itself remains intact.
|
124
|
+
@param node: node that was modified.
|
125
|
+
@param dx: translation change for node
|
126
|
+
@param dy: translation change for node
|
127
|
+
@param kwargs:
|
128
|
+
@return:
|
129
|
+
"""
|
130
|
+
if node is None:
|
131
|
+
node = self
|
132
|
+
if self._bounds is not None:
|
133
|
+
self._bounds = [
|
134
|
+
self._bounds[0] + dx,
|
135
|
+
self._bounds[1] + dy,
|
136
|
+
self._bounds[2] + dx,
|
137
|
+
self._bounds[3] + dy,
|
138
|
+
]
|
139
|
+
for listen in self.listeners:
|
140
|
+
if hasattr(listen, "translated"):
|
141
|
+
listen.translated(node, dx=dx, dy=dy, interim=interim) # , **kwargs)
|
142
|
+
|
143
|
+
def notify_scaled(self, node=None, sx=1, sy=1, ox=0, oy=0, interim=False, **kwargs):
|
144
|
+
"""
|
145
|
+
Notifies any listeners that a value in the tree has been changed such that the matrix or other property
|
146
|
+
values have changed. But that the underlying data object itself remains intact.
|
147
|
+
|
148
|
+
@param node: node that was modified.
|
149
|
+
@param sx: scale_x value
|
150
|
+
@param sy: scale_y value
|
151
|
+
@param ox: offset_x value
|
152
|
+
@param oy: offset_y value
|
153
|
+
@param kwargs:
|
154
|
+
@return:
|
155
|
+
"""
|
156
|
+
if node is None:
|
157
|
+
node = self
|
158
|
+
if self._bounds is not None:
|
159
|
+
x0, y0, x1, y1 = self._bounds
|
160
|
+
if sx != 1.0:
|
161
|
+
d1 = x0 - ox
|
162
|
+
d2 = x1 - ox
|
163
|
+
x0 = ox + sx * d1
|
164
|
+
x1 = ox + sx * d2
|
165
|
+
if sy != 1.0:
|
166
|
+
d1 = y0 - oy
|
167
|
+
d2 = y1 - oy
|
168
|
+
y0 = oy + sy * d1
|
169
|
+
y1 = oy + sy * d2
|
170
|
+
self._bounds = [min(x0, x1), min(y0, y1), max(x0, x1), max(y0, y1)]
|
171
|
+
|
172
|
+
for listen in self.listeners:
|
173
|
+
if hasattr(listen, "scaled"):
|
174
|
+
listen.scaled(node, sx=sx, sy=sy, ox=ox, oy=oy, interim=interim) # , **kwargs)
|
175
|
+
|
176
|
+
def notify_altered(self, node=None, **kwargs):
|
177
|
+
"""
|
178
|
+
Notifies any listeners that a value in the tree has had its underlying data fundamentally changed and while
|
179
|
+
this may not be reflected by the properties any assumptions about the content of this node are no longer
|
180
|
+
valid.
|
181
|
+
|
182
|
+
@param node:
|
183
|
+
@param kwargs:
|
184
|
+
@return:
|
185
|
+
"""
|
186
|
+
if node is None:
|
187
|
+
node = self
|
188
|
+
for listen in self.listeners:
|
189
|
+
if hasattr(listen, "altered"):
|
190
|
+
listen.altered(node, **kwargs)
|
191
|
+
|
192
|
+
def notify_expand(self, node=None, **kwargs):
|
193
|
+
if node is None:
|
194
|
+
node = self
|
195
|
+
for listen in self.listeners:
|
196
|
+
if hasattr(listen, "expand"):
|
197
|
+
listen.expand(node, **kwargs)
|
198
|
+
|
199
|
+
def notify_collapse(self, node=None, **kwargs):
|
200
|
+
if node is None:
|
201
|
+
node = self
|
202
|
+
for listen in self.listeners:
|
203
|
+
if hasattr(listen, "collapse"):
|
204
|
+
listen.collapse(node, **kwargs)
|
205
|
+
|
206
|
+
def notify_reorder(self, node=None, **kwargs):
|
207
|
+
if node is None:
|
208
|
+
node = self
|
209
|
+
for listen in self.listeners:
|
210
|
+
if hasattr(listen, "reorder"):
|
211
|
+
listen.reorder(node, **kwargs)
|
212
|
+
|
213
|
+
def notify_update(self, node=None, **kwargs):
|
214
|
+
if node is None:
|
215
|
+
node = self
|
216
|
+
for listen in self.listeners:
|
217
|
+
if hasattr(listen, "update"):
|
218
|
+
listen.update(node, **kwargs)
|
219
|
+
|
220
|
+
def notify_focus(self, node=None, **kwargs):
|
221
|
+
if node is None:
|
222
|
+
node = self
|
223
|
+
for listen in self.listeners:
|
224
|
+
if hasattr(listen, "focus"):
|
225
|
+
listen.focus(node, **kwargs)
|
@@ -1,48 +1,48 @@
|
|
1
|
-
from meerk40t.core.elements.element_types import
|
2
|
-
from meerk40t.core.node.node import Node
|
3
|
-
|
4
|
-
|
5
|
-
class ConsoleOperation(Node):
|
6
|
-
"""
|
7
|
-
ConsoleOperation contains a console command (as a string) to be run.
|
8
|
-
|
9
|
-
Node type "util console"
|
10
|
-
"""
|
11
|
-
|
12
|
-
def __init__(self, **kwargs):
|
13
|
-
self.output = True
|
14
|
-
self.command = None
|
15
|
-
self._formatter = "{enabled}{command}"
|
16
|
-
super().__init__(type="util console", **kwargs)
|
17
|
-
|
18
|
-
def __repr__(self):
|
19
|
-
return f"ConsoleOperation('{self.command}')"
|
20
|
-
|
21
|
-
def __len__(self):
|
22
|
-
return 1
|
23
|
-
|
24
|
-
def default_map(self, default_map=None):
|
25
|
-
default_map = super().default_map(default_map=default_map)
|
26
|
-
default_map["element_type"] = "Console"
|
27
|
-
default_map["enabled"] = "(Disabled) " if not self.output else ""
|
28
|
-
default_map.update(self.__dict__)
|
29
|
-
return default_map
|
30
|
-
|
31
|
-
def
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
return
|
43
|
-
|
44
|
-
def generate(self):
|
45
|
-
command = self.command
|
46
|
-
if not command.endswith("\n"):
|
47
|
-
command += "\n"
|
48
|
-
yield "console", command
|
1
|
+
from meerk40t.core.elements.element_types import op_nodes
|
2
|
+
from meerk40t.core.node.node import Node
|
3
|
+
|
4
|
+
|
5
|
+
class ConsoleOperation(Node):
|
6
|
+
"""
|
7
|
+
ConsoleOperation contains a console command (as a string) to be run.
|
8
|
+
|
9
|
+
Node type "util console"
|
10
|
+
"""
|
11
|
+
|
12
|
+
def __init__(self, **kwargs):
|
13
|
+
self.output = True
|
14
|
+
self.command = None
|
15
|
+
self._formatter = "{enabled}{command}"
|
16
|
+
super().__init__(type="util console", **kwargs)
|
17
|
+
|
18
|
+
def __repr__(self):
|
19
|
+
return f"ConsoleOperation('{self.command}')"
|
20
|
+
|
21
|
+
def __len__(self):
|
22
|
+
return 1
|
23
|
+
|
24
|
+
def default_map(self, default_map=None):
|
25
|
+
default_map = super().default_map(default_map=default_map)
|
26
|
+
default_map["element_type"] = "Console"
|
27
|
+
default_map["enabled"] = "(Disabled) " if not self.output else ""
|
28
|
+
default_map.update(self.__dict__)
|
29
|
+
return default_map
|
30
|
+
|
31
|
+
def can_drop(self, drag_node):
|
32
|
+
# Move operation to a different position.
|
33
|
+
return bool(drag_node.type in op_nodes)
|
34
|
+
|
35
|
+
def drop(self, drag_node, modify=True, flag=False):
|
36
|
+
# Default routine for drag + drop for an op node - irrelevant for others...
|
37
|
+
drop_node = self
|
38
|
+
if not self.can_drop(drag_node):
|
39
|
+
return False
|
40
|
+
if modify:
|
41
|
+
drop_node.insert_sibling(drag_node)
|
42
|
+
return True
|
43
|
+
|
44
|
+
def generate(self):
|
45
|
+
command = self.command
|
46
|
+
if not command.endswith("\n"):
|
47
|
+
command += "\n"
|
48
|
+
yield "console", command
|