Metadata-Version: 2.1
Name: cosapp-lab
Version: 0.15.1
Summary: Toolbox for managing and deploying CoSApp powered dashboards.
Home-page: https://gitlab.com/cosapp/cosapp_lab
Author: CoSApp Development Team
Author-email: duc-trung.le@safrangroup.com
License: Apache-2.0
Description: ============================================================================
        CosApp Lab - Toolbox for managing and deploying CoSApp powered dashboards.
        ============================================================================
        
        The primary goal of **CoSApp Lab** is to help users transform theirs existing CoSApp 
        library into a interactive dashboard with almost no additional development or
        configuration.
        
        **************
        Documentation
        **************
        A more detailed **CoSApp Lab** documentation is available at:
        
        https://cosapplab.readthedocs.io
           
        
        *************
        Installation
        *************
        
        Stable release
        ================
        
        The easiest way to obtain `cosapp_lab` is to install the conda package:
        
        .. code-block:: console
        
            conda install cosapp_lab
        
        `cosapp_lab` is also available on PyPI but since `pythonocc-core` is not, users can install `cosapp_lab` with *pip* but the 3D viewer widget will not work.
        
        .. code-block:: console
        
            pip install cosapp_lab
        
        *JupyterLab* is not a direct dependency of *cosapp_lab* but users need to have JupyterLab (>3.0) in order to create the CoSApp dashboard in notebook.  
        
        Development
        =============
        
        Setup development environment
        ------------------------------
        
        .. code-block:: python
        
            # create a new conda environment
            conda create -n cosapplab -c conda-forge python jupyterlab nodejs
            conda activate cosapplab
        
            # download cosapp_lab from gitlab
            git clone --recursive https://gitlab.com/cosapp/cosapp_lab.git
        
            # install JS dependencies, build and install JupyterLab extension in development mode 
            cd cosapp_lab
            jlpm install
            jlpm build:all
            jlpm install:extension
        
            # install cosapp_lab in editable mode
            python -m pip install -e .
        
        Testing
        ----------
        
        
        .. code-block:: python
        
            # Test python code
            python -m pytest
        
            # Test typescript code
            jlpm test
        
        
        
        Build documents
        ----------------
        
        .. code-block:: console
        
            cd docs
            sphinx-build -b html -d _build/doctrees . _build
        
        
        *************
        History
        *************
        
        0.15.0 (2021-03-10)
        ======================
        
        This patch introduces two major changes to CoSApp Lab:
        
        The JupyterLab widgets is now fully compatible with JupyterLab 3, the support for version 1 and 2 is dropped. User can now install the widgets directly with conda or pip.
        
        A new application mode is added to allow users deploy the CoSApp widgets to a standalone web application. A new CLI tool is also added for managing and deploying the CoSApp module as a web app.
        
        Changelog:
        
        1. The main widget now is **SysExplorer** instead of **ChartViewer**, the old name will be used for a standalone charting widget in the future.  
        
        2. New widget :
        
         - *Custom widget* : A widget to show the user defined ipywidget, if the javascript part of widget is available on *npm*, the standalone mode can also display the widget.
         - *Connection widget* : A widget to show the connection between sub-systems of current CoSApp system.
         - *Document widget* : A widget to render markdown document, the content of widget can be saved and display in standalone mode.
         - *Data widget* : A widget to visualize the value of variables in ports of system with valid range and limits check.
        
        3. Minor changes and bug fixes:
        
         - Add syntax highlight to *Chart widget* advanced editor.
         - Use custom plotly build to reduce bundle size.
         - Add restart kernel button to web interface.
         - Auto set range for contourcarpet plot.
         - Add lock/unlock button to enable/disable tab close
         - Improve interface style.
         - Re-render 3D view and graph view  on tab change.
         - Use cookiecutters template from gitlab.com as a submodule.
         - **SysExplorer** save function now overwrites json file instead of incrementing file name.
         - Description of variable is shown in controller.
         - Remove slider in controller for variables without valid ranges or limits.
        
        
        0.14.0 (2024-01-20)
        ======================
        
        This patch add three new features to *ChartViewer*:
        
        1. Contour plot : draw the contour lines and filled contours, user needs to configure 3 axes X, Y and Z. The data of all three axes must both be 2-D array with the same shape.
         
        2. Advanced trace editor :  a new button allows user to modify directly the trace configuration JSON. 
        
        3. Add axis range configuration: user can fix the axis range in layout configuration dialog.
        
        0.13.0 (2020-12-16)
        ======================
        
        This patch introduces a new widget *ChartViewer* for *cosapp_lab*, this widget allows users to create the plots with data from a CosApp system. 
        
        *ChartViewer* can be imported from *cosapp_lab*, the required input parameter is an instance or a list of instance of CosApp system.
        
        .. code-block:: python
        
          from cosapp_lab import ChartViewer
          demo = AnyCosappSystem("demo")
          a = ChartViewer(demo)
        
        
        A more detailed user guide can be built from *docs* folder with *sphinx*
        
        .. code-block::
        
          sphinx-build -b html -d _build/doctrees . _build
        
        
        0.12.0 (2020-09-30)
        ======================
        
        Feature:
        
        This patch introduces the first client-server communication method for cosapp systems. An instance of cosapp system in local kernel can be shared with external user outside notebook environment via REST api.
        
        Once the server is started with **START SERVER** button, required information to access the server is shown in the log dialog : address of server (**BASE_URL**) and user access token (**USER_TOKEN**). Other user need to have these information in order to connect to current CosApp instance.
        
        There are two APIs for interacting with a system:
        
        Get system information
        
        * Method : *POST* 
        * Address : *BASE_URL/cosapp/server/info*
        * Request body :*{"token": USER_TOKEN}* 
        * Success response : *{"children_list": List, "children_port" : Dict, "children_drive" : Dict}* 
        * Error response : -1 
        
        Run system with new parameters
        
        * Method : *POST* 
        * Address : *BASE_URL/cosapp/server/run* 
        * Request body : *{"token": USER_TOKEN, "data" :{"parameters" : Dict, "result" : List}}*  
        * Success response : *{"error": None, "result" : Dict, "log" : string}*
        * Error response : *{"error": List", "result" : None, "log" : None}*
        
        0.11.0 (2020-07-22)
        ======================
        
        Feature:
        
        This patch introduces a new tab for *System architecture* panel. This panel is now contains 3 views:
        
        * **Tree view** : This panel shows the structure of systems in tree graph, uses can filter a selections of nodes to show in the 2 other views.
        * **PBS view**: this tab shows the structure of system in the from of hierarchy diagram, with 2 layout possible : flat layout and radial layout.
        * **Connection view** this tab show the connections between the the ports of all systems, the position of nodes in this tab is synchronized with the nodes in **PBS View**
        
        Bugs and code quality:
        
        * Fix bug in *Dashboard panel* when a slider is initialized with very small starting value.
        
        0.10.7 (2020-06-10)
        ======================
        
        - Update threejs and react-diagram to latest version.
        
        0.10.6 (2020-05-12)
        ======================
        
        Feature:
        
        * Points and vectors now can be drawn in the 3D viewer by defining the related data in the *shape* variable of a *GeometryPort*.Now *GeometryPort.shape* can be a OCC shape, list of OCC shape or a dict with following format:
        
        .. code-block:: python
        
          {
            "shape" : Union[TopoDS_Shape, List[TopoDS_Shape]], # the shapes to be drawn in viewer
            "color" : Optional[str] # Color of the shapes, default value is 0x156289
            "transparent" : Optional[bool] # Transparent of shapes, default is False
            "edge" : Optional[bool] # Show or hide edge shape, default is False
            "misc_data" : Optional[{
                            "points": Optional[List[{"position": Iterable[float],
                                                    "color": Optional[Union[str,int]], # default value is yellow
                                                    "radius": Optional[float] # default value is 0.1
                                                    }]],
                            "vectors": Optional[List[{"position": Iterable[float],
                                                      "direction": Iterable[float]
                                                      "color": Optional[Union[str,int]], # default value is 0x3900f2
                                                    }]],
                          }] # data to draw point and vector in the viewer
          }
        
        
        Bugs and code quality:
        
        * Update pyoccad version from 1.10.0dev to 0.3.0rc1
        
        0.10.5
        ======================
        
        
        - Fix some bugs on the widgets
        - Add Jest tests on frontend code.
        
        0.10.4
        ======================
        
        - Introduce SysExplorer and GeometryViewer
        
        0.10.3
        ======================
        
        - sysplot integration
        
        0.10.2
        ======================
        
        - Correct unit no more present in column name
        - Correct filtering on reference value
        
        0.10.1
        ======================
        
        - _Reference_ is now a classical column in the DataframeRecorder.
        
        0.10.0
        ======================
        
        - Python compatible with cosapp 0.10.0
        
        0.9.2
        ======================
        
        - Port to Jupyterlab v1
        
        0.9.0
        ======================
        
        - First version as a separate package
        
Keywords: Jupyter,Widgets,CoSApp
Platform: Linux
Platform: Windows
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: End Users/Desktop
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Framework :: Jupyter
Provides-Extra: tests
