@@ -21,20 +21,20 @@ you can use github's assign feature, otherwise you can just leave a comment.
2121Scope of the package
2222====================
2323
24- The scope of the OpenML python package is to provide a python interface to
25- the OpenML platform which integrates well with pythons scientific stack, most
24+ The scope of the OpenML Python package is to provide a Python interface to
25+ the OpenML platform which integrates well with Python's scientific stack, most
2626notably `numpy <http://www.numpy.org/ >`_ and `scipy <https://www.scipy.org/ >`_.
2727To reduce opportunity costs and demonstrate the usage of the package, it also
2828implements an interface to the most popular machine learning package written
29- in python , `scikit-learn <http://scikit-learn.org/stable/index.html >`_.
29+ in Python , `scikit-learn <http://scikit-learn.org/stable/index.html >`_.
3030Thereby it will automatically be compatible with many machine learning
3131libraries written in Python.
3232
3333We aim to keep the package as light-weight as possible and we will try to
3434keep the number of potential installation dependencies as low as possible.
3535Therefore, the connection to other machine learning libraries such as
3636*pytorch *, *keras * or *tensorflow * should not be done directly inside this
37- package, but in a separate package using the OpenML python connector.
37+ package, but in a separate package using the OpenML Python connector.
3838
3939.. _issues :
4040
@@ -52,7 +52,7 @@ contains longer-term goals.
5252How to contribute
5353=================
5454
55- There are many ways to contribute to the development of the OpenML python
55+ There are many ways to contribute to the development of the OpenML Python
5656connector and OpenML in general. We welcome all kinds of contributions,
5757especially:
5858
@@ -158,5 +158,67 @@ Happy testing!
158158Connecting new machine learning libraries
159159=========================================
160160
161- Coming soon - please stay tuned!
161+ Content of the Library
162+ ~~~~~~~~~~~~~~~~~~~~~~
162163
164+ To leverage support from the community and to tap in the potential of OpenML, interfacing
165+ with popular machine learning libraries is essential. However, the OpenML-Python team does
166+ not have the capacity to develop and maintain such interfaces on its own. For this, we
167+ have built an extension interface to allows others to contribute back. Building a suitable
168+ extension for therefore requires an understanding of the current OpenML-Python support.
169+
170+ `This example <examples/flows_and_runs_tutorial.html >`_
171+ shows how scikit-learn currently works with OpenML-Python as an extension. The *sklearn *
172+ extension packaged with the `openml-python <https://github.com/openml/openml-python >`_
173+ repository can be used as a template/benchmark to build the new extension.
174+
175+
176+ API
177+ +++
178+ * The extension scripts must import the `openml ` package and be able to interface with
179+ any function from the OpenML-Python `API <api.html >`_.
180+ * The extension has to be defined as a Python class and must inherit from
181+ :class: `openml.extensions.Extension `.
182+ * This class needs to have all the functions from `class Extension ` overloaded as required.
183+ * The redefined functions should have adequate and appropriate docstrings. The
184+ `Sklearn Extension API :class: `openml.extensions.sklearn.SklearnExtension.html `
185+ is a good benchmark to follow.
186+
187+
188+ Interfacing with OpenML-Python
189+ ++++++++++++++++++++++++++++++
190+ Once the new extension class has been defined, the openml-python module to
191+ :meth: `openml.extensions.register_extension.html ` must be called to allow OpenML-Python to
192+ interface the new extension.
193+
194+
195+ Hosting the library
196+ ~~~~~~~~~~~~~~~~~~~
197+
198+ Each extension created should be a stand-alone repository, compatible with the
199+ `OpenML-Python repository <https://github.com/openml/openml-python >`_.
200+ The extension repository should work off-the-shelf with *OpenML-Python * installed.
201+
202+ Create a `public Github repo <https://help.github.com/en/articles/create-a-repo >`_ with
203+ the following directory structure:
204+
205+ ::
206+
207+ | [repo name]
208+ | |-- [extension name]
209+ | | |-- __init__.py
210+ | | |-- extension.py
211+ | | |-- config.py (optionally)
212+
213+
214+
215+ Recommended
216+ ~~~~~~~~~~~
217+ * Test cases to keep the extension up to date with the `openml-python ` upstream changes.
218+ * Documentation of the extension API, especially if any new functionality added to OpenML-Python's
219+ extension design.
220+ * Examples to show how the new extension interfaces and works with OpenML-Python.
221+ * Create a PR to add the new extension to the OpenML-Python API documentation.
222+
223+
224+ Happy contributing!
0 commit comments