Compare commits

..

3 Commits

Author SHA1 Message Date
renovate[bot]
af5cc619c6 feat(deps): update actions/checkout action to v6 2025-11-20 18:32:57 +00:00
5b74ed5620 fix: added name for primary key constraint 2025-07-24 23:10:46 +02:00
bb3a52295d feat: added LowerCaseString field 2025-07-24 22:53:26 +02:00
4 changed files with 27 additions and 4 deletions

View File

@@ -19,7 +19,7 @@ jobs:
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: psf/black@stable
with:
options: "-l 100 --exclude '/.venv/|/__init__.py'"
@@ -35,7 +35,7 @@ jobs:
runs-on: ubuntu-latest
needs: lint
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- uses: actions/setup-python@v5
with:
python-version: '3.13'
@@ -55,7 +55,7 @@ jobs:
contents: write # for the tags
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
with:
fetch-tags: true
ref: ${{ github.ref_name }}

View File

@@ -1,3 +1,4 @@
from .fields import * # noqa
from .groups import * # noqa
from .i18n import * # noqa
from .stripe import * # noqa

17
creyPY/const/fields.py Normal file
View File

@@ -0,0 +1,17 @@
from sqlalchemy import types
class LowerCaseString(types.TypeDecorator):
"""Converts strings to lower case on the way in."""
impl = types.String
cache_ok = True
def process_bind_param(self, value, dialect):
if value is None:
return value
return value.lower()
@property
def python_type(self):
return str

View File

@@ -1,7 +1,7 @@
import uuid
from datetime import datetime
from sqlalchemy import Column, DateTime, String
from sqlalchemy import Column, DateTime, PrimaryKeyConstraint, String
from sqlalchemy.dialects.postgresql import UUID
from sqlalchemy.ext.declarative import declared_attr
from sqlalchemy.orm import as_declarative
@@ -23,6 +23,11 @@ class Base(AutoAnnotateMixin, AutoInitMixin):
# TODO: Add automated foreign key resolution
# Add name to primary key constraint to ensure alembic can pick it up later
@declared_attr
def __table_args__(cls):
return (PrimaryKeyConstraint("id", name=f"pk_{cls.__tablename__}"),)
# Generate __tablename__ automatically
@declared_attr
def __tablename__(cls) -> str: