Use QCollator as new collator to get rid of the PyICU dependency.
Simplify the natural sorting with its numeric mode.
Simplify one test that is heavily dependent on implementation.
Run one sorting test on macOS which was disabled.
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
- Refactored FirstTimeForm to use an initalise() method, in order to be more testable
- Rewrote FTW tests to test initialise()
- Refactored TestMixin get_application() to setup_application() since it doesn't actually return an application object
- Refactored ListPreviewWidget to make it more testable
- Wrote tests for ListPreviewWidget
- Refactored FormattingTagsForm somewhat
- Updated FormattingTagsForm tests
Updated setup.py with some Python3 changes.