<commit_before>package ciris

/**
  * Represents the name and type of keys that can be read from a [[ConfigSource]].
  * Names should be in singular form and in all lowercase. The [[ConfigKeyType]]s
  * supported by Ciris in the core module include the following:<br>
  * <br>
  * - [[ConfigKeyType#Environment]]: "environment variable" of type `String`,<br>
  * - [[ConfigKeyType#Property]]: "system property" of type `String`, and<br>
  * - [[ConfigKeyType#Argument]]: "command-line argument" of type `Int`.<br>
  * <br>
  * To create a new [[ConfigKeyType]] use the apply method in the companion object,
  * specifying the name of the key and its type. Note that there are no checks for
  * whether the name is in singular form or in all lowercase, since the only real
  * implication is for error messages.
  *
  * {{{
  * scala> ConfigKeyType[String]("custom key")
  * res0: ConfigKeyType[String] = ConfigKeyType(custom key)
  * }}}
  *
  * @param name the name of the key, for example, "environment variable";
  *             should be in singular form and in all lowercase letters
  * @tparam Key the type of the key
  */
sealed class ConfigKeyType[Key](val name: String)

object ConfigKeyType extends ConfigKeyTypePlatformSpecific {

  /**
    * Creates a new [[ConfigKeyType]] for the specified key name and type.
    * Note that the type cannot be inferred automatically, so you will have
    * to specify it explicitly like in the following example.
    *
    * @param name the name of the key, for example, "environment variable";
    *             should be in singular form and in all lowercase letters<commit_msg>Add missing ConfigKeyType#File in API docs<commit_after>package ciris

/**
  * Represents the name and type of keys that can be read from a [[ConfigSource]].
  * Names should be in singular form and in all lowercase. The [[ConfigKeyType]]s
  * supported by Ciris in the core module include the following:<br>
  * <br>
  * - [[ConfigKeyType#Environment]]: "environment variable" of type `String`,<br>
  * - [[ConfigKeyType#Property]]: "system property" of type `String`,<br>
  * - [[ConfigKeyType#Argument]]: "command-line argument" of type `Int`, and<br>
  * - [[ConfigKeyType#File]]: "file" of type `(File, Charset)`.<br>
  * <br>
  * To create a new [[ConfigKeyType]] use the apply method in the companion object,
  * specifying the name of the key and its type. Note that there are no checks for
  * whether the name is in singular form or in all lowercase, since the only real
  * implication is for error messages.
  *
  * {{{
  * scala> ConfigKeyType[String]("custom key")
  * res0: ConfigKeyType[String] = ConfigKeyType(custom key)
  * }}}
  *
  * @param name the name of the key, for example, "environment variable";
  *             should be in singular form and in all lowercase letters
  * @tparam Key the type of the key
  */
sealed class ConfigKeyType[Key](val name: String)

object ConfigKeyType extends ConfigKeyTypePlatformSpecific {

  /**
    * Creates a new [[ConfigKeyType]] for the specified key name and type.
    * Note that the type cannot be inferred automatically, so you will have
    * to specify it explicitly like in the following example.
    *
    * @param name the name of the key, for example, "environment variable";
    *             should be in singular form and in all lowercase letters
{'fraction_non_alphanumeric': 0.09573516254100806, 'fraction_numerical': 0.0005964807634953773, 'mean_word_length': 3.651872399445215, 'pattern_counts': {'":': 0, '<': 16, '<?xml version=': 0, '>': 18, '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': '7588057', 'n_tokens_mistral': 949, 'n_tokens_neox': 938, 'n_words': 422}