<commit_before># MongoKit [![Build Status](https://travis-ci.org/namlook/mongokit.png)](https://travis-ci.org/namlook/mongokit.png)

[MongoDB](http://www.mongodb.org/display/DOCS/Home) is a great schema-less document oriented database. It have a lot of driver for many languages (python, ruby, perl, java, php...).

MongoKit is a python module that brings structured schema and validation layer
on top of the great pymongo driver. It has be written to be as simple and light
as possible with the KISS and DRY principles in mind.

## Philosophy

MongoKit is designed to be:

 * **simple**: MongoKit use plain python type to describe document structure
 * **fast**: MongoKit is fast but if you *really* need to be fast you have access to the raw pymongo layer without changing the API
 * **powerful**: MongoKit brings many feature like document auto-reference, custom types or i18n support.

**Your data is clean:**

> "Tools change, not data". In order to follow this "credo", MongoKit won't
> add any information into your data saved into the database.
> So if you need to use other mongo tools or ODMs in other languages, your
> data won't be polluted by MongoKit's stuff.
<commit_msg>Small grammar fix<commit_after># MongoKit [![Build Status](https://travis-ci.org/namlook/mongokit.png)](https://travis-ci.org/namlook/mongokit.png)

[MongoDB](http://www.mongodb.org/display/DOCS/Home) is a great schema-less document oriented database. It has a lot of drivers for many languages (python, ruby, perl, java, php...).

MongoKit is a python module that brings structured schema and validation layer
on top of the great pymongo driver. It has be written to be as simple and light
as possible with the KISS and DRY principles in mind.

## Philosophy

MongoKit is designed to be:

 * **simple**: MongoKit use plain python type to describe document structure
 * **fast**: MongoKit is fast but if you *really* need to be fast you have access to the raw pymongo layer without changing the API
 * **powerful**: MongoKit brings many feature like document auto-reference, custom types or i18n support.

**Your data is clean:**

> "Tools change, not data". In order to follow this "credo", MongoKit won't
> add any information into your data saved into the database.
> So if you need to use other mongo tools or ODMs in other languages, your
> data won't be polluted by MongoKit's stuff.

{'fraction_non_alphanumeric': 0.0867003367003367, 'fraction_numerical': 0.0016835016835016834, 'mean_word_length': 4.414578587699316, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 11, 'https://': 4, 'lorem ipsum': 0, 'www.': 2, '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': '2782839', 'n_tokens_mistral': 694, 'n_tokens_neox': 656, 'n_words': 334}