pico-sqlalchemy 0.2.1.dev0__tar.gz → 0.3.0__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 (92) hide show
  1. pico_sqlalchemy-0.3.0/.github/ISSUE_TEMPLATE/bug_report.yml +32 -0
  2. pico_sqlalchemy-0.3.0/.github/ISSUE_TEMPLATE/feature_request.yml +18 -0
  3. pico_sqlalchemy-0.3.0/.github/PULL_REQUEST_TEMPLATE.md +10 -0
  4. pico_sqlalchemy-0.3.0/.github/dependabot.yml +11 -0
  5. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/.github/workflows/ci.yml +24 -3
  6. pico_sqlalchemy-0.3.0/.github/workflows/codeql.yml +28 -0
  7. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/.github/workflows/docs.yml +5 -5
  8. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/.github/workflows/publish-to-pypi.yml +3 -3
  9. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/.github/workflows/sync-keywords.yml +2 -2
  10. {pico_sqlalchemy-0.2.1.dev0/docs → pico_sqlalchemy-0.3.0}/CHANGELOG.md +7 -0
  11. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/CLAUDE.md +1 -1
  12. pico_sqlalchemy-0.3.0/CODE_OF_CONDUCT.md +31 -0
  13. pico_sqlalchemy-0.3.0/CONTRIBUTING.md +34 -0
  14. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/PKG-INFO +19 -8
  15. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/README.md +14 -7
  16. pico_sqlalchemy-0.3.0/SECURITY.md +23 -0
  17. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0/docs}/CHANGELOG.md +7 -0
  18. pico_sqlalchemy-0.3.0/docs/architecture.md +464 -0
  19. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/development/project-tooling.md +3 -3
  20. pico_sqlalchemy-0.3.0/docs/faq.md +406 -0
  21. pico_sqlalchemy-0.3.0/docs/hooks.py +8 -0
  22. pico_sqlalchemy-0.3.0/docs/how-to/alembic.md +153 -0
  23. pico_sqlalchemy-0.3.0/docs/how-to/multiple-databases.md +217 -0
  24. pico_sqlalchemy-0.3.0/docs/how-to/testing.md +284 -0
  25. pico_sqlalchemy-0.3.0/docs/migration.md +198 -0
  26. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/overview.md +1 -1
  27. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/quickstart.md +1 -1
  28. pico_sqlalchemy-0.3.0/docs/reference/configuration.md +139 -0
  29. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/reference/declarative-base.md +6 -1
  30. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/reference/repository.md +2 -183
  31. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/reference/transactions.md +6 -0
  32. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/requirements.txt +1 -0
  33. pico_sqlalchemy-0.3.0/docs/skills.md +59 -0
  34. pico_sqlalchemy-0.3.0/examples/crud-async/README.md +25 -0
  35. pico_sqlalchemy-0.3.0/examples/crud-async/app/__init__.py +0 -0
  36. pico_sqlalchemy-0.3.0/examples/crud-async/app/main.py +53 -0
  37. pico_sqlalchemy-0.3.0/examples/crud-async/app/models.py +12 -0
  38. pico_sqlalchemy-0.3.0/examples/crud-async/app/repositories.py +42 -0
  39. pico_sqlalchemy-0.3.0/examples/crud-async/app/services.py +26 -0
  40. pico_sqlalchemy-0.3.0/examples/crud-async/config.yml +3 -0
  41. pico_sqlalchemy-0.3.0/examples/crud-async/requirements.txt +3 -0
  42. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/mkdocs.yml +14 -2
  43. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/pyproject.toml +27 -1
  44. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/__init__.py +50 -0
  45. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/_version.py +1 -0
  46. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/base.py +38 -0
  47. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/config.py +91 -0
  48. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/decorators.py +275 -0
  49. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/factory.py +93 -0
  50. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/src/pico_sqlalchemy/interceptor.py +53 -3
  51. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/paging.py +115 -0
  52. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/py.typed +0 -0
  53. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/repository_interceptor.py +358 -0
  54. pico_sqlalchemy-0.3.0/src/pico_sqlalchemy/session.py +403 -0
  55. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/src/pico_sqlalchemy.egg-info/PKG-INFO +19 -8
  56. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/src/pico_sqlalchemy.egg-info/SOURCES.txt +24 -1
  57. pico_sqlalchemy-0.3.0/tests/conftest.py +46 -0
  58. pico_sqlalchemy-0.3.0/tests/test_coverage_boost_v2.py +276 -0
  59. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tests/test_interceptor.py +5 -21
  60. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tests/test_ioc_integration.py +10 -26
  61. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tests/test_pagination_sort.py +18 -40
  62. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tests/test_repository_interceptor_coverage.py +30 -41
  63. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tests/test_repository_query.py +12 -35
  64. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tests/test_session_propagation.py +5 -16
  65. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tests/test_transaction_manager.py +4 -6
  66. pico_sqlalchemy-0.2.1.dev0/docs/architecture.md +0 -232
  67. pico_sqlalchemy-0.2.1.dev0/docs/faq.md +0 -136
  68. pico_sqlalchemy-0.2.1.dev0/docs/reference/configuration.md +0 -106
  69. pico_sqlalchemy-0.2.1.dev0/docs/skills.md +0 -117
  70. pico_sqlalchemy-0.2.1.dev0/manage.sh +0 -65
  71. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/__init__.py +0 -27
  72. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/_version.py +0 -1
  73. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/base.py +0 -8
  74. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/config.py +0 -22
  75. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/decorators.py +0 -111
  76. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/factory.py +0 -41
  77. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/paging.py +0 -50
  78. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/repository_interceptor.py +0 -184
  79. pico_sqlalchemy-0.2.1.dev0/src/pico_sqlalchemy/session.py +0 -212
  80. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/.coveragerc +0 -0
  81. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/AGENTS.md +0 -0
  82. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/LICENSE +0 -0
  83. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/MANIFEST.in +0 -0
  84. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/index.md +0 -0
  85. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/javascripts/extra.js +0 -0
  86. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/docs/stylesheets/extra.css +0 -0
  87. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/setup.cfg +0 -0
  88. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/src/pico_sqlalchemy.egg-info/dependency_links.txt +0 -0
  89. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/src/pico_sqlalchemy.egg-info/entry_points.txt +0 -0
  90. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/src/pico_sqlalchemy.egg-info/requires.txt +0 -0
  91. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/src/pico_sqlalchemy.egg-info/top_level.txt +0 -0
  92. {pico_sqlalchemy-0.2.1.dev0 → pico_sqlalchemy-0.3.0}/tox.ini +0 -0
@@ -0,0 +1,32 @@
1
+ name: Bug Report
2
+ description: Report a bug in pico-sqlalchemy
3
+ labels: ["bug"]
4
+ body:
5
+ - type: textarea
6
+ id: description
7
+ attributes:
8
+ label: Description
9
+ description: What happened?
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: reproduction
14
+ attributes:
15
+ label: Steps to Reproduce
16
+ description: Minimal code or steps to reproduce the issue.
17
+ validations:
18
+ required: true
19
+ - type: input
20
+ id: version
21
+ attributes:
22
+ label: pico-sqlalchemy version
23
+ placeholder: "0.2.0"
24
+ validations:
25
+ required: true
26
+ - type: input
27
+ id: python-version
28
+ attributes:
29
+ label: Python version
30
+ placeholder: "3.11"
31
+ validations:
32
+ required: true
@@ -0,0 +1,18 @@
1
+ name: Feature Request
2
+ description: Suggest an enhancement for pico-sqlalchemy
3
+ labels: ["enhancement"]
4
+ body:
5
+ - type: textarea
6
+ id: problem
7
+ attributes:
8
+ label: Problem
9
+ description: What problem does this solve?
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ id: solution
14
+ attributes:
15
+ label: Proposed Solution
16
+ description: How should it work?
17
+ validations:
18
+ required: true
@@ -0,0 +1,10 @@
1
+ ## Summary
2
+
3
+ <!-- Brief description of the changes -->
4
+
5
+ ## Checklist
6
+
7
+ - [ ] Tests pass (`pytest tests/ -v`)
8
+ - [ ] Code formatted (`ruff format src/ tests/`)
9
+ - [ ] Lint clean (`ruff check src/ tests/`)
10
+ - [ ] CHANGELOG.md updated (if user-facing change)
@@ -0,0 +1,11 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: "github-actions"
4
+ directory: "/"
5
+ schedule:
6
+ interval: "weekly"
7
+
8
+ - package-ecosystem: "pip"
9
+ directory: "/"
10
+ schedule:
11
+ interval: "weekly"
@@ -3,8 +3,23 @@ name: CI & Coverage
3
3
  on:
4
4
  push:
5
5
  branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
6
8
 
7
9
  jobs:
10
+ lint:
11
+ name: Lint & Format
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - uses: actions/checkout@v6
15
+ - uses: actions/setup-python@v6
16
+ with:
17
+ python-version: '3.11'
18
+ cache: pip
19
+ - run: pip install ruff
20
+ - run: ruff check src/ tests/
21
+ - run: ruff format --check src/ tests/
22
+
8
23
  tests:
9
24
  name: Tests (Python ${{ matrix.python-version }})
10
25
  runs-on: ubuntu-latest
@@ -15,12 +30,12 @@ jobs:
15
30
 
16
31
  steps:
17
32
  - name: Checkout
18
- uses: actions/checkout@v4
33
+ uses: actions/checkout@v6
19
34
  with:
20
35
  fetch-depth: 0
21
36
 
22
37
  - name: Set up Python ${{ matrix.python-version }}
23
- uses: actions/setup-python@v5
38
+ uses: actions/setup-python@v6
24
39
  with:
25
40
  python-version: ${{ matrix.python-version }}
26
41
  cache: pip
@@ -30,6 +45,12 @@ jobs:
30
45
  python -m pip install --upgrade pip
31
46
  pip install tox
32
47
 
48
+ - name: Cache tox environments
49
+ uses: actions/cache@v5
50
+ with:
51
+ path: .tox
52
+ key: tox-${{ matrix.python-version }}-${{ hashFiles('pyproject.toml', 'tox.ini') }}
53
+
33
54
  - name: Install build dependencies
34
55
  run: |
35
56
  sudo apt-get update
@@ -58,7 +79,7 @@ jobs:
58
79
  needs: tests
59
80
  steps:
60
81
  - name: Checkout (for repo context)
61
- uses: actions/checkout@v4
82
+ uses: actions/checkout@v6
62
83
 
63
84
  - name: Download all coverage artifacts
64
85
  uses: actions/download-artifact@v4
@@ -0,0 +1,28 @@
1
+ name: CodeQL
2
+
3
+ on:
4
+ push:
5
+ branches: [ main ]
6
+ pull_request:
7
+ branches: [ main ]
8
+ schedule:
9
+ - cron: '0 6 * * 1'
10
+
11
+ jobs:
12
+ analyze:
13
+ name: Analyze (Python)
14
+ runs-on: ubuntu-latest
15
+ permissions:
16
+ security-events: write
17
+ contents: read
18
+
19
+ steps:
20
+ - uses: actions/checkout@v6
21
+
22
+ - name: Initialize CodeQL
23
+ uses: github/codeql-action/init@v4
24
+ with:
25
+ languages: python
26
+
27
+ - name: Perform CodeQL Analysis
28
+ uses: github/codeql-action/analyze@v4
@@ -29,11 +29,11 @@ jobs:
29
29
  if: github.event_name == 'pull_request'
30
30
  runs-on: ubuntu-latest
31
31
  steps:
32
- - uses: actions/checkout@v4
32
+ - uses: actions/checkout@v6
33
33
  with:
34
34
  fetch-depth: 0
35
35
 
36
- - uses: actions/setup-python@v5
36
+ - uses: actions/setup-python@v6
37
37
  with:
38
38
  python-version: '3.11'
39
39
  cache: 'pip'
@@ -51,7 +51,7 @@ jobs:
51
51
  pip install linkchecker
52
52
  python -m http.server --directory site 8000 &
53
53
  sleep 3
54
- linkchecker http://127.0.0.1:8000 --check-extern || true
54
+ linkchecker http://127.0.0.1:8000 --check-extern
55
55
 
56
56
  deploy:
57
57
  if: github.event_name != 'pull_request'
@@ -61,11 +61,11 @@ jobs:
61
61
  url: ${{ steps.deployment.outputs.page_url }}
62
62
 
63
63
  steps:
64
- - uses: actions/checkout@v4
64
+ - uses: actions/checkout@v6
65
65
  with:
66
66
  fetch-depth: 0
67
67
 
68
- - uses: actions/setup-python@v5
68
+ - uses: actions/setup-python@v6
69
69
  with:
70
70
  python-version: '3.11'
71
71
  cache: 'pip'
@@ -12,12 +12,12 @@ jobs:
12
12
  contents: read
13
13
 
14
14
  steps:
15
- - uses: actions/checkout@v4
15
+ - uses: actions/checkout@v6
16
16
  with:
17
17
  fetch-depth: 0
18
18
 
19
19
  - name: Set up Python
20
- uses: actions/setup-python@v5
20
+ uses: actions/setup-python@v6
21
21
  with:
22
22
  python-version: '3.x'
23
23
 
@@ -32,5 +32,5 @@ jobs:
32
32
  with:
33
33
  skip-existing: true
34
34
  verify-metadata: true
35
- attestations: false
35
+ attestations: true
36
36
 
@@ -18,10 +18,10 @@ jobs:
18
18
 
19
19
  steps:
20
20
  - name: Checkout Repository
21
- uses: actions/checkout@v4
21
+ uses: actions/checkout@v6
22
22
 
23
23
  - name: Set up Python
24
- uses: actions/setup-python@v4
24
+ uses: actions/setup-python@v6
25
25
  with:
26
26
  python-version: '3.11'
27
27
 
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.h
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.3.0] - 2026-02-20
11
+
12
+ ### Changed
13
+ - **Breaking:** Renamed `DatabaseConfigurer.configure(engine)` to `configure_database(engine)` to avoid protocol collision with `FastApiConfigurer.configure(app)` in structural typing.
14
+
15
+ ---
16
+
10
17
  ## [0.2.0] - 2026-02-06
11
18
 
12
19
  ### Added
@@ -11,7 +11,7 @@ pico-sqlalchemy provides SQLAlchemy integration for pico-ioc. It uses:
11
11
  ## Key Reminders
12
12
 
13
13
  - pico-ioc dependency: `>= 2.2.0`
14
- - `version_scheme = "guess-next-dev"` (clean versions on tag)
14
+ - **NEVER change `version_scheme`** in pyproject.toml. It MUST remain `"post-release"`. Changing it to `"guess-next-dev"` causes `.dev0` versions to leak to PyPI. This was already fixed once — do not revert it.
15
15
  - requires-python >= 3.11
16
16
  - Commit messages: one line only
17
17
  - `@transactional` works both with and without parentheses (like `@repository`)
@@ -0,0 +1,31 @@
1
+ # Contributor Covenant Code of Conduct
2
+
3
+ ## Our Pledge
4
+
5
+ We as members, contributors, and leaders pledge to make participation in our
6
+ community a harassment-free experience for everyone.
7
+
8
+ ## Our Standards
9
+
10
+ Examples of behavior that contributes to a positive environment:
11
+
12
+ * Using welcoming and inclusive language
13
+ * Being respectful of differing viewpoints and experiences
14
+ * Gracefully accepting constructive criticism
15
+ * Focusing on what is best for the community
16
+
17
+ Examples of unacceptable behavior:
18
+
19
+ * Trolling, insulting or derogatory comments, and personal or political attacks
20
+ * Public or private harassment
21
+ * Publishing others' private information without explicit permission
22
+
23
+ ## Enforcement
24
+
25
+ Instances of abusive, harassing, or otherwise unacceptable behavior may be
26
+ reported to **dperezcabrera@gmail.com**. All complaints will be reviewed
27
+ and investigated promptly and fairly.
28
+
29
+ ## Attribution
30
+
31
+ This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1.
@@ -0,0 +1,34 @@
1
+ # Contributing to Pico-SQLAlchemy
2
+
3
+ ## Development Setup
4
+
5
+ ```bash
6
+ python -m venv .venv
7
+ source .venv/bin/activate
8
+ pip install -e ".[test]"
9
+ pip install ruff
10
+ ```
11
+
12
+ ## Running Tests
13
+
14
+ ```bash
15
+ pytest tests/ -v # Run tests
16
+ tox # Full matrix (3.11-3.14)
17
+ ```
18
+
19
+ ## Code Style
20
+
21
+ - Python 3.11+
22
+ - Format with `ruff format src/ tests/`
23
+ - Lint with `ruff check src/ tests/`
24
+
25
+ ## Pull Requests
26
+
27
+ 1. Fork the repository
28
+ 2. Create a feature branch
29
+ 3. Ensure tests pass and code is formatted
30
+ 4. Submit a PR with a clear description
31
+
32
+ ## Reporting Issues
33
+
34
+ Use [GitHub Issues](https://github.com/dperezcabrera/pico-sqlalchemy/issues) for bugs and feature requests.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pico-sqlalchemy
3
- Version: 0.2.1.dev0
3
+ Version: 0.3.0
4
4
  Summary: Pico-ioc integration for SQLAlchemy. Adds Spring-style transactional support, configuration, and helpers.
5
5
  Author-email: David Perez Cabrera <dperezcabrera@gmail.com>
6
6
  License: MIT License
@@ -28,6 +28,8 @@ License: MIT License
28
28
  Project-URL: Homepage, https://github.com/dperezcabrera/pico-sqlalchemy
29
29
  Project-URL: Repository, https://github.com/dperezcabrera/pico-sqlalchemy
30
30
  Project-URL: Issue Tracker, https://github.com/dperezcabrera/pico-sqlalchemy/issues
31
+ Project-URL: Documentation, https://dperezcabrera.github.io/pico-sqlalchemy/
32
+ Project-URL: Changelog, https://github.com/dperezcabrera/pico-sqlalchemy/blob/main/CHANGELOG.md
31
33
  Keywords: ioc,di,dependency injection,sqlalchemy,transaction,orm,inversion of control,asyncio
32
34
  Classifier: Development Status :: 4 - Beta
33
35
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
@@ -38,8 +40,10 @@ Classifier: Programming Language :: Python :: 3.11
38
40
  Classifier: Programming Language :: Python :: 3.12
39
41
  Classifier: Programming Language :: Python :: 3.13
40
42
  Classifier: Programming Language :: Python :: 3.14
43
+ Classifier: Intended Audience :: Developers
41
44
  Classifier: License :: OSI Approved :: MIT License
42
45
  Classifier: Operating System :: OS Independent
46
+ Classifier: Typing :: Typed
43
47
  Requires-Python: >=3.11
44
48
  Description-Content-Type: text/markdown
45
49
  License-File: LICENSE
@@ -333,16 +337,23 @@ async def test_service():
333
337
 
334
338
  -----
335
339
 
336
- ## 🤖 Claude Code Skills
340
+ ## AI Coding Skills
337
341
 
338
- This project includes pre-designed skills for [Claude Code](https://claude.ai/claude-code), enabling AI-assisted development with pico-sqlalchemy patterns.
342
+ Install [Claude Code](https://code.claude.com) or [OpenAI Codex](https://openai.com/index/introducing-codex/) skills for AI-assisted development with pico-sqlalchemy:
339
343
 
340
- | Skill | Command | Description |
341
- |-------|---------|-------------|
342
- | **Pico SQLAlchemy Repository** | `/pico-sqlalchemy` | Creates models, repositories and services with DI |
343
- | **Pico Test Generator** | `/pico-tests` | Generates tests for pico-framework components |
344
+ ```bash
345
+ curl -sL https://raw.githubusercontent.com/dperezcabrera/pico-skills/main/install.sh | bash -s -- sqlalchemy
346
+ ```
347
+
348
+ | Command | Description |
349
+ |---------|-------------|
350
+ | `/add-repository` | Add SQLAlchemy entities and repositories with transactions |
351
+ | `/add-component` | Add components, factories, interceptors, settings |
352
+ | `/add-tests` | Generate tests for pico-framework components |
353
+
354
+ All skills: `curl -sL https://raw.githubusercontent.com/dperezcabrera/pico-skills/main/install.sh | bash`
344
355
 
345
- See [Skills documentation](docs/skills.md) for full details and installation instructions.
356
+ See [pico-skills](https://github.com/dperezcabrera/pico-skills) for details.
346
357
 
347
358
  ---
348
359
 
@@ -278,16 +278,23 @@ async def test_service():
278
278
 
279
279
  -----
280
280
 
281
- ## 🤖 Claude Code Skills
281
+ ## AI Coding Skills
282
282
 
283
- This project includes pre-designed skills for [Claude Code](https://claude.ai/claude-code), enabling AI-assisted development with pico-sqlalchemy patterns.
283
+ Install [Claude Code](https://code.claude.com) or [OpenAI Codex](https://openai.com/index/introducing-codex/) skills for AI-assisted development with pico-sqlalchemy:
284
284
 
285
- | Skill | Command | Description |
286
- |-------|---------|-------------|
287
- | **Pico SQLAlchemy Repository** | `/pico-sqlalchemy` | Creates models, repositories and services with DI |
288
- | **Pico Test Generator** | `/pico-tests` | Generates tests for pico-framework components |
285
+ ```bash
286
+ curl -sL https://raw.githubusercontent.com/dperezcabrera/pico-skills/main/install.sh | bash -s -- sqlalchemy
287
+ ```
288
+
289
+ | Command | Description |
290
+ |---------|-------------|
291
+ | `/add-repository` | Add SQLAlchemy entities and repositories with transactions |
292
+ | `/add-component` | Add components, factories, interceptors, settings |
293
+ | `/add-tests` | Generate tests for pico-framework components |
294
+
295
+ All skills: `curl -sL https://raw.githubusercontent.com/dperezcabrera/pico-skills/main/install.sh | bash`
289
296
 
290
- See [Skills documentation](docs/skills.md) for full details and installation instructions.
297
+ See [pico-skills](https://github.com/dperezcabrera/pico-skills) for details.
291
298
 
292
299
  ---
293
300
 
@@ -0,0 +1,23 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ | Version | Supported |
6
+ |---------|--------------------|
7
+ | 0.2.x | Yes |
8
+
9
+ ## Reporting a Vulnerability
10
+
11
+ If you discover a security vulnerability, please report it responsibly:
12
+
13
+ 1. **Do NOT open a public issue.**
14
+ 2. Email **dperezcabrera@gmail.com** with:
15
+ - Description of the vulnerability
16
+ - Steps to reproduce
17
+ - Potential impact
18
+ 3. You will receive a response within 7 days.
19
+ 4. A fix will be released as soon as possible, with credit to the reporter (unless anonymity is preferred).
20
+
21
+ ## Scope
22
+
23
+ This policy covers the `pico-sqlalchemy` Python package distributed via PyPI.
@@ -7,6 +7,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.h
7
7
 
8
8
  ---
9
9
 
10
+ ## [0.3.0] - 2026-02-20
11
+
12
+ ### Changed
13
+ - **Breaking:** Renamed `DatabaseConfigurer.configure(engine)` to `configure_database(engine)` to avoid protocol collision with `FastApiConfigurer.configure(app)` in structural typing.
14
+
15
+ ---
16
+
10
17
  ## [0.2.0] - 2026-02-06
11
18
 
12
19
  ### Added