Common tools/utilities/configurations used in the RealTime Events echo system.
Project description
RealTimeEvents Common
| Category | Status' and Links |
|---|---|
| General | |
| CD/CI |
Shared tools, logging helpers, database bootstrap utilities, and reusable test infrastructure for the RealTime Events ecosystem.
Short Description
rtecommon centralises reusable project infrastructure so RealTime Events services can share configuration,
environment handling, logging behaviour, database bootstrap helpers, and test infrastructure from one maintained
package.
Module Overview
Key Features
- Shared configuration helpers for environment-driven application settings.
- Environment-backed settings models exposed from
rtecommon.configs.settingsfor repo and runtime metadata. - Shared database bootstrap helpers in
rtecommon.dbdeffor installer-role setup, database creation, session access, and table initialization. - Common logging utilities with
setup_logging, named logger access, masked environment setting logging, and shared logging settings. - Reusable pytest fixture factories and Docker/PostgreSQL helpers in
rtecommon.testingfor service-level integration and unit-test setup. - Packaging and developer tooling aligned for Python
3.10through3.14. - Repository bootstrap scripts for local Python, React, GitHub access, and private package access setup.
- Centralised test coverage for common helpers under
tests/unit/.
Project Structure
src/rtecommon/: Core shared Python modules.src/rtecommon/configs/settings.py: Shared environment-backed settings models loaded from the repo.envfile.src/rtecommon/dbdef.py: Shared PostgreSQL bootstrap, runtime configuration, and SQLAlchemy session helpers.src/rtecommon/logging/: Shared logging configuration, formatters, and helper functions.src/rtecommon/testing/: Shared pytest fixture factories and Docker/PostgreSQL test utilities.tests/unit/: Unit tests for reusable modules.tasks/: Working task notes and repository lessons for Codex-assisted changes.- Root setup scripts:
InstallDevEnv.ps1,InstallPy.ps1,InstallReact.ps1,install_react.sh,SetupDotEnv.ps1,SetupGitHubAccess.ps1, andSetupPrivateRepoAccess.ps1. ReleaseNotes.md: Published branch-to-release change summaries.legacy/: Archived material excluded from normal test runs.
Tooling Scripts
InstallDevEnv.ps1: Validates the supported Python range and prepares the local development toolchain.InstallPy.ps1: Installs or updates the local Python runtime on Windows when required for the repo.InstallReact.ps1andinstall_react.sh: Bootstrap the React toolchain on Windows or shell-based environments.SetupDotEnv.ps1: Regenerates the repository.envfile from the maintained template.SetupGitHubAccess.ps1andSetupPrivateRepoAccess.ps1: Configure repository and package access for local work.
Getting Started
- Run
poetry install. - Create the repo
.envviaSetupDotEnv.ps1. - Set or verify
PROJECT_NAME,PROJECT_DIR, andVENV_ENVIRONMENTin the generated.envbefore running code that importsrtecommon.configs.settings. - If a consuming service uses the shared database helpers, configure
rtecommon.dbdefwith its base metadata, environment settings, logger, and table package before callinginitialize_database()orget_db(). - Optionally run
InstallDevEnv.ps1to validate the interpreter version and prepare the local toolchain. - Use
InstallPy.ps1,InstallReact.ps1, orinstall_react.shwhen the local environment still needs language or frontend tooling support. - Import
rtecommonfrom a consuming service and configure logging withsetup_logging. - Run the active test suite with
poetry run pytest.
Usage
from rtecommon.configs.settings import env_settings
from rtecommon.configs.settings import logging_settings
from rtecommon.logging import get_named_loggers
from rtecommon.logging import log_environment_settings
from rtecommon.logging import setup_logging
log_path = setup_logging(
log_backup_count=logging_settings.LOG_BACKUP_COUNT,
log_dir=logging_settings.LOG_DIR,
log_level_console=logging_settings.LOG_LEVEL_CONSOLE,
log_level_file=logging_settings.LOG_LEVEL_FILE,
log_when=logging_settings.LOG_WHEN,
service_name="rtecommon",
)
log_all, log_console, log_file = get_named_loggers()
log_environment_settings(
{
"PROJECT_NAME": env_settings.PROJECT_NAME,
"SERVICE_NAME": "rtecommon",
"VENV_ENVIRONMENT": env_settings.VENV_ENVIRONMENT,
}
)
The stable shared logging API is:
rtecommon.logging.setup_loggingrtecommon.logging.get_named_loggersrtecommon.logging.log_environment_settings
setup_logging(...) defaults log rotation to midnight. Consumers can override that explicitly through
log_when or through rtecommon.configs.settings.LoggingSettings.
Database and Testing Helpers
rtecommon.dbdef is the shared database bootstrap layer for consuming services. Configure it once with
configure_runtime(...), then use initialize_database(), get_db(), or transaction() from the shared module
instead of duplicating service-local PostgreSQL bootstrap code.
rtecommon.testing provides the reusable pieces for database-backed tests. rtecommon.testing.postgres contains the
Docker/PostgreSQL lifecycle helpers, and rtecommon.testing.fixtures exposes fixture factories that let a consuming
repo keep only the thin adapter code in its own tests/conftest.py.
Release Notes Workflow
- Commit the intended branch changes.
- Compare the current branch against
master. - Prepend a new section to
ReleaseNotes.mdwithout changing older entries. - Group the changes under clear headings and end the new entry with the divider line.
- Publish the release branch and PR through the normal repository workflow.
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file rtecommon-3.1.0.tar.gz.
File metadata
- Download URL: rtecommon-3.1.0.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.13.13 Linux/6.17.0-1010-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e0877f9f44bed385a851fa9c6cdbddb1f6617e760c63b1095bd766bf0640881
|
|
| MD5 |
456f4c38ad444bc35d05de88f88dd3f5
|
|
| BLAKE2b-256 |
0b88a993392c66a6281251afbed5924da2b5fa218a4bc633f217baf218c2b97c
|
File details
Details for the file rtecommon-3.1.0-py3-none-any.whl.
File metadata
- Download URL: rtecommon-3.1.0-py3-none-any.whl
- Upload date:
- Size: 16.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.13.13 Linux/6.17.0-1010-azure
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1da3dfc6b4d8e7e09ab035d18095a938f2c451864da0ff931ef31dfa8cd0cc42
|
|
| MD5 |
7841ca03249e3210019783112233dae0
|
|
| BLAKE2b-256 |
afadaf79f475169c8b84d53548af92d427a6f384d3468c16150081c100a49522
|