Merge pull request #148 from python-escpos/feature/tabcompletion
Feature/tabcompletion
This commit is contained in:
commit
c5d34cc268
|
@ -12,7 +12,6 @@ Content
|
|||
:maxdepth: 1
|
||||
:caption: User Documentation
|
||||
|
||||
user/dependencies
|
||||
user/installation
|
||||
user/methods
|
||||
user/printers
|
||||
|
|
|
@ -1,57 +0,0 @@
|
|||
************
|
||||
Dependencies
|
||||
************
|
||||
|
||||
Fedora
|
||||
------
|
||||
|
||||
Fortunately everything is on Fedora repositories.
|
||||
|
||||
::
|
||||
|
||||
# yum install python-imaging pyserial pyusb python-qrcode
|
||||
|
||||
Ubuntu
|
||||
------
|
||||
|
||||
Ultimately, this instructions also apply to Raspbian, in case you are
|
||||
interested to install python-escpos on your Raspberry with Raspbian.
|
||||
|
||||
Install the packages available on distro repositories.
|
||||
|
||||
::
|
||||
|
||||
# apt-get install python-imaging pyserial
|
||||
|
||||
The packages which are not available at Ubuntu repositories need to be
|
||||
installed manually.
|
||||
|
||||
pyusb
|
||||
^^^^^
|
||||
This is the python binding to libusb-1.0
|
||||
|
||||
* Get the latest tarball from `sourceforge <http://sourceforge.net/projects/pyusb/files/PyUSB%201.0/>`__
|
||||
* Build and install it
|
||||
|
||||
::
|
||||
|
||||
# tar zxvf pyusb-1.*.tar.gz
|
||||
# cd pyusb-1.*
|
||||
# python setup.py build
|
||||
# sudo python setup.py install
|
||||
|
||||
python-qrcode
|
||||
^^^^^^^^^^^^^
|
||||
|
||||
This is the python module to generate QR Codes
|
||||
|
||||
* Checkout the latest code from `github <https://github.com/lincolnloop/python-qrcode>`__
|
||||
* Build and install it
|
||||
|
||||
::
|
||||
|
||||
# git clone https://github.com/lincolnloop/python-qrcode
|
||||
# cd python-qrcode
|
||||
# python setup.py build
|
||||
# sudo python setup.py install
|
||||
|
|
@ -2,16 +2,26 @@
|
|||
Installation
|
||||
************
|
||||
|
||||
System preparation
|
||||
------------------
|
||||
:Last Reviewed: 2016-07-23
|
||||
|
||||
1. Install the required
|
||||
`dependencies <https://github.com/manpaz/python-escpos/wiki/Dependencies>`__
|
||||
Installation with PIP
|
||||
---------------------
|
||||
Installation should be rather straight-forward. python-escpos is on PyPi, so you can simply enter:
|
||||
|
||||
2. Get the *Product ID* and *Vendor ID* from the lsusb command
|
||||
::
|
||||
|
||||
pip install python-escpos
|
||||
|
||||
This should install all necessary dependencies. Apart from that python-escpos should also be
|
||||
available as a Debian package. If you want to always benefit from the newest stable releases you should probably
|
||||
install from PyPi.
|
||||
|
||||
Setup udev for USB-Printers
|
||||
---------------------------
|
||||
1. Get the *Product ID* and *Vendor ID* from the lsusb command
|
||||
``# lsusb Bus 002 Device 001: ID 1a2b:1a2b Device name``
|
||||
|
||||
3. Create a udev rule to let users belonging to *dialout* group use the
|
||||
2. Create a udev rule to let users belonging to *dialout* group use the
|
||||
printer. You can create the file
|
||||
``/etc/udev/rules.d/99-escpos.rules`` and add the following:
|
||||
``SUBSYSTEM=="usb", ATTRS{idVendor}=="1a2b", ATTRS{idProduct}=="1a2b", MODE="0664", GROUP="dialout"``
|
||||
|
@ -20,21 +30,19 @@ System preparation
|
|||
"dialout" group, or use another group you already belongs instead
|
||||
"dialout" and set it in the ``GROUP`` parameter in the above rule.
|
||||
|
||||
4. Restart udev ``# sudo service udev restart`` In some new systems it
|
||||
3. Restart udev ``# sudo service udev restart`` In some new systems it
|
||||
is done with ``# sudo udevadm control --reload``
|
||||
|
||||
Install
|
||||
-------
|
||||
Enabling tab-completion in CLI
|
||||
------------------------------
|
||||
python-escpos has a CLI with tab-completion. This is realised with ``argcomplete``.
|
||||
In order for this to work you have to enable tab-completion, which is described in
|
||||
the `manual of argcomplete <https://argcomplete.readthedocs.io>`__.
|
||||
|
||||
* Clone python-escpos from github
|
||||
* Change directory to python-escpos and install the package
|
||||
If you only want to enable it for python-escpos, or global activation does not work, try this:
|
||||
|
||||
::
|
||||
::
|
||||
|
||||
# cd python-escpos
|
||||
# python setup.py build
|
||||
# sudo python setup.py install
|
||||
|
||||
* Enjoy !!!
|
||||
eval "$(register-python-argcomplete python-escpos)"
|
||||
|
||||
|
||||
|
|
2
setup.py
2
setup.py
|
@ -110,6 +110,8 @@ setup(
|
|||
'six',
|
||||
'appdirs',
|
||||
'pyyaml',
|
||||
'argparse',
|
||||
'argcomplete',
|
||||
],
|
||||
setup_requires=[
|
||||
'setuptools_scm',
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
#!/usr/bin/env python
|
||||
# PYTHON_ARGCOMPLETE_OK
|
||||
""" CLI
|
||||
|
||||
This module acts as a command line interface for python-escpos. It mirrors
|
||||
|
@ -14,6 +15,11 @@ from __future__ import print_function
|
|||
from __future__ import unicode_literals
|
||||
|
||||
import argparse
|
||||
try:
|
||||
import argcomplete
|
||||
except ImportError:
|
||||
# this CLI works nevertheless without argcomplete
|
||||
pass # noqa
|
||||
import sys
|
||||
import six
|
||||
from . import config
|
||||
|
@ -499,6 +505,10 @@ def main():
|
|||
help='Print the version of python-escpos')
|
||||
parser_command_version.set_defaults(version=True)
|
||||
|
||||
# hook in argcomplete
|
||||
if 'argcomplete' in globals():
|
||||
argcomplete.autocomplete(parser)
|
||||
|
||||
# Get only arguments actually passed
|
||||
args_dict = vars(parser.parse_args())
|
||||
if not args_dict:
|
||||
|
|
Loading…
Reference in New Issue