Installation¶
TimeFeatures is an Orange3 add-on, so it requires a working Orange3 installation in the same Python environment.
From PyPI¶
pip install TimeFeatures
This pulls in every runtime dependency, including the precompiled
psycopg2-binary wheel so the Save to DB widget works on macOS,
Linux and Windows without a C toolchain.
From source¶
git clone https://github.com/alervgr/Orange-TimeFeatures.git
cd Orange-TimeFeatures
pip install -e .
The -e flag installs in editable mode so changes to the source
tree are picked up on the next Orange restart without reinstalling.
Inside Orange¶
TimeFeatures also installs through Orange’s GUI:
Open Orange.
Go to Options → Add-ons….
Tick TimeFeatures in the list and confirm.
Restart Orange. The new widgets appear under the Time-Features toolbox section.
Anaconda¶
The same pip install TimeFeatures command works inside a Conda
environment as long as Orange3 is installed there.
Dependencies¶
TimeFeatures needs Python 3.10 or newer and declares the following runtime
dependencies (see setup.py):
Package |
Minimum version |
Used by |
|---|---|---|
|
3.36.2 |
Host application and data model. Older releases do not work with NumPy 2. |
|
1.22.4 |
All widgets. |
|
1.7.3 |
Sparse adjacency matrices in the dependency graph. |
|
5.15.6 |
Widget UI. |
|
5.15.6 |
Orange’s in-app help window. |
|
0.2.0 |
Qt abstraction used by Orange. |
|
1.4.0 |
Dialect-agnostic SQL toolkit used by Save to DB. |
|
2.9.9 |
PostgreSQL driver for Save to DB. |
|
1.0.0 |
MySQL driver for Save to DB. |
|
1.8.0 |
|
Orange3 is listed explicitly so a clean pip install gets a version
the add-on is tested with. Inside an existing Orange installation that
already meets the minimum, pip leaves it untouched.
The CI workflow (.github/workflows/ci.yml) runs the test suite on
Python 3.10 with Orange3 3.36.2 and on Python 3.11 and 3.12 with the
latest releases, builds the package and installs the wheel into an
empty environment, and builds this documentation with warnings as
errors.
Running tests¶
The test suite uses unittest and lives under
timefeatures/widgets/tests/. From a checkout:
pip install -e .
python -m unittest discover -v timefeatures/widgets/tests
The widget-level tests inherit from Orange.widgets.tests.base.WidgetTest
and therefore require Qt; a virtual display (Xvfb) is enough on a
headless CI worker.
The Save to DB upload tests always run on SQLite. To also run them against real servers, point these variables to disposable databases (the tests create and drop tables there):
export TIMEFEATURES_TEST_POSTGRES_URL=postgresql://user:pass@localhost:5432/timefeatures_test
export TIMEFEATURES_TEST_MYSQL_URL=mysql://user:pass@127.0.0.1:3306/timefeatures_test