Skip to main content

A python client for retrieving Iglu schemas and validating self-describing JSON

Project description

Python client for Iglu Travis-CI Build Status

A Python client and resolver for [Iglu schema repositories][iglu-wiki]

Installation

pip install iglu_client

Usage

import json
import jsonschema

from iglu_client import SchemaResolver, SelfDescribingJson

resolver_conf = """
{
    "schema": "iglu:com.snowplowanalytics.iglu/resolver-config/jsonschema/1-0-2",
    "data": {
        "cacheSize": 500,
        "repositories": [
            {
                "name": "My Private Repo",
                "priority": 0,
                "vendorPrefixes": ["com.mycompany"],
                "connection": {"http": {"uri": "http://myprivaterepo.com", "apikey": "api-key"}}
            },
            {
                "name": "Iglu Central",
                "priority": 1,
                "vendorPrefixes": ["com.snowplowanalytics.snowplow"],
                "connection": {"http": {"uri": "http://iglucentral.com"}}
            }
        ]
    }
}
"""
resolver = SchemaResolver.parse(resolver_conf)

# Retrieve a schema
schema = resolver.lookup_schema("iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-0")
print("schema: %s" % schema)


# Validate a self-describing JSON
event = """
{
    "schema": "iglu:com.snowplowanalytics.snowplow/link_click/jsonschema/1-0-0",
    "data": {
        "targetUrl": "https://mixpanel.com"
    }
}
"""
data = SelfDescribingJson.parse(event)
try:
    data.validate(resolver) # will throw an exception if the event is invalid
    print("event is valid")
except jsonschema.exceptions.ValidationError as e:
    print("event is invalid")

if data.valid(resolver): # will return True or False
    print("event is valid")
else:
    print("event is invalid")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

iglu-client-0.2.0.tar.gz (8.6 kB view details)

Uploaded Source

File details

Details for the file iglu-client-0.2.0.tar.gz.

File metadata

  • Download URL: iglu-client-0.2.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.2.0 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.1

File hashes

Hashes for iglu-client-0.2.0.tar.gz
Algorithm Hash digest
SHA256 76083d490dea4d2abb9318a3c62560992661f3996e7e672117e2212ebaa10c59
MD5 89d2932598930987ace8fa6ade87eec2
BLAKE2b-256 fb921037688ff7e7313cb32dc16aa1503ed7fbdb66a7ffd8983b0c35dbe4c507

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page