Skip to main content

Host software for 3D printers

Project description

PRINTRUN 2.X

The master branch holds the development of Printrun 2.x. This version of Printrun supports Python 3 and wxPython 4. All new features and developments should be merged to it.

Printrun consists of printcore, pronsole and pronterface, and a small collection of helpful scripts.

  • printcore.py is a library that makes writing reprap hosts easy
  • pronsole.py is an interactive command-line host software with tabcompletion goodness
  • pronterface.py is a graphical host software with the same functionality as pronsole

CONTRIBUTORS

An enormous number of people helped make Printrun. See the list here.

GETTING PRINTRUN

This section suggests using precompiled binaries, this way you get everything bundled into one single package for an easy installation. If you want the newest, shiniest features, you can run Printrun from source.

Windows

A precompiled version is available at https://github.com/kliment/Printrun/releases

MacOS

A precompiled version is available at https://github.com/kliment/Printrun/releases

Note for OSX users: if OSX tells you "pronterface.app" cannot be opened because the developer cannot be verified., you don't need to redownload it. Instead, you need to allow OSX to run the unsigned app. To do this, right click the application in Finder and select Open. Then click Open in the popup window that appears. You only need to do this once.

Linux

Ubuntu/Debian

You can install Printrun from official packages. Install the whole package using:

sudo apt update
sudo apt install printrun

Or get only apps you need by

sudo apt install pronsole or pronterface or plater

Chrome OS

You can use Printrun via crouton ( https://github.com/dnschneid/crouton ). Assuming you want Ubuntu Trusty, you used probably sudo sh -e ~/Downloads/crouton -r trusty -t xfce to install Ubuntu. Fetch and install printrun with the line given above for Ubuntu/Debian.

By default you have no access to the serial port under Chrome OS crouton, so you cannot connect to your 3D printer. Add yourself to the serial group within the linux environment to fix this

sudo usermod -G serial -a <username>

where <username> should be your username. Log out and in to make this group change active and allow communication with your printer.

Fedora

You can install Printrun from official packages. Install the whole package using

sudo dnf install printrun

Or get only apps you need by

sudo dnf install pronsole or pronterface or plater

Adding --enablerepo updates-testing option to dnf might sometimes give you newer packages (but also not very tested).

Archlinux

Packages are available in AUR. Just run

yaourt printrun

and enjoy the pronterface, pronsole, ... commands directly.

RUNNING FROM SOURCE

Run Printrun for source if you want to test out the latest features.

Dependencies

To use pronterface, you need:

  • Python 3 (ideally 3.10),
  • pyserial (or python3-serial on ubuntu/debian)
  • pyreadline (not needed on Linux)
  • wxPython 4
  • pyglet
  • appdirs
  • numpy (for 3D view)
  • pycairo (to use Projector feature)
  • cairosvg (to use Projector feature)
  • dbus (to inhibit sleep on some Linux systems)

Use Python virtual environment

Easiest way to run Printrun from source is to create and use a Python virtual environment. The following section assumes Linux. Please see specific instructions for Windows and macOS below.

Ubuntu/Debian note: You might need to install python3-venv first.

Note: wxPython4 doesn't have Linux wheels available from the Python Package Index yet. Find a proper wheel for your distro at extras.wxpython.org and substitute the link in the below example. You might skip the wheel installation, but that results in compiling wxPython4 from source, which can be time and resource consuming and might fail.

$ git clone https://github.com/kliment/Printrun.git  # clone the repository
$ cd Printrun  # change to Printrun directory
$ python3 -m venv venv  # create an virtual environment
$ . venv/bin/activate  # activate the virtual environment (notice the space after the dot)
(venv) $ python -m pip install https://extras.wxpython.org/wxPython4/extras/linux/gtk3/fedora-27/wxPython-4.0.1-cp36-cp36m-linux_x86_64.whl  # replace the link with yours
(venv) $ python -m pip install -r requirements.txt  # install the rest of dependencies
(venv) $ python pronterface.py  # run Pronterface

Cython-based G-Code parser

Printrun default G-Code parser is quite memory hungry, but we also provide a much lighter one which just needs an extra build-time dependency (Cython), plus compiling the extension with:

(venv) $ python -m pip install Cython
(venv) $ python setup.py build_ext --inplace

The warning message

WARNING:root:Memory-efficient GCoder implementation unavailable: No module named gcoder_line

means that this optimized G-Code parser hasn't been compiled. To get rid of it and benefit from the better implementation, please install Cython and run the command above.

Ubuntu/Debian

The above method is the recommended way to run Printrun 2 from source. However, if you can't find a suitable wxPython4 wheel, or if it fails for other reasons, it could be run without using a python virtual environment. For users of Debian 10 Buster or later and Ubuntu 18.04 Bionic Beaver or later.

Install the dependencies:

sudo apt install python3-serial python3-numpy cython3 python3-libxml2 python3-gi python3-dbus python3-psutil python3-cairosvg libpython3-dev python3-appdirs python3-wxgtk4.0
sudo apt install python3-pip
pip3 install --user pyglet

Install git, clone this repository:

sudo apt install git
git clone https://github.com/kliment/Printrun.git
cd Printrun

Windows

First download and install GIT for Windows, Python 3.10 and a C-compiler environment. For the next steps we need a CMD window or a PowerShell window. You can use Windows Terminal for this as well. Create and navigate to a directory of your choice where you want to download the source files of this repository and follow the next steps:

CMD

> git clone https://github.com/kliment/Printrun.git
> cd Printrun
> git submodule update --init --recursive
> release_windows.bat

PowerShell:

> git clone https://github.com/kliment/Printrun.git
> cd Printrun
> git submodule update --init --recursive
> ./release_windows.bat

The script above will clone this repository and the submodule PrintrunGTK3. The script 'release_windows.bat' will install a virtual environment named v3, download all needed python libraries and compile the binaries for Pronterface.exe and Pronsole.exe. You will find the files in the new created directory 'dist'. You will find further and more detailed information in the script release_windows.bat. Further information for the linked submodul: PrintrunGTK3 Run Pronterface or Pronsole from the binary files or from source calling pronterface.py for the GUI version and pronsole.py for the commandline version.

Run 'release_windows.bat' when ever you make changes or updates. With each new run it will compile the binaries and update all involved libraries in the virtual environment if needed. Delete the virtual environment if you have problems with it. Use 'git submodule update --init --recursive' for updating the submodule

macOS

Install Python 3, you can use Brew:

$ brew install python3

Then continue to install and set up Printrun:

$ git clone https://github.com/kliment/Printrun.git  # clone the repository
$ cd Printrun  # change to Printrun directory
$ python3 -m venv venv  # create an virtual environment
$ . venv/bin/activate  # activate the virtual environment (notice the space after the dot)
(venv) $ python -m pip install -r requirements.txt  # install the rest of dependencies
# follow instructions for cython gcoder here if desired
(venv) $ python pronterface.py  # run Pronterface

USING PRINTRUN

USING PRONTERFACE

When you're done setting up Printrun, you can start pronterface.py in the directory you unpacked it. Select the port name you are using from the first drop-down, select your baud rate, and hit connect. Load an STL (see the note on skeinforge below) or GCODE file, and you can upload it to SD or print it directly. The "monitor printer" function, when enabled, checks the printer state (temperatures, SD print progress) every 3 seconds. The command box recognizes all pronsole commands, but has no tabcompletion.

If you want to load stl files, you need to install a slicing program such as Slic3r or Skeinforge and add its path to the settings.

Slic3r integration

To invoke Slic3r directly from Pronterface your slicing command (Settings > Options > External Commands > Slice Command) should look something like slic3r $s -o $o. If Slic3r is properly installed "slic3r" will suffice, otherwise, replace it with the full path to Slic3r's executable.

If the Slic3r integration option (Settings > Options > User interface > Enable Slic3r integration) is checked a new menu will appear after application restart which will allow you to choose among your previously saved Slic3r Print/Filament/Printer settings.

USING PRONSOLE

To use pronsole, you need:

  • Python 3 (ideally 3.10),
  • pyserial (or python3-serial on ubuntu/debian) and
  • pyreadline (not needed on Linux)

Start pronsole and you will be greeted with a command prompt. Type help to view the available commands. All commands have internal help, which you can access by typing "help commandname", for example "help connect"

If you want to load stl files, you need to put a version of skeinforge (doesn't matter which one) in a folder called "skeinforge". The "skeinforge" folder must be in the same folder as pronsole.py

USING PRINTCORE

To use printcore you need Python 3 (ideally 3.10) and pyserial (or python3-serial on ubuntu/debian) See pronsole for an example of a full-featured host, the bottom of printcore.py for a simple command-line sender, or the following code example:

#to send a file of gcode to the printer
from printrun.printcore import printcore
from printrun import gcoder
import time
p=printcore('/dev/ttyUSB0', 115200) # or p.printcore('COM3',115200) on Windows
gcode=[i.strip() for i in open('filename.gcode')] # or pass in your own array of gcode lines instead of reading from a file
gcode = gcoder.LightGCode(gcode)

# startprint silently exits if not connected yet
while not p.online:
  time.sleep(0.1)

p.startprint(gcode) # this will start a print

#If you need to interact with the printer:
p.send_now("M105") # this will send M105 immediately, ahead of the rest of the print
p.pause() # use these to pause/resume the current print
p.resume()
p.disconnect() # this is how you disconnect from the printer once you are done. This will also stop running prints.

PLATERS

Printrun provides two platers: a STL plater (plater.py) and a G-Code plater (gcodeplater.py).

3D VIEWER CONTROLS

When the 3D viewer is enabled, the controls are the following:

  • Mousewheel: zoom (Control reduces the zoom change steps)
  • Shift+mousewheel: explore layers (in print gcode view ; Control key makes layer change by increments of 10 instead of 1) or rotate object (in platers)
  • Left-click dragging: rotate view
  • Right-click dragging: pan view
  • Shift + left-click dragging: move object (in platers)
  • Page up/down keys: zoom (Control reduces the zoom change steps)
  • Up/down keys: explore layers
  • R key: reset view
  • F key: fit view to display entire print
  • C key: toggle "display current layer only" mode (in print gcode view)

RPC SERVER

pronterface and pronsole start a RPC server, which runs by default on localhost port 7978, which provides print progress information. Here is a sample Python script querying the print status:

import xmlrpc.client

rpc = xmlrpc.client.ServerProxy('http://localhost:7978')
print(rpc.status())

CONFIGURATION

Build dimensions

Build dimensions can be specified using the build_dimensions option (which can be graphically edited in Pronterface settings). This option is formed of 9 parameters: 3 for the build volume dimensions, 3 for the build volume coordinate system offset minimum, 3 for the endstop positions.

The default value is 200x200x100+0+0+0+0+0+0, which corresponds to a 200x200mm (width x height) bed with 100mm travel in Z (there are the first three numbers) and no offset. The absolute coordinates system origin (0,0,0) is at the bottom left corner on the bed surface, and the top right corner on the bed surface is (200,200,0).

A common practice is to have the origin of the coordinate system (0,0,0) at the center of the bed surface. This is achieved by using the next three parameters, for instance with 200x200x100-100-100+0+0+0+0. In this case, the bottom left corner of the bed will be at (-100,-100,0) and the top right one at (100,100,0).

These two sets of settings should be sufficient for most people. However, for some specific complicated setups and GCodes and some features, we might also need the endstops positions for perfect display. These positions (which are usually 0,0,0, so if you don't know you probably have a standard setup) are specified in absolute coordinates, so if you have your bed starting at (-100,-100,0) and your endstops are 10mm away from the bed left and right and the Z endstop 5mm above the bed, you'll want to set the endstops positions to (-110,-110,5) for this option.

USING MACROS AND CUSTOM BUTTONS

Macros in pronsole and pronterface

To send simple G-code (or pronsole command) sequence is as simple as entering them one by one in macro definition. If you want to use parameters for your macros, substitute them with {0} {1} {2} ... etc.

All macros are saved automatically immediately after being entered.

Example 1, simple one-line alias:

PC> macro where M114

Instead of having to remember the code to query position, you can query the position:

PC> where
X:25.00Y:11.43Z:5.11E:0.00

Example 2 - macros to switch between different slicer programs, using "set" command to change options:

PC> macro use_slicer
Enter macro using indented lines, end with empty line
..> set sliceoptscommand Slic3r/slic3r.exe --load slic3r.ini
..> set slicecommand Slic3r/slic3r.exe $s --load slic3r.ini --output $o
Macro 'use_slicer' defined
PC> macro use_sfact
..> set sliceoptscommand python skeinforge/skeinforge_application/skeinforge.py
..> set slicecommand python skeinforge/skeinforge_application/skeinforge_utilities/skeinforge_craft.py $s
Macro 'use_sfact' defined

Example 3, simple parametric macro:

PC> macro move_down_by
Enter macro using indented lines, end with empty line
..> G91
..> G1 Z-{0}
..> G90
..>

Invoke the macro to move the printhead down by 5 millimeters:

PC> move_down_by 5

For more powerful macro programming, it is possible to use python code escaping using ! symbol in front of macro commands. Note that this python code invocation also works in interactive prompt:

PC> !print("Hello, printer!")
Hello printer!

PC> macro debug_on !self.p.loud = 1
Macro 'debug_on' defined
PC> debug_on
PC> M114
SENT:  M114
X:0.00Y:0.00Z:0.00E:0.00 Count X:0.00Y:0.00Z:0.00
RECV:  X:0.00Y:0.00Z:0.00E:0.00 Count X:0.00Y:0.00Z:0.00
RECV:  ok

You can use macro command itself to create simple self-modify or toggle functionality:

Example: swapping two macros to implement toggle:

PC> macro toggle_debug_on
Enter macro using indented lines, end with empty line
..> !self.p.loud = 1
..> !print("Diagnostic information ON")
..> macro toggle_debug toggle_debug_off
..>
Macro 'toggle_debug_on' defined
PC> macro toggle_debug_off
Enter macro using indented lines, end with empty line
..> !self.p.loud = 0
..> !print("Diagnostic information OFF")
..> macro toggle_debug toggle_debug_on
..>
Macro 'toggle_debug_off' defined
PC> macro toggle_debug toggle_debug_on
Macro 'toggle_debug' defined

Now, each time we invoke "toggle_debug" macro, it toggles debug information on and off:

PC> toggle_debug
Diagnostic information ON

PC> toggle_debug
Diagnostic information OFF

When python code (using ! symbol) is used in macros, it is even possible to use blocks/conditionals/loops. It is okay to mix python code with pronsole commands, just keep the python indentation. For example, following macro toggles the diagnostic information similarily to the previous example:

!if self.p.loud:
  !self.p.loud = 0
  !print("Diagnostic information OFF")
!else:
  !self.p.loud = 1
  !print("Diagnostic information ON")

Macro parameters are available in '!'-escaped python code as locally defined list variable: arg[0] arg[1] ... arg[N]

All python code is executed in the context of the pronsole (or PronterWindow) object, so it is possible to use all internal variables and methods, which provide great deal of functionality. However the internal variables and methods are not very well documented and may be subject of change, as the program is developed. Therefore it is best to use pronsole commands, which easily contain majority of the functionality that might be needed.

Some useful python-mode-only variables:

!self.settings - contains all settings, e.g.
  port (!self.settings.port), baudrate, xy_feedrate, e_feedrate, slicecommand, final_command, build_dimensions
  You can set them also via pronsole command "set", but you can query the values only via python code.
!self.p - printcore object (see USING PRINTCORE section for using printcore object)
!self.cur_button - if macro was invoked via custom button, the number of the custom button, e.g. for usage in "button" command
!self.gwindow - wx graphical interface object for pronterface (highly risky to use because the GUI implementation details may change a lot between versions)

Some useful methods:

!self.onecmd - invokes raw command, e.g.
    !self.onecmd("move x 10")
    !self.onecmd("!print self.p.loud")
    !self.onecmd("button "+self.cur_button+" fanOFF /C cyan M107")
!self.project - invoke Projector

USING HOST COMMANDS

Pronsole and the console interface in Pronterface accept a number of commands which you can either use directly or inside your G-Code. To run a host command from inside a G-Code, simply prefix it with ;@.

List of available commands:

  • pause: pauses the print until the user resumes it
  • run_script scriptname [arg1 ...]: runs a custom script or program on the host computer. This can for instance be used to produce a sound to warn the user (e.g. run_script beep -r 2 on machines were the beep util is available), or to send an email or text message at the end of a print. The $s token can be used in the arguments to get the current gcode file name
  • run_gcode_script scripname [arg1 ...]: same as run_script, except that all lines displayed by the script will be interpreted in turn (so that G-Code lines will be immediately sent to the printer)
  • shell pythoncommand: run a python command (can also be achieved by doing !pythoncommand)
  • set option value: sets the value of an option, e.g. set mainviz 3D
  • connect
  • block_until_online: wait for the printer to be online. For instance you can do python pronsole.py -e "connect" -e "block_until_online" -e "upload object.gcode" to start pronsole, connect for the printer, wait for it to be online to start uploading the object.gcode file.
  • disconnect
  • load gcodefile
  • upload gcodefile target.g: upload gcodefile to target.g on the SD card
  • slice stlfile: slice stlfile and load the produced G-Code
  • print: print the currently loaded file
  • sdprint target.g: start a SD print
  • ls: list files on SD card
  • eta: display remaining print time
  • gettemp: get current printer temperatures
  • settemp: set hotend target temperature
  • bedtemp: set bed target temperature
  • monitor: monitor printer progress during a print
  • tool K: switch to tool K
  • move xK: move along x axis (works with other axes too)
  • extrude length [speed]
  • reverse length [speed]
  • home [axis]
  • off: turns off fans, motors, extruder, heatbed, power supply
  • exit

LICENSE

Copyright (C) 2011-2022 Kliment Yanev, Guillaume Seguin, and the other contributors listed in CONTRIBUTORS.md

Printrun is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

Printrun is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with Printrun.  If not, see <http://www.gnu.org/licenses/>.

All scripts should contain this license note, if not, feel free to ask us. Please note that files where it is difficult to state this license note (such as images) are distributed under the same terms.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Printrun-2.0.1.tar.gz (461.3 kB view details)

Uploaded Source

Built Distributions

Printrun-2.0.1-cp310-cp310-win_amd64.whl (369.0 kB view details)

Uploaded CPython 3.10 Windows x86-64

Printrun-2.0.1-cp310-cp310-win32.whl (366.3 kB view details)

Uploaded CPython 3.10 Windows x86

Printrun-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (459.6 kB view details)

Uploaded CPython 3.10 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.0.1-cp310-cp310-macosx_11_0_x86_64.whl (367.0 kB view details)

Uploaded CPython 3.10 macOS 11.0+ x86-64

Printrun-2.0.1-cp39-cp39-win_amd64.whl (369.8 kB view details)

Uploaded CPython 3.9 Windows x86-64

Printrun-2.0.1-cp39-cp39-win32.whl (366.8 kB view details)

Uploaded CPython 3.9 Windows x86

Printrun-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (462.8 kB view details)

Uploaded CPython 3.9 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.0.1-cp39-cp39-macosx_11_0_x86_64.whl (367.7 kB view details)

Uploaded CPython 3.9 macOS 11.0+ x86-64

Printrun-2.0.1-cp38-cp38-win_amd64.whl (369.7 kB view details)

Uploaded CPython 3.8 Windows x86-64

Printrun-2.0.1-cp38-cp38-win32.whl (366.8 kB view details)

Uploaded CPython 3.8 Windows x86

Printrun-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (463.0 kB view details)

Uploaded CPython 3.8 manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.0.1-cp38-cp38-macosx_10_15_x86_64.whl (367.6 kB view details)

Uploaded CPython 3.8 macOS 10.15+ x86-64

Printrun-2.0.1-cp37-cp37m-win_amd64.whl (369.7 kB view details)

Uploaded CPython 3.7m Windows x86-64

Printrun-2.0.1-cp37-cp37m-win32.whl (366.7 kB view details)

Uploaded CPython 3.7m Windows x86

Printrun-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (458.7 kB view details)

Uploaded CPython 3.7m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

Printrun-2.0.1-cp37-cp37m-macosx_10_15_x86_64.whl (367.5 kB view details)

Uploaded CPython 3.7m macOS 10.15+ x86-64

Printrun-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl (458.2 kB view details)

Uploaded CPython 3.6m manylinux: glibc 2.17+ x86-64 manylinux: glibc 2.5+ x86-64

File details

Details for the file Printrun-2.0.1.tar.gz.

File metadata

  • Download URL: Printrun-2.0.1.tar.gz
  • Upload date:
  • Size: 461.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for Printrun-2.0.1.tar.gz
Algorithm Hash digest
SHA256 f79c81e5dab99899359e61596a79b02e5f20f333fccf1b5ad7fae155ab8d0874
MD5 400388f20488fef6d1858a7c2e2d40c0
BLAKE2b-256 261751167e17f3e44d283930da801ae36d497763281bc2c0065fc2c4e5d751b0

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 369.0 kB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for Printrun-2.0.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d6b67a688fa16e7b012c7007fa9058c54ba5374e0ec1e62e3a31be91e4fe4fc4
MD5 42544ac8aaee6512e0460bc9810387f4
BLAKE2b-256 f2b017e594d03e28b515bb2dd1f3c6cf8ff8bad9cda35093aed874a4060da761

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp310-cp310-win32.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp310-cp310-win32.whl
  • Upload date:
  • Size: 366.3 kB
  • Tags: CPython 3.10, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.11

File hashes

Hashes for Printrun-2.0.1-cp310-cp310-win32.whl
Algorithm Hash digest
SHA256 5604a9a0830682094faa84b0947f04137406b710558c791d799dcd21474979bb
MD5 88f3a9181fc339ac79c994bb4d4b6bbb
BLAKE2b-256 6b020440532f27a2f3dc7ffd171e0115be0ae3d92e2e6ddd31249819987f1406

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 31c209004687fcd8a8c32607c865c13461fb968ca1a6e0754341a974b04227ef
MD5 3ea74770f78622777d8f061e9b3ad7d4
BLAKE2b-256 22435b02236ad926a96122c982fbbadb332154150a77cd28488094f69781e68c

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp310-cp310-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp310-cp310-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 5e670fec500b8686df4b957a6468b969f6c59b9a568da3c4a9231b88ab30f47e
MD5 d4a9f54fae1fb810bc6ae6bbc6d6475a
BLAKE2b-256 b755c39f3a2f6aa8c0fac403174427a10ec9b8e7c642fcd2b1c36fffa9202d9f

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 369.8 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for Printrun-2.0.1-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 98356bb78485a1349b41910acb1749f40f4c8827c272400bd697e08d047b86d3
MD5 cabc02901ac751905e44bb36ce61a053
BLAKE2b-256 e4ff1ae11b74e5f3a2d052fbd58556abffc7903dab2b0cc63b5643515612ac85

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp39-cp39-win32.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp39-cp39-win32.whl
  • Upload date:
  • Size: 366.8 kB
  • Tags: CPython 3.9, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.13

File hashes

Hashes for Printrun-2.0.1-cp39-cp39-win32.whl
Algorithm Hash digest
SHA256 6e729afa856f656e90aad529d9a0443c22565e6e1f5b0099b7afb2b253f791c5
MD5 f53eaeb8ec6d0d9f6051df9ac18f5201
BLAKE2b-256 19408a3e6705d91d758147654c338c6852f18ae02a705eb1c68ef34ae4a37148

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f44dd5ca2230c4d2aa8ea8712bfeb1f17a4c8a8e779df7cb8283770eb9f22720
MD5 20447fd909aba2b742a75250d50f72a4
BLAKE2b-256 a2a9bd9f8c1cc7ecf9c55dff346612a7c436a0a30e20b834ed7511db77ba3037

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp39-cp39-macosx_11_0_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp39-cp39-macosx_11_0_x86_64.whl
Algorithm Hash digest
SHA256 cf49e15a157203800a16734290179d4174c9358ff5a9390cf3ef9f914602d969
MD5 f0e783dc86ffa8637a944466b61674d4
BLAKE2b-256 d0be4188bdc9de456cc3046c77730a076133a0551552cb199df708d136c291be

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp38-cp38-win_amd64.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp38-cp38-win_amd64.whl
  • Upload date:
  • Size: 369.7 kB
  • Tags: CPython 3.8, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for Printrun-2.0.1-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 b268a86f3be1ec6491250d50951577713c9677548a0942d6d8ad16023131e06b
MD5 d519e5ec52e790f20120d4921cf97ca7
BLAKE2b-256 e05ac994e46d600d8e9f039ac07ffa9bebca85ae31d7f6b080150908e11516a9

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp38-cp38-win32.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp38-cp38-win32.whl
  • Upload date:
  • Size: 366.8 kB
  • Tags: CPython 3.8, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.8.10

File hashes

Hashes for Printrun-2.0.1-cp38-cp38-win32.whl
Algorithm Hash digest
SHA256 6e670d87acff34303f865bfa0bb893dcb8f4176faeed57a391aac6814c8a8cf3
MD5 6811390037f42b97bdf23d8c65764dc1
BLAKE2b-256 3497ba13690b79b2521f148e583ee9115d6baadc4d13a2ce0852713f41f33490

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cdeeab33e2b9a9ce68e6b23233c27d743be4e1b3773dca08e41db9385a65b77f
MD5 c7bee1c6e1b51594a2c0f897c8f1c891
BLAKE2b-256 2e81a9f6d0017ba9a692957bf34ed5429706072527e238a5a20461d66369b38c

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp38-cp38-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp38-cp38-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 17ce3e58e68f16586def184c8f6715197db211ef7127d850f5a435c25aee7d06
MD5 a33f327a4c916aa519fdf709d520e17a
BLAKE2b-256 4aad991e8af6be9157e029dded960a1b3bbbacc1bb31b3c48c10acd07100cadf

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp37-cp37m-win_amd64.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp37-cp37m-win_amd64.whl
  • Upload date:
  • Size: 369.7 kB
  • Tags: CPython 3.7m, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.9

File hashes

Hashes for Printrun-2.0.1-cp37-cp37m-win_amd64.whl
Algorithm Hash digest
SHA256 b50d908d52dc08ca302d9ba10db85a42912e6e8072a92250df2f644be7629611
MD5 5c959c4c774763d4b1f83fd3858d9af9
BLAKE2b-256 abe8775a11db17c9c246464cc8c5db71b8b88de59456d3b80a51cde8b6e3df35

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp37-cp37m-win32.whl.

File metadata

  • Download URL: Printrun-2.0.1-cp37-cp37m-win32.whl
  • Upload date:
  • Size: 366.7 kB
  • Tags: CPython 3.7m, Windows x86
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.7.9

File hashes

Hashes for Printrun-2.0.1-cp37-cp37m-win32.whl
Algorithm Hash digest
SHA256 4839fa5c1783a4e2c8134d1096546d932a809038f450370f764f25fb0a608403
MD5 7d0d8b5998a06e74d71fb2779bc7153e
BLAKE2b-256 6106fbf59f77da2f51573ebc42e0bb825085e01df49fe50b714cb070f33afc24

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8d6f0fd0f2fb2ae4ac7664440ea4012d2141192f195e7f2e97b98a9e593935e3
MD5 e069a9c230f06c2b129d272e690efdc1
BLAKE2b-256 6f6afff8e51ec74a3d03d5ee2e99f396df079f6ef6f17aa8e59080d930074659

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp37-cp37m-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp37-cp37m-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 70485090d99481e5338a45f35215c068e31bf039b6c2c28dd52099809e4c76df
MD5 d80b58eb0ee45cf3ee3f031e8a2219d3
BLAKE2b-256 3d93a54b1e239664dce607686b80845e127614de0cf9e4d4039ed27fb48058a8

See more details on using hashes here.

Provenance

File details

Details for the file Printrun-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for Printrun-2.0.1-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 56c43e58179d788d4956365f76fbd9dbeb02886b57ee7cc153e8e40ebc3d2b06
MD5 690bf3fcf5034cbefc0f64b20dca9441
BLAKE2b-256 088442dbd0b6d4f4806c5a70ee87fe3ab045e55cc93b722f732649117052e38e

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page