Once you have created your custom modules for FAST-OAD (see add-modules
), you may want to share them with other users, which can be done in two ways:
- Providing your code so they can copy it on their computer and have them set their
custom_modules
field accordingly in theirconfiguration-file
.- Packaging your code as a FAST-OAD plugin and have them install it through
pip
or equivalent.
To declare your custom modules as a FAST-OAD plugin, you have to package them the usual way and declare them as a plugin with fastoad_model
as plugin group name.
This can be done classically with setuptools. It can also be done with Poetry, which is the way described below:
Assuming you project contains the package start_trek.drives
that contains models you want to share, you can declare your plugin in your pyproject.toml
file with:
...
[tool.poetry.plugins."fastoad_model"]
"internal_models" = "start_trek.drives"
...
Once your pyproject.toml
is set, you can do poetry install
. Besides installing your project dependencies, it will make your models locally available (i.e. you could use their identifiers in your FAST-OAD configuration file without setting the custom_modules
field)
You can build your package with the command line poetry build
. Let's assume your pyproject.toml
file is configured so that your project name is STST_drive_models
, as below:
...
[tool.poetry]
name = "ST_drive_models"
version = "1.0.0"
...
It will create a dist
folder with two files: ST_drive_models-1.0.0.tar.gz
and ST_drive_models-1.0.0-py3-none-any.whl
(or something like this).
You may then have sent any of those two files to another user, who may then install your models using pip
with:
$ pip install ST_drive_models-1.0.0-py3-none-any.whl # or ST_drive_models-1.0.0.tar.gz
Once you have built your package, you may publish it on a a package repository. poetry publish
will publish your package on PyPI, provided that you have correctly set your account.
Poetry can also publish to another destination.
Please see here for detailed information.