跳转到主要内容

为Odoo ORM添加类型,以实现惯用的Python

项目描述

typodoo

PyPI - Version PyPI - Python Version


为Odoo模型添加类型,以实现惯用的Python。

此软件包支持Odoo Experience 2022演讲(幻灯片视频)。

添加一些类型注解到Odoo核心时,效果最佳。

/!\ 这是预览版内容 /!\

是什么?

pip install typodoo 以在Odoo启动时猴子补丁Odoo元类。

然后,您仍然可以像往常一样编写这个

from odoo import models, fields

class ResPartner(models.Model):
    _inherit = "res.partner"

    friend = fields.Boolean()
    industry2_id = fields.Many2one(
        'res.partner.industry',
        string='Secondary Industry',
        required=True,
    )

但您也可以编写这个

from odoo import fields

from odoo.addons.base.models.res_partner import (
    Partner, ResPartnerIndustry
)

class ResPartner(Partner):
    friend = fields.Boolean()
    industry2_id = fields.Many2one[ResPartnerIndustry](
        string='Secondary Industry',
    )

也可以编写这个

from odoo.addons.my_addon.models.res_partner import ResPartner


partners = ResPartner(self.env).search([])

为什么?

惯用的Python。

IDE中的原生自动完成。

静态类型检查。

开发

pip install -e .

然后,将 typodoo_activate.pth 复制到 $VIRTUAL_ENV/lib/python3.10/site-packages。自动化此设置是一个待办事项。

许可

typodoo 在MIT许可的条款下分发。

项目详情


下载文件

下载您平台对应的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

typodoo-0.3.tar.gz (4.9 kB 查看哈希值)

上传时间

构建分发

typodoo-0.3-py3-none-any.whl (4.2 kB 查看哈希值)

上传时间 Python 3

由以下支持