<commit_before>django-skd-tools
================

`pip install django-skd-tools`

Mixins
------
`skd_tools.mixins`

 - LoginRequiredMixin
 - AjaxRequiredMixin
 - AjaxMixin
 - ActiveTabMixin

Decorators
------
`skd_tools.decorators`

 - cache_method
 - cache_func
 - get_or_default
 - ajax_required

Utils

-----
`skd_tools.utils`

 - image_path
 - get_random_filename
 - storage_factory

Fields

-----
`skd_tools.fields`

 - TypedFileField


    Example:
    file = TypedFileField(allowed_mimes=['application/pdf',
                                         'image/png', 'image/jpeg',
                                         'application/msword',
                                         'application/zip',
                                         'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
                          allowed_exts=['doc',
                                        'docx',
                                        'jpeg',
                                        'jpg',
                                        'png',
                                        'pdf'],
                          max_size=10)
    Max size taking MB(megabytes)<commit_msg>fix README<commit_after>django-skd-tools
================

`pip install django-skd-tools`

Mixins
------

`skd_tools.mixins`

 - LoginRequiredMixin
 - AjaxRequiredMixin
 - AjaxMixin
 - ActiveTabMixin

Decorators
------

`skd_tools.decorators`

 - cache_method
 - cache_func
 - get_or_default
 - ajax_required

Utils
-----

`skd_tools.utils`

 - image_path
 - get_random_filename
 - storage_factory

Fields
-----

`skd_tools.fields`

 - TypedFileField


    Example:
    file = TypedFileField(allowed_mimes=['application/pdf',
                                         'image/png', 'image/jpeg',
                                         'application/msword',
                                         'application/zip',
                                         'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],
                          allowed_exts=['doc',
                                        'docx',
                                        'jpeg',
                                        'jpg',
                                        'png',
                                        'pdf'],
                          max_size=10)
    Max size taking MB(megabytes)
{'fraction_non_alphanumeric': 0.10910616869492237, 'fraction_numerical': 0.001678556441460344, 'mean_word_length': 1.1022927689594357, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 2}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 26, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1387047', 'n_tokens_mistral': 593, 'n_tokens_neox': 561, 'n_words': 86}