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:
object
Basic 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.BaseMeta
Basic metadata for data models of data submission.
-
class
darc.model.abc.
BaseModel
(*args, **kwargs)[source]¶ Bases:
peewee.Model
Base model with standard patterns.
Notes
The model will implicitly have a
AutoField
attribute named asid
.-
DoesNotExist
¶ alias of
BaseModelDoesNotExist
-
to_dict
(keep_id=False)[source]¶ Convert record to
dict
.- Parameters
keep_id (bool) – If keep the ID auto field.
- Returns
The data converted through
playhouse.shortcuts.model_to_dict()
.
-
Meta
¶ Basic metadata for data models.
-
id
= <AutoField: BaseModel.id>¶
-
-
class
darc.model.abc.
BaseModelWeb
(*args, **kwargs)[source]¶ Bases:
darc.model.abc.BaseModel
Base model with standard patterns for data submission.
Notes
The model will implicitly have a
AutoField
attribute 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.IPField
IP 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.IntegerField
enum.IntEnum
data 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.IntEnum
class.
-
-
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.JSONField
JSON 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.BlobField
Pickled data field.
-
class
darc.model.utils.
Proxy
(value)[source]¶ Bases:
enum.IntEnum
Proxy 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
Model
from 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