Init project with basic CI and wheel publishing
This is an initial import of code developed for https://www.mediawiki.org/wiki/Platform_Engineering_Team/Event_Platform_Value_Stream/Evaluate_a_pyflink_version_of_Mediawiki_Stream_Enrichment.
It follows the python module template from workflow utils, and packages the library using setuptools. This MR introduces a basic set of functionalities that can be iteratively improved. CI provides:
- linting (flake8)
- running pyest
- building and publishing a wheel.
mypy
type checking is configured by not automated by default.
Release management configs are provided, but not automated either at this stage.
There's some boilerplate that can be removed once we upstream to eventutilities
, but that I find handy at the current stage.
Getting started
You can install eventutilities-python
with test/dev dependencies with
pip install -e .[test]
pip install tox
CONTRIBUTING.md
contains basic pointers for getting started.
The project is managed by tox
. Test and codes tyle checked can be harnessed in a local conda install or via Docker
by setting the USE_DOCKER=true
shell variable.
E.g.
make test
Will run pytest (tox -e py37
) locally
USE_DOCKER=true make test
Will run pytest in a linux x86_64 container based atop Wikimedia python images (= the same we run in CI)
Why docker?
Docker has been provided to aid developemnt and testing on non linux / non x86 systems (pyflink won't install Apple M1 chips).
cc / @otto @tchin @lbowmaker