Definire un package

Prendiamo a titolo di esempio il file main del package fatt di Sandbox:

class Package(GnrDboPackage):

    def config_attributes(self):
        return dict(comment='Package demo fatturazione',sqlschema='fatt',language='it',
                  name_short='Fatturazione', name_long='Fatturazione', name_full='Fatturazione')

    def config_db(self, pkg):
        pass

    def custom_type_money(self):
        return dict(dtype='N',format='#,###.00')

Per creare un package quindi:

  • definiamo una classe Package che eredita da GnrDboPackage

  • ridefiniamo un metodo obbligatorio config_attributes, dove andiamo a specificare tutti gli attributi del package, innanzitutto comment, i vari name_, l”sqlschema (ovvero lo schema delle tabelle sul database), e una serie di altri attributi facoltativi

Notiamo che la classe Package che abbiamo così definito è una classe «astratta» di mixin. Sarà poi il motore di Genropy a istanziare l’oggetto DbPackageObj partendo dalla traccia semplificata che abbiamo fornito noi: il programmatore si limita infatti a descrivere la «punta dell’iceberg», e l’ORM si occuperà del resto.

Per i dettagli sul funzionamento dell’oggetto Package rimandiamo alla sezione dedicata .

Autore della sezione: Davide Paci