Metadata-Version: 2.1
Name: sqlalchemy-fields
Version: 0.4.0
Summary: SQLAlchemy fields
Project-URL: Documentation, https://github.com/aminalaee/sqlalchemy-fields#readme
Project-URL: Issues, https://github.com/aminalaee/sqlalchemy-fields/issues
Project-URL: Source, https://github.com/aminalaee/sqlalchemy-fields
Author-email: Amin Alaee <me@aminalaee.dev>
License-Expression: MIT
License-File: LICENSE.txt
Keywords: django,orm,sqlalchemy
Classifier: Development Status :: 4 - Beta
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Topic :: Database
Classifier: Topic :: Database :: Database Engines/Servers
Classifier: Topic :: Internet
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Internet :: WWW/HTTP :: HTTP Servers
Classifier: Typing :: Typed
Requires-Python: >=3.7
Requires-Dist: sqlalchemy>=1.4
Provides-Extra: full
Requires-Dist: boto3~=1.25; extra == 'full'
Requires-Dist: email-validator~=1.3; extra == 'full'
Requires-Dist: pillow~=9.4; extra == 'full'
Description-Content-Type: text/markdown

# SQLAlchemy Fields

<p align="center">
<a href="https://github.com/aminalaee/sqlalchemy-fields/actions">
    <img src="https://github.com/aminalaee/sqlalchemy-fields/workflows/Tests/badge.svg" alt="Build Status">
</a>
<a href="https://github.com/aminalaee/sqlalchemy-fields/actions">
    <img src="https://github.com/aminalaee/sqlalchemy-fields/workflows/Publish/badge.svg" alt="Publish Status">
</a>
<a href="https://codecov.io/gh/aminalaee/sqlalchemy-fields">
    <img src="https://codecov.io/gh/aminalaee/sqlalchemy-fields/branch/main/graph/badge.svg" alt="Coverage">
</a>
<a href="https://pypi.org/project/sqlalchemy-fields/">
    <img src="https://badge.fury.io/py/sqlalchemy-fields.svg" alt="Package version">
</a>
<a href="https://pypi.org/project/sqlalchemy-fields" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/sqlalchemy-fields.svg?color=%2334D058" alt="Supported Python versions">
</a>
</p>

---

**Documentation**: [https://aminalaee.dev/sqlalchemy-fields](https://aminalaee.dev/sqlalchemy-fields)

**Source Code**: [https://github.com/aminalaee/sqlalchemy-fields](https://github.com/aminalaee/sqlalchemy-fields)

---

**Table of Contents**

- [Installation](#installation)
- [Custom Types](#custom-types)

## Installation

```console
pip install sqlalchemy-fields
pip install 'sqlalchemy-fields[full]'
```

## Custom Types

- `EmailType`
- `FileType`
- `ImageType`
- `IPAddressType`
- `URLType`
- `UUIDType`

```python
from sqlalchemy import Column, Integer, create_engine
from sqlalchemy.orm import Session, declarative_base
from sqlalchemy_fields.types import IPAddressType


Base = declarative_base()
engine = create_engine("sqlite:///example.db")


class Example(Base):
    __tablename__ = "example"

    id = Column(Integer, primary_key=True)
    ip = Column(IPAddressType)


example = Example(ip="127.0.0.1")
with Session(engine) as session:
    session.add(example)
    session.commit()
    print(example.ip)
"""
IPv4Address("127.0.0.1")
"""
```

## Storages

- `FileSystemStorage`
- `S3Storage`
