_`Introduction`
===============
_`Installation`
---------------
_`Platforms and options`
~~~~~~~~~~~~~~~~~~~~~~~~
.. |ge| unicode:: U+2265
:code:`informatics` is officially support the following desktop platforms:
* Windows
* Linux
* MacOS
Ensure Python (|ge| 3.9) is installed. Install :code:`informatics` via pip-based installer as appropriate:
.. tab:: Basic
Install :code:`informatics` with basic dependent components.
.. code-block:: console
(.venv) $ pip install informatics
.. tab:: Instances
Install basic :code:`informatics` with instance data.
.. code-block:: console
(.venv) $ pip install informatics[ins]
.. tab:: Visualization
Install basic :code:`informatics` with visualization dependencies. Backend of visualization utilities requires at
least one of `PySide2 `_, `PySide6 `_,
`PyQt5 `_, `PyQt6 `_.
`PySide6 `_ is suggested. For functions who using spatial rendering,
`PyOpenGL `_ is necessary as well.
.. code-block:: console
(.venv) $ pip install informatics[vis]
.. tab:: Medical
Install basic :code:`informatics` with medical image related dependencies.
.. code-block:: console
(.venv) $ pip install informatics[med]
.. tab:: Networks
Install basic :code:`informatics` with configurable neural network with dynamic architecture. For normal use,
:code:`torch` is required.
.. code-block:: console
(.venv) $ pip install informatics[net]
_`Check installation`
~~~~~~~~~~~~~~~~~~~~~
To check whether :code:`informatics` was installed, run following code in Python or command line shell:
.. tab:: Python
.. code-block:: python
import info
print(info.__version__)
.. tab:: Terminal
.. code-block:: console
(.venv) $ python -c "import info; print(info.__version__)"
Version number will in the prompt if :code:`informatics` has been properly installed, otherwise error message.
_`Upgrade for options`
~~~~~~~~~~~~~~~~~~~~~~
Default installation only consist of basic component. If optional dependencies are required to be activated, re do
the pip installer with its `identifier `_ (e.g.
:code:`pip install informatics[ins] informatics[vis]` for integrating instance data and visualization tools, whether
basic :code:`informatics` was installed already or not). Notably, the local version must keep the identical as one
of remote.
Or alternatively, using pip installer to install missing module(s) when :code:`ImportError` raised in the prompt.
_`Overview`
-----------
Informatics is designed to enable users to solve complex problems in science, engineering, and other domains
efficiently and accurately. Its powerful capabilities are achieved through a combination of cutting-edge software
engineering techniques and the elegance of Python's functional programming paradigm. The strength of highly modular
and extensible architecture allows users to quickly assemble and customize data processing pipelines to meet their
specific needs. Whether it's data cleaning, transformation, analysis, or visualization, informatics provides a rich
set of tools and functions to facilitate these tasks.
It is in active development, in order to satisfy increasing requests in scientific computation.
_`Featured as`
~~~~~~~~~~~~~~
Informatics is currently featured:
* Powerful integration capability for various utilities (e.g. functions, frames, packages, and etc.) in Python
ecosystem.
* Universal processing interface designed in high dimensionality to guarantee consistency of calling for different
types of data.
* Scripting on basis of functional programming paradigm, with properties of robust performance, and easy decoupling
for extension.
* Intuitive combination of data processing units, for fast experiments, validation, or building for upper
applications.
* Documentation in details for not only basic functions, but the tutorials, interpretation for essential concepts,
examples of applications, and such like.
_`Simple examples`
~~~~~~~~~~~~~~~~~~
Critical structure called :py:func:`~info.docfunc.Unit` can wrap any of the callable object in Python. Data processing
can be implemented via :ref:`functional programming scripting `. Therefore with various
units (e.g. :code:`u1`, :code:`u2` with different arguments), it is able to combine them as desired:
.. code-block:: python
:caption: example of unit combination
:name: example of unit combination
p = u1 >> u2
Auto test the pipe :code:`p` for determining its optimal argument combination:
.. code-block:: python
:caption: example of auto test
:name: example of auto test
param_options = {
'u1_arg1': [...],
'u1_arg2': [...],
...,
'u2_arg4': [...],
'u2_arg5': [...],
}
functest(data=p, params_pool=param_options)
Or apply that pipe, as well as its optimal argument configuration from (or to) others' works:
.. code-block:: python
:caption: example of reuse pipe
:name: example of reuse pipe
from other_libs import pipe, opt_config
my_unit = ...
my_pipe = pipe.shadow(**opt_config) >> my_unit
----
:Authors: Chen Zhang
:Version: 0.0.5
:|create|: Apr 25, 2023