# joealcorn/laboratory

Achieving confident refactoring through experimentation with Python 2.7 & 3.3+

Repository: https://github.com/joealcorn/laboratory
Canonical: https://ross.abutalabs.com/products/laboratory
Homepage: https://laboratory-python.readthedocs.io/en/latest/
Language: Python
License: MIT
License Family: permissive
Topics: developer-tools, refactoring, scientist, pypi, python, split-testing
Last push: 2025-12-22T17:11:03+00:00

## Health v2 (maintenance only)
Score: 58/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 58, release rhythm 35, longevity 100
- inputs: {"age_days": 3856, "days_push": 254, "days_rel": null, "gap_med": null, "n_releases_24m": 0}
- flags: no_releases
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1281, forks 31 (observed 2026-08-28T04:04:13.931944+00:00)

## What it is
A Python library inspired by GitHub's Scientist for safely refactoring critical code paths by running experiments in production. It executes control and candidate code blocks, compares results, records timing, and publishes observations.

## Use cases
- refactor critical code paths with confidence
- run candidate code alongside production code and compare results
- measure performance differences between old and new implementations
- catch exceptions in new code without breaking production
- gradually ramp up experiments on important code
- verify refactored code behaves identically to the original

## When to choose
- you need to refactor fragile but critical code paths safely
- you want to test new implementations in production without risking failures
- you need timing and behavioral comparison between old and new code
- you want a Python port of GitHub's Scientist pattern

## When to avoid
- you need A/B testing for user-facing features rather than code refactoring
- your codebase is not in Python
- you cannot tolerate the overhead of running duplicate code paths
- you need active development and frequent updates

## Facets
- artifact type: library
- maturity: maintenance
- function: developer-tools, testing, benchmarking
- domain: developer-tools, testing
- platform: python, cli
- tags: refactoring, scientist, experimentation, split-testing, production-testing

## Member repositories
- joealcorn/laboratory (main) score 58

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:13.931944+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T05:02:32.423516+00:00, confidence not recorded.
  - readme: https://github.com/joealcorn/laboratory (fetched 2026-08-28T04:04:13.931944+00:00, sha aa24a447d0da)
  - registry_pypi: https://pypi.org/pypi/laboratory/json (fetched 2026-08-29T12:13:34.961439+00:00, sha 8a3a2f562444)
- Data as of 2026-08-30T08:39:29.467469+00:00.
