Shimoku docs
  • 🚀QuickStart
    • Installation & Setup
    • Minimal APP example
    • Extended Example
    • Templates & tutorials
  • 🤖Artificial Intelligence
    • Classification
      • Train Classification
        • Train Classification Outputs
      • Predict Classification
        • Predict Classification Outputs
    • Generate Insights
      • Generate Insights Outputs
  • 🛠️Building Web App
    • Environment
      • Overview
      • Environment Variables
    • Management
      • Managing Universes
      • Managing Workspaces
      • Managing Boards
    • Menu
      • Changing the Menu Path
      • Updating the Menu Path
      • Deleting the Menu Path
    • Grid
      • Using the Grid
    • Theming
      • Colors Usage
    • Actions
    • Modals
    • IO
  • 💡Elements
    • Summary
    • Charts
      • Table
        • Buttons Column
        • Filters
        • Search bars
        • Colored labels
      • HTML
        • Raw HTML
        • Beautiful Titles
        • Background Indicators
        • Click to New Tab
        • Box With Button
        • Panel
      • Indicators
        • Indicator
        • Grouped Indicators
        • Vertical Indicators
        • Color by Value
        • Gauge Indicator
        • Indicators with Header
      • Scatter Charts
        • Scatter
        • Scatter with Effect
      • Line Charts
        • Line
        • Predictive Line
        • Segmented Line
        • Marked Line
        • Line With Confidence Area
        • Top Bottom Line Charts
        • Summary Line
      • Area Charts
        • Area
        • Stacked Area
        • Segmented Area
        • Top Bottom Area Charts
      • Bar Charts
        • Bar
        • Stacked Bar
        • Horizontal Bar
        • Stacked Horizontal Bar
        • Zero Centered Bar
      • Pie Charts
        • Pie
        • Doughnut
        • Rose
      • Gauge Charts
        • Shimoku Gauge
        • Speed Gauge
      • Input forms
        • Group chained Inputs
        • List input search
        • Conditional inputs
        • Audio input
        • Drag & Drop
      • Line and Bar
      • Waterfall
      • Annotated Chart
      • Heatmap
      • Radar
      • Sunburst
      • Tree
      • Treemap
      • Sankey Diagram
      • Funnel chart
      • iFrame
    • Composite Template Charts
      • Infographics text bubble
      • Chart and Modal Button
      • Chart and Indicators
    • Data Sets
      • Data Set Filters
    • Create your own charts
      • Free Echarts
      • Bento box
    • Features & Navigation
      • Tabs
      • History navigation & Breadcrumb
  • 🔍Advanced usage
    • CLI
    • Workflow Triggers
    • Code Generation
  • 🌍Cloud & Community
    • Shimoku Cloud
    • Shared links
    • Handling Workspaces & Users
      • User authentication
      • Inviting users
      • Creating users
      • Users with multi-workspace access
  • 🌐Releases
    • 2024
      • v.2.6
      • v.2.5
      • v.2.4
      • v.2.3
        • v.2.3.1
      • v.2.2
        • v.2.2.3
        • v.2.2.2
        • v.2.2.1
      • v.2.1
        • v.2.1.2
        • v.2.1.1
      • v.2.0
        • v.2.0.(1..4)
      • v.1.6
        • v.1.6.1
      • v.1.5
    • 2023
      • v.1.4
        • v.1.4.1
        • v.1.4.2
      • v.1.3
      • v.1.2
        • v.1.2.1
      • v.1.1
        • v.1.1.1
      • v.1.0
        • v.1.0.2
        • v.1.0.1
      • v.0.20
      • v.0.19
      • v.0.18
      • v.0.17
        • v.0.17.1
      • v.0.16
        • v.0.16.3
        • v.0.16.2
        • v.0.16.1
      • v.0.15
      • v.0.14
    • 2022
      • v.0.13
        • v.0.13.3
      • v.0.12
      • v.0.11
      • v.0.10
        • v.0.10.4
        • v.0.10.3
        • v.0.10.1
      • v.0.9
      • v.0.8
      • v.0.7
        • v.0.7.1
      • v.0.6
      • v.0.5
      • v.0.4
      • v.0.3
        • v0.3.2
        • v0.3.1
      • v.0.2
Powered by GitBook
On this page
  • Basic Code Generation
  • Commit
  • Pull

Was this helpful?

  1. Advanced usage

Code Generation

Functionalities that use code generation

There are situations in which it would be very useful to use the database as the base of truth of the project, that is why we have developed a tool to generate code from the resources in the database.

For the examples we will be using the execution of the following code:

# 's' being the shimoku client 
s.set_workspace()

s.set_board('Code Generation Board')

s.set_menu_path('Code Generation Menu Path')

s.plt.set_shared_data({
    'stacked data': [
        {'Weekday': 'Mon', 'Email': 120, 'Union Ads': 132, 'Video Ads': 101, 'Search Engine': 134},
        {'Weekday': 'Tue', 'Email': 220, 'Union Ads': 182, 'Video Ads': 191, 'Search Engine': 234},
        {'Weekday': 'Wed', 'Email': 150, 'Union Ads': 232, 'Video Ads': 201, 'Search Engine': 154},
        {'Weekday': 'Thu', 'Email': 820, 'Union Ads': 932, 'Video Ads': 901, 'Search Engine': 934},
        {'Weekday': 'Fri', 'Email': 120, 'Union Ads': 132, 'Video Ads': 101, 'Search Engine': 134},
        {'Weekday': 'Sat', 'Email': 220, 'Union Ads': 182, 'Video Ads': 191, 'Search Engine': 234},
        {'Weekday': 'Sun', 'Email': 150, 'Union Ads': 232, 'Video Ads': 201, 'Search Engine': 154},
    ],
})

s.plt.set_bentobox(12, 3)
s.plt.html(
    html=s.html_components.create_h1_title('Code Generation Test', ''),
    cols_size=24, rows_size=10,
    order=0,
)
s.plt.stacked_bar(
    data='stacked data', order=1,
    cols_size=24, rows_size=25,
    x='Weekday', variant='clean shadow', show_values='all'
)
s.plt.pop_out_of_bentobox()

s.set_menu_path('Code Generation Menu Path', 'Sub Menu Path')

s.plt.set_modal('Code Generation Modal')
s.plt.html(
    html='Code Generation Test in Modal',
    order=0,
)
s.plt.pop_out_of_modal()

s.plt.modal_button('Open Modal', 0, 'Code Generation Modal')

s.run()

Basic Code Generation

The command to use:

> shimoku persist generate-code
Generate code for a set workspace

optional arguments:
  --output-path          Output path for the generated code.
  --menu-paths           List of menu paths to generate code from, leave empty to generate code for all menu paths.
  --hide-progress-bar    Show progress bar while generating code.
  --use-black-formatter  Use black formatter to format the generated code.

The code will follow the following file pattern: workspace/menu_path/sub_path

Using the example workspace in the playground and executing:

> shimoku persist generate-code --use-black-formatter

The generated files are:

For each workspace that you generate an execute file will be generated, like execute_workspace_local.py . The result of executing the file will be the same as the initial workspace.

Commit

The command to use:

> shimoku persist commit

The command will ask for the target business credentials and will generate the code form the current workspace and execute the result in the target workspace. It is intended to use when on the playground to easily save the contents to the cloud without relying on the source code.

The result of using it with the example workspace is:

Pull

The function to use:

> shimoku persist pull

The inverse of the commit method, retrieves the contents from an origin workspace and executes it in the current workspace.

PreviousWorkflow TriggersNextShimoku Cloud

Last updated 1 year ago

Was this helpful?

🔍
Code generation base test content
generated files
Generated content without using source code