Module documentation

Underscore notation

synthetic.naming_convention(naming_convention)

When applied to a class, this decorator will override the underscore naming convention of all (previous and following) synthesizeMember() calls on the class to naming_convention.

Parameters:naming_convention (INamingConvention) – The new naming convention.
synthetic.synthesize_constructor()

This class decorator will override the class’s constructor by making it implicitly consume values for synthesized members and properties.

synthetic.synthesize_member(member_name, default=None, contract=None, read_only=False, getter_name=None, setter_name=None, private_member_name=None)

When applied to a class, this decorator adds getter/setter methods to it and overrides the constructor in order to set the default value of the member. By default, the getter will be named member_name. (Ex.: member_name = 'member' => instance.member())

By default, the setter will be named member_name with ‘set_’ prepended it to it. (Ex.: member_name = 'member' => instance.set_member(...))

By default, the private attribute containing the member’s value will be named member_name with ‘_’ prepended to it.

Naming convention can be overridden with a custom one using naming_convention decorator.

raises:DuplicateMemberNameError when two synthetic members have the same name.
Parameters:
  • read_only (bool) – If set to True, the setter will not be added to the class.
  • default (*) – Member’s default value.
  • getter_name (str|None) – Custom getter name. This can be useful when the member is a boolean. (Ex.: is_alive)
  • contract (*) – Type constraint. See PyContracts
  • setter_name (str|None) – Custom setter name.
  • member_name (str) – Name of the member to synthesize.
  • private_member_name (str|None) – Custom name for the private attribute that contains the member’s value.
synthetic.synthesize_property(property_name, default=None, contract=None, read_only=False, private_member_name=None)

When applied to a class, this decorator adds a property to it and overrides the constructor in order to set the default value of the property.

IMPORTANT:In order for this to work on python 2, you must use new objects that is to say that the class must inherit from object.

By default, the private attribute containing the property’s value will be named property_name with ‘_’ prepended to it.

Naming convention can be overridden with a custom one using naming_convention decorator.

raises:DuplicateMemberNameError when two synthetic members have the same name.
raises:InvalidPropertyOverrideError when there’s already a member with that name and which is not a property.
Parameters:
  • default (*) – Property’s default value.
  • read_only (bool) – If set to True, the property will not a have a setter.
  • private_member_name (str|None) – Custom name for the private attribute that contains the property’s value.
  • contract (*) –

    Type constraint. See PyContracts

  • property_name (str) – Name of the property to synthesize.

CamelCase notation

Sorry Guido, but I like CamelCase.

synthetic.namingConvention(namingConvention)

When applied to a class, this decorator will override the CamelCase naming convention of all (previous and following) synthesizeMember() calls on the class to namingConvention.

Parameters:namingConvention (INamingConvention) – The new naming convention.
synthetic.synthesizeConstructor()

This class decorator will override the class’s constructor by making it implicitly consume values for synthesized members and properties.

synthetic.synthesizeMember(memberName, default=None, contract=None, readOnly=False, getterName=None, setterName=None, privateMemberName=None)

When applied to a class, this decorator adds getter/setter methods to it and overrides the constructor in order to set the default value of the member. By default, the getter will be named memberName. (Ex.: memberName = 'member' => instance.member())

By default, the setter will be named memberName with the first letter capitalized and ‘set’ prepended it to it. (Ex.: memberName = "member" => instance.setMember(...))

By default, the private attribute containing the member’s value will be named memberName with ‘_’ prepended to it.

Naming convention can be overridden with a custom one using namingConvention decorator.

raises:DuplicateMemberNameError when two synthetic members have the same name.
Parameters:
  • privateMemberName (str|None) – Custom name for the private attribute that contains the member’s value.
  • default (*) – Member’s default value.
  • memberName (str) – Name of the member to synthesize.
  • contract (*) –

    Type constraint. See PyContracts

  • readOnly (bool) – If set to True, the setter will not be added to the class.
  • setterName (str|None) – Custom setter name.
  • getterName (str|None) – Custom getter name. This can be useful when the member is a boolean. (Ex.: isAlive)
synthetic.synthesizeProperty(propertyName, default=None, contract=None, readOnly=False, privateMemberName=None)

When applied to a class, this decorator adds a property to it and overrides the constructor in order to set the default value of the property.

IMPORTANT:In order for this to work on python 2, you must use new objects that is to say that the class must inherit from object.

By default, the private attribute containing the property’s value will be named propertyName with ‘_’ prepended to it.

Naming convention can be overridden with a custom one using namingConvention decorator.

raises:DuplicateMemberNameError when two synthetic members have the same name.
raises:InvalidPropertyOverrideError when there’s already a member with that name and which is not a property.
Parameters:
  • default (*) – Property’s default value.
  • propertyName (str) – Name of the property to synthesize.
  • readOnly (bool) – If set to True, the property will not a have a setter.
  • contract (*) –

    Type constraint. See PyContracts

  • privateMemberName (str|None) – Custom name for the private attribute that contains the property’s value.