The minimum Python version is set to 3.6 because this was agreed to on the mailing list.
Some packages which are optional in the source are declared as optional (uno, pyenchant, pyodbc).
To overcome a module conflict, openlp.py is replaced with run_openlp.py which setuptools installs as /usr/bin/openlp (or openlp.exe on Windows).
Additionally, pyxdg is replaced with appdirs (see License violations issue).
bzr-revno: 2836
The mediainfoWrapper.py file was taken from
https://github.com/sbraz/pymediainfo/blob/a24c4b79c5/pymediainfo/__init__.py
and slightly modified.
It is licensed undre MIT but the license information was not copied.
Instead it was relicensed as GPLv2 with OpenLP's default copyright.
This is the original version.
Move the startup script so that its name does not
conflict with the openlp namespace.
Codify scripts/check_dependencies.py in setup.py.
The name on PyPI is used to declare the dependencies.
This is a first step to enable OpenLP distribution via
PyPI.
The differences are:
* pyenchant and pyodbc are declared optional because
they are optional in the code and pyenchant is not
maintained anymore.
* pyenchant's required version is set to 1.6 not only
for windows. This version is quite old.
* The 5.0 version checks for PyQt5 are left out because
this is the first version anyway.
* LibreOffice's uno does not exist on PyPI
* sqlite3, asyncio and mock are available in Python
>= 3.4 anyway and not noted as dependencies.
* six is not defined as dependency because the code
should be py3 only.
The situation with regards to platform wheels being
published looks quite promising.
As Linux users typically install via their package
manager wheel availability is not as import for them
as for Win or Mac users.
Both of them are available for most dependencies with
native extensions.
The few exceptions:
* PyICU does not publish any platform wheels.
More info: https://github.com/ovalhub/pyicu/issues/79
* mysql-connector-python does not publish win32 wheels.
* pyenchant does not publish win64 wheels.
The wheels are typically available for Py=2.7 and Py>=3.4,
although some (mysql-connector-python, PyQt5, pywin32)
need Py>=3.5
In order to add an image to an existing group when no group was preselected,
the user must currently choose the existing group name from the comboxbox
and also select the Existing Group radio button. It should be assumed that
by selecting a group name from the combobox, the user intendeds to add the
image to an existing group, and the accompanying radio button should
automatically be selected. This reduces the number of required clicks, and
the likelihood of not actually adding the image to the correct group.
Likewise, if a user enters text into the New Group field, the dialog
should assume that the user's intent is to create a new group and auto
select the appropriate radio button.
Also removes some choosegroupdialog specific component logic from mediaitem,
since it's now covered by the choosegroupdialog implementation. Better
encapsulation, and improves testability. (Testing that the existing group
radio button was selected when choosedialogform was initialized with a
preselected group requires much more effort when the radio button selection
logic spanned two components.)
Adds simple test cases for the scenarios described above.