<commit_before>CsvLINQPadDriver
==

CsvLINQPadDriver is LINQPad data context dynamic driver for querying CSV files.

You can query data in CSV files with LINQ, just like it would be regular database. No need to write custom data model, mappings etc.

Driver automatically generates new data types for every CSV file with corresponding properties and mappings for all columns.
Based on column and file names, possible relations between CSV tables are detected and generated.

Website
--
https://github.com/dobrou/CsvLINQPadDriver

Download
--
- v1.3
  - **[CsvLINQPadFileOpen.exe](http://goo.gl/fWIVKq)** - Preferred. It's installer and CSV context loader in one package.
      - Automatically installs CSV driver into LINQPad. 
      - Loads new CSV context with files from command-line. You can associate this executable to open CSV files, so they will load directly into LINQPad.
  - [CsvLINQPadDriver.lpx](http://goo.gl/3Q2JBV) - Manual installation.

Example
--
Let's have 2 CSV files:
```
Lakes.csv:
LakeName,ID
lake1,1
etc.
<commit_msg>Readme update<commit_after>CsvLINQPadDriver
==

CsvLINQPadDriver is LINQPad data context dynamic driver for querying CSV files.

You can query data in CSV files with LINQ, just like it would be regular database. No need to write custom data model, mappings etc.

Driver automatically generates new data types for every CSV file with corresponding properties and mappings for all columns.
Based on column and file names, possible relations between CSV tables are detected and generated.

Website
--
https://github.com/dobrou/CsvLINQPadDriver

Download
--
- v1.4
  - **[CsvLINQPadFileOpen.exe](http://goo.gl/fWIVKq)** - Preferred. It's installer and CSV context loader in one package.
      - Automatically installs CSV driver into LINQPad. 
      - Loads new CSV context with files from command-line. You can associate this executable to open CSV files, so they will load directly into LINQPad.
  - [CsvLINQPadDriver.lpx](http://goo.gl/3Q2JBV) - Manual installation.

Example
--
Let's have 2 CSV files:
```
Lakes.csv:
LakeName,ID
lake1,1
etc.

{'fraction_non_alphanumeric': 0.07293666026871401, 'fraction_numerical': 0.0067178502879078695, 'mean_word_length': 4.036231884057971, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 2, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 2, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2572963', 'n_tokens_mistral': 659, 'n_tokens_neox': 602, 'n_words': 257}