<commit_before>module OtmlHelper

  def ot_refid_for(object, *prefixes)
    if object.is_a? String
      '${' + object + '}'
    else
      if prefixes.empty?
        '${' + dom_id_for(object) + '}'
      else
        '${' + dom_id_for(object, prefixes) + '}'
      end
    end
  end

  def ot_local_id_for(object, *prefixes)
    if object.is_a? String
      object
    else
      if prefixes.empty?
        dom_id_for(object)
      else
        dom_id_for(object, prefixes)
      end
    end
  end
  
  def imports
    imports = %w{
      org.concord.data.state.OTDataChannelDescription
      org.concord.data.state.OTDataField
      org.concord.data.state.OTDataStore
      org.concord.data.state.OTDataTable
      org.concord.datagraph.state.OTDataAxis
      org.concord.datagraph.state.OTDataCollector
      org.concord.otrunk.graph.OTDataCollectorViewConfig
      org.concord.datagraph.state.OTDataGraph
      org.concord.datagraph.state.OTDataGraphable
      org.concord.datagraph.state.OTMultiDataGraph
      org.concord.datagraph.state.OTPluginView
      org.concord.framework.otrunk.view.OTFrame
      org.concord.framework.otrunk.wrapper.OTBlob
      org.concord.graph.util.state.OTDrawingTool2
      org.concord.otrunk.OTSystem
      org.concord.otrunk.control.OTButton
      org.concord.otrunk.ui.OTCardContainer
      org.concord.otrunk.ui.OTChoice
      org.concord.otrunk.ui.OTCurriculumUnit
      org.concord.otrunk.ui.OTText
      org.concord.otrunk.ui.OTUDLContainer
      org.concord.otrunk.ui.OTSection
      org.concord.otrunk.ui.menu.OTMenu
      org.concord.otrunk.ui.menu.OTMenuRule
      org.concord.otrunk.ui.menu.OTNavBar
      org.concord.otrunk.ui.question.OTQuestion
      org.concord.otrunk.view.OTFolderObject
      org.concord.otrunk.view.OTViewBundle
      org.concord.otrunk.view.OTViewChild
      org.concord.otrunk.view.OTViewEntry
      org.concord.otrunk.view.OTViewMode
      org.concord.otrunk.view.document.OTCompoundDoc
      org.concord.otrunk.view.document.OTCssText
      org.concord.otrunk.view.document.OTDocumentViewConfig
      org.concord.otrunk.view.document.edit.OTDocumentEditViewConfig
      org.concord.otrunkmw.OTModelerPage
      org.concord.otrunknl4.OTNLogoModel
      org.concord.sensor.state.OTZeroSensor
      org.concord.sensor.state.OTDeviceConfig
      org.concord.sensor.state.OTExperimentRequest
      org.concord.sensor.state.OTInterfaceManager
      org.concord.sensor.state.OTSensorDataProxy
      org.concord.sensor.state.OTSensorRequest
    }
  end
  
  def ot_imports
    capture_haml do
      haml_tag :imports do
        imports.each do |import|
          haml_tag :import, :/, :class => import
        end
      end
    end
  end

  def view_entries
    [
      ['text_edit_view', 'org.concord.otrunk.ui.OTText', 'org.concord.otrunk.ui.swing.OTTextEditView'],
      ['question_view', 'org.concord.otrunk.ui.question.OTQuestion', 'org.concord.otrunk.ui.question.OTQuestionView'],
      ['choice_radio_button_view', 'org.concord.otrunk.ui.OTChoice', 'org.concord.otrunk.ui.swing.OTChoiceRadioButtonView'],
      ['data_drawing_tool2_view', 'org.concord.graph.util.state.OTDrawingTool2', 'org.concord.datagraph.state.OTDataDrawingToolView'],
      ['blob_image_view', 'org.concord.framework.otrunk.wrapper.OTBlob', 'org.concord.otrunk.ui.swing.OTBlobImageView'],
      ['data_collector_view', 'org.concord.datagraph.state.OTDataCollector', 'org.concord.datagraph.state.OTDataCollectorView'],
      ['data_graph_view', 'org.concord.datagraph.state.OTDataGraph', 'org.concord.datagraph.state.OTDataGraphView'],
      ['data_field_view', 'org.concord.data.state.OTDataField', 'org.concord.data.state.OTDataFieldView'],
      ['data_drawing_tool_view', 'org.concord.graph.util.state.OTDrawingTool', 'org.concord.datagraph.state.OTDataDrawingToolView'],
      ['multi_data_graph_view', 'org.concord.datagraph.state.OTMultiDataGraph', 'org.concord.datagraph.state.OTMultiDataGraphView'],
      ['button_view', 'org.concord.otrunk.control.OTButton', 'org.concord.otrunk.control.OTButtonView'],
      ['data_table_view', 'org.concord.data.state.OTDataTable', 'org.concord.data.state.OTDataTableView'],
      ['udl_container', 'org.concord.otrunk.ui.OTUDLContainer', 'org.concord.otrunk.ui.OTUDLContainerView'],
      ['curriculum_unit_view', 'org.concord.otrunk.ui.OTCurriculumUnit', 'org.concord.otrunk.ui.swing.OTCurriculumUnitView'],
      ['section_view', 'org.concord.otrunk.ui.OTSection', 'org.concord.otrunk.ui.swing.OTSectionView'],
      ['menu_page_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageView'],
      ['menu_accordion_section_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.swingx.OTMenuAccordionSectionView'],
      ['menu_section_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuSectionView'],
      ['menu_page_expand_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageExpandView'],
      ['card_container_view', 'org.concord.otrunk.ui.OTCardContainer', 'org.concord.otrunk.ui.swing.OTCardContainerView'],
      ['nav_bar', 'org.concord.otrunk.ui.menu.OTNavBar', 'org.concord.otrunk.ui.menu.OTNavBarView'],
      ['modeler_page_view', 'org.concord.otrunkmw.OTModelerPage', 'org.concord.otrunkmw.OTModelerPageView'],
      ['n_logo_model', 'org.concord.otrunknl4.OTNLogoModel', 'org.concord.otrunknl4.OTNLogoModelView']
    ]
  end
  
  def authoring_view_entries
    [
      ['text_edit_view', 'org.concord.otrunk.ui.OTText', 'org.concord.otrunk.ui.swing.OTTextEditEditView'],
      ['question_view', 'org.concord.otrunk.ui.question.OTQuestion', 'org.concord.otrunk.ui.question.OTQuestionEditView'],
      ['choice_radio_button_view', 'org.concord.otrunk.ui.OTChoice', 'org.concord.otrunk.ui.swing.OTChoiceComboBoxEditView'],
#      ['data_drawing_tool2_view', 'org.concord.graph.util.state.OTDrawingTool2', 'org.concord.datagraph.state.OTDataDrawingToolView'],
#      ['blob_image_view', 'org.concord.framework.otrunk.wrapper.OTBlob', 'org.concord.otrunk.ui.swing.OTBlobImageView'],
      ['data_collector_view', 'org.concord.datagraph.state.OTDataCollector', 'org.concord.otrunk.graph.OTDataCollectorEditView'],
#      ['data_graph_view', 'org.concord.datagraph.state.OTDataGraph', 'org.concord.datagraph.state.OTDataGraphView'],
#      ['data_field_view', 'org.concord.data.state.OTDataField', 'org.concord.data.state.OTDataFieldView'],
      ['data_drawing_tool_view', 'org.concord.graph.util.state.OTDrawingTool', 'org.concord.otrunk.graph.OTDataDrawingToolEditView'],
#      ['multi_data_graph_view', 'org.concord.datagraph.state.OTMultiDataGraph', 'org.concord.datagraph.state.OTMultiDataGraphView'],
#      ['button_view', 'org.concord.otrunk.control.OTButton', 'org.concord.otrunk.control.OTButtonView'],
      ['data_table_view', 'org.concord.data.state.OTDataTable', 'org.concord.otrunk.ui.swing.OTDataTableEditView'],
      ['udl_container', 'org.concord.otrunk.ui.OTUDLContainer', 'org.concord.otrunk.ui.OTUDLContainerEditView'],
      ['curriculum_unit_view', 'org.concord.otrunk.ui.OTCurriculumUnit', 'org.concord.otrunk.ui.swing.OTCurriculumUnitEditView'],
#      ['section_view', 'org.concord.otrunk.ui.OTSection', 'org.concord.otrunk.ui.swing.OTSectionView'],
      ['menu_page_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageEditView'],
#      ['menu_accordion_section_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.swingx.OTMenuAccordionSectionView'],
      ['menu_section_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuSectionEditView'],
      ['menu_page_expand_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageEditView'],
#      ['card_container_view', 'org.concord.otrunk.ui.OTCardContainer', 'org.concord.otrunk.ui.swing.OTCardContainerView'],
#      ['nav_bar', 'org.concord.otrunk.ui.menu.OTNavBar', 'org.concord.otrunk.ui.menu.OTNavBarView'],
      ['modeler_page_view', 'org.concord.otrunkmw.OTModelerPage', 'org.concord.otrunkmw.OTModelerPageEditView'],
      ['n_logo_model', 'org.concord.otrunknl4.OTNLogoModel', 'org.concord.otrunknl4.OTNLogoModelEditView']
    ]
  end

  def ot_view_bundle(options={})
    @left_nav_panel_width =  options[:left_nav_panel_width] || 0
    title = options[:title] || 'RITES sample'
    use_scroll_pane = (options[:use_scroll_pane] || false).to_s
    authoring = options[:authoring] || false
    render :partial => "otml/ot_view_bundle", :locals => { :view_entries => view_entries, :authoring_view_entries => authoring_view_entries, :use_scroll_pane => use_scroll_pane, :left_nav_panel_width => @left_nav_panel_width, :title => title, :authoring => authoring }
  end

  def ot_script_engine_bundle
    engines = [
      'org.concord.otrunk.script.js.OTJavascript', 'org.concord.otrunk.script.js.OTJavascriptEngine',
      'org.concord.otrunk.script.jruby.OTJRuby', 'org.concord.otrunk.script.jruby.OTJRubyEngine'
    ]
    render :partial => "otml/ot_script_engine_bundle", :locals => { :engines => engines }
  end

  def ot_sharing_bundle
    render :partial => "otml/ot_sharing_bundle"
  end

  def ot_interface_manager
    vendor_interface = current_user.vendor_interface
    render :partial => "otml/ot_interface_manager", :locals => { :vendor_interface => vendor_interface }
  end

  def ot_bundles(options={})
    capture_haml do
      haml_tag :bundles do
        haml_concat ot_view_bundle(options)
        haml_concat ot_interface_manager
      end
    end
  end
  
  
  # %OTDataStore{ :local_id => ot_local_id_for(data_collector, :data_store), :numberChannels => '2' }
  #   - if data_collector.data_store_values.length > 0
  #     %values
  #       - data_collector.data_store_values.each do |value|
  #         %float= value
  # 
  def generate_otml_datastore(data_collector)
    capture_haml do
      haml_tag :OTDataStore, :local_id => ot_local_id_for(data_collector, :data_store), :numberChannels => '2' do
        if data_collector.data_store_values.length > 0
          haml_tag :values do
            data_collector.data_store_values.each do |value|
              haml_tag(:float, :<) do
                haml_concat(value)
              end
            end
          end
        end
      end
    end
  end

end

<commit_msg>more authoring_view_entries in otml_helper, fix generate_otml_datastore<commit_after>module OtmlHelper

  def ot_refid_for(object, *prefixes)
    if object.is_a? String
      '${' + object + '}'
    else
      if prefixes.empty?
        '${' + dom_id_for(object) + '}'
      else
        '${' + dom_id_for(object, prefixes) + '}'
      end
    end
  end

  def ot_local_id_for(object, *prefixes)
    if object.is_a? String
      object
    else
      if prefixes.empty?
        dom_id_for(object)
      else
        dom_id_for(object, prefixes)
      end
    end
  end
  
  def imports
    imports = %w{
      org.concord.data.state.OTDataChannelDescription
      org.concord.data.state.OTDataField
      org.concord.data.state.OTDataStore
      org.concord.data.state.OTDataTable
      org.concord.datagraph.state.OTDataAxis
      org.concord.datagraph.state.OTDataCollector
      org.concord.otrunk.graph.OTDataCollectorViewConfig
      org.concord.datagraph.state.OTDataGraph
      org.concord.datagraph.state.OTDataGraphable
      org.concord.datagraph.state.OTMultiDataGraph
      org.concord.datagraph.state.OTPluginView
      org.concord.framework.otrunk.view.OTFrame
      org.concord.framework.otrunk.wrapper.OTBlob
      org.concord.graph.util.state.OTDrawingTool2
      org.concord.otrunk.OTSystem
      org.concord.otrunk.control.OTButton
      org.concord.otrunk.ui.OTCardContainer
      org.concord.otrunk.ui.OTChoice
      org.concord.otrunk.ui.OTCurriculumUnit
      org.concord.otrunk.ui.OTText
      org.concord.otrunk.ui.OTUDLContainer
      org.concord.otrunk.ui.OTSection
      org.concord.otrunk.ui.menu.OTMenu
      org.concord.otrunk.ui.menu.OTMenuRule
      org.concord.otrunk.ui.menu.OTNavBar
      org.concord.otrunk.ui.question.OTQuestion
      org.concord.otrunk.view.OTFolderObject
      org.concord.otrunk.view.OTViewBundle
      org.concord.otrunk.view.OTViewChild
      org.concord.otrunk.view.OTViewEntry
      org.concord.otrunk.view.OTViewMode
      org.concord.otrunk.view.document.OTCompoundDoc
      org.concord.otrunk.view.document.OTCssText
      org.concord.otrunk.view.document.OTDocumentViewConfig
      org.concord.otrunk.view.document.edit.OTDocumentEditViewConfig
      org.concord.otrunkmw.OTModelerPage
      org.concord.otrunknl4.OTNLogoModel
      org.concord.sensor.state.OTZeroSensor
      org.concord.sensor.state.OTDeviceConfig
      org.concord.sensor.state.OTExperimentRequest
      org.concord.sensor.state.OTInterfaceManager
      org.concord.sensor.state.OTSensorDataProxy
      org.concord.sensor.state.OTSensorRequest
    } + (@otrunk_imports || []).uniq
  end
  
  def ot_imports
    capture_haml do
      haml_tag :imports do
        imports.each do |import|
          haml_tag :import, :/, :class => import
        end
      end
    end
  end

  def view_entries
    [
      ['text_edit_view', 'org.concord.otrunk.ui.OTText', 'org.concord.otrunk.ui.swing.OTTextEditView'],
      ['question_view', 'org.concord.otrunk.ui.question.OTQuestion', 'org.concord.otrunk.ui.question.OTQuestionView'],
      ['choice_radio_button_view', 'org.concord.otrunk.ui.OTChoice', 'org.concord.otrunk.ui.swing.OTChoiceRadioButtonView'],
      ['data_drawing_tool2_view', 'org.concord.graph.util.state.OTDrawingTool2', 'org.concord.datagraph.state.OTDataDrawingToolView'],
      ['blob_image_view', 'org.concord.framework.otrunk.wrapper.OTBlob', 'org.concord.otrunk.ui.swing.OTBlobImageView'],
      ['data_collector_view', 'org.concord.datagraph.state.OTDataCollector', 'org.concord.datagraph.state.OTDataCollectorView'],
      ['data_graph_view', 'org.concord.datagraph.state.OTDataGraph', 'org.concord.datagraph.state.OTDataGraphView'],
      ['data_field_view', 'org.concord.data.state.OTDataField', 'org.concord.data.state.OTDataFieldView'],
      ['data_drawing_tool_view', 'org.concord.graph.util.state.OTDrawingTool', 'org.concord.datagraph.state.OTDataDrawingToolView'],
      ['multi_data_graph_view', 'org.concord.datagraph.state.OTMultiDataGraph', 'org.concord.datagraph.state.OTMultiDataGraphView'],
      ['button_view', 'org.concord.otrunk.control.OTButton', 'org.concord.otrunk.control.OTButtonView'],
      ['data_table_view', 'org.concord.data.state.OTDataTable', 'org.concord.data.state.OTDataTableView'],
      ['udl_container', 'org.concord.otrunk.ui.OTUDLContainer', 'org.concord.otrunk.ui.OTUDLContainerView'],
      ['curriculum_unit_view', 'org.concord.otrunk.ui.OTCurriculumUnit', 'org.concord.otrunk.ui.swing.OTCurriculumUnitView'],
      ['section_view', 'org.concord.otrunk.ui.OTSection', 'org.concord.otrunk.ui.swing.OTSectionView'],
      ['menu_page_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageView'],
      ['menu_accordion_section_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.swingx.OTMenuAccordionSectionView'],
      ['menu_section_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuSectionView'],
      ['menu_page_expand_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageExpandView'],
      ['card_container_view', 'org.concord.otrunk.ui.OTCardContainer', 'org.concord.otrunk.ui.swing.OTCardContainerView'],
      ['nav_bar', 'org.concord.otrunk.ui.menu.OTNavBar', 'org.concord.otrunk.ui.menu.OTNavBarView'],
      ['modeler_page_view', 'org.concord.otrunkmw.OTModelerPage', 'org.concord.otrunkmw.OTModelerPageView'],
      ['n_logo_model', 'org.concord.otrunknl4.OTNLogoModel', 'org.concord.otrunknl4.OTNLogoModelView']
    ] + (@otrunk_view_entries || []).uniq
  end
  
  def authoring_view_entries
    [
      ['text_edit_edit_view', 'org.concord.otrunk.ui.OTText', 'org.concord.otrunk.ui.swing.OTTextEditEditView'],
      ['question_edit_view', 'org.concord.otrunk.ui.question.OTQuestion', 'org.concord.otrunk.ui.question.OTQuestionEditView'],
      ['choice_radio_button_edit_view', 'org.concord.otrunk.ui.OTChoice', 'org.concord.otrunk.ui.swing.OTChoiceComboBoxEditView'],
#      ['data_drawing_tool2_view', 'org.concord.graph.util.state.OTDrawingTool2', 'org.concord.datagraph.state.OTDataDrawingToolView'],
#      ['blob_image_view', 'org.concord.framework.otrunk.wrapper.OTBlob', 'org.concord.otrunk.ui.swing.OTBlobImageView'],
      ['data_collector_edit_view', 'org.concord.datagraph.state.OTDataCollector', 'org.concord.otrunk.graph.OTDataCollectorEditView'],
#      ['data_graph_view', 'org.concord.datagraph.state.OTDataGraph', 'org.concord.datagraph.state.OTDataGraphView'],
#      ['data_field_view', 'org.concord.data.state.OTDataField', 'org.concord.data.state.OTDataFieldView'],
      ['data_drawing_tool_edit_view', 'org.concord.graph.util.state.OTDrawingTool', 'org.concord.otrunk.graph.OTDataDrawingToolEditView'],
#      ['multi_data_graph_view', 'org.concord.datagraph.state.OTMultiDataGraph', 'org.concord.datagraph.state.OTMultiDataGraphView'],
#      ['button_view', 'org.concord.otrunk.control.OTButton', 'org.concord.otrunk.control.OTButtonView'],
      ['data_table_edit_view', 'org.concord.data.state.OTDataTable', 'org.concord.otrunk.ui.swing.OTDataTableEditView'],
      ['udl_container_edit_view', 'org.concord.otrunk.ui.OTUDLContainer', 'org.concord.otrunk.ui.OTUDLContainerEditView'],
      ['curriculum_unit_edit_view', 'org.concord.otrunk.ui.OTCurriculumUnit', 'org.concord.otrunk.ui.swing.OTCurriculumUnitEditView'],
#      ['section_view', 'org.concord.otrunk.ui.OTSection', 'org.concord.otrunk.ui.swing.OTSectionView'],
      ['menu_page_edit_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageEditView'],
#      ['menu_accordion_section_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.swingx.OTMenuAccordionSectionView'],
      ['menu_section_edit_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuSectionEditView'],
      ['menu_page_expand_edit_view', 'org.concord.otrunk.ui.menu.OTMenu', 'org.concord.otrunk.ui.menu.OTMenuPageEditView'],
#      ['card_container_view', 'org.concord.otrunk.ui.OTCardContainer', 'org.concord.otrunk.ui.swing.OTCardContainerView'],
#      ['nav_bar', 'org.concord.otrunk.ui.menu.OTNavBar', 'org.concord.otrunk.ui.menu.OTNavBarView'],
      ['modeler_page_edit_view', 'org.concord.otrunkmw.OTModelerPage', 'org.concord.otrunkmw.OTModelerPageEditView'],
      ['n_logo_model_edit_view', 'org.concord.otrunknl4.OTNLogoModel', 'org.concord.otrunknl4.OTNLogoModelEditView']
    ] + (@otrunk_edit_view_entries || []).uniq
  end

  def ot_view_bundle(options={})
    @left_nav_panel_width =  options[:left_nav_panel_width] || 0
    title = options[:title] || 'RITES sample'
    use_scroll_pane = (options[:use_scroll_pane] || false).to_s
    authoring = options[:authoring] || false
    render :partial => "otml/ot_view_bundle", :locals => { :view_entries => view_entries, :authoring_view_entries => authoring_view_entries, :use_scroll_pane => use_scroll_pane, :left_nav_panel_width => @left_nav_panel_width, :title => title, :authoring => authoring }
  end

  def ot_script_engine_bundle
    engines = [
      'org.concord.otrunk.script.js.OTJavascript', 'org.concord.otrunk.script.js.OTJavascriptEngine',
      'org.concord.otrunk.script.jruby.OTJRuby', 'org.concord.otrunk.script.jruby.OTJRubyEngine'
    ]
    render :partial => "otml/ot_script_engine_bundle", :locals => { :engines => engines }
  end

  def ot_sharing_bundle
    render :partial => "otml/ot_sharing_bundle"
  end

  def ot_interface_manager
    vendor_interface = current_user.vendor_interface
    render :partial => "otml/ot_interface_manager", :locals => { :vendor_interface => vendor_interface }
  end

  def ot_bundles(options={})
    capture_haml do
      haml_tag :bundles do
        haml_concat ot_view_bundle(options)
        haml_concat ot_interface_manager
      end
    end
  end
  
  
  # %OTDataStore{ :local_id => ot_local_id_for(data_collector, :data_store), :numberChannels => '2' }
  #   - if data_collector.data_store_values.length > 0
  #     %values
  #       - data_collector.data_store_values.each do |value|
  #         %float= value
  # 
  def generate_otml_datastore(data_collector)
    capture_haml do
      haml_tag :OTDataStore, :local_id => ot_local_id_for(data_collector, :data_store), :numberChannels => '2' do
        if data_collector.data_store_values && data_collector.data_store_values.length > 0
          haml_tag :values do
            data_collector.data_store_values.each do |value|
              haml_tag(:float, :<) do
                haml_concat(value)
              end
            end
          end
        end
      end
    end
  end

end


{'fraction_non_alphanumeric': 0.1343497586388185, 'fraction_numerical': 0.0014338288008411797, 'mean_word_length': 3.9677113010446345, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 47, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1175574', 'n_tokens_mistral': 7654, 'n_tokens_neox': 7602, 'n_words': 752}