v.0.17
2023.04.03
pip install --upgrade shimoku-api-pythonImprovements
data1 = [ {'date': '2022-01-01', 'Value [1]': 3}, {'date': '2022-03-01', 'Value [1]': 7, 'Annotation': 'Value [1] rapid increase'}, {'date': '2022-04-01', 'Value [1]': 7}, {'date': '2022-07-01', 'Value [1]': 8}, {'date': '2022-08-01', 'Value [1]': 9}, {'date': '2022-12-01', 'Value [1]': 5}, ] data2 = [ {'date': '2021-12-31', 'Value [2]': 6}, {'date': '2022-01-02', 'Value [2]': 9}, {'date': '2022-02-01', 'Value [2]': 7}, {'date': '2022-03-01', 'Value [2]': 8}, {'date': '2022-04-01', 'Value [2]': 9}, {'date': '2022-05-01', 'Value [2]': 7}, {'date': '2022-06-01', 'Value [2]': 8, 'Annotation': 'Value [2] oscillation'}, {'date': '2022-07-01', 'Value [2]': 9}, {'date': '2022-08-01', 'Value [2]': 8}, ] s.plt.annotated_chart( menu_path='Annotated Chart', order=7, x='date', y=['Value [1]', 'Value [2]'], annotation='Annotation', data=[data1, data2], slider_config={'max': 100, 'defaultValue': 50}, slider_marks=[('Low', 15), ('Medium', 50), ('High', 85)] )
Annotated chart with two datasets 
Annotation modal 
Form ready to send 
Annotation added s.activity.get_run_logs( menu_path: str, activity_name: str, run_id: str ) -> Dict
Dashboards hierarchy # Sets the business for the whole module s.dashboard.set_business(business_id: str) # Creates a dashboard and return it's dictionary representation s.dashboard.create_dashboard( dashboard_name: str, order: Optional[int] = None, public_permission: Optional[Dict] = None, is_disabled: bool = False ) -> Dict # Gets a dashboard, if the dashboard does not exit it returns None s.dashboard.get_dashboard( dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None ) -> Optional[Dict] # Deletes the specified dashboard, if it exists s.dashboard.delete_dashboard( dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None ) # Updates the specified dashboard fields, if it exists s.dashboard.update_dashboard( dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None, name: Optional[str] = None, order: Optional[int] = None, public_permission: Optional[str] = None, is_disabled: Optional[bool] = None ) # Adds an app to a specified dashboard, this creates a link object s.dashboard.add_app_in_dashboard( app_id: str, dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None ) # Gets all the business dashboards s.dashboard.get_dashboards() -> List[Dict] # Gets all the app_id's for a specified dashboard s.dashboard.get_dashboard_app_ids( dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None ) -> List[str] # Deletes the link between a given app and a given dashboard s.dashboard.remove_app_from_dashboard( app_id: str, dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None ) # Deletes all business dashboards, id any dashboard has apps it returns an error s.dashboard.delete_all_business_dashboards()s.plt.set_dashboard(dashboard_name: str)s.plt.set_dashboard('Dashboard groupping apps') data_ = { "footer": "Hello random people", "header": "True", "val": "359K", "alignment": "left", "icon": "Line/subscriptions", "color": "warning" } s.plt.indicator( data=data_, menu_path='SubGroup 1/sublevel 1', order=14, value='val', header='header', footer='footer', align='alignment', icon='icon', color='color', rows_size=1, cols_size=4, ) s.plt.indicator( data=data_, menu_path='SubGroup 2/sublevel 1', order=14, value='val', header='header', footer='footer', align='alignment', icon='icon', color='color', rows_size=1, cols_size=4, )
Dashboard with two apps created s.app.delete_all_business_apps() s.dashboard.delete_all_business_dashboards()s.dashboard.update_dashboard( dashboard_name=previous_dashboard_name, name=new_dashboard_name )
s.business.create_role( business_id: str, role_name: str, resource: Optional[str] = None, permission: Optional[str] = None, target: Optional[str] = None ) s.business.get_roles(business_id: str) s.business.get_roles_by_name(business_id: str, role_name: str) s.business.delete_role(business_id: str, role_id: str)s.dashboard.create_role( dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None, resource: Optional[str] = None, role_name: Optional[str] = None, permission: Optional[str] = None, target: Optional[str] = None ) s.dashboard.get_roles( dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None ) s.business.get_roles_by_name(role_name: str, dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None ) s.business.delete_role(role_id: str, dashboard_name: Optional[str] = None, dashboard_id: Optional[str] = None )s.app.create_role( business_id: str, app_id: str, role_name: str, resource: Optional[str] = None, permission: Optional[str] = None, target: Optional[str] = None ) s.app.get_roles(business_id: str, app_id: str) s.app.get_roles_by_name(business_id: str, app_id: str, role_name: str) s.app.delete_role(business_id: str, app_id: str, role_id: str)
dashboard_name = 'roles_dashboard' s.dashboard.create_dashboard(dashboard_name=dashboard_name) role = s.dashboard.create_role(dashboard_name=dashboard_name, role_name='test_role') assert role['role'] == 'test_role' assert role['permission'] == 'READ' assert role['resource'] == 'BUSINESS_INFO' assert role['target'] == 'GROUP' roles = s.dashboard.get_roles(dashboard_name=dashboard_name) assert len(roles) == 1 assert roles[0]['role'] == 'test_role' s.dashboard.delete_role(dashboard_name=dashboard_name, role_id=role['id']) assert len(s.dashboard.get_roles(dashboard_name=dashboard_name)) == 0 s.dashboard.create_role( dashboard_name=dashboard_name, role_name='test_role', permission='WRITE', resource='DATA', target='USER' )
Last updated
Was this helpful?