Skip to main content
# Type Checker
Type check Python types with support for nested lists and dictionaries.

[![coverage report](https://gitlab.com/robjampar/type-checker/badges/master/coverage.svg)](https://gitlab.com/robjampar/type-checker/commits/master)

[![pipeline status](https://gitlab.com/robjampar/type-checker/badges/master/pipeline.svg)](https://gitlab.com/robjampar/type-checker/commits/master)

## Installation
Type Checker is a Python package, and is compatible with `Python 3` only (for now). It can be installed through `pip`.

##### Pip
```
pip install type-checker
```

## Run the Unit Tests
To run the tests.
```
pip install pipenv
pipenv install --dev
pipenv run python -m pytest tests --cov=type_checker
```

## Docs

The documentation is public, and is generated using Sphinx.

[Type Checker Documentation](https://robjampar.gitlab.io/type-checker)

##### Build documentation
To build a local static HTML version of the documentation.
```
pip install pipenv
pipenv install sphinx
pipenv run sphinx-build docs ./public -b html
```

## Type Checking Example
``` python
from typing import Union
from type_checker import type_check

# the type defintion to check a value against
type_def = {
"hello": {
"world": int
},
"a_key": str,
"a_list": [
float
],
int: bool,
float: Union[bool, int]
}

# a valid test value
test_value = {
"hello": {
"world": 1
},
"a_key": "this_is_a_string",
"a_list": [
3.2,
4.7
5.9
],
5: True,
5.2: False,
5.7: 10

}

# use validate from the type_checker package to validate the value
is_valid = type_check(test_value, type_def)

print(f"is valid: {is_valid}")
```

``` text
$ python example.py
>>> is valid: True
```

Metadata

Release files for type-checker 1.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for type-checker 1.0.2
File Size Uploaded
type-checker-1.0.2.tar.gz 5.7 kB Details

Release files / type-checker-1.0.2.tar.gz

Download URL type-checker-1.0.2.tar.gz
Size 5.7 kB
Tags Source
SHA-256 checksum
How to use checksums
31479d1a51ee4dde8b17a634e2329162a8586dc452723fe484651157747d119b
BLAKE2b-256 checksum
How to use checksums
3a4794e7f81589953ad1a2a33f8e4fb0f0987144ad7b395ddbc7f8dc61ca1415
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.12.1 pkginfo/1.4.2 requests/2.21.0 setuptools/40.0.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/2.7.10

Release history Release notifications | RSS feed

This release

1.0.2 This release

1 release file

1.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page