replayrail 0.1.2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. replayrail-0.1.2/.dockerignore +12 -0
  2. replayrail-0.1.2/.github/workflows/ci.yml +37 -0
  3. replayrail-0.1.2/.github/workflows/publish-testpypi.yml +37 -0
  4. replayrail-0.1.2/.github/workflows/publish.yml +38 -0
  5. replayrail-0.1.2/.gitignore +14 -0
  6. replayrail-0.1.2/ACTION_PLAN_ReplayRail.md +1226 -0
  7. replayrail-0.1.2/AGENTS.d/workflows/CreateCommit.md +113 -0
  8. replayrail-0.1.2/AGENTS.d/workflows/GenerateProjectReport.md +375 -0
  9. replayrail-0.1.2/AGENTS.md +94 -0
  10. replayrail-0.1.2/CHANGELOG.md +18 -0
  11. replayrail-0.1.2/Dockerfile.test +18 -0
  12. replayrail-0.1.2/LICENSE +18 -0
  13. replayrail-0.1.2/PKG-INFO +283 -0
  14. replayrail-0.1.2/README.md +246 -0
  15. replayrail-0.1.2/RELEASE.md +87 -0
  16. replayrail-0.1.2/docker-compose.yml +23 -0
  17. replayrail-0.1.2/examples/fastapi_app.py +44 -0
  18. replayrail-0.1.2/pyproject.toml +69 -0
  19. replayrail-0.1.2/src/replayrail/__init__.py +28 -0
  20. replayrail-0.1.2/src/replayrail/config.py +30 -0
  21. replayrail-0.1.2/src/replayrail/errors.py +30 -0
  22. replayrail-0.1.2/src/replayrail/events.py +93 -0
  23. replayrail-0.1.2/src/replayrail/integrations/__init__.py +3 -0
  24. replayrail-0.1.2/src/replayrail/integrations/fastapi.py +106 -0
  25. replayrail-0.1.2/src/replayrail/py.typed +1 -0
  26. replayrail-0.1.2/src/replayrail/rail.py +97 -0
  27. replayrail-0.1.2/src/replayrail/serializers.py +26 -0
  28. replayrail-0.1.2/src/replayrail/store.py +34 -0
  29. replayrail-0.1.2/src/replayrail/stores/__init__.py +3 -0
  30. replayrail-0.1.2/src/replayrail/stores/memory.py +135 -0
  31. replayrail-0.1.2/src/replayrail/stores/redis.py +187 -0
  32. replayrail-0.1.2/tests/test_events.py +34 -0
  33. replayrail-0.1.2/tests/test_fastapi_integration.py +123 -0
  34. replayrail-0.1.2/tests/test_memory_store.py +126 -0
  35. replayrail-0.1.2/tests/test_rail.py +58 -0
  36. replayrail-0.1.2/tests/test_readme_contract.py +106 -0
  37. replayrail-0.1.2/tests/test_redis_store.py +145 -0
  38. replayrail-0.1.2/tests/test_serializers.py +17 -0
@@ -0,0 +1,12 @@
1
+ .git/
2
+ .mypy_cache/
3
+ .pytest_cache/
4
+ .ruff_cache/
5
+ .venv/
6
+ venv/
7
+ __pycache__/
8
+ *.py[cod]
9
+ build/
10
+ dist/
11
+ *.egg-info/
12
+ docs/reports/
@@ -0,0 +1,37 @@
1
+ name: CI
2
+
3
+ on:
4
+ pull_request:
5
+ push:
6
+ branches:
7
+ - main
8
+ workflow_dispatch:
9
+
10
+ jobs:
11
+ docker-gate:
12
+ name: Docker gate / Python ${{ matrix.python-version }}
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ fail-fast: false
16
+ matrix:
17
+ python-version:
18
+ - "3.11"
19
+ - "3.12"
20
+
21
+ steps:
22
+ - name: Check out repository
23
+ uses: actions/checkout@v4
24
+
25
+ - name: Build test image
26
+ env:
27
+ PYTHON_VERSION: ${{ matrix.python-version }}
28
+ run: docker compose build test
29
+
30
+ - name: Run test gate
31
+ env:
32
+ PYTHON_VERSION: ${{ matrix.python-version }}
33
+ run: docker compose run --rm test
34
+
35
+ - name: Stop services
36
+ if: always()
37
+ run: docker compose down
@@ -0,0 +1,37 @@
1
+ name: Publish to TestPyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+
6
+ permissions:
7
+ contents: read
8
+ id-token: write
9
+
10
+ jobs:
11
+ publish-testpypi:
12
+ name: Build and publish to TestPyPI
13
+ runs-on: ubuntu-latest
14
+ environment: testpypi
15
+
16
+ steps:
17
+ - name: Check out repository
18
+ uses: actions/checkout@v4
19
+
20
+ - name: Set up Python
21
+ uses: actions/setup-python@v5
22
+ with:
23
+ python-version: "3.12"
24
+
25
+ - name: Install build tools
26
+ run: python -m pip install --upgrade pip build twine
27
+
28
+ - name: Build package
29
+ run: python -m build
30
+
31
+ - name: Check package metadata
32
+ run: twine check dist/*
33
+
34
+ - name: Publish package to TestPyPI
35
+ uses: pypa/gh-action-pypi-publish@release/v1
36
+ with:
37
+ repository-url: https://test.pypi.org/legacy/
@@ -0,0 +1,38 @@
1
+ name: Publish to PyPI
2
+
3
+ on:
4
+ workflow_dispatch:
5
+ release:
6
+ types:
7
+ - published
8
+
9
+ permissions:
10
+ contents: read
11
+ id-token: write
12
+
13
+ jobs:
14
+ publish:
15
+ name: Build and publish
16
+ runs-on: ubuntu-latest
17
+ environment: pypi
18
+
19
+ steps:
20
+ - name: Check out repository
21
+ uses: actions/checkout@v4
22
+
23
+ - name: Set up Python
24
+ uses: actions/setup-python@v5
25
+ with:
26
+ python-version: "3.12"
27
+
28
+ - name: Install build tools
29
+ run: python -m pip install --upgrade pip build twine
30
+
31
+ - name: Build package
32
+ run: python -m build
33
+
34
+ - name: Check package metadata
35
+ run: twine check dist/*
36
+
37
+ - name: Publish package
38
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,14 @@
1
+ __pycache__/
2
+ *.py[cod]
3
+
4
+ .pytest_cache/
5
+ .mypy_cache/
6
+ .ruff_cache/
7
+
8
+ .venv/
9
+ venv/
10
+ build/
11
+ dist/
12
+ *.egg-info/
13
+
14
+ docs/reports/