Skip to main content

Small utilities to ease OpenERP development

Project description

openerp-sane is a collection of small utilities, making OpenERP development seem less like ancient warfare with blood and guts everywhere, and more like Python.

For now, there’s just one utility: the @oemeth method decorator which straightens out our we manage the famous ids argument in our model methods. Example:

def myaction(self, cr, uid, ids, context=None): pass

Normally, ids is supposed to be a list of int, but sometimes, just, sometimes, we get a naked int, then our method crashes. We have to add code like:

if isinstance(ids, (int, long)):
    ids = [ids]

On top of that, there’s another annoyance: why, oh why do all my methods have to handle cases with multiple ids? When I have an action for some button in a form, I know it’s only ever going to handle one id at a time. I can do ids[0] easily enough, but if I really want to be on the safe side, I’ll make sure that ids is a list first. Aren’t you tired of that ridiculous dance? Well, that’s why we have @oemeth

Usage

@oemeth is a method decorator that takes 2 (optional, default to False) arguments: single and browse. By default, it simply makes sure that ids is a list:

from openerp_sane import oemeth

# [...]

@oemeth
def myaction(self, cr, uid, ids, context=None):
    # Write code that assumes ids is a list

With single to True, we enforce a single int id:

@oemeth(single=True)
def myaction(self, cr, uid, objid, context=None):
    # objid is an ``int``.
    # WARNING: Use this only when you're sure that you'll only ever have single arguments.
    # If the input is a list with a len() != 1, an exception is raised.

With browse to True, we wrap our id(s) in a self.browse() call:

@oemeth(browse=True)
def myaction(self, cr, uid, objs, context=None):
    # objs is a list of browse records

Install

You can’t wait to start using it in your modules, right? openerp-sane can be installed from PyPI:

$ pip install openerp-sane

When you use it in a module, you can document its dependency to it in your __openerp__.py:

{
    # [...]
    'external_dependencies': {
        'python': ['openerp_sane'],
    },
    # [...]
}

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

openerp-sane-0.1.tar.gz (14.2 kB view details)

Uploaded Source

File details

Details for the file openerp-sane-0.1.tar.gz.

File metadata

  • Download URL: openerp-sane-0.1.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for openerp-sane-0.1.tar.gz
Algorithm Hash digest
SHA256 9901770063286f1778cc6e40f1ad964c4ee24633919008c9e678b1ff9e3a8e0f
MD5 67d6175ffebd4724f8801ca1352f3e56
BLAKE2b-256 0b9808e42cb2adab4add651cf7f4640fee62284f82418c4360bd524952d57350

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