{"library":"sqlalchemy-mate","title":"SQLAlchemy Mate","type":"library","description":"SQLAlchemy Mate (sqlalchemy-mate) is a library that extends SQLAlchemy's ORM capabilities, simplifying common CRUD (Create, Read, Update, Delete) operations and session management. It aims to reduce boilerplate code for database interactions. The current version is 2.0.0.3, with recent updates focusing on the 2.x API. Releases often occur for minor bug fixes or feature enhancements within major versions.","language":"python","status":"active","last_verified":"Fri May 22","install":{"commands":["pip install sqlalchemy-mate"],"cli":null},"imports":["from sqlalchemy_mate import ExtendedBase","from sqlalchemy_mate import sm","from sqlalchemy_mate import engine_factory"],"auth":{"required":false,"env_vars":[]},"links":{"homepage":null,"github":"https://github.com/MacHu-GWU/sqlalchemy_mate-project","docs":null,"changelog":null,"pypi":"https://pypi.org/project/sqlalchemy-mate/","npm":null,"openapi_spec":null,"status_page":null,"smithery":null},"quickstart":{"code":"import os\nfrom sqlalchemy import Column, Integer, String, create_engine\nfrom sqlalchemy_mate import ExtendedBase, sm\n\n# 1. Define your model inheriting from ExtendedBase\nclass User(ExtendedBase):\n    __tablename__ = \"users\"\n    id = Column(Integer, primary_key=True)\n    name = Column(String(50), nullable=False)\n    email = Column(String(50), unique=True, nullable=False)\n\n    def __repr__(self):\n        return f\"<User(id={self.id}, name='{self.name}', email='{self.email}')>\"\n\n# 2. Create an in-memory SQLite engine for demonstration\nengine = create_engine(\"sqlite:///:memory:\", echo=False)\n\n# 3. Create tables based on the metadata\nExtendedBase.metadata.create_all(engine)\n\n# 4. Use sm.extended_session_factory for simplified session management\nwith sm.extended_session_factory(engine) as session:\n    # 5. Create and add new objects\n    user1 = User(name=\"Alice\", email=\"alice@example.com\")\n    user2 = User(name=\"Bob\", email=\"bob@example.com\")\n    session.add_all([user1, user2])\n    session.commit() # Commit changes to the database\n\n    print(\"\\n--- Added Users ---\")\n    print(f\"User 1 ID: {user1.id}\") # IDs are assigned after commit\n    print(f\"User 2 ID: {user2.id}\")\n\n    # 6. Query objects\n    print(\"\\n--- Query All Users ---\")\n    all_users = session.query(User).all()\n    for user in all_users:\n        print(user)\n\n    print(\"\\n--- Query Specific User ---\")\n    alice = session.query(User).filter_by(name=\"Alice\").one_or_none()\n    if alice:\n        print(f\"Found Alice: {alice}\")\n\n    # 7. Update an object\n    if alice:\n        alice.name = \"Alicia\"\n        session.add(alice) # Re-add modified object to session\n        session.commit()\n        print(\"\\n--- Updated User ---\")\n        print(f\"Alice updated to: {session.query(User).filter_by(email='alice@example.com').one_or_none()}\")\n\n    # 8. Delete an object\n    bob = session.query(User).filter_by(name=\"Bob\").one_or_none()\n    if bob:\n        session.delete(bob)\n        session.commit()\n        print(\"\\n--- Deleted User ---\")\n        print(f\"Bob deleted. Remaining users: {session.query(User).all()}\")","lang":"python","description":"This quickstart demonstrates how to define a model using `ExtendedBase`, create an in-memory SQLite database, manage sessions with `sm.extended_session_factory`, and perform basic CRUD operations (create, read, update, delete) on the `User` model.","tag":null,"tag_description":null,"last_tested":null,"results":[]},"compatibility":{"tag":null,"tag_description":null,"last_tested":"2026-05-22","installed_version":"2.0.0.3","pypi_latest":"2.0.0.3","is_stale":false,"summary":{"python_range":"3.10–3.9","success_rate":100,"avg_install_s":3.4,"avg_import_s":null,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"44.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3.5,"import_time_s":null,"mem_mb":null,"disk_size":"43M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"49.4M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3.2,"import_time_s":null,"mem_mb":null,"disk_size":"48M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"40.6M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":"39M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"40.1M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":3,"import_time_s":null,"mem_mb":null,"disk_size":"39M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":"42.7M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"sqlalchemy-mate","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":"broken","install_time_s":4,"import_time_s":null,"mem_mb":null,"disk_size":"42M"}]}}