root/meisheng/: ms-common-1.2.1 metadata and description
Shared utilities for Mei Sheng Textiles applications
| author | Mei Sheng Textiles Development Team |
| author_email | Mei Sheng Textiles Development Team <dev@meisheng.group> |
| classifiers |
|
| description_content_type | text/markdown |
| dynamic |
|
| keywords | fastapi, microservices, textiles, manufacturing |
| license | Proprietary |
| metadata_version | 2.4 |
| project_urls |
|
| requires_dist |
|
| requires_python | >=3.11 |
Because this project isn't in the mirror_whitelist,
no releases from root/pypi are included.
| File | Tox results | History |
|---|---|---|
ms_common-1.2.1-py3-none-any.whl
|
|
|
ms_common-1.2.1.tar.gz
|
|
MS Common Python Package
Shared utilities and services for Mei Sheng Textiles applications.
Overview
This package provides common functionality for the dye house application ecosystem:
- DH_Production_Manager
- MS_QC_DB
- dye_process_manager
- QR_code
Features
- API Key Management: Abstract interface with PostgreSQL, SQLite, and config-based implementations
- Service Discovery: Consul-based service discovery with fallbacks
- Inter-Service Communication: Enhanced HTTP client with field mapping
- Monitoring: FastAPI health check and monitoring endpoints
- Shared Utilities: Encryption, validation, and common patterns
Installation
From Git Repository (Recommended)
pip install git+ssh://git@gitea.dev.meisheng.group:2222/Mei_Sheng_Textiles/ms_common_python.git@v1.0.0
In Docker Base Image
FROM python:3.11-slim
RUN pip install git+ssh://git@gitea.dev.meisheng.group:2222/Mei_Sheng_Textiles/ms_common_python.git@v1.0.0
Quick Start
API Key Service
from ms_common import create_api_key_service
# PostgreSQL implementation (DH_Production_Manager)
api_key_service = create_api_key_service(
'postgres',
session_factory=get_async_session,
user_model=User,
api_key_model=ApiKey
)
# SQLite implementation (MS_QC_DB)
api_key_service = create_api_key_service(
'sqlite',
db_path='/app/data/api_keys.db'
)
# Config implementation (dye_process_manager)
api_key_service = create_api_key_service(
'config',
config_keys={'admin': 'your-api-key'}
)
# Use the service
key_info = await api_key_service.validate_api_key(api_key)
Service Discovery
from ms_common.service_client import create_service_client
# Create enhanced service client with field mapping
client = create_service_client("dh-production-manager")
# Make requests with automatic field transformation
response = await client.post("ms-qc-db", "/api/v1/lots", json={
"lot": "25D4567", # Automatically mapped to target service format
"contract": "MS2024001"
})
Monitoring Endpoints
from fastapi import FastAPI
from ms_common.monitoring.endpoints import create_monitoring_router
app = FastAPI()
# Add health checks and monitoring
monitoring_router = create_monitoring_router("my-service")
app.include_router(monitoring_router, prefix="/api/v1/monitoring")
Architecture
Database Independence
Each application can use its existing database schema:
# DH_Production_Manager - Uses existing PostgreSQL models
from app.models.postgres_models import User, ApiKey
# MS_QC_DB - Uses SQLite
# No model dependency, creates tables automatically
# dye_process_manager - Uses environment config
# No database required
Service Communication
# Automatic field mapping between services
# lot <-> lot_id <-> lotid transformations happen automatically
client = create_service_client("source-service")
response = await client.get("target-service", "/api/data")
# Field names automatically transformed for compatibility
Development
Setting up for Development
git clone ssh://git@gitea.dev.meisheng.group:2222/Mei_Sheng_Textiles/ms_common_python.git
cd ms_common_python
pip install -e .
pip install -r requirements-dev.txt
Running Tests
pytest tests/
pytest --cov=ms_common tests/
Building Package
python setup.py sdist bdist_wheel
Version History
- v1.0.0 - Initial release with API key management, service discovery, and monitoring
- v0.1.0 - Development preview
License
Internal use only - Mei Sheng Textiles Ltd.