Skip to main content

gRPC interface to lara_django_organisms_store

Project description

LARA Django Organisms Store - gRPC API

This package provides a gRPC interface to the LARA Django Organisms Store, enabling high-performance remote procedure calls for managing organism instances and related data.

Overview

The lara_django_organisms_store_grpc package offers a strongly-typed, efficient gRPC API for interacting with the LARA Django Organisms Store. It supports operations on:

  • OrganismInstances: Individual organism records with origin, location, and metadata
  • OrganismBaskets: Collections of organism instances
  • OrganismLocalStore: Local storage management for organisms
  • OrganismInstancesSubset: Filtered subsets of organism data
  • ExtraData: Additional metadata and extended information

Installation

Requirements

  • Python 3.13.*
  • gRPC runtime (grpcio>=1.73.0)

Install from source

cd api/grpc
pip install .

Development installation

For development with additional tools:

pip install -e ".[dev]"

This includes:

  • grpcio-tools - For protocol buffer compilation
  • pytest - Testing framework
  • pytest-cov - Coverage reporting
  • pytest-asyncio - Async testing support

Usage

Basic Client Example

import grpc
from lara_django_organisms_store_grpc import organism_service_pb2
from lara_django_organisms_store_grpc import organism_service_pb2_grpc

# Create a gRPC channel
channel = grpc.insecure_channel('localhost:50051')

# Create a stub (client)
stub = organism_service_pb2_grpc.OrganismServiceStub(channel)

# Make a request
response = stub.GetOrganism(
    organism_service_pb2.GetOrganismRequest(organism_id="123")
)

print(f"Organism: {response.name}")

Server Setup

The gRPC server is typically integrated with the Django application. Refer to the main LARA Django Organisms Store documentation for server configuration.

Development

Running Tests

pytest

Running Tests with Coverage

pytest --cov=lara_django_organisms_store_grpc

Regenerating Protocol Buffers

If you modify the .proto files, regenerate the Python code:

cd api
buf generate

API Documentation

For detailed API documentation, see:

Project Structure

api/grpc/
├── README.md                     # This file
├── pyproject.toml                # Package configuration
└── python/                       # Python module root
    └── lara_django_organisms_store_grpc/
        ├── __init__.py
        └── *_pb2.py              # Generated protocol buffer code

Links

License

See the LICENSE file in the project root for license information.

Contributing

Contributions are welcome! Please see the CONTRIBUTING.md file in the project root for guidelines.

Authors

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

lara_django_organisms_store_grpc-0.2.100.tar.gz (33.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

File details

Details for the file lara_django_organisms_store_grpc-0.2.100.tar.gz.

File metadata

File hashes

Hashes for lara_django_organisms_store_grpc-0.2.100.tar.gz
Algorithm Hash digest
SHA256 ef5fc95c78e56376fbb8370e8a476368295a4f9d6714019af28b6ede019c81e4
MD5 8268014dffb480ad45f51b7a04eb6d53
BLAKE2b-256 f19f7ccf02dfbb697a670a3ad18d68edabbb21c9f1efbfb575b039bb5369809e

See more details on using hashes here.

File details

Details for the file lara_django_organisms_store_grpc-0.2.100-py3-none-any.whl.

File metadata

File hashes

Hashes for lara_django_organisms_store_grpc-0.2.100-py3-none-any.whl
Algorithm Hash digest
SHA256 5ac74e53a983017b0cdda9bc23d84fdb696bdb6f0bf9c0f82f5ff74e945742be
MD5 1361eba4662192ed39a70b44c9b788ca
BLAKE2b-256 44ecbb94bc347d51c07cc1a690650b4de7b13e5306d1159346005f4d5ca1b56d

See more details on using hashes here.

Supported by

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