Catalog PyPI
Back to packageRELEASE DETAILS

1.3.0

PyPI

aether.python

A python library with Aether Python functionality

aetherentityextractionredisutilsvalidators
Published7 Jan 2021
Direct dependencies11
Transitive dependenciesNot calculated

README

Version 1.3.0 documentation

Aether Python Library

This is the official Python Library with Aether functions.

Table of contents

Requirements

This library requires Python 3.6 and above.

Python libraries:

  • eha-jsonpath Provides new Extensions to the jsonpath_ng python library to provide commonly requested functions.
  • jsonschema An implementation of JSON Schema validation for Python.
  • redis Python client for Redis key-value store.
  • requests HTTP for Humans.
  • spavro An Avro library, Spavro is a (sp)eedier avro implementation using Cython.

Extra dependencies (based on settings):

  • test
    • birdisle A modified version of redis that runs as a library inside another process.
    • coverage A tool for measuring code coverage of Python programs.
    • flake8 Tool For Style Guide Enforcement.
    • flake8-quotes Flake8 extension for checking quotes in python.
    • tblib Traceback serialization library.

Return to TOC

Installation

# standalone
pip3 install aether.python

Return to TOC

Distribution

How to create the package distribution

Execute the following command:

python3 setup.py bdist_wheel

or

./scripts/build.sh

Return to TOC

Tests

Depending on your preference you can either use virtualenv or pipenv to test the library locally.

Virtual Env

First install dependencies (execute it only once):

./scripts/install.sh

After that execute the following command:

source ./venv/bin/activate
./scripts/test.sh

Pipenv

In the root folder run:

pipenv install .

Then to test run:

pipenv run scripts/test.sh

The file scripts/test.ini contains the environment variables used in the tests.

Return to TOC

Usage

Redis Tools

This provides an interface to a Redis server via supplied redis parameters.

It makes available a number of CRUD redis operation which include but not limited to: - Formats document keys into _{type}:{tenant}:{id} before being cached on redis. - Retrieves documents based on preformated keys. - Removes documents based on preformated keys. - Subscribes to key based channels with a callback function.

Usage

from aether.python.redis.task import TaskHelper

REDIS_TASK = TaskHelper(settings, redis_instance)

# Settings must have the following properties:
# REDIS_HOST str - Redis server host,
# REDIS_PORT int - Redis server port,
# REDIS_PASSWORD str - Redis server password,
# REDIS_DB str - Redis database name

# redis_instance (Optional) - Pass an existing redis connection
# (If provided, ignores all settings and uses redis_instance)

document = {
    'id': 'document_id',
    'name': 'document name'
}

document_type = 'test_document'
aether_tenant = 'prod'

# add document to redis
REDIS_TASK.add(task=document, type=document_type, tenant=aether_tenant)

# retrieve document from redis
REDIS_TASK.get(_id=document['id'], type=document_type, tenant=aether_tenant)

# subcribe to a key based channel

CHANNEL = '_test_document*' # listens for messages published to all channels starting with '_test_document'

def handle_callback(msg):
    print(msg) # handle returned message

REDIS_TASK.subscribe(callback=handle_callback, pattern=CHANNEL, keep_alive=True)


# publish document
REDIS_TASK.publish(task=document, type=document_type, tenant=aether_tenant) # this will trigger the 'handle_callback' function with the published document to all subscribed clients

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 11

Native requirements
11 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
avro-python3
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
avro-python3runtime
eha-jsonpath
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
eha-jsonpathruntime
jsonschema
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
jsonschemaruntime
redis
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
redisruntime
requests
Environment
{
  "extras": "security",
  "marker": null,
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
requests[security]runtime
spavro
Environment
{
  "extras": "",
  "marker": null,
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
spavroruntime
birdisle
Environment
{
  "extras": "",
  "marker": "extra == 'test'",
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
birdisle ; extra == 'test'runtime
coverage
Environment
{
  "extras": "",
  "marker": "extra == 'test'",
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
coverage ; extra == 'test'runtime
flake8
Environment
{
  "extras": "",
  "marker": "extra == 'test'",
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
flake8 ; extra == 'test'runtime
flake8-quotes
Environment
{
  "extras": "",
  "marker": "extra == 'test'",
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
flake8-quotes ; extra == 'test'runtime
tblib
Environment
{
  "extras": "",
  "marker": "extra == 'test'",
  "requires_python": ">=3.7",
  "evaluation": "NOT_EVALUATED"
}
tblib ; extra == 'test'runtime

Distribution files

1 collected
aether.python-1.3.0-py3-none-any.whl

bdist_wheel · 37.27 KB · Python py3

Source file

Repository

PENDING
ehealthafrica/aether-python-library

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 20:55 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:9e53206292b238fcd3edca1033c01d1c2b0bda94e71e32b58ec1a2e1441635bf

Other collected versions

View all collected versions →