goblin.properties package¶
Submodules¶
goblin.properties.base module¶
-
class
goblin.properties.base.
BaseValueManager
(graph_property, value, strategy=<class 'goblin.properties.strategy.SaveAlways'>)[source]¶ Bases:
object
Value 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:
object
Base 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.GraphProperty
Boolean 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.GraphProperty
UTC 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.GraphProperty
DateTime 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.GraphProperty
Decimal 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.GraphProperty
Dictionary Data property type
-
data_type
= 'HashMap'¶
-
validator
= <goblin.properties.validators.DictValidator object>¶
-
-
class
goblin.properties.properties.
Double
(**kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
Double Data property type
-
data_type
= 'Double'¶
-
validator
= <goblin.properties.validators.FloatValidator object>¶
-
-
class
goblin.properties.properties.
Email
(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
Email Data property type
-
data_type
= 'String'¶
-
validator
= <goblin.properties.validators.EmailValidator object>¶
-
-
class
goblin.properties.properties.
Float
(**kwargs)[source]¶ Bases:
goblin.properties.properties.Double
Float class for backwards compatability / if you really want to
-
class
goblin.properties.properties.
IPV4
(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
IPv4 Data property type
-
data_type
= 'String'¶
-
validator
= <goblin.properties.validators.RegexValidator object>¶
-
-
class
goblin.properties.properties.
IPV6
(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
IPv6 Data property type
-
data_type
= 'String'¶
-
validator
= <goblin.properties.validators.RegexValidator object>¶
-
-
class
goblin.properties.properties.
IPV6WithV4
(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
IPv6 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.GraphProperty
Integer 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.GraphProperty
List 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.GraphProperty
Long 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.Integer
Positive 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.Long
Positive 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.GraphProperty
Short Data property type
-
data_type
= 'Short'¶
-
validator
= <goblin.properties.validators.IntegerValidator object>¶
-
-
class
goblin.properties.properties.
Slug
(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
Slug Data property type
-
data_type
= 'String'¶
-
validator
= <goblin.properties.validators.RegexValidator object>¶
-
-
class
goblin.properties.properties.
String
(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
String/CharField property
-
data_type
= 'String'¶
-
validator
= <goblin.properties.validators.StringValidator object>¶
-
-
class
goblin.properties.properties.
URL
(*args, **kwargs)[source]¶ Bases:
goblin.properties.base.GraphProperty
URL 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.GraphProperty
Universally 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.Strategy
Save this value every time the corresponding model is saved.
-
class
goblin.properties.strategy.
SaveOnChange
[source]¶ Bases:
goblin.properties.strategy.Strategy
Only save this value if it has changed.
-
class
goblin.properties.strategy.
SaveOnDecrease
[source]¶ Bases:
goblin.properties.strategy.Strategy
Save this value only if it is decreasing
-
class
goblin.properties.strategy.
SaveOnIncrease
[source]¶ Bases:
goblin.properties.strategy.Strategy
Save this value only if it is increasing
-
class
goblin.properties.strategy.
SaveOnce
[source]¶ Bases:
goblin.properties.strategy.Strategy
Only 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)¶
-