<commit_before># rubocop:disable Metrics/ClassLength
class Project < ActiveRecord::Base
  STATUS_CHOICE = ['?', 'Met', 'Unmet']
  STATUS_CHOICE_NA = Array.new(STATUS_CHOICE) << 'N/A'
  MIN_SHOULD_LENGTH = 5

  FIELD_CATEGORIES = {
    'description_sufficient' => 'MUST',
    'interact' => 'MUST',
    'contribution' => 'MUST',
    'contribution_criteria' => 'SHOULD',
    'license_location' => 'MUST',
    'oss_license' => 'MUST',
    'oss_license_osi' => 'SUGGESTED',
    'documentation_basics' => 'MUST',
    'documentation_interface' => 'MUST',
    'repo_url' => 'MUST',
    'repo_track' => 'MUST',
    'repo_interim' => 'MUST',
    'repo_distributed' => 'SUGGESTED',
    'version_unique' => 'MUST',
    'version_semver' => 'SUGGESTED',
    'version_tags' => 'SUGGESTED',
    'changelog' => 'MUST',
    'changelog_vulns' => 'MUST',
    'report_tracker' => 'SUGGESTED',
    'report_process' => 'MUST',
    'report_responses' => 'MUST',
    'enhancement_responses' => 'SHOULD',<commit_msg>Freeze constants<commit_after># rubocop:disable Metrics/ClassLength
class Project < ActiveRecord::Base
  STATUS_CHOICE = %w(? Met Unmet).freeze
  STATUS_CHOICE_NA = (STATUS_CHOICE + %w(N/A)).freeze
  MIN_SHOULD_LENGTH = 5

  FIELD_CATEGORIES = {
    'description_sufficient' => 'MUST',
    'interact' => 'MUST',
    'contribution' => 'MUST',
    'contribution_criteria' => 'SHOULD',
    'license_location' => 'MUST',
    'oss_license' => 'MUST',
    'oss_license_osi' => 'SUGGESTED',
    'documentation_basics' => 'MUST',
    'documentation_interface' => 'MUST',
    'repo_url' => 'MUST',
    'repo_track' => 'MUST',
    'repo_interim' => 'MUST',
    'repo_distributed' => 'SUGGESTED',
    'version_unique' => 'MUST',
    'version_semver' => 'SUGGESTED',
    'version_tags' => 'SUGGESTED',
    'changelog' => 'MUST',
    'changelog_vulns' => 'MUST',
    'report_tracker' => 'SUGGESTED',
    'report_process' => 'MUST',
    'report_responses' => 'MUST',
    'enhancement_responses' => 'SHOULD',
{'fraction_non_alphanumeric': 0.18557740796772568, 'fraction_numerical': 0.0010085728693898135, 'mean_word_length': 4.2348284960422165, 'pattern_counts': {'":': 0, '<': 7, '<?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': '7619881', 'n_tokens_mistral': 807, 'n_tokens_neox': 765, 'n_words': 119}