Merge branch 'master' into development
This commit is contained in:
commit
c9953c2f56
|
@ -0,0 +1,43 @@
|
|||
# This workflow will install Python dependencies, run tests and lint with a variety of Python versions
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions
|
||||
|
||||
name: Python package
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ master ]
|
||||
pull_request:
|
||||
branches: [ master ]
|
||||
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.5, 3.6, 3.7, 3.8]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
submodules: 'recursive'
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
python -m pip install --upgrade pip
|
||||
pip install flake8 pytest tox tox-gh-actions
|
||||
if [ -f requirements.txt ]; then pip install -r requirements.txt; fi
|
||||
- name: Lint with flake8
|
||||
run: |
|
||||
# stop the build if there are Python syntax errors or undefined names
|
||||
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
|
||||
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
|
||||
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics
|
||||
- name: Test with tox
|
||||
run: |
|
||||
tox
|
||||
env:
|
||||
ESCPOS_CAPABILITIES_FILE: /home/runner/work/python-escpos/python-escpos/capabilities-data/dist/capabilities.json
|
|
@ -33,3 +33,6 @@ test/test-cli-output/
|
|||
*.swp
|
||||
*.swn
|
||||
*.swo
|
||||
|
||||
# vscode
|
||||
.vscode/settings.json
|
||||
|
|
20
.travis.yml
20
.travis.yml
|
@ -1,7 +1,7 @@
|
|||
language: python
|
||||
sudo: false
|
||||
cache: pip
|
||||
dist: xenial
|
||||
dist: bionic
|
||||
git:
|
||||
depth: 100000
|
||||
addons:
|
||||
|
@ -29,35 +29,27 @@ matrix:
|
|||
osx_image: xcode10.2
|
||||
language: shell
|
||||
env: TOXENV=py37 ESCPOS_CAPABILITIES_FILE=/Users/travis/build/python-escpos/python-escpos/capabilities-data/dist/capabilities.json
|
||||
- python: 2.7
|
||||
env: TOXENV=py27
|
||||
- python: 3.4
|
||||
env: TOXENV=py34
|
||||
- python: 3.5
|
||||
env: TOXENV=py35
|
||||
- python: 3.6
|
||||
env: TOXENV=py36
|
||||
- python: 3.6-dev
|
||||
env: TOXENV=py36
|
||||
- python: 3.7
|
||||
env: TOXENV=py37
|
||||
- python: 3.7-dev
|
||||
env: TOXENV=py37
|
||||
- python: 3.8
|
||||
env: TOXENV=py38
|
||||
- python: 3.8-dev
|
||||
env: TOXENV=py38
|
||||
- python: nightly
|
||||
env: TOXENV=py38
|
||||
- python: pypy
|
||||
env: TOXENV=pypy
|
||||
- python: pypy3
|
||||
env: TOXENV=pypy3
|
||||
- python: 3.7
|
||||
- python: 3.8
|
||||
env: TOXENV=docs
|
||||
- python: 3.7
|
||||
- python: 3.8
|
||||
env: TOXENV=flake8
|
||||
allow_failures:
|
||||
- python: 2.7
|
||||
- python: 3.6-dev
|
||||
- python: 3.7-dev
|
||||
- python: 3.8-dev
|
||||
- python: nightly
|
||||
|
@ -86,4 +78,4 @@ deploy:
|
|||
tags: true
|
||||
repo: python-escpos/python-escpos
|
||||
branch: master
|
||||
condition: $TRAVIS_PYTHON_VERSION = "3.7"
|
||||
condition: $TRAVIS_PYTHON_VERSION = "3.8"
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=733558
|
||||
// for the documentation about the tasks.json format
|
||||
"version": "2.0.0",
|
||||
"tasks": [
|
||||
{
|
||||
"label": "test with tox",
|
||||
"type": "shell",
|
||||
"command": "tox",
|
||||
"group": {
|
||||
"kind": "test",
|
||||
"isDefault": true
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
3
AUTHORS
3
AUTHORS
|
@ -1,8 +1,10 @@
|
|||
Ahmed Tahri
|
||||
akeonly
|
||||
Alexander Bougakov
|
||||
Alex Debiasio
|
||||
Asuki Kono
|
||||
belono
|
||||
Brian
|
||||
Christoph Heuel
|
||||
Cody (Quantified Code Bot)
|
||||
csoft2k
|
||||
|
@ -19,6 +21,7 @@ Kristi
|
|||
ldos
|
||||
Lucy Linder
|
||||
Manuel F Martinez
|
||||
Maximilian Wagenbach
|
||||
Michael Billington
|
||||
Michael Elsdörfer
|
||||
mrwunderbar666
|
||||
|
|
|
@ -1,10 +1,35 @@
|
|||
*********
|
||||
Changelog
|
||||
*********
|
||||
2020-05-09 - Version 3.0a7 - "No Fixed Abode"
|
||||
---------------------------------------------
|
||||
This release is the eight alpha release of the new version 3.0.
|
||||
Please be aware that the API is subject to change until v3.0
|
||||
is released.
|
||||
|
||||
This release also marks the point at which the project transitioned
|
||||
to having only a master-branch (and not an additional development branch).
|
||||
|
||||
changes
|
||||
^^^^^^^
|
||||
- add Exception for NotImplementedError in detach_kernel_driver
|
||||
- update installation information
|
||||
- update and improve documentation
|
||||
- add error handling to image centering flag
|
||||
- update and fix tox and CI environment, preparing drop of support for Python 2
|
||||
|
||||
contributors
|
||||
^^^^^^^^^^^^
|
||||
- Alexander Bougakov
|
||||
- Brian
|
||||
- Yaisel Hurtado
|
||||
- Maximilan Wagenbach
|
||||
- Patrick Kanzler
|
||||
|
||||
2019-06-19 - Version 3.0a6 - "Mistake not..."
|
||||
---------------------------------------------
|
||||
This release is the seventh alpha release of the new version 3.0.
|
||||
Please be aware the the API is subject to change until v3.0 is
|
||||
Please be aware that the API is subject to change until v3.0 is
|
||||
released.
|
||||
|
||||
changes
|
||||
|
|
|
@ -56,12 +56,9 @@ Apart from that the travis-log and the check by Landscape will provide you with
|
|||
|
||||
GIT
|
||||
^^^
|
||||
The master-branch contains code that has been released to PyPi. A release is marked with a tag
|
||||
corresponding to the version. Issues are closed when they have been resolved in the development-branch.
|
||||
|
||||
When you have a change to make, begin by creating a new branch from the HEAD of `python-escpos/development`.
|
||||
Name your branch to indicate what you are trying to achieve. Good branch names might
|
||||
be `improve/text-handling`, `feature/enable-color-printing`.
|
||||
The master-branch contains the main development of the project. A release to PyPi is marked with a tag
|
||||
corresponding to the version. Issues are closed when they have been resolved by merging into the master-branch.
|
||||
When you have a change to make, begin by creating a new branch from the HEAD of `python-escpos/master`.
|
||||
|
||||
Please try to group your commits into logical units. If you need to tidy up your branch, you can make use of a
|
||||
git feature called an 'interactive rebase' before making a pull request. A small, self-contained change-set is
|
||||
|
|
|
@ -4,6 +4,7 @@ include LICENSE
|
|||
include INSTALL
|
||||
include tox.ini
|
||||
include capabilities-data/dist/capabilities.json
|
||||
include src/escpos/capabilities.json
|
||||
recursive-include doc *.bat
|
||||
recursive-include doc *.ico
|
||||
recursive-include doc *.py
|
||||
|
|
19
README.rst
19
README.rst
|
@ -76,6 +76,25 @@ Another example based on the Network printer class:
|
|||
kitchen.text("Hello World\n")
|
||||
kitchen.barcode('1324354657687', 'EAN13', 64, 2, '', '')
|
||||
kitchen.cut()
|
||||
|
||||
Another example based on the Serial printer class:
|
||||
|
||||
.. code:: python
|
||||
|
||||
from escpos.printer import Serial
|
||||
|
||||
""" 9600 Baud, 8N1, Flow Control Enabled """
|
||||
p = Serial(devfile='/dev/tty.usbserial',
|
||||
baudrate=9600,
|
||||
bytesize=8,
|
||||
parity='N',
|
||||
stopbits=1,
|
||||
timeout=1.00,
|
||||
dsrdtr=True)
|
||||
|
||||
p.text("Hello World\n")
|
||||
p.qr("You can readme from your smartphone")
|
||||
p.cut()
|
||||
|
||||
|
||||
The full project-documentation is available on `Read the Docs <https://python-escpos.readthedocs.io>`_.
|
||||
|
|
|
@ -1 +1 @@
|
|||
Subproject commit 8885283d71a43758aa63d633fd2301df13dce9d5
|
||||
Subproject commit 3b5b35cfd35d297f9085ec16d47d1f77c3f1e768
|
|
@ -48,14 +48,16 @@ to have and the second yields the "Output Endpoint" address.
|
|||
|
||||
By default the "Interface" number is "0" and the "Output Endpoint"
|
||||
address is "0x01". If you have other values then you can define them on
|
||||
your instance. So, assuming that we have another printer where in\_ep is
|
||||
on 0x81 and out\_ep=0x02, then the printer definition should look like:
|
||||
your instance. So, assuming that we have another printer, CT-S2000,
|
||||
manufactured by Citizen (with "Vendor ID" of 2730 and "Product ID" of 0fff)
|
||||
where in\_ep is on 0x81 and out\_ep=0x02, then the printer definition should
|
||||
look like:
|
||||
|
||||
**Generic USB Printer initialization**
|
||||
|
||||
::
|
||||
|
||||
p = printer.Usb(0x1a2b,0x1a2b,0,0x81,0x02)
|
||||
p = printer.Usb(0x2730, 0x0fff, 0, 0x81, 0x02)
|
||||
|
||||
Network printer
|
||||
^^^^^^^^^^^^^^^
|
||||
|
|
|
@ -3,5 +3,5 @@ formats:
|
|||
- epub
|
||||
requirements_file: doc/requirements.txt
|
||||
python:
|
||||
version: 2
|
||||
version: 3
|
||||
setup_py_install: true
|
5
setup.py
5
setup.py
|
@ -66,12 +66,11 @@ setup(
|
|||
'Operating System :: OS Independent',
|
||||
'Programming Language :: Python',
|
||||
'Programming Language :: Python :: 3',
|
||||
'Programming Language :: Python :: 3.4',
|
||||
'Programming Language :: Python :: 3.5',
|
||||
'Programming Language :: Python :: 3.6',
|
||||
'Programming Language :: Python :: 3.7',
|
||||
'Programming Language :: Python :: 3.8',
|
||||
'Programming Language :: Python :: Implementation :: CPython',
|
||||
'Programming Language :: Python :: Implementation :: PyPy',
|
||||
'Topic :: Software Development :: Libraries :: Python Modules',
|
||||
'Topic :: Office/Business :: Financial :: Point-Of-Sale',
|
||||
],
|
||||
|
@ -100,7 +99,7 @@ setup(
|
|||
'nose',
|
||||
'scripttest',
|
||||
'mock',
|
||||
'hypothesis!=3.56.9,<4',
|
||||
'hypothesis>4',
|
||||
'flake8'
|
||||
],
|
||||
entry_points={
|
||||
|
|
|
@ -106,6 +106,9 @@ class Escpos(object):
|
|||
* `graphics`: prints with the `GS ( L`-command
|
||||
* `bitImageColumn`: prints with the `ESC *`-command
|
||||
|
||||
When trying to center an image make sure you have initialized the printer with a valid profile, that
|
||||
contains a media width pixel field. Otherwise the centering will have no effect.
|
||||
|
||||
:param img_source: PIL image or filename to load: `jpg`, `gif`, `png` or `bmp`
|
||||
:param high_density_vertical: print in high density in vertical direction *default:* True
|
||||
:param high_density_horizontal: print in high density in horizontal direction *default:* True
|
||||
|
@ -117,6 +120,10 @@ class Escpos(object):
|
|||
im = EscposImage(img_source)
|
||||
|
||||
try:
|
||||
if self.profile.profile_data['media']['width']['pixels'] == "Unknown":
|
||||
print("The media.width.pixel field of the printer profile is not set. " +
|
||||
"The center flag will have no effect.")
|
||||
|
||||
max_width = int(self.profile.profile_data['media']['width']['pixels'])
|
||||
|
||||
if im.width > max_width:
|
||||
|
|
|
@ -28,7 +28,6 @@ else:
|
|||
|
||||
|
||||
@pytest.mark.skip("this test is broken and has to be fixed or discarded")
|
||||
@settings(use_coverage=False)
|
||||
@given(path=text())
|
||||
def test_load_file_printer(mocker, path):
|
||||
"""test the loading of the file-printer"""
|
||||
|
@ -40,7 +39,6 @@ def test_load_file_printer(mocker, path):
|
|||
|
||||
|
||||
@pytest.mark.skip("this test is broken and has to be fixed or discarded")
|
||||
@settings(deadline=None, use_coverage=False)
|
||||
@given(txt=text())
|
||||
def test_auto_flush(mocker, txt):
|
||||
"""test auto_flush in file-printer"""
|
||||
|
@ -62,7 +60,6 @@ def test_auto_flush(mocker, txt):
|
|||
|
||||
|
||||
@pytest.mark.skip("this test is broken and has to be fixed or discarded")
|
||||
@settings(deadline=None, use_coverage=False)
|
||||
@given(txt=text())
|
||||
def test_flush_on_close(mocker, txt):
|
||||
"""test flush on close in file-printer"""
|
||||
|
|
13
tox.ini
13
tox.ini
|
@ -1,5 +1,12 @@
|
|||
[tox]
|
||||
envlist = py27, py34, py35, py36, py37, docs, flake8
|
||||
envlist = py35, py36, py37, py38, docs, flake8
|
||||
|
||||
[gh-actions]
|
||||
python =
|
||||
2.7: py27
|
||||
3.6: py36
|
||||
3.7: py37
|
||||
3.8: py38
|
||||
|
||||
[testenv]
|
||||
deps = nose
|
||||
|
@ -10,9 +17,9 @@ deps = nose
|
|||
pytest!=3.2.0,!=3.3.0
|
||||
pytest-cov
|
||||
pytest-mock
|
||||
hypothesis!=3.56.9,<4
|
||||
hypothesis>4
|
||||
viivakoodi
|
||||
commands = py.test --cov escpos
|
||||
commands = pytest --cov escpos
|
||||
passenv = ESCPOS_CAPABILITIES_PICKLE_DIR ESCPOS_CAPABILITIES_FILE CI TRAVIS TRAVIS_* APPVEYOR APPVEYOR_* CODECOV_*
|
||||
|
||||
[testenv:docs]
|
||||
|
|
Loading…
Reference in New Issue