Package: iwopy
iwopyFraunhofer IWES optimization tools in PythonOverviewTheiwopypackage is in fact a meta package that provides interfaces to other open-source Python optimization packages out there. Currently this includespymoopygmoscipy(more to come with future versions)iwopycan thus be understood as an attempt to providethe best of all worldswhen it comes to solving optimization problems with Python. This has not yet been achieved, since above list of accessable optimization packages is obviously incomplete, but it's a start. All the credit for implementing the invoked optimizers goes to the original package providers.The basic idea ofiwopyis to provide abstract base classes, that can be concretized for any kind of problem by the users, and the corresponding solver interfaces. However, also some helpful problem wrappers and an original optimizer are provided in addition:Problem wrapperLocalFD: Calculates derivatives by finite differencesProblem wrapperRegularDiscretizationGrid: Puts the problem on a GridOptimizerGG:Greedy Gradientoptimization with constraintsAll calculations support vectorized evaluation of a complete population of parameters. This is useful for heuristic approaches like genetic algorithms, but also for evaluating gradients. It can lead to a vast speed-up and should be invoked whenever possible. Check the examples (or the API) for details.Documentation:https://fraunhoferiwes.github.io/iwopy.docs/index.htmlSource code:https://github.com/FraunhoferIWES/iwopyPyPi reference:https://pypi.org/project/iwopy/Anaconda reference:https://anaconda.org/conda-forge/iwopyRequirementsThe supported Python versions are:Python 3.7Python 3.8Python 3.9Python 3.10Python 3.11Installation via condaTheiwopypackage is available on the channelconda-forge. You can install the latest version byconda install -c conda-forge iwopyInstallation via pipVirtual Python environmentWe recommend working in a Python virtual environment and installiwopythere. Such an environment can be created bypython -m venv /path/to/my_venvand afterwards be activated bysource /path/to/my_venv/bin/activateNote that in the above commands/path/to/my_venvis a placeholder that should be replaced by a path to a (non-existing) folder of your choice, for example~/venv/iwopy.All subsequent installation commands viapipcan then be executed directly within the active environment without changes. After your work withiwopyis done you can leave the environment by the commanddeactivate.Standard usersAs a standard user, you can install the latest release viapipbypip install iwopyThis in general corresponds to themainbranch atgithub. Alternatively, you can decide to install the latest pre-release developments (non-stable) bypip install git+https://github.com/FraunhoferIWES/iwopy@dev#egg=iwopyDevelopersThe first step as a developer is to clone theiwopyrepository bygit clone https://github.com/FraunhoferIWES/iwopy.gitEnter the root directory bycd iwopyThen you can either install from this directory viapip install -e .TestingFor testing, please clone the repository and install the required dependencies:git clone https://github.com/FraunhoferIWES/iwopy.gitcd iwopypip install -e .[test]The tests are then run bypytest testsContributingForkiwopyongithub.Create a branch (git checkout -b new_branch)Commit your changes (git commit -am "your awesome message")Push to the branch (git push origin new_branch)Create a pull requesthere