Data Models¶
The darc.model module contains all data models defined for the
darc project, including RDS-based task queue and data submission.
Base Model¶
The darc.model.abc module contains abstract base class
of all data models for the darc project.
-
class
darc.model.abc.BaseMeta[source]¶ Bases:
objectBasic metadata for data models.
-
table_function()¶ Generate table name dynamically (c.f.
table_function()).- Parameters
model_class (peewee.Model) –
- Return type
-
-
class
darc.model.abc.BaseMetaWeb[source]¶ Bases:
darc.model.abc.BaseMetaBasic metadata for data models of data submission.
-
class
darc.model.abc.BaseModel(*args, **kwargs)[source]¶ Bases:
peewee.ModelBase model with standard patterns.
Notes
The model will implicitly have a
AutoFieldattribute named asid.-
DoesNotExist¶ alias of
BaseModelDoesNotExist
-
Meta¶ Basic metadata for data models.
-
id= <AutoField: BaseModel.id>¶
-
-
class
darc.model.abc.BaseModelWeb(*args, **kwargs)[source]¶ Bases:
darc.model.abc.BaseModelBase model with standard patterns for data submission.
Notes
The model will implicitly have a
AutoFieldattribute named asid.-
DoesNotExist¶ alias of
BaseModelWebDoesNotExist
-
Meta¶ Basic metadata for data models.
-
id= <AutoField: BaseModelWeb.id>¶
-
Miscellaneous Utilities¶
The darc.model.utils module contains several miscellaneous
utility functions and data fields.
-
class
darc.model.utils.IPField(null=False, index=False, unique=False, column_name=None, default=None, primary_key=False, constraints=None, sequence=None, collation=None, unindexed=False, choices=None, help_text=None, verbose_name=None, index_type=None, db_column=None, _hidden=False)[source]¶ Bases:
peewee.IPFieldIP data field.
-
db_value(val)[source]¶ Dump the value for database storage.
- Parameters
value – Source IP address instance.
val (Optional[Union[str, ipaddress.IPv4Address, ipaddress.IPv6Address]]) –
- Returns
Integral representation of the IP address.
- Return type
Optional[int]
-
python_value(val)[source]¶ Load the value from database storage.
- Parameters
value – Integral representation of the IP address.
val (Optional[int]) –
- Returns
Original IP address instance.
- Return type
Optional[Union[ipaddress.IPv4Address, ipaddress.IPv6Address]]
-
-
class
darc.model.utils.IntEnumField(null=False, index=False, unique=False, column_name=None, default=None, primary_key=False, constraints=None, sequence=None, collation=None, unindexed=False, choices=None, help_text=None, verbose_name=None, index_type=None, db_column=None, _hidden=False)[source]¶ Bases:
peewee.IntegerFieldenum.IntEnumdata field.-
python_value(value)[source]¶ Load the value from database storage.
- Parameters
value (Optional[int]) – Integral representation of the enumeration.
- Returns
Original enumeration object.
- Return type
Optional[enum.IntEnum]
-
choices: enum.IntEnum¶ The original
enum.IntEnumclass.
-
-
class
darc.model.utils.JSONField(null=False, index=False, unique=False, column_name=None, default=None, primary_key=False, constraints=None, sequence=None, collation=None, unindexed=False, choices=None, help_text=None, verbose_name=None, index_type=None, db_column=None, _hidden=False)[source]¶ Bases:
playhouse.mysql_ext.JSONFieldJSON data field.
-
class
darc.model.utils.PickleField(null=False, index=False, unique=False, column_name=None, default=None, primary_key=False, constraints=None, sequence=None, collation=None, unindexed=False, choices=None, help_text=None, verbose_name=None, index_type=None, db_column=None, _hidden=False)[source]¶ Bases:
peewee.BlobFieldPickled data field.
-
class
darc.model.utils.Proxy(value)[source]¶ Bases:
enum.IntEnumProxy types supported by
darc.-
FREENET= 5¶ Freenet proxy.
-
I2P= 3¶ I2P proxy.
-
NULL= 1¶ No proxy.
-
TOR= 2¶ Tor proxy.
-
ZERONET= 4¶ ZeroNet proxy.
-
-
darc.model.utils.table_function(model_class)[source]¶ Generate table name dynamically.
The function strips
Modelfrom the class name and callspeewee.make_snake_case()to generate a proper table name.- Parameters
model_class (peewee.Model) – Data model class.
- Returns
Generated table name.
- Return type