python -m venv venv
source ./venv/bin/activate
pip install -U pip
pip install -r requirements.txt
python -m pytest --verbose --cov=pylibdmtx --cov-report=term-missing --cov-report=html pylibdmtx
python -m pylibdmtx.scripts.read_datamatrix pylibdmtx/tests/datamatrix.png
Run tox
rm -rf .tox && tox
Save the 32-bit and 64-bit libdmtx.dll
files to libdmtx-32.dll
and
libdmtx-64.dll
respectively, in the pylibdmtx
directory.
The load_pylibdmtx
function in wrapper.py
looks for the appropriate DLL
s.
The appropriate DLL
is packaged up into the wheel build and is installed
alongside the package source. This strategy allows the same method to be used
when pylibdmtx
is run from source, as an installed package and when included
in a frozen binary.
-
Build
Create source and wheel builds. The
win32
andwin_amd64
wheels will contain the appropriatelibdmtx.dll
.rm -rf build dist MANIFEST.in pylibdmtx.egg-info cp MANIFEST.in.all MANIFEST.in ./setup.py bdist_wheel cat MANIFEST.in.all MANIFEST.in.win32 > MANIFEST.in ./setup.py bdist_wheel --plat-name=win32 # Remove these dirs to prevent win32 DLL from being included in win64 build rm -rf build pylibdmtx.egg-info cat MANIFEST.in.all MANIFEST.in.win64 > MANIFEST.in ./setup.py bdist_wheel --plat-name=win_amd64 rm -rf build MANIFEST.in pylibdmtx.egg-info
-
Release to pypitest (see https://packaging.python.org/guides/using-testpypi/)
twine upload -r testpypi dist/*
-
Test the release to pypitest
-
If you are on Windows
c:\python27\python.exe -m venv test1 test1\scripts\activate
- Install dependencies that are not on testpypi.python.org. If you are on Python 2.x, these are mandatory
pip install enum34 pathlib
- Pillow for tests and
read_datamatrix
. We can't use thepip install pylibdmtx[scripts]
form here becausePillow
will not be on testpypi.python.org
pip install Pillow
- Install the package itself
pip install --index https://testpypi.python.org/simple pylibdmtx
- Test
read_datamatrix --help read_datamatrix <path-to-datamatrix.png>
-
If all is well, release to PyPI
twine upload dist/*
-
Install!
pip install pylibdmtx[scripts]