Skip to main content

A utility that allows you to convert ORM models.

Project description

PyPI version Code style: black Imports: isort Checked with mypy

Orm-Converter

Installation

pip install orm-converter

or

pip install git+https://github.com/MaxZayats/orm-converter

Available conversions

  1. TortoiseORM -> DjangoORM

Usage Examples

1. Simple Usage

from orm_converter.tortoise_to_django import ConvertedModel
from tortoise import fields
from tortoise.models import Model as TortoiseModel


class ExampleModel(TortoiseModel, ConvertedModel):
    example_field = fields.IntField()


ExampleModel.DjangoModel  # <- Converted Django Model

2. Redefining fields/attributes

from orm_converter.tortoise_to_django import (ConvertedModel,
                                              RedefinedAttributes)
from tortoise.models import Model as TortoiseModel

from custom_django_fields import CustomDjangoField
from custom_tortoise_fields import CustomTortoiseField


class ExampleModel(TortoiseModel, ConvertedModel):
    custom_field = CustomTortoiseField()

    class RedefinedAttributes(RedefinedAttributes):
        """
        In this class you can redefine your tortoise attributes to django attributes.
        You can use this if you have a custom fields
        Or if `orm_converter` converts fields incorrectly.
        """

        custom_field = CustomDjangoField()

3. Adding custom converters

from orm_converter.tortoise_to_django import (BaseTortoiseFieldConverter,
                                              ConvertedModel, Converter)
from tortoise.models import Model as TortoiseModel

from custom_django_fields import CustomDjangoField
from custom_tortoise_fields import CustomTortoiseField


class MyCustomFieldConverter(BaseTortoiseFieldConverter):
    ORIGINAL_FIELD_TYPE = CustomTortoiseField
    CONVERTED_FIELD_TYPE = CustomDjangoField

    def _reformat_kwargs(self):
        super()._reformat_kwargs()
        # change field kwargs here

        self._original_field_kwargs["custom_kwarg"] = "Django"


Converter.add_converters(MyCustomFieldConverter)


class ExampleModel(TortoiseModel, ConvertedModel):
    custom_field = CustomTortoiseField(custom_kwarg="Tortoise")

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orm_converter-0.2.2b0.tar.gz (6.8 kB view details)

Uploaded Source

Built Distribution

orm_converter-0.2.2b0-py3-none-any.whl (7.8 kB view details)

Uploaded Python 3

File details

Details for the file orm_converter-0.2.2b0.tar.gz.

File metadata

  • Download URL: orm_converter-0.2.2b0.tar.gz
  • Upload date:
  • Size: 6.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.5

File hashes

Hashes for orm_converter-0.2.2b0.tar.gz
Algorithm Hash digest
SHA256 f595f37c58a704542ee94f3bb7b412397a1d4ea07fb31006a299ac7ba930edff
MD5 7148afba7491391989515d773a988a1a
BLAKE2b-256 4fabd9f1fcfc4e8c674ee9a57ba4e35c690e4de2afb8bd9659d0d4c61866337c

See more details on using hashes here.

File details

Details for the file orm_converter-0.2.2b0-py3-none-any.whl.

File metadata

  • Download URL: orm_converter-0.2.2b0-py3-none-any.whl
  • Upload date:
  • Size: 7.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.2 importlib_metadata/4.6.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.62.0 CPython/3.9.5

File hashes

Hashes for orm_converter-0.2.2b0-py3-none-any.whl
Algorithm Hash digest
SHA256 c2a16643d2194c04a25a128bbf5c63b35cbc97c93732bf2f87617d826647b181
MD5 dcdbec54b7515dfa9c55895fe102e4c0
BLAKE2b-256 6219f6d3fb8f3c10777d55a9fbc684495717946304e77e4975a118567e753c45

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page