This release is a pre-release and may not be stable for production use.
th2 common library (Python)
Installation
pip install th2-common
This package can be found on PyPI.
Usage
First things first, you need to import CommonFactory class:
from th2_common.schema.factory.common_factory import CommonFactory
Then you create an instance of imported class, choosing one of the options:
- Create factory with configs from default path (
/var/th2/config/*):factory = CommonFactory() - Create factory with configs from specified directory path (
path/*):factory = CommonFactory(config_path=...) - Create factory with configs from specified file paths:
factory = CommonFactory(rabbit_mq_config_filepath=..., mq_router_config_filepath=..., grpc_router_config_filepath=..., cradle_config_filepath=..., custom_config_filepath=...) - Create factory with configs from command line arguments (
sys.argv):factory = CommonFactory.create_from_arguments() - Create factory with configs from specified arguments:
factory = CommonFactory.create_from_arguments(args) - Create factory with a namespace in Kubernetes and the name of the target th2 box from Kubernetes:
factory = CommonFactory.create_from_kubernetes(namespace, box_name)
Requirements for creatring factory with Kubernetes
-
It is necessary to have Kubernetes configuration written in ~/.kube/config. See more on kubectl configuration here.
-
It is necessary to have environment variables
CASSANDRA_PASSandRABBITMQ_PASSto use configs fromcradle.jsonandrabbitMQ.jsonas the passwords are not stored there explicitly. -
Also note that
generated_configsdirectory will be created to store.jsonfiles with configs from Kubernetes. Those files are overridden whenCommonFactory.create_from_kubernetes(namespace, box_name)is invoked again.
After that you can get various Routers through factory properties:
message_parsed_batch_router = factory.message_parsed_batch_router
message_raw_batch_router = factory.message_raw_batch_router
event_batch_router = factory.event_batch_router
message_parsed_batch_router is working with MessageBatch
message_raw_batch_router is working with RawMessageBatch
event_batch_router is working with EventBatch
See th2-grpc-common for details.
With router created, you can subscribe to pins (specifying callback function) or send data that router works with:
router.subscribe(callback) # subscribe to only one pin
router.subscribe_all(callback) # subscribe to one or several pins
router.send(message) # send to only one pin
router.send_all(message) # send to one or several pins
You can do these actions with extra pin attributes in addition to default ones.
router.subscribe(callback, attrs...) # subscribe to only one pin
router.subscribe_all(callback, attrs...) # subscribe to one or several pins
router.send(message, attrs...) # send to only one pin
router.send_all(message, attrs...) # send to one or several pins
Default attributes are:
message_parsed_batch_router- Subscribe:
subscribe,parsed - Send:
publish,parsed
- Subscribe:
message_raw_batch_router- Subscribe:
subscribe,raw - Send:
publish,raw
- Subscribe:
event_batch_router- Subscribe:
subscribe,event - Send:
publish,event
- Subscribe:
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file th2_common-3.0.4.dev763361180.tar.gz.
File metadata
- Download URL: th2_common-3.0.4.dev763361180.tar.gz
- Upload date:
- Size: 26.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.0 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d480af181578be77f89f7d08d2cf193bd73acb4a8a6d5223b8774df82c2713bc
|
|
| MD5 |
e53ab06e8e5c1f068edbb427dc368451
|
|
| BLAKE2b-256 |
aff4d2a194c8e70a24d869adca5a93b7e71db2d73ed90637bff13f6a1d8cb5bb
|