activemodel 0.5.0__tar.gz → 0.8.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.
- activemodel-0.8.0/.envrc +14 -0
- activemodel-0.8.0/.github/dependabot.yml +12 -0
- activemodel-0.8.0/.github/workflows/build_and_publish.yml +58 -0
- activemodel-0.8.0/.github/workflows/repo-sync.yml +16 -0
- activemodel-0.8.0/.gitignore +131 -0
- activemodel-0.8.0/.tool-versions +3 -0
- activemodel-0.8.0/.vscode/settings.json +36 -0
- activemodel-0.8.0/CHANGELOG.md +137 -0
- activemodel-0.8.0/Justfile +14 -0
- activemodel-0.8.0/Makefile +10 -0
- activemodel-0.8.0/PKG-INFO +282 -0
- activemodel-0.8.0/README.md +267 -0
- activemodel-0.8.0/TODO +51 -0
- {activemodel-0.5.0 → activemodel-0.8.0}/activemodel/__init__.py +2 -0
- {activemodel-0.5.0 → activemodel-0.8.0}/activemodel/base_model.py +141 -33
- activemodel-0.8.0/activemodel/celery.py +33 -0
- activemodel-0.8.0/activemodel/errors.py +6 -0
- activemodel-0.8.0/activemodel/get_column_from_field_patch.py +139 -0
- activemodel-0.8.0/activemodel/mixins/__init__.py +4 -0
- activemodel-0.8.0/activemodel/mixins/pydantic_json.py +82 -0
- activemodel-0.8.0/activemodel/mixins/soft_delete.py +17 -0
- activemodel-0.8.0/activemodel/mixins/typeid.py +46 -0
- activemodel-0.8.0/activemodel/pytest/transaction.py +63 -0
- {activemodel-0.5.0 → activemodel-0.8.0}/activemodel/pytest/truncate.py +1 -1
- {activemodel-0.5.0 → activemodel-0.8.0}/activemodel/query_wrapper.py +24 -10
- activemodel-0.8.0/activemodel/session_manager.py +149 -0
- activemodel-0.8.0/activemodel/types/__init__.py +1 -0
- activemodel-0.8.0/activemodel/types/typeid.py +192 -0
- activemodel-0.8.0/activemodel/utils.py +65 -0
- activemodel-0.8.0/docker-compose.yml +24 -0
- activemodel-0.8.0/playground/comments.py +74 -0
- activemodel-0.8.0/playground/env-with-model.patch +12 -0
- activemodel-0.8.0/playground/extract_comments.py +33 -0
- activemodel-0.8.0/playground/field.py +13 -0
- activemodel-0.8.0/playground/middleware.py +9 -0
- activemodel-0.8.0/playground/pydantic_validation.py +13 -0
- activemodel-0.8.0/playground.py +21 -0
- {activemodel-0.5.0 → activemodel-0.8.0}/pyproject.toml +22 -2
- activemodel-0.8.0/test/__init__.py +0 -0
- activemodel-0.8.0/test/comments_test.py +111 -0
- activemodel-0.8.0/test/conftest.py +17 -0
- activemodel-0.8.0/test/delete_test.py +17 -0
- activemodel-0.8.0/test/fastapi_test.py +79 -0
- activemodel-0.8.0/test/migrations/README +1 -0
- activemodel-0.8.0/test/migrations/alembic.ini +120 -0
- activemodel-0.8.0/test/migrations/env.py +87 -0
- activemodel-0.8.0/test/migrations/script.py.mako +28 -0
- activemodel-0.8.0/test/migrations_test.py +45 -0
- activemodel-0.8.0/test/models.py +44 -0
- activemodel-0.8.0/test/orm_test.py +111 -0
- activemodel-0.8.0/test/serialization_test.py +93 -0
- activemodel-0.8.0/test/table_name_test.py +14 -0
- activemodel-0.8.0/test/test_wrapper.py +44 -0
- activemodel-0.8.0/test/typeid_test.py +93 -0
- activemodel-0.8.0/test/utils.py +45 -0
- activemodel-0.8.0/uv.lock +1300 -0
- activemodel-0.5.0/PKG-INFO +0 -66
- activemodel-0.5.0/README.md +0 -51
- activemodel-0.5.0/activemodel/mixins/__init__.py +0 -2
- activemodel-0.5.0/activemodel/mixins/typeid.py +0 -36
- activemodel-0.5.0/activemodel/pytest/transaction.py +0 -51
- activemodel-0.5.0/activemodel/session_manager.py +0 -62
- activemodel-0.5.0/activemodel/types/typeid.py +0 -56
- activemodel-0.5.0/activemodel/utils.py +0 -15
- activemodel-0.5.0/activemodel.egg-info/PKG-INFO +0 -66
- activemodel-0.5.0/activemodel.egg-info/SOURCES.txt +0 -23
- activemodel-0.5.0/activemodel.egg-info/dependency_links.txt +0 -1
- activemodel-0.5.0/activemodel.egg-info/entry_points.txt +0 -2
- activemodel-0.5.0/activemodel.egg-info/requires.txt +0 -4
- activemodel-0.5.0/activemodel.egg-info/top_level.txt +0 -1
- activemodel-0.5.0/setup.cfg +0 -4
- {activemodel-0.5.0 → activemodel-0.8.0}/LICENSE +0 -0
- {activemodel-0.5.0 → activemodel-0.8.0}/activemodel/logger.py +0 -0
- {activemodel-0.5.0 → activemodel-0.8.0}/activemodel/mixins/timestamps.py +0 -0
- {activemodel-0.5.0 → activemodel-0.8.0}/activemodel/pytest/__init__.py +0 -0
- /activemodel-0.5.0/activemodel/_session_manager.py → /activemodel-0.8.0/playground/old_session_manager.py +0 -0
activemodel-0.8.0/.envrc
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
layout uv
|
|
2
|
+
|
|
3
|
+
# if you are using orb for local development, this will work just fine
|
|
4
|
+
export DATABASE_HOST=${DATABASE_HOST:-postgres.$(basename $PWD).orb.local}
|
|
5
|
+
|
|
6
|
+
export POSTGRES_USER=root
|
|
7
|
+
export POSTGRES_PASSWORD=password
|
|
8
|
+
export POSTGRES_DB=development
|
|
9
|
+
|
|
10
|
+
export DATABASE_URL=postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@${DATABASE_HOST}:5432/development
|
|
11
|
+
|
|
12
|
+
export PYTHONBREAKPOINT=ipdb.set_trace
|
|
13
|
+
|
|
14
|
+
# export ACTIVEMODEL_LOG_SQL=true
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
name: Build and Publish to PyPI
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- main
|
|
6
|
+
- master
|
|
7
|
+
|
|
8
|
+
# write permissions for release-please
|
|
9
|
+
# permissions:
|
|
10
|
+
# contents: write
|
|
11
|
+
# pull-requests: write
|
|
12
|
+
|
|
13
|
+
env:
|
|
14
|
+
# avoid build failures due to flaky pypi
|
|
15
|
+
PIP_DEFAULT_TIMEOUT: 60
|
|
16
|
+
PIP_RETRIES: 5
|
|
17
|
+
|
|
18
|
+
DATABASE_HOST: localhost
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
release-please:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
needs: [build]
|
|
24
|
+
outputs:
|
|
25
|
+
release_created: ${{ steps.release.outputs.release_created }}
|
|
26
|
+
steps:
|
|
27
|
+
- uses: googleapis/release-please-action@v4
|
|
28
|
+
id: release
|
|
29
|
+
with:
|
|
30
|
+
release-type: python
|
|
31
|
+
# bump-minor-pre-major: true
|
|
32
|
+
token: ${{ secrets.GH_PERSONAL_TOKEN }}
|
|
33
|
+
|
|
34
|
+
publish:
|
|
35
|
+
runs-on: ubuntu-latest
|
|
36
|
+
needs: [release-please]
|
|
37
|
+
if: needs.release-please.outputs.release_created
|
|
38
|
+
steps:
|
|
39
|
+
- uses: actions/checkout@v4
|
|
40
|
+
- uses: jdx/mise-action@v2
|
|
41
|
+
- run: direnv allow . && direnv export gha >> "$GITHUB_ENV"
|
|
42
|
+
- run: uv build
|
|
43
|
+
- run: uv publish --token ${{ secrets.PYPI_API_TOKEN }}
|
|
44
|
+
|
|
45
|
+
build:
|
|
46
|
+
runs-on: ubuntu-latest
|
|
47
|
+
steps:
|
|
48
|
+
- uses: actions/checkout@v4
|
|
49
|
+
- uses: jdx/mise-action@v2
|
|
50
|
+
- run: direnv allow . && direnv export gha >> "$GITHUB_ENV"
|
|
51
|
+
- run: docker compose up -d --wait
|
|
52
|
+
- run: uv sync
|
|
53
|
+
|
|
54
|
+
# `uv run` prefix is required since the venv is not activated
|
|
55
|
+
|
|
56
|
+
- name: Make sure we can import the module
|
|
57
|
+
run: uv run python -c 'import ${{ github.event.repository.name }}'
|
|
58
|
+
- run: uv run pytest
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
name: Repository Metadata Sync
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main, master]
|
|
6
|
+
|
|
7
|
+
jobs:
|
|
8
|
+
repo_sync:
|
|
9
|
+
runs-on: ubuntu-latest
|
|
10
|
+
steps:
|
|
11
|
+
- name: Fetching Local Repository
|
|
12
|
+
uses: actions/checkout@v4
|
|
13
|
+
- name: Repository Metadata Sync
|
|
14
|
+
uses: iloveitaly/github-actions-metadata-sync@main
|
|
15
|
+
with:
|
|
16
|
+
TOKEN: ${{ secrets.GH_PERSONAL_TOKEN }}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
pip-wheel-metadata/
|
|
24
|
+
share/python-wheels/
|
|
25
|
+
*.egg-info/
|
|
26
|
+
.installed.cfg
|
|
27
|
+
*.egg
|
|
28
|
+
MANIFEST
|
|
29
|
+
|
|
30
|
+
# PyInstaller
|
|
31
|
+
# Usually these files are written by a python script from a template
|
|
32
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
33
|
+
*.manifest
|
|
34
|
+
*.spec
|
|
35
|
+
|
|
36
|
+
# Installer logs
|
|
37
|
+
pip-log.txt
|
|
38
|
+
pip-delete-this-directory.txt
|
|
39
|
+
|
|
40
|
+
# Unit test / coverage reports
|
|
41
|
+
htmlcov/
|
|
42
|
+
.tox/
|
|
43
|
+
.nox/
|
|
44
|
+
.coverage
|
|
45
|
+
.coverage.*
|
|
46
|
+
.cache
|
|
47
|
+
nosetests.xml
|
|
48
|
+
coverage.xml
|
|
49
|
+
*.cover
|
|
50
|
+
*.py,cover
|
|
51
|
+
.hypothesis/
|
|
52
|
+
.pytest_cache/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
target/
|
|
76
|
+
|
|
77
|
+
# Jupyter Notebook
|
|
78
|
+
.ipynb_checkpoints
|
|
79
|
+
|
|
80
|
+
# IPython
|
|
81
|
+
profile_default/
|
|
82
|
+
ipython_config.py
|
|
83
|
+
|
|
84
|
+
# pyenv
|
|
85
|
+
.python-version
|
|
86
|
+
|
|
87
|
+
# pipenv
|
|
88
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
89
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
90
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
91
|
+
# install all needed dependencies.
|
|
92
|
+
#Pipfile.lock
|
|
93
|
+
|
|
94
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow
|
|
95
|
+
__pypackages__/
|
|
96
|
+
|
|
97
|
+
# Celery stuff
|
|
98
|
+
celerybeat-schedule
|
|
99
|
+
celerybeat.pid
|
|
100
|
+
|
|
101
|
+
# SageMath parsed files
|
|
102
|
+
*.sage.py
|
|
103
|
+
|
|
104
|
+
# Environments
|
|
105
|
+
.env
|
|
106
|
+
.venv
|
|
107
|
+
env/
|
|
108
|
+
venv/
|
|
109
|
+
ENV/
|
|
110
|
+
env.bak/
|
|
111
|
+
venv.bak/
|
|
112
|
+
|
|
113
|
+
# Spyder project settings
|
|
114
|
+
.spyderproject
|
|
115
|
+
.spyproject
|
|
116
|
+
|
|
117
|
+
# Rope project settings
|
|
118
|
+
.ropeproject
|
|
119
|
+
|
|
120
|
+
# mkdocs documentation
|
|
121
|
+
/site
|
|
122
|
+
|
|
123
|
+
# mypy
|
|
124
|
+
.mypy_cache/
|
|
125
|
+
.dmypy.json
|
|
126
|
+
dmypy.json
|
|
127
|
+
|
|
128
|
+
# Pyre type checker
|
|
129
|
+
.pyre/
|
|
130
|
+
|
|
131
|
+
/test/migrations/versions
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
{
|
|
2
|
+
"[python]": {
|
|
3
|
+
"editor.formatOnSave": true,
|
|
4
|
+
"editor.defaultFormatter": "charliermarsh.ruff",
|
|
5
|
+
"editor.codeActionsOnSave": {
|
|
6
|
+
"source.fixAll": "explicit",
|
|
7
|
+
"source.organizeImports": "explicit"
|
|
8
|
+
},
|
|
9
|
+
"editor.tabSize": 4
|
|
10
|
+
},
|
|
11
|
+
"[toml]": {
|
|
12
|
+
"editor.formatOnSave": true,
|
|
13
|
+
"editor.tabSize": 4
|
|
14
|
+
},
|
|
15
|
+
"python.analysis.autoFormatStrings": true,
|
|
16
|
+
|
|
17
|
+
// for import autosuggest
|
|
18
|
+
"python.analysis.indexing": true,
|
|
19
|
+
"python.analysis.autoImportCompletions": true,
|
|
20
|
+
|
|
21
|
+
"python.analysis.packageIndexDepths": [
|
|
22
|
+
{
|
|
23
|
+
"name": "",
|
|
24
|
+
"depth": 3,
|
|
25
|
+
"includeAllSymbols": true
|
|
26
|
+
}
|
|
27
|
+
],
|
|
28
|
+
|
|
29
|
+
"cSpell.words": ["openai", "httpx"],
|
|
30
|
+
|
|
31
|
+
"files.exclude": {
|
|
32
|
+
".ruff_cache": true,
|
|
33
|
+
".pytest_cache": true,
|
|
34
|
+
".venv": true
|
|
35
|
+
}
|
|
36
|
+
}
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [0.8.0](https://github.com/iloveitaly/activemodel/compare/v0.7.0...v0.8.0) (2025-03-18)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* add BaseModel.where method and update test cases ([9fe4c5a](https://github.com/iloveitaly/activemodel/commit/9fe4c5af619690ffb6344cf5c74a2d4b2b46ef02))
|
|
9
|
+
* add primary_key_field ([947a410](https://github.com/iloveitaly/activemodel/commit/947a410766dd764e8ac5b3177152d2ff22cdb609))
|
|
10
|
+
* log start of database transaction in tests ([ac90d6f](https://github.com/iloveitaly/activemodel/commit/ac90d6f18bb0a4cca68527dec9c55b4af1f6e851))
|
|
11
|
+
* reload json fields when record is reloaded from db ([c013082](https://github.com/iloveitaly/activemodel/commit/c013082004bb3a93e81f00eb0c990833a9cae7e2))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
* yield session object in global_session function ([47b33cc](https://github.com/iloveitaly/activemodel/commit/47b33cc1aa66d6076363635191c297c52fcc3deb))
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
### Documentation
|
|
20
|
+
|
|
21
|
+
* add comments to clarify SessionManager use and config ([e73561b](https://github.com/iloveitaly/activemodel/commit/e73561b3d52e617a0f92da5cd93981ff429da16f))
|
|
22
|
+
* update comments and README with additional examples and info ([209ee36](https://github.com/iloveitaly/activemodel/commit/209ee36a9df53f927cd9e5b2bb15b3a5776b34ce))
|
|
23
|
+
* update README with setup instructions and SQLModel tips ([f2520b5](https://github.com/iloveitaly/activemodel/commit/f2520b5fa5d7c462e8f7a591b83d874239a34b8d))
|
|
24
|
+
|
|
25
|
+
## [0.7.0](https://github.com/iloveitaly/activemodel/compare/v0.6.0...v0.7.0) (2025-02-08)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **migrations:** add test to validate autogenerated migrations ([03e0511](https://github.com/iloveitaly/activemodel/commit/03e0511b90307091448f165cca1976ca37e41d4a))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
### Bug Fixes
|
|
34
|
+
|
|
35
|
+
* filter migration files to include only Python files in test ([76f6723](https://github.com/iloveitaly/activemodel/commit/76f672349f24c34284c190368e71a5d4116c3293))
|
|
36
|
+
* make another_with_index optional in ExampleRecord ([2ace729](https://github.com/iloveitaly/activemodel/commit/2ace7292bcc84907818f8719571a2bfcafecfd6b))
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Documentation
|
|
40
|
+
|
|
41
|
+
* enhance README with alembic integration instructions ([a7ac734](https://github.com/iloveitaly/activemodel/commit/a7ac734c5f456afb605ce4e7d0e5111835bfb5f6))
|
|
42
|
+
* improve Alembic integration guidance and resources ([1206278](https://github.com/iloveitaly/activemodel/commit/1206278ae292669bff5a1eb4747d81225dd420e9))
|
|
43
|
+
|
|
44
|
+
## [0.6.0](https://github.com/iloveitaly/activemodel/compare/v0.5.0...v0.6.0) (2025-02-08)
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
### Features
|
|
48
|
+
|
|
49
|
+
* add active model meta functionality with comments ([4180df7](https://github.com/iloveitaly/activemodel/commit/4180df73c8e49fb2da970f934856ac89cd9f4ebc))
|
|
50
|
+
* add Celery encoder for TypeID serialization ([416b04a](https://github.com/iloveitaly/activemodel/commit/416b04ad4bff5f156886fe5519c24505e380f9c7))
|
|
51
|
+
* add data initialization on model load ([00a90ce](https://github.com/iloveitaly/activemodel/commit/00a90cef17d4d5ef1530df21357812d974488012))
|
|
52
|
+
* add field comments to SQLModel metadata ([c32bb9a](https://github.com/iloveitaly/activemodel/commit/c32bb9a45be0e0dd90bc967d28141bf460b524d3))
|
|
53
|
+
* add initial TypeIDType import to __init__.py ([8594dff](https://github.com/iloveitaly/activemodel/commit/8594dffd5ac7fb03ae07bdd8c81e556e1542176e))
|
|
54
|
+
* add JSON serialization for Pydantic models ([1213f2f](https://github.com/iloveitaly/activemodel/commit/1213f2f2bcee0a006eb58658565484ebb60727d5))
|
|
55
|
+
* add playground script for interactive database testing ([fbe419a](https://github.com/iloveitaly/activemodel/commit/fbe419aa6d0edde5abbcdf405f7b037317730df1))
|
|
56
|
+
* add soft deletion mixin for model handling ([2e24e26](https://github.com/iloveitaly/activemodel/commit/2e24e26e0283189d18a7b51b068bd63d58b5e3dd))
|
|
57
|
+
* add TypeID validation and refactor TypeIDType ([5a2a49e](https://github.com/iloveitaly/activemodel/commit/5a2a49e1ee10cb648b4fedc7fd3e262ba5d8e0f1))
|
|
58
|
+
* add utility to import all SQLModel subclasses ([e850016](https://github.com/iloveitaly/activemodel/commit/e85001632524130eac461e6cff23691fcb1c6bbb))
|
|
59
|
+
* enforce unique non-empty prefixes in TypeIDMixin ([a167293](https://github.com/iloveitaly/activemodel/commit/a167293996b319759c8b01c49a05ab0f8dd1d153))
|
|
60
|
+
* enhance foreign key handling and add validation ([61d5849](https://github.com/iloveitaly/activemodel/commit/61d58495a64c7d87d4c5ad1f1cfe0dd4649fe523))
|
|
61
|
+
* enhance query handling and testing in ORM ([363c0dd](https://github.com/iloveitaly/activemodel/commit/363c0dd67b24ba4e860799555e25d51a3c8d4b0d))
|
|
62
|
+
* enhance schema handling with new json schema generation ([3ba47b6](https://github.com/iloveitaly/activemodel/commit/3ba47b6c150d80e24691c8eba195b800cc3ba61c))
|
|
63
|
+
* enhance session management and JSON serialization ([c74804b](https://github.com/iloveitaly/activemodel/commit/c74804b005e7667b5b18cb4f9b03f52cdcb72313))
|
|
64
|
+
* handle dict annotations in PydanticJSONMixin ([085c6a9](https://github.com/iloveitaly/activemodel/commit/085c6a96d02e0d1521c6c58be38cf5b7d3a667af))
|
|
65
|
+
* integrate field description as SQL comment ([cd98fe4](https://github.com/iloveitaly/activemodel/commit/cd98fe4b3024d55dbd9e7951d65b3b73b2aa3cf8))
|
|
66
|
+
* integrate table comment extraction for models ([b7b9722](https://github.com/iloveitaly/activemodel/commit/b7b97224244b886f2067c0f5a0aea3c77c6bbe82))
|
|
67
|
+
* integrate TypeID with Pydantic schema handling ([ab7ded9](https://github.com/iloveitaly/activemodel/commit/ab7ded9e472abdab8e34205e15fc643db842904d))
|
|
68
|
+
* patch FieldInfo for comment support ([e85d154](https://github.com/iloveitaly/activemodel/commit/e85d1543856be8bd19f185e025a43f20aa9a01cb))
|
|
69
|
+
* **test:** enhance ORM tests and introduce QueryWrapper test ([be98abb](https://github.com/iloveitaly/activemodel/commit/be98abb1bb5abe34cf42ebba7b63b89a942e487e))
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Bug Fixes
|
|
73
|
+
|
|
74
|
+
* attempt at using a context manager, no joy ([409ed6d](https://github.com/iloveitaly/activemodel/commit/409ed6de7618c0fcce7fa8fde2f77e0c612c39cb))
|
|
75
|
+
* return True upon successful delete operation ([444a5f5](https://github.com/iloveitaly/activemodel/commit/444a5f561a04fb2dad549c4ffc5a05cc31453fca))
|
|
76
|
+
* support lots of UUID inputs ([783a9fe](https://github.com/iloveitaly/activemodel/commit/783a9fe7f733b346cd6bf2401a9ae134ec785cf6))
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
### Documentation
|
|
80
|
+
|
|
81
|
+
* add example queries to the README file ([f3e878c](https://github.com/iloveitaly/activemodel/commit/f3e878cb72e62fdec727f7b268806d850ea145f0))
|
|
82
|
+
* add new controller project ([c10bc29](https://github.com/iloveitaly/activemodel/commit/c10bc2946b8819812810271c195e317c19269adc))
|
|
83
|
+
* add usage example for Appointment model in README ([7d9ac70](https://github.com/iloveitaly/activemodel/commit/7d9ac708b6bc5c77d3dde0a904ddb6c24c7f2710))
|
|
84
|
+
* expand README with setup and usage sections ([c471f5f](https://github.com/iloveitaly/activemodel/commit/c471f5ff6359e2ab06e9e9053b416dc4f19dd26a))
|
|
85
|
+
* update README with TypeID integration details ([6112888](https://github.com/iloveitaly/activemodel/commit/6112888a4ac0fc8601bf57daba638db6b5bc6788))
|
|
86
|
+
|
|
87
|
+
## [0.5.0](https://github.com/iloveitaly/activemodel/compare/v0.4.0...v0.5.0) (2024-11-28)
|
|
88
|
+
|
|
89
|
+
|
|
90
|
+
### Features
|
|
91
|
+
|
|
92
|
+
* add methods for finding or creating records in model ([f1fd2f2](https://github.com/iloveitaly/activemodel/commit/f1fd2f2d65f182631b5df6a1ab20bf2f9a269607))
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
## [0.4.0](https://github.com/iloveitaly/activemodel/compare/v0.3.0...v0.4.0) (2024-11-26)
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
### Bug Fixes
|
|
100
|
+
|
|
101
|
+
* update uv version to 0.5.4 ([1d77c39](https://github.com/iloveitaly/activemodel/commit/1d77c39e2234b98335e7206626dc2fdca0b34b79))
|
|
102
|
+
|
|
103
|
+
|
|
104
|
+
### Features
|
|
105
|
+
|
|
106
|
+
* add database truncation functionality for tests ([177abf9](https://github.com/iloveitaly/activemodel/commit/177abf91c8b25295cb93878433132302f8caffbc))
|
|
107
|
+
* add FastAPISessionMaker for SQLAlchemy session management ([b80f045](https://github.com/iloveitaly/activemodel/commit/b80f045e52c908c7b1ae8721e42ee2796c8e85bc))
|
|
108
|
+
* add mixins for timestamps and TypeID handling ([51a6128](https://github.com/iloveitaly/activemodel/commit/51a6128e6d0f45e5801821b99e399ae0bcfca624))
|
|
109
|
+
* add python-decouple-typed as a dependency ([d495ad4](https://github.com/iloveitaly/activemodel/commit/d495ad419494c0c387a331a9d0ef4d112df83af7))
|
|
110
|
+
* add typeid-python dependency to project requirements ([998762f](https://github.com/iloveitaly/activemodel/commit/998762fda8f62a078fc3a4afa8c09f5af323dcfb))
|
|
111
|
+
* implement database reset methods for tests ([9cec29d](https://github.com/iloveitaly/activemodel/commit/9cec29d2ad89a871d4cbda2a6b8ad3a1ef50df6e))
|
|
112
|
+
* lots of stuff :) ([0510d20](https://github.com/iloveitaly/activemodel/commit/0510d20a807829db4f6b454ee2915c32ecedb323))
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
## [0.3.0](https://github.com/iloveitaly/activemodel/compare/v0.2.0...v0.3.0) (2024-11-20)
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
### Features
|
|
120
|
+
|
|
121
|
+
* add inspiration section to README and update TODO ([b11fb09](https://github.com/iloveitaly/activemodel/commit/b11fb09eb95e338de7358ba070fac0e75eda9909))
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
|
|
125
|
+
## [0.2.0](https://github.com/iloveitaly/activemodel/compare/193f839c9ace154e7aaa0a9770400031d0e67cd3...v0.2.0) (2024-11-16)
|
|
126
|
+
|
|
127
|
+
|
|
128
|
+
### Bug Fixes
|
|
129
|
+
|
|
130
|
+
* update uv version and rename test file location ([9389fd2](https://github.com/iloveitaly/activemodel/commit/9389fd2e20e75ea322cd55bb699777978a9d282d))
|
|
131
|
+
|
|
132
|
+
|
|
133
|
+
### Features
|
|
134
|
+
|
|
135
|
+
* add Redis and Postgres services to CI workflow ([b9cb0ba](https://github.com/iloveitaly/activemodel/commit/b9cb0baca6bd46092437552ddf1d317a528983ca))
|
|
136
|
+
* automate tablename generation from camelCase ([193f839](https://github.com/iloveitaly/activemodel/commit/193f839c9ace154e7aaa0a9770400031d0e67cd3))
|
|
137
|
+
* enhance project description and keywords in config ([10c5707](https://github.com/iloveitaly/activemodel/commit/10c570786925fa9d7a397cb6f503b658df00aa4f))
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
[macos]
|
|
2
|
+
db_play:
|
|
3
|
+
uv tool run pgcli $DATABASE_URL
|
|
4
|
+
|
|
5
|
+
up:
|
|
6
|
+
docker compose up -d
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
gh_configure:
|
|
10
|
+
repo_path=$(gh repo view --json nameWithOwner --jq '.nameWithOwner') && \
|
|
11
|
+
gh api --method PUT "/repos/${repo_path}/actions/permissions/workflow" \
|
|
12
|
+
-f default_workflow_permissions=write \
|
|
13
|
+
-F can_approve_pull_request_reviews=true && \
|
|
14
|
+
gh api "/repos/${repo_path}/actions/permissions/workflow"
|