Metadata-Version: 2.1
Name: userprovided
Version: 0.5.3
Summary: A library to check user input.
Home-page: https://github.com/RuedigerVoigt/userprovided
Author: Rüdiger Voigt
Author-email: projects@ruediger-voigt.eu
License: UNKNOWN
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Science/Research
Classifier: Intended Audience :: Developers
Classifier: Topic :: Security
Classifier: Topic :: Utilities
Classifier: Topic :: Software Development :: Quality Assurance
Requires-Python: >=3.6
Description-Content-Type: text/markdown

# userprovided

The package "userprovided" checks input for plausibility. For example it can check whether a string is a valid email address or an URL.

There are plenty of validators out there. The reasons to write another one:
* It's sister-project [exoskeleton](https://github.com/RuedigerVoigt/exoskeleton "GitHub Repository of exoskeleton") needs some special features. This would be for example not only to check whether a string is an URL, but to also check whether the scheme is http or https.
* Extensive testing (100% test coverage / unit tests / automatic test generation with the hypothesis package)
* Modularity

## Installation and Use

*Please take note that the development status of "userprovided" is "beta".* This means it may still contain some bugs and some commands could change with one of the next releases.

Install exoskeleton using `pip` or `pip3`. For example:

```pip install userprovided```

You may consider using a [virtualenv](https://virtualenv.pypa.io/en/latest/userguide/ "Documentation").


### Examples

```python
#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import userprovided

### Mailadresses ###

userprovided.mail.is_email(None)
# => False

userprovided.mail.is_email('example@example.com')
# => True

### Cloud ###

userprovided.cloud.is_aws_s3_bucket_name('foobar')
# => True


### URLs ###

print(userprovided.url.is_url('https://www.example.com'))
# => True

print(userprovided.url.is_url('https://www.example.com', ('ftp')))
# => False (Schema does not match permitted)


### Hashes ###

print(userprovided.hash.hash_available('md5'))
# => ValueError because md5 is deprecated

print(userprovided.hash.hash_available('sha256'))
# => True on almost any system

```


