aboutsummaryrefslogtreecommitdiff
path: root/tests/library
AgeCommit message (Collapse)AuthorFilesLines
11 daysfeat(library): multi-locale phone validator + ↵natsuoto10-8/+243
postal/semver/slug/hostname/port/isbn/vin corpora + all-validator round-trip and operator-algebra equivalence coverage
12 dayschore: enforce fully strict static typing across library, tests, and tooling ↵natsuoto5-21/+27
with zero suppressions
13 daysfeat(library): ipv4/ipv6/email_rfc_5322/iso_date/zip_code validators + ↵natsuoto15-0/+360
real-world corpus hardening across 14 patterns + guarantee docstrings
13 daystest: snapshot suite for every public library validator (223 patterns)natsuoto1-0/+36
13 daystest: pin char-class insertion-order and to_regex_string() == ↵natsuoto1-0/+28
to_regex().pattern invariants
13 daysfeat(pattern): Pattern.__call__ delegates to .test so validators double as ↵natsuoto2-2/+0
callables
2026-07-11refactor(library): rewrite geo/postal to inline patterns; delete ↵natsuoto2-0/+17
RegexBackedPattern escape hatch
2026-07-11chore: ruff format + lint fixes (en-dash → hyphen, line-length, script.py ↵natsuoto4-0/+11
noqa)
2026-07-11feat(library): reorganize into 22 category folders + flat 200-name re-export ↵natsuoto11-271/+31
at edify.library
2026-06-26chore!: package reorg, toolchain migration to uv+ruff+pytest+hatchling, ↵natsuoto14-0/+340
Python 3.11 floor Drops the `src/` layout. The package lives at `edify/` at repo root, split into single-purpose subpackages: `builder/` (mixins composing RegexBuilder), `elements/` (sealed dataclass AST), `compile/` (per-family render functions plus dispatch), `validate/`, `errors/` (typed exception hierarchy), and `library/` (per-validator files in family folders). Pattern, serialize, and result subpackages ship as skeletons. Replaces tox / virtualenv / flake8+isort+black / setup.py+setup.cfg / pytest.ini / .coveragerc / .bumpversion.cfg / MANIFEST.in / ci/ / tests.local.sh with a unified uv + ruff + pytest + hatchling + hatch-vcs stack driven entirely from pyproject.toml. CI workflow rewritten to `uv sync --frozen` + `uv run pytest` per matrix entry; required-status- check names preserved for `check`, `docs`, `py3X (ubuntu)`, and `pypy311 (ubuntu)`. `py39` / `py310` / `pypy310` dropped (3.11 floor). Pre-commit replaced with ruff hooks (lint + format), all hook repos SHA-pinned to commit SHAs. Tests reorganised under `tests/builder/` and `tests/library/<family>/` with the `*.test.py` naming shape. 173 tests pass, 100% line coverage. Behaviour changes versus 0.3 (each will get a documented upgrade-guide entry once #80 lands): - `to_regex_string()` returns the bare pattern (no `/.../` wrap) - `to_regex()` on `named_back_reference` compiles successfully via `(?P=name)` instead of raising - builder errors raise typed `EdifyError` subclasses instead of bare `Exception` (catch via `except EdifyError`) - internal helpers (`apply_quantifier`, `frame_creating_element`, `evaluate`, `state`, etc.) removed outright per the 0.3 → 1.0 stub-free policy Closes #68 Closes #69 Closes #253 Co-Authored-By: Claude Opus 4.7 <[email protected]>