Follow the progress of project initialization here: - PLC4X-232Getting issue details... STATUS
1) PYTHON PACKAGING AND DEPENDENCY MANAGEMENT → https://python-poetry.org/
→ use the virtual-env generated by poetry
2) - PLC4X-251Getting issue details... STATUS
DRIVER REGISTRATION, DISCOVERY, LOADING →
Python does not have the service provider API like java for loading drivers, but setup tools does support declarative methods to register plugins.
Along with the pluggy project, this will give the ability to load drivers as plugins.
This is also supported by poetry.
This will allow 3rd parties to provide driver support ( or other extensions should we want to support them ) just through their installations.
We will need a follow on to document writing an external package and supporting this.
https://pluggy.readthedocs.io/en/latest/
https://dev.to/demianbrecht/entry-points-in-python-34i3
https://docs.pytest.org/en/latest/writing_plugins.html#pip-installable-plugins
https://python-poetry.org/docs/pyproject/#plugins
3) Maven Integration
- PLC4X-237Getting issue details... STATUS
- PLC4X-268Getting issue details... STATUS Add Makefile for Poetry integration into CI Pipeline.
PyCharm Settings:
4) Start programming
4.1) build the plc4py-template,
4.2) build plc4py
This helps you think about the strucutre of the code you produce ... a different approach would be to take some simple types and to hand-port them to python ... as soon as you're happy with them, you convert them into a template.