GithubHelp home page GithubHelp logo

inkcut / inkcut Goto Github PK

View Code? Open in Web Editor NEW
316.0 26.0 70.0 3.39 MB

An application for controlling 2D plotters, cutters, engravers, and CNC machines.

Home Page: https://codelv.com/projects/inkcut/

License: GNU General Public License v3.0

Python 98.88% PowerShell 1.12%

inkcut's Introduction

Inkcut

Build Status Downloads

An application for controlling 2D plotters, cutters, engravers, and CNC machines. Project homepage

Inkcut - vinyl cutting and plotting

You can download the release versions from here.

Features

  • Graphic manipulation (Rotation, scaling, mirroring)
  • Copy generation and layout
  • Weedlines
  • Inkscape integration
  • Device control panel
  • Job history list
  • Live plot status
  • Pause, resume, and abort jobs mid way
  • Python 2 and 3 support (Qt5 on python 3)

Docs and tutorials

See the project docs site:

Support

Get help by posting an issue or asking on the forum.

If you use Inkcut and want to help continue the development open source cutting software please consider donating.

Thanks

Thank you to all who have contributed to Inkcut and to Inkscape for making this possible!

inkcut's People

Contributors

aaujon avatar alistairkeiller avatar ammanvm avatar cyril279 avatar ducsi avatar franck78 avatar frmdstryr avatar goatchurchprime avatar grany avatar jsphpl avatar karliss avatar madeinmerica avatar mahallon avatar mikeditto avatar raboof avatar srdco avatar tangentmonger avatar vmario89 avatar yairvillarp avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

inkcut's Issues

New logo / desktop icon

If anyone would like to contribute a new logo / desktop icon to use please feel let me know. If there's multiple I can open up a vote on which to use.

It will be used for the desktop icon. This is the current logo

inkcut

Ideally in the svg format so it can be exported to different sizes (but a 512 x 512 png is also good).

Printer cannot reconnect

I saw the following trace:

Traceback (most recent call last):
  File "/home/aengelen/.local/lib/python2.7/site-packages/twisted/internet/defer.py", line 150, in maybeDeferred
    result = f(*args, **kw)
  File "/home/aengelen/dev/inkcut/inkcut/device/transports/printer/plugin.py", line 200, in connect
    self.connection.transport = self
AttributeError: 'NoneType' object has no attribute 'transport'

It looks like the connection is intially populated:

    #: Delegate to the implementation based on the current platform
    connection = Instance(PrinterConnection)

Then on connection its transport is set:

    def connect(self):
        try:
            #: Save a reference
            self.protocol.transport = self
            self.connection.transport = self
            self.connection.open()

But then on disconnect the field is cleared:

    def disconnect(self):
        if self.connection:
            self.connection.close()
            log.debug("{} | closed".format(self.config.printer))
            self.connection = None

... causing the next connect to fail.

I guess the connection field should be repopulated? What would be the right place way to do that?

Send cut to device on parallel port

For sending to a device that is connected to a parallel port, should that be done by somehow configuring the device as a 'printer', or would it make sense to add a third 'Parallel' option to the current 'Printer/Serial' list?

(the 2 cutters I have access to I can send files to by just sending them to /dev/usb/lpX)

Print preview doesn't work

When print preview is activated (either in the menu or in the toolbar) nothing happens. Inkscape or an SVG image should be opened showing the reparsed output.

Sometimes plots with 'y' coordinate always 0?

I did a print job where all the y coordinates somehow were zero:

2018-03-30 15:44:49,303 | INFO    | inkcut | device | Initializing job
2018-03-30 15:44:49,303 | DEBUG   | inkcut | device | init <inkcut.job.models.Job object at 0x7f2815dcf290>
2018-03-30 15:44:49,303 | DEBUG   | inkcut | device | Path length: 2149.12377946
2018-03-30 15:44:54,382 | INFO    | inkcut | device | Connecting to device
2018-03-30 15:44:54,383 | INFO    | inkcut | device | Processing job
2018-03-30 15:44:54,383 | DEBUG   | inkcut | device | connect
2018-03-30 15:44:54,391 | DEBUG   | inkcut | -> smartlab | IN;
2018-03-30 15:44:54,392 | DEBUG   | inkcut | smartlab | opened
2018-03-30 15:44:54,392 | INFO    | inkcut | device | Working...
2018-03-30 15:44:54,394 | DEBUG   | inkcut | -> smartlab | PU2042,0;
2018-03-30 15:44:54,394 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:44:55,767 | DEBUG   | inkcut | -> smartlab | PD2037,0;
2018-03-30 15:44:55,768 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:44:55,792 | DEBUG   | inkcut | -> smartlab | PD2023,0;
2018-03-30 15:44:55,793 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:44:55,817 | DEBUG   | inkcut | -> smartlab | PD2001,0;
2018-03-30 15:44:55,818 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:44:55,842 | DEBUG   | inkcut | -> smartlab | PD1970,0;
2018-03-30 15:44:55,843 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:44:55,866 | DEBUG   | inkcut | -> smartlab | PD1932,0;

After opening and closing the settings dialog (but without changing anything AFAIR) the next print worked fine:

2018-03-30 15:45:35,550 | DEBUG   | inkcut | device | init <inkcut.job.models.Job object at 0x7f2815dcf290>
2018-03-30 15:45:35,550 | DEBUG   | inkcut | device | Path length: 2302.00373711
2018-03-30 15:45:37,168 | INFO    | inkcut | device | Connecting to device
2018-03-30 15:45:37,168 | INFO    | inkcut | device | Processing job
2018-03-30 15:45:37,169 | DEBUG   | inkcut | device | connect
2018-03-30 15:45:37,176 | DEBUG   | inkcut | -> smartlab | IN;
2018-03-30 15:45:37,177 | DEBUG   | inkcut | smartlab | opened
2018-03-30 15:45:37,177 | INFO    | inkcut | device | Working...
2018-03-30 15:45:37,180 | DEBUG   | inkcut | -> smartlab | PU2042,3403;
2018-03-30 15:45:37,180 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:45:38,154 | DEBUG   | inkcut | -> smartlab | PD2037,3496;
2018-03-30 15:45:38,155 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:45:38,179 | DEBUG   | inkcut | -> smartlab | PD2023,3586;
2018-03-30 15:45:38,180 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:45:38,203 | DEBUG   | inkcut | -> smartlab | PD2001,3673;
2018-03-30 15:45:38,204 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:45:38,225 | DEBUG   | inkcut | -> smartlab | PD1970,3756;
2018-03-30 15:45:38,226 | DEBUG   | inkcut | Rate is :0.36
2018-03-30 15:45:38,248 | DEBUG   | inkcut | -> smartlab | PD1932,3835;

SVG scale?

I created a ~26x26mm SVG in inkscape, but when loaded into inkcut it becomes 0.29x0.29 inch - which is too small. Do you have any pointers on how this is supposed to work?

1x1cm-blocks.svg.txt

Assume config.spooled when outputting to printer or file

Device->Advanced has a checkbox to specify whether the device is spooled, in which case the output is not artificially slowed down.

I'd say we should assume the output is spooled when writing to a printer or file, even when this checkbox has not been set.

Adding defaults for new devices?

Was poking into the way to add 'automatic' defaults for new devices. I found the instructions to add a 'factory' but wasn't quite sure what was meant, other than the general idea of Python class factories. This is probably because I do not normally work in Python, but was wondering if there was a way to define standard defaults for an existing device (e.g. connection speed, return to origin set to true, x-axis mirrored set to true, etc) by a simple config file?

Metric vs imperial measurements?

We seem to use inches in some places and mm/cm in others. Would it be good to standardize on one or the other? Or would it even be feasible to make it configurable?

Feature requests

Please submit any feature requests you would like to see in the new version.

Some features I have at the moment (many are still a WIP and will change)

Recent jobs panel
peek 2017-12-15 10-02

Device control panel
peek 2017-12-15 09-53

Thanks!

error installing

when i use (source venv activate )
i get ( bash: source: venv: is a directory

and when i use pip install .

at the end i get

(
Exception:
Traceback (most recent call last):
File "/home/plotter/.local/lib/python2.7/site-packages/pip/basecommand.py", line 215, in main
status = self.run(options, args)
File "/home/plotter/.local/lib/python2.7/site-packages/pip/commands/install.py", line 342, in run
prefix=options.prefix_path,
File "/home/plotter/.local/lib/python2.7/site-packages/pip/req/req_set.py", line 784, in install
**kwargs
File "/home/plotter/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 851, in install
self.move_wheel_files(self.source_dir, root=root, prefix=prefix)
File "/home/plotter/.local/lib/python2.7/site-packages/pip/req/req_install.py", line 1064, in move_wheel_files
isolated=self.isolated,
File "/home/plotter/.local/lib/python2.7/site-packages/pip/wheel.py", line 345, in move_wheel_files
clobber(source, lib_dir, True)
File "/home/plotter/.local/lib/python2.7/site-packages/pip/wheel.py", line 323, in clobber
shutil.copyfile(srcfile, destfile)
File "/usr/lib/python2.7/shutil.py", line 83, in copyfile
with open(dst, 'wb') as fdst:
IOError: [Errno 13] Permission denied: '/usr/local/lib/python2.7/dist-packages/zope.interface-4.4.3-py2.7-nspkg.pth'

macOS operation

Hi there

Just FYI, I have this up and running on macOS High Sierra & Python 3.6. I simply pulled out the checks for Darwin platform, and it fires up just fine.

Communication with my cutter (PCut CT1200) is pretty flakey, and there are a few other issues as expected, but it's a start.

I'm guessing OSX isn't a high priority for you, but if you'd like me to log issues here I can.

thanks.

Fedora 15 installation notes.

Inkcut, the program itself, seems to work out of box with a fresh install of Fedora 15, which is using gtk3.

I had to:

yum install pyserial
yum install python-lxml
yum install python-sqlalchemy

I'm still not able to cut. After an in line patch for issue #11, It jogs the cutter and seemingly locks up there.
This could be a CUPS issue too, I had the error:

lpr: Unsupported format 'application/vnd.hp-hpgl'!

for awhile, but forcing CUPS to convert it to plain text.

Unable to connect to cutter

When I attempt to plot drawing I get
Traceback (most recent call last):
File "/home/hamish/inkcut-master/inkcut/device/manifest.enaml", line 45, in job_start
yield defer.maybeDeferred(plugin.submit, job)
TypeError: () missing 1 required positional argument: 'info'
How do I overcome?

Importing Text nodes

I would really like to be able to seamlessly send documents with Text nodes from Inkscape to InkCut.

The 'proper' way to do this, of course, would be to add text-to-path support in InkCut itself: that would work for any .svg, whether it comes from Inkscape or not. However, this could get complicated with respect to finding installed fonts, 'rendering' etc.

A quick 'hack' might be to do a 'behind the scenes' Inkscape conversion. I've done this for the 'plot' extension (https://gitlab.com/inkscape/inkscape/merge_requests/163, https://gitlab.com/inkscape/inkscape/merge_requests/201) and while technically somewhat terrible, results in a nice non-destructive workflow.

Would you be interested in a PR with the latter solution, or are you confident the first could work and be willing to provide some guidance there?

Crash when resize material if design too big

Inkcut aborts without message when you try to resize material if the design is bigger than the new size.

Steps to recreate (with current inkcut/master):

  1. Open a design
  2. Click on Material, and set a width that is smaller than the graphic size
    As soon as you tab, enter, or click out of the width box, Inkcut aborts.

Easy workaround is to resize the design smaller before you change the material size...

Also, is there no way to clear the work area back to a blank slate?

'print to file'

I have a plotter that I know works with some dialect of GPGL, but doesn't work with the GPGL produced by inkcut.

It'd be useful to be able to dump the data produced by inkcut. What would be the sensible place to plug in? As a third Connection, perhaps configurable with the filename?

Support for arcs

inkcut doesn't appear to render arcs correctly, such as:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:cc="http://creativecommons.org/ns#"
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:svg="http://www.w3.org/2000/svg"
   xmlns="http://www.w3.org/2000/svg"
 >
  <g
     id="layer1">
    <path
       id="path14"
       d="M 100.96745,167.77426 A 44.858372,157.69438 0 0 1 56.109067,325.46861 44.858372,157.69438 0 0 1 11.2507,167.77426 44.858372,157.69438 0 0 1 56.109067,10.079877 44.858372,157.69438 0 0 1 100.96745,167.77426 Z"
       style="opacity:0.93000034;fill:#ffffff;stroke:#000000;stroke-width:0.51863015;stroke-linejoin:round" />
  </g>
</svg>

which afaict should be an ellipse. Found http://pyqt.sourceforge.net/Docs/PyQt4/qpainterpath.html#arcTo-2 and https://www.w3.org/TR/SVG/paths.html#PathDataEllipticalArcCommands, which indeed don't seem to correspond 1-to-1

Installing the enaml dependency

When I pip install -r requirements.txt I get the error: Could not detect requirement name, please specify one with #egg=.

When I sudo pip install git+https://github.com/MatthieuDartiailh/enaml.git@qt5_support I get:

Collecting git+https://github.com/MatthieuDartiailh/enaml.git@qt5_support
  Cloning https://github.com/MatthieuDartiailh/enaml.git (to qt5_support) to /tmp/pip-SJfNCR-build
Requirement already satisfied: atom in /usr/local/lib/python2.7/dist-packages (from enaml==0.10.0)
Requirement already satisfied: future in /usr/lib/python2.7/dist-packages (from enaml==0.10.0)
Requirement already satisfied: kiwisolver in /usr/local/lib/python2.7/dist-packages (from enaml==0.10.0)
Requirement already satisfied: ply>=3.4 in /usr/local/lib/python2.7/dist-packages (from enaml==0.10.0)
Requirement already satisfied: qtpy>=1.3 in /usr/local/lib/python2.7/dist-packages (from enaml==0.10.0)
Requirement already satisfied: setuptools in /usr/lib/python2.7/dist-packages (from enaml==0.10.0)
Installing collected packages: enaml
  Running setup.py install for enaml: started
    Running setup.py install for enaml: finished with status 'error'
    Complete output from command /usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-SJfNCR-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-tV2gNQ-record/install-record.txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating build/lib.linux-x86_64-2.7
    creating build/lib.linux-x86_64-2.7/enaml
    copying enaml/styling.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/__init__.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/icon.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/version.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/drag_drop.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/application.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/runner.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/fonts.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/colors.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/validator.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/nodevisitor.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/compat.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/objectdict.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/mime_data.py -> build/lib.linux-x86_64-2.7/enaml
    copying enaml/image.py -> build/lib.linux-x86_64-2.7/enaml
    creating build/lib.linux-x86_64-2.7/enaml/applib
    copying enaml/applib/live_editor_model.py -> build/lib.linux-x86_64-2.7/enaml/applib
    copying enaml/applib/__init__.py -> build/lib.linux-x86_64-2.7/enaml/applib
    creating build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/box_helper.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/layout_manager.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/__init__.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/factory_helper.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/strength_member.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/constraint_helper.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/layout_helpers.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/geometry.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/linear_box_helper.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/grid_helper.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/spacers.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/api.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/sequence_helper.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/linear_symbolic.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/constrainable.py -> build/lib.linux-x86_64-2.7/enaml/layout
    copying enaml/layout/dock_layout.py -> build/lib.linux-x86_64-2.7/enaml/layout
    creating build/lib.linux-x86_64-2.7/enaml/scintilla
    copying enaml/scintilla/__init__.py -> build/lib.linux-x86_64-2.7/enaml/scintilla
    copying enaml/scintilla/scintilla.py -> build/lib.linux-x86_64-2.7/enaml/scintilla
    copying enaml/scintilla/mono_font.py -> build/lib.linux-x86_64-2.7/enaml/scintilla
    copying enaml/scintilla/idle_theme.py -> build/lib.linux-x86_64-2.7/enaml/scintilla
    copying enaml/scintilla/api.py -> build/lib.linux-x86_64-2.7/enaml/scintilla
    creating build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtNetwork.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_slider.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtTest.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_timer.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_abstract_button.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_object_combo.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_flow_layout.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_tool_bar.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_splitter.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_mdi_area.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_bounded_time.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_dual_slider.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/styleutil.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_window.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_toolkit_dialog.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_control.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_label.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_constraints_widget.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_status_item.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/__init__.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_date_selector.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_stack_item.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_separator.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_frame.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_file_dialog_ex.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_push_button.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_dialog.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_spin_box.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_container.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_bounded_date.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_pixmap_transition.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_focus_tracker.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_mdi_window.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_main_window.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_scroll_area.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_application.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_web_view.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_scintilla.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_group_box.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_action_group.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_bounded_datetime.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_stack.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtSvg.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_action.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_combo_box.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_widget.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_file_dialog.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_flow_item.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_status_bar.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_image_view.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/focus_registry.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_datetime_selector.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_page.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_dock_pane.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_field.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_file_dialog_helper.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_dock_area.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_menu.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_mime_data.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_split_item.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_drag_drop.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_popup_view.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_calendar.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_vtk_canvas.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_popup_view.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_factories.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_raw_widget.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_ipython_console.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_color_dialog.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_html.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/scintilla_lexers.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_toolkit_object.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_multiline_field.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_window_base.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_notebook.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_flow_area.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_deferred_caller.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtGui.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtPrintSupport.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtWebEngineWidgets.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_check_box.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_pixmap_painter.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_dock_item.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtWidgets.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_radio_button.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_tool_button.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_menu_bar.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_resource_helpers.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/q_single_widget_layout.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_progress_bar.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_time_selector.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/QtCore.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/scintilla_tokens.py -> build/lib.linux-x86_64-2.7/enaml/qt
    copying enaml/qt/qt_mpl_canvas.py -> build/lib.linux-x86_64-2.7/enaml/qt
    creating build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/progress_bar.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/radio_button.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/object_combo.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/tool_button.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/main_window.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/spin_box.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/dock_area.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/bounded_date.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/status_item.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/popup_view.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/__init__.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/vtk_canvas.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/dock_pane.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/mdi_window.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/split_item.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/page.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/action_group.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/focus_tracker.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/widget.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/time_selector.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/menu_bar.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/form.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/image_view.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/flow_item.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/tool_bar.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/container.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/v_group.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/control.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/scroll_area.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/action.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/calendar.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/check_box.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/dock_item.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/constraints_widget.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/push_button.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/stack.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/abstract_button.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/html.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/datetime_selector.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/multiline_field.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/file_dialog.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/dual_slider.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/status_bar.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/date_selector.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/color_dialog.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/stack_item.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/toolkit_dialog.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/separator.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/combo_box.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/raw_widget.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/notebook.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/field.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/dialog.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/window.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/frame.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/group_box.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/ipython_console.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/file_dialog_ex.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/bounded_time.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/web_view.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/api.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/flow_area.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/slider.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/menu.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/timer.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/h_group.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/mdi_area.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/splitter.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/toolkit_object.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/bounded_datetime.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/mpl_canvas.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/dock_events.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    copying enaml/widgets/label.py -> build/lib.linux-x86_64-2.7/enaml/widgets
    creating build/lib.linux-x86_64-2.7/enaml/workbench
    copying enaml/workbench/extension.py -> build/lib.linux-x86_64-2.7/enaml/workbench
    copying enaml/workbench/__init__.py -> build/lib.linux-x86_64-2.7/enaml/workbench
    copying enaml/workbench/workbench.py -> build/lib.linux-x86_64-2.7/enaml/workbench
    copying enaml/workbench/api.py -> build/lib.linux-x86_64-2.7/enaml/workbench
    copying enaml/workbench/plugin.py -> build/lib.linux-x86_64-2.7/enaml/workbench
    copying enaml/workbench/plugin_manifest.py -> build/lib.linux-x86_64-2.7/enaml/workbench
    copying enaml/workbench/extension_point.py -> build/lib.linux-x86_64-2.7/enaml/workbench
    creating build/lib.linux-x86_64-2.7/enaml/stdlib
    copying enaml/stdlib/__init__.py -> build/lib.linux-x86_64-2.7/enaml/stdlib
    copying enaml/stdlib/slider_transform.py -> build/lib.linux-x86_64-2.7/enaml/stdlib
    creating build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/template.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/import_hooks.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/__init__.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/object.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/compiler_helpers.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/standard_handlers.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/enaml_ast.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/include.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/block_compiler.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/enamldef_compiler.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/declarative.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/enaml_compiler.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/expression_engine.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/pattern.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/template_.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/declarative_meta.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/operators.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/standard_tracer.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/code_tracing.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/standard_inverter.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/dynamic_template.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/template_compiler.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/looper.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/compiler_nodes.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/api.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/code_generator.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/conditional.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/enamldef_meta.py -> build/lib.linux-x86_64-2.7/enaml/core
    copying enaml/core/compiler_common.py -> build/lib.linux-x86_64-2.7/enaml/core
    creating build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_icon_widget.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_container.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_text_label.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_splitter.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/event_types.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/dock_overlay.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_bitmap_button.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/style_sheets.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/__init__.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/layout_saver.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_area.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_frame.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/layout_handling.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_bar.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_title_bar.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_frame_layout.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/xbms.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_window.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_item.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/utils.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_dock_tab_widget.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/dock_manager.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/layout_builder.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/proximity_handler.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/q_guide_rose.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/qt/docking/dock_resources.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    creating build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/workspace.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/branding.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/__init__.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/window_model.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/autostart.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/menu_item.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/menu_helper.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/ui_workbench.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/item_group.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/api.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/action_item.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/ui_plugin.py -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    creating build/lib.linux-x86_64-2.7/enaml/workbench/core
    copying enaml/workbench/core/execution_event.py -> build/lib.linux-x86_64-2.7/enaml/workbench/core
    copying enaml/workbench/core/__init__.py -> build/lib.linux-x86_64-2.7/enaml/workbench/core
    copying enaml/workbench/core/core_plugin.py -> build/lib.linux-x86_64-2.7/enaml/workbench/core
    copying enaml/workbench/core/command.py -> build/lib.linux-x86_64-2.7/enaml/workbench/core
    copying enaml/workbench/core/api.py -> build/lib.linux-x86_64-2.7/enaml/workbench/core
    creating build/lib.linux-x86_64-2.7/enaml/core/byteplay
    copying enaml/core/byteplay/byteplay3.py -> build/lib.linux-x86_64-2.7/enaml/core/byteplay
    copying enaml/core/byteplay/__init__.py -> build/lib.linux-x86_64-2.7/enaml/core/byteplay
    copying enaml/core/byteplay/wbyteplay.py -> build/lib.linux-x86_64-2.7/enaml/core/byteplay
    copying enaml/core/byteplay/byteplay2.py -> build/lib.linux-x86_64-2.7/enaml/core/byteplay
    creating build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/base_lexer.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/__init__.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/parser3.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/base_parser.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/parser35.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/parser36.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/lexer3.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/parser34.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/lexer2.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    copying enaml/core/parser/parser2.py -> build/lib.linux-x86_64-2.7/enaml/core/parser
    creating build/lib.linux-x86_64-2.7/enaml/core/parser/parse_tab
    copying enaml/core/parser/parse_tab/lextab2.py -> build/lib.linux-x86_64-2.7/enaml/core/parser/parse_tab
    copying enaml/core/parser/parse_tab/__init__.py -> build/lib.linux-x86_64-2.7/enaml/core/parser/parse_tab
    copying enaml/core/parser/parse_tab/parsetab2.py -> build/lib.linux-x86_64-2.7/enaml/core/parser/parse_tab
    copying enaml/applib/live_editor_view.enaml -> build/lib.linux-x86_64-2.7/enaml/applib
    copying enaml/stdlib/dock_area_styles.enaml -> build/lib.linux-x86_64-2.7/enaml/stdlib
    copying enaml/stdlib/mapped_view.enaml -> build/lib.linux-x86_64-2.7/enaml/stdlib
    copying enaml/stdlib/fields.enaml -> build/lib.linux-x86_64-2.7/enaml/stdlib
    copying enaml/stdlib/dialog_buttons.enaml -> build/lib.linux-x86_64-2.7/enaml/stdlib
    copying enaml/stdlib/task_dialog.enaml -> build/lib.linux-x86_64-2.7/enaml/stdlib
    copying enaml/stdlib/message_box.enaml -> build/lib.linux-x86_64-2.7/enaml/stdlib
    creating build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/split_horizontal.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/cross_box.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/arrow_south.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/arrow_north.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/split_vertical.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/cross_ex_box.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/center.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/arrow_west.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/arrow_east.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/background.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/bar_horizontal.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/thin_vertical.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/guide_box.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/bar_vertical.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/thin_horizontal.png -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/dock_images/guide_render.py -> build/lib.linux-x86_64-2.7/enaml/qt/docking/dock_images
    copying enaml/qt/docking/enaml_dock_resources.qrc -> build/lib.linux-x86_64-2.7/enaml/qt/docking
    copying enaml/workbench/ui/ui_manifest.enaml -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/workbench_window.enaml -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/ui/workbench_menus.enaml -> build/lib.linux-x86_64-2.7/enaml/workbench/ui
    copying enaml/workbench/core/core_manifest.enaml -> build/lib.linux-x86_64-2.7/enaml/workbench/core
    running build_ext
    building 'enaml.weakmethod' extension
    creating build/temp.linux-x86_64-2.7
    creating build/temp.linux-x86_64-2.7/enaml
    creating build/temp.linux-x86_64-2.7/enaml/src
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/weakmethod.cpp -o build/temp.linux-x86_64-2.7/enaml/src/weakmethod.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/weakmethod.cpp:344:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/weakmethod.o -o build/lib.linux-x86_64-2.7/enaml/weakmethod.so
    building 'enaml.callableref' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/callableref.cpp -o build/temp.linux-x86_64-2.7/enaml/src/callableref.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/callableref.cpp:241:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/callableref.o -o build/lib.linux-x86_64-2.7/enaml/callableref.so
    building 'enaml.signaling' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/signaling.cpp -o build/temp.linux-x86_64-2.7/enaml/src/signaling.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/signaling.cpp:887:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/signaling.o -o build/lib.linux-x86_64-2.7/enaml/signaling.so
    building 'enaml.core.funchelper' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/funchelper.cpp -o build/temp.linux-x86_64-2.7/enaml/src/funchelper.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/funchelper.cpp: In function ‘void initfunchelper()’:
    enaml/src/funchelper.cpp:168:15: warning: unused variable ‘mod’ [-Wunused-variable]
         PyObject* mod = Py_InitModule( "funchelper", funchelper_methods );
                   ^~~
    enaml/src/funchelper.cpp: At global scope:
    enaml/src/funchelper.cpp:158:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/funchelper.o -o build/lib.linux-x86_64-2.7/enaml/core/funchelper.so
    building 'enaml.colorext' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/colorext.cpp -o build/temp.linux-x86_64-2.7/enaml/src/colorext.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/colorext.cpp:258:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/colorext.o -o build/lib.linux-x86_64-2.7/enaml/colorext.so
    building 'enaml.fontext' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/fontext.cpp -o build/temp.linux-x86_64-2.7/enaml/src/fontext.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/fontext.cpp:334:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/fontext.o -o build/lib.linux-x86_64-2.7/enaml/fontext.so
    building 'enaml.core.dynamicscope' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/dynamicscope.cpp -o build/temp.linux-x86_64-2.7/enaml/src/dynamicscope.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/dynamicscope.cpp:864:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/dynamicscope.o -o build/lib.linux-x86_64-2.7/enaml/core/dynamicscope.so
    building 'enaml.core.alias' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/alias.cpp -o build/temp.linux-x86_64-2.7/enaml/src/alias.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/alias.cpp:361:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    x86_64-linux-gnu-g++ -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-z,relro -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -Wl,-z,relro -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security build/temp.linux-x86_64-2.7/enaml/src/alias.o -o build/lib.linux-x86_64-2.7/enaml/core/alias.so
    building 'enaml.core.declarative_function' extension
    x86_64-linux-gnu-gcc -pthread -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fno-strict-aliasing -Wdate-time -D_FORTIFY_SOURCE=2 -g -fdebug-prefix-map=/build/python2.7-VlMpWk/python2.7-2.7.14=. -fstack-protector-strong -Wformat -Werror=format-security -fPIC -I/usr/include/python2.7 -c enaml/src/declarative_function.cpp -o build/temp.linux-x86_64-2.7/enaml/src/declarative_function.o
    cc1plus: warning: command line option ‘-Wstrict-prototypes’ is valid for C/ObjC but not for C++
    enaml/src/declarative_function.cpp: In function ‘PyObject* DFunc_repr(DFunc*)’:
    enaml/src/declarative_function.cpp:159:51: error: format not a string literal and no format arguments [-Werror=format-security]
         return Py23Str_FromFormat( ostr.str().c_str() );
                                                       ^
    enaml/src/declarative_function.cpp: At global scope:
    enaml/src/declarative_function.cpp:494:28: warning: ‘_state’ defined but not used [-Wunused-variable]
     static struct module_state _state;
                                ^~~~~~
    cc1plus: some warnings being treated as errors
    error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
    
    ----------------------------------------
Command "/usr/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-SJfNCR-build/setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install --record /tmp/pip-tV2gNQ-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-SJfNCR-build/

Is there something basic I'm doing wrong, or should this perhaps be filed upstream?

This is with pip 9.0.1 on Debian.

Release

With #77, I think we have everything we need to release this rewrite of inkcut to a wider audience, feature-wise.

Is there anything missing? I guess there's work to do in documentation and building distribution packages / uploading to PyPI?

I guess we should do some 'beta' releases first, or do you think we should first call for some more feedback from people who are not afraid to install from source?

sudo python3 setup.py install: does not install enaml manifests

After installing with sudo python3 setup.py install, /usr/local/bin/inkcut fails with:

Traceback (most recent call last):
  File "/usr/local/bin/inkcut", line 11, in <module>
    load_entry_point('inkcut==2.0.4', 'console_scripts', 'inkcut')()
  File "/usr/local/lib/python3.6/dist-packages/inkcut-2.0.4-py3.6.egg/inkcut/app.py", line 21, in main
    workbench.run()
  File "/usr/local/lib/python3.6/dist-packages/inkcut-2.0.4-py3.6.egg/inkcut/core/workbench.py", line 112, in run
    from inkcut.core.manifest import InkcutManifest
ModuleNotFoundError: No module named 'inkcut.core.manifest'

Indeed it seems the python code has been successfully installed to /usr/local/lib/python3.6/dist-packages/inkcut-2.0.4-py3.6.egg/inkcut/core, but none of the enaml files (including manifest.enaml) are.

scaling

on the inkscape extension when i try to cut a 3cm square it cuts 3.2

and a 5cm is 5.33

without margin

i am using the cutter to cut a printed material i even try to calibrate the measures but without effect it works only with a simple square but with a complicated design still a calibration problem

Rotation

The silhouette orientation is a bit strange: it is fed 'from the front' instead of 'from behind' the device, with the axes like this:

silhouette

This does not really fit the current 'rotation' parameter. What would be the nicest way to model this? Right now I'm leaning towards just keeping the rotation at 0 and specifying the material size as wide instead of (ironically) portrait. Might be surprising at first use but seems like the easiest approach overall?

sudo python2.7 setup.py install: could not find enamlx

When I try to sudo python ./setup.py install, the output ends with:

Installing inkcut script to /usr/local/bin
 
Installed /usr/local/lib/python2.7/dist-packages/inkcut-2.0.4-py2.7.egg
 
Installed /usr/local/lib/python2.7/dist-packages/inkcut-2.0.4-py2.7.egg
Processing dependencies for inkcut==2.0.4
Processing dependencies for inkcut==2.0.4
Searching for enamlx
Searching for enamlx
Reading https://pypi.python.org/simple/enamlx/
Reading https://pypi.python.org/simple/enamlx/
No local packages or working download links found for enamlx
error: Could not find suitable distribution for Requirement.parse('enamlx')

.. which is weird because 'pip install enamlx' worked fine.

(full logs at https://pastebin.com/Axnvmj5F)

Cannot add/edit/delete materials

This feature is required but not yet implemented.

User should be able to:

  • create new materials
  • edit current materials
  • delete materials

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.