Skip to main content

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.settings for repo and runtime metadata.
  • Shared database bootstrap helpers in rtecommon.dbdef for 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.testing for service-level integration and unit-test setup.
  • Packaging and developer tooling aligned for Python 3.10 through 3.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 .env file.
  • 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, and SetupPrivateRepoAccess.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.ps1 and install_react.sh: Bootstrap the React toolchain on Windows or shell-based environments.
  • SetupDotEnv.ps1: Regenerates the repository .env file from the maintained template.
  • SetupGitHubAccess.ps1 and SetupPrivateRepoAccess.ps1: Configure repository and package access for local work.

Getting Started

  1. Run poetry install.
  2. Create the repo .env via SetupDotEnv.ps1.
  3. Set or verify PROJECT_NAME, PROJECT_DIR, and VENV_ENVIRONMENT in the generated .env before running code that imports rtecommon.configs.settings.
  4. If a consuming service uses the shared database helpers, configure rtecommon.dbdef with its base metadata, environment settings, logger, and table package before calling initialize_database() or get_db().
  5. Optionally run InstallDevEnv.ps1 to validate the interpreter version and prepare the local toolchain.
  6. Use InstallPy.ps1, InstallReact.ps1, or install_react.sh when the local environment still needs language or frontend tooling support.
  7. Import rtecommon from a consuming service and configure logging with setup_logging.
  8. 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_logging
  • rtecommon.logging.get_named_loggers
  • rtecommon.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

  1. Commit the intended branch changes.
  2. Compare the current branch against master.
  3. Prepend a new section to ReleaseNotes.md without changing older entries.
  4. Group the changes under clear headings and end the new entry with the divider line.
  5. 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

rtecommon-3.1.0.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

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

rtecommon-3.1.0-py3-none-any.whl (16.7 kB view details)

Uploaded Python 3

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

Hashes for rtecommon-3.1.0.tar.gz
Algorithm Hash digest
SHA256 2e0877f9f44bed385a851fa9c6cdbddb1f6617e760c63b1095bd766bf0640881
MD5 456f4c38ad444bc35d05de88f88dd3f5
BLAKE2b-256 0b88a993392c66a6281251afbed5924da2b5fa218a4bc633f217baf218c2b97c

See more details on using hashes here.

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

Hashes for rtecommon-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1da3dfc6b4d8e7e09ab035d18095a938f2c451864da0ff931ef31dfa8cd0cc42
MD5 7841ca03249e3210019783112233dae0
BLAKE2b-256 afadaf79f475169c8b84d53548af92d427a6f384d3468c16150081c100a49522

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