<commit_before>Feature: Set Table Properties
  As a Data Packager  
  I want to described the table  
  So that it can be validated and Data Consumers can understand and use it  

  RULES
  =====

    - Table properties are defined in:
      - http://frictionlessdata.io/specs/data-resource/
      - http://frictionlessdata.io/specs/tabular-data-resource/
      - http://frictionlessdata.io/specs/csv-dialect/
      - http://frictionlessdata.io/specs/table-schema/#other-properties
    - The 'name':
      - is required and must be unique
      - is defaulted from the file name excluding the file extension, if the file has been opened or saved
      - when available, replaces the Data Tab Name
    - Some properties can be defaulted and do not need to not displayed:
      - 'path'
      - 'profile' must be set to 'tabular-data-resource'
      - 'format' the standard file extension for this type of resource
      - 'mediatype' the mediatype/mimetype of the resource 'text/csv'
      - 'encoding' UTF-8.
      - 'CSV Dialect'
        - 'delimiter' based on the format of the opened/saved file
        - 'header' true
    - These properties are optional:
      - 'title'
      - 'description'
      - 'sources'
      - 'licenses'
    - The following Table Schema properties apply to the whole Table:
      - 'missingValues'
      - 'primaryKeys'
      - 'foreignKeys'
    - The 'foreign key' relationships can be to columns in:
      - the same table
      - a table in the same data package
      - at table at a url (planned addition to the Frictionless Data specification)
    - "Table Properties" can be invoked from the menu, toolbar or shortcut

  Scenario: Set Table Properties
    Given Data Curator is open
    And a data tab is open
    When "Table Properties" is invoked
    Then a panel that allows properties to be set for the current Tab should be displayed
    And property values should be accepted and validated <commit_msg>add table properties ui<commit_after>Feature: Set Table Properties
  As a Data Packager  
  I want to described the table  
  So that it can be validated and Data Consumers can understand and use it  

  RULES
  =====

    - Table properties are defined in:
      - http://frictionlessdata.io/specs/data-resource/
      - http://frictionlessdata.io/specs/tabular-data-resource/
      - http://frictionlessdata.io/specs/csv-dialect/
      - http://frictionlessdata.io/specs/table-schema/#other-properties
    - The 'name':
      - is required and must be unique
      - is defaulted from the file name excluding the file extension, if the file has been opened or saved
      - when available, replaces the Data Tab Name
    - Some properties can be defaulted and do not need to not displayed:
      - 'path'
      - 'profile' must be set to 'tabular-data-resource'
      - 'format' the standard file extension for this type of resource
      - 'mediatype' the mediatype/mimetype of the resource 'text/csv'
      - 'encoding' UTF-8.
      - 'CSV Dialect'
        - 'delimiter' based on the format of the opened/saved file
        - 'header' true
    - These properties are optional:
      - 'title'
      - 'description'
      - 'sources'
      - 'licenses'
    - The following Table Schema properties apply to the whole Table:
      - 'missingValues'
      - 'primaryKeys'
      - 'foreignKeys'
    - The 'foreign key' relationships can be to columns in:
      - the same table
      - a table in the same data package
      - at table at a url (planned addition to the Frictionless Data specification)
    - "Table Properties" can be invoked from the menu, toolbar or shortcut
    
  USER INTERFACE
  ==============

  ![Table properties user interface](https://raw.githubusercontent.com/ODIQueensland/data-curator/develop/static/img/ui/table-properties.png)

  Scenario: Set Table Properties
    Given Data Curator is open
    And a data tab is open
    When "Table Properties" is invoked
    Then a panel that allows properties to be set for the current Tab should be displayed
    And property values should be accepted and validated 
{'fraction_non_alphanumeric': 0.07545320921117099, 'fraction_numerical': 0.0004899559039686428, 'mean_word_length': 2.565938864628821, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 1, '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': '6606931', 'n_tokens_mistral': 1126, 'n_tokens_neox': 1089, 'n_words': 467}