goblin.properties package¶
Submodules¶
goblin.properties.base module¶
-
class
goblin.properties.base.BaseValueManager(graph_property, value, strategy=<class 'goblin.properties.strategy.SaveAlways'>)[source]¶ Bases:
objectValue managers are used to manage values pulled from the database and track state changes.
These are useful for save strategies.
-
previous_value¶
-
-
class
goblin.properties.base.GraphProperty(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
objectBase class for graph property types
-
can_delete¶
-
data_type= 'Object'¶
-
db_field_name¶ Returns the name of the goblin name of this graph property
Return type: basestring | str
-
get_default()[source]¶ Returns the default value for this graph property if one is available.
Return type: Object | None
-
get_save_strategy()[source]¶ Returns the save strategy attached to this graph property.
Return type: Callable
-
classmethod
get_value_from_choices(value, choices)[source]¶ Returns the key for the choices tuple of tuples
Note if you are using classes, they must implement the __in__ and __eq__ for the logical comparison.
Parameters: value (Object) – The raw value to test if it exists in the valid choices. Could be the key or the value in the dict Return type: Object
-
has_db_field_prefix¶ Determines if a field prefix has already been defined.
-
instance_counter= 0¶
-
set_db_field_prefix(prefix, override=False)[source]¶ Sets the graph property name prefix during document class construction.
-
set_property_name(name)[source]¶ Sets the graph property name during document class construction.
This value will be ignored if db_field is set in __init__
Parameters: name (str) – The name of this graph property
-
should_save(first_save=False)[source]¶ Indicates whether or not the property should be saved based on it’s save strategy.
Return type: bool
-
to_python(value)[source]¶ Converts data from the database into python values raises a ValidationError if the value can’t be converted
Return type: Object
-
validate(value)[source]¶ Returns a cleaned and validated value. Raises a ValidationError if there’s a problem
Return type: Object
-
validator= <goblin.properties.validators.BaseValidator object>¶
-
value_manager¶ alias of
BaseValueManager
-
goblin.properties.properties module¶
-
class
goblin.properties.properties.Boolean(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.base.GraphPropertyBoolean Data property type
-
data_type= 'Boolean'¶
-
validator= <goblin.properties.validators.BooleanValidator object>¶
-
-
class
goblin.properties.properties.DateTime(strict=True, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyUTC DateTime Data property type
-
data_type= 'Double'¶
-
validator= <goblin.properties.validators.DateTimeUTCValidator object>¶
-
-
class
goblin.properties.properties.DateTimeNaive(strict=True, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyDateTime Data property type
-
data_type= 'Double'¶
-
validator= <goblin.properties.validators.DateTimeValidator object>¶
-
-
class
goblin.properties.properties.Decimal(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.base.GraphPropertyDecimal Data property type
-
validator= <goblin.properties.validators.DecimalValidator object>¶
-
-
class
goblin.properties.properties.Dictionary(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.base.GraphPropertyDictionary Data property type
-
data_type= 'HashMap'¶
-
validator= <goblin.properties.validators.DictValidator object>¶
-
-
class
goblin.properties.properties.Double(**kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyDouble Data property type
-
data_type= 'Double'¶
-
validator= <goblin.properties.validators.FloatValidator object>¶
-
-
class
goblin.properties.properties.Email(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyEmail Data property type
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.EmailValidator object>¶
-
-
class
goblin.properties.properties.Float(**kwargs)[source]¶ Bases:
goblin.properties.properties.DoubleFloat class for backwards compatability / if you really want to
-
class
goblin.properties.properties.IPV4(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyIPv4 Data property type
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.RegexValidator object>¶
-
-
class
goblin.properties.properties.IPV6(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyIPv6 Data property type
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.RegexValidator object>¶
-
-
class
goblin.properties.properties.IPV6WithV4(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyIPv6 with Mapped/Translated/Embedded IPv4 Data property type
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.RegexValidator object>¶
-
-
class
goblin.properties.properties.Integer(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.base.GraphPropertyInteger Data property type
-
data_type= 'Integer'¶
-
validator= <goblin.properties.validators.LongValidator object>¶
-
-
class
goblin.properties.properties.List(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.base.GraphPropertyList Data property type
-
data_type= 'ArrayList'¶
-
validator= <goblin.properties.validators.ListValidator object>¶
-
-
class
goblin.properties.properties.Long(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.base.GraphPropertyLong Data property type
-
data_type= 'Long'¶
-
validator= <goblin.properties.validators.LongValidator object>¶
-
-
class
goblin.properties.properties.PositiveInteger(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.properties.IntegerPositive Integer Data property type
-
data_type= 'Integer'¶
-
validator= <goblin.properties.validators.PositiveIntegerValidator object>¶
-
-
class
goblin.properties.properties.PositiveLong(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.properties.LongPositive Long Data property type
-
data_type= 'Long'¶
-
validator= <goblin.properties.validators.PositiveIntegerValidator object>¶
-
-
class
goblin.properties.properties.Short(description=None, primary_key=False, index=False, index_ext=None, db_field=None, choices=None, default=None, required=False, save_strategy=<class 'goblin.properties.strategy.SaveAlways'>, unique=None, db_field_prefix='')[source]¶ Bases:
goblin.properties.base.GraphPropertyShort Data property type
-
data_type= 'Short'¶
-
validator= <goblin.properties.validators.IntegerValidator object>¶
-
-
class
goblin.properties.properties.Slug(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertySlug Data property type
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.RegexValidator object>¶
-
-
class
goblin.properties.properties.String(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyString/CharField property
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.StringValidator object>¶
-
-
class
goblin.properties.properties.URL(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyURL Data property type
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.URLValidator object>¶
-
-
class
goblin.properties.properties.UUID(default=<function UUID.<lambda>>, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphPropertyUniversally Unique Identifier (UUID) type - UUID4 by default
-
data_type= 'String'¶
-
validator= <goblin.properties.validators.RegexValidator object>¶
-
goblin.properties.strategy module¶
-
class
goblin.properties.strategy.SaveAlways[source]¶ Bases:
goblin.properties.strategy.StrategySave this value every time the corresponding model is saved.
-
class
goblin.properties.strategy.SaveOnChange[source]¶ Bases:
goblin.properties.strategy.StrategyOnly save this value if it has changed.
-
class
goblin.properties.strategy.SaveOnDecrease[source]¶ Bases:
goblin.properties.strategy.StrategySave this value only if it is decreasing
-
class
goblin.properties.strategy.SaveOnIncrease[source]¶ Bases:
goblin.properties.strategy.StrategySave this value only if it is increasing
-
class
goblin.properties.strategy.SaveOnce[source]¶ Bases:
goblin.properties.strategy.StrategyOnly save this value once. If it changes throw an exception.
goblin.properties.validators module¶
-
class
goblin.properties.validators.BaseValidator(message=None, code=None)[source]¶ Bases:
object-
code= 'invalid'¶
-
message= 'Enter a valid value.'¶
-
-
class
goblin.properties.validators.BooleanValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
message= 'Enter a valid Boolean.'¶
-
-
class
goblin.properties.validators.DateTimeUTCValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
message= 'Not a valid UTC DateTime: {}'¶
-
-
class
goblin.properties.validators.DateTimeValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
message= 'Not a valid DateTime: {}'¶
-
-
class
goblin.properties.validators.DecimalValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.NumericValidator-
data_types= (<class 'float'>, <class 'decimal.Decimal'>)¶
-
-
class
goblin.properties.validators.DictValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
message= 'Enter a valid dict'¶
-
-
class
goblin.properties.validators.EmailValidator(regex=None, message=None, code=None)[source]¶ Bases:
goblin.properties.validators.RegexValidator-
code= 'invalid'¶
-
message= 'Enter a valid email address: {}'¶
-
regex= re.compile('(^[-!#$%&\'*+/=?^_`{}|~0-9A-Z]+(\\.[-!#$%&\'*+/=?^_`{}|~0-9A-Z]+)*|^"([\\001-\\010\\013\\014\\016-\\037!#-\\[\\]-\\177]|\\\\[\\001-\\011\\013\\014\\016-\\177])*")@((?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-, re.IGNORECASE)¶
-
-
class
goblin.properties.validators.FloatValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.NumericValidator-
data_types= (<class 'float'>,)¶
-
-
class
goblin.properties.validators.IntegerValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.NumericValidator-
data_types= (<class 'int'>,)¶
-
-
class
goblin.properties.validators.ListValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
data_types= (<class 'tuple'>, <class 'list'>)¶
-
message= 'Enter a valid list'¶
-
-
class
goblin.properties.validators.LongValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.NumericValidator-
data_types= (<class 'int'>,)¶
-
-
class
goblin.properties.validators.NumericValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
data_types= (<class 'float'>, <class 'int'>, <class 'decimal.Decimal'>)¶
-
message= 'Enter a valid number.'¶
-
-
class
goblin.properties.validators.PositiveIntegerValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.NumericValidator-
data_types= (<class 'int'>,)¶
-
-
class
goblin.properties.validators.RegexValidator(regex=None, message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
regex= ''¶
-
-
class
goblin.properties.validators.StringValidator(message=None, code=None)[source]¶ Bases:
goblin.properties.validators.BaseValidator-
data_type= (<class 'str'>,)¶
-
message= 'Enter a valid string: {}'¶
-
-
class
goblin.properties.validators.URLValidator(regex=None, message=None, code=None)[source]¶ Bases:
goblin.properties.validators.RegexValidator-
code= 'invalid'¶
-
message= 'Enter a valid URL address: {}'¶
-
regex= re.compile('^(?:http|ftp)s?://(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\\.)+(?:[A-Z]{2,6}\\.?|[A-Z0-9-]{2,}\\.?)|localhost|\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}|\\[?[A-F0-9]*:[A-F0-9:]+\\]?)(?::\\d+)?(?:/?|, re.IGNORECASE)¶
-