Added more docstrings to forms and fields

This commit is contained in:
Antonio de la Rosa 2022-05-06 19:40:16 +02:00
parent 26dd863af8
commit d04a7121df
20 changed files with 79 additions and 9 deletions

View file

@ -6,15 +6,16 @@ from bs4 import BeautifulSoup
class IntegerField(PhangoField):
"""Class that figure an integer sql type field.
Args:
name (str): The name of new field
size (int): The size of the new field in database. By default 11.
required (bool): Boolean for define if field is required or not
"""
def __init__(self, name, size=11, required=False):
"""
Args:
name (str): The name of field
size (int): The size of the new field in database. By default 11.
required (bool): Boolean for define if field is required or not
"""
super(IntegerField, self).__init__(name, size, required)
self.default_value=0

View file

@ -2,8 +2,15 @@ from paramecio2.libraries.db.webmodel import PhangoField,WebModel
import json
class ArrayField(PhangoField):
"""Field for save json arrays with determined values"""
def __init__(self, name, field_type, required=False):
"""
Args:
name (str): The name of new field
field_type (PhangoField): The type of PhangoField for save in ArrayField
required (bool): Boolean for define if field is required or not
"""
super().__init__(name, required)

View file

@ -2,6 +2,7 @@ from paramecio2.libraries.db.corefields import IntegerField
from paramecio2.libraries.db.extraforms.colorform import ColorForm
class ColorField(IntegerField):
"""Simple field for save colors in hexadecimal format."""
def __init__(self, name, size=11, required=False):
super().__init__(name, size, required)

View file

@ -3,6 +3,7 @@ from paramecio2.libraries import datetime
from paramecio2.libraries.db.extraforms.dateform import DateForm
class DateField(PhangoField):
"""Field for use and save dates in YYYYMMDDHHSS format"""
def __init__(self, name, size=255, required=False):

View file

@ -3,6 +3,7 @@ from paramecio2.libraries import datetime
from paramecio2.libraries.db.extraforms.dateform import DateForm
class DateTimeField(PhangoField):
"""Field for use and save dates in MySQL date format"""
def __init__(self, name, size=255, required=False):

View file

@ -2,8 +2,15 @@ from paramecio2.libraries.db.webmodel import WebModel, PhangoField
import json
class DictField(PhangoField):
"""Field for save json dicts with determined values"""
def __init__(self, name, field_type, required=False):
"""
Args:
name (str): The name of field
field_type (PhangoField): The type of PhangoField for save in ArrayField
required (bool): Boolean for define if field is required or not
"""
super().__init__(name, required)

View file

@ -4,6 +4,7 @@ import re
mail_pattern=re.compile("\w[\w\.-]*@\w[\w\.-]+\.\w+")
class EmailField(CharField):
"""Field for save and check email addreses"""
def __init__(self, name, size=1024, required=False):

View file

@ -17,8 +17,17 @@ from uuid import uuid4
#from paramecio2.libraries.db.extraforms.fileform import FileForm
class FileField(CharField):
"""Field for upload and save files in server"""
def __init__(self, name, save_folder='media/upload/files', sizes=None, module=None, size=255, required=False):
def __init__(self, name, save_folder='media/upload/files', sizes=None, size=255, required=False):
"""
Args:
name (str): The name of field
save_folder (str): The folder where the files are saved
sizes (list): In the future will be used for check sizes of files.
size (int): The size of the new field in database. By default 11.
required (bool): Boolean for define if field is required or not
"""
super().__init__(name, size, required)

View file

@ -10,8 +10,14 @@ import json
import re
class I18nField(PhangoField):
"""Field for save strings multilanguage in json format"""
def __init__(self, name, form=None):
"""
Args
name (str): The name of field
form (BaseForm): The form used for generate the multiple languade form. Example if you use a TextForm, a TextForm for every language will be showed.
"""
super().__init__(name)

View file

@ -18,8 +18,17 @@ from uuid import uuid4
#from paramecio2.libraries.db.extraforms.fileform import FileForm
class ImageField(CharField):
"""Field for upload images in gif, jpg and png formats"""
def __init__(self, name, save_folder='media/upload/images', sizes=None, module=None, size=255, required=False):
"""
Args:
name (str): The name of field
save_folder (str): The folder where the images are saved
sizes (list): In the future will be used for check sizes of files.
size (int): The size of the new field in database. By default 11.
required (bool): Boolean for define if field is required or not
"""
super().__init__(name, size, required)

View file

@ -2,6 +2,7 @@ from paramecio2.libraries.db.corefields import CharField
import ipaddress
class IpField(CharField):
"""Field for save ip internet address values in db"""
def check(self, value):

View file

@ -7,8 +7,15 @@ except:
import json
class JsonField(PhangoField):
"""Field for save json datatype values"""
def __init__(self, name, field_type, required=False):
"""
Args:
name (str): The name of field
field_type (PhangoField): The type of PhangoField for save in JsonField
required (bool): Boolean for define if field is required or not
"""
super().__init__(name, required)
@ -58,6 +65,7 @@ class JsonField(PhangoField):
# You need check the values previously.
class JsonValueField(PhangoField):
"""Field for save json mixed values. You need check the values previously, the field only check values for prevent sql injections."""
def __init__(self, name, required=False):

View file

@ -5,6 +5,7 @@ from paramecio2.libraries.db import coreforms
from paramecio2.libraries.i18n import I18n
class LangField(CharField):
"""Field for save language codes, by default es-ES (spanish) and en-US (USA english)"""
def __init__(self, name, size=255, required=False):

View file

@ -5,6 +5,7 @@ from locale import format_string
getcontext().prec=2
class MoneyField(DecimalField):
"""Field for maintain money values for e-commerce shopping for example."""
def __init__(self, name, required=False):

View file

@ -7,8 +7,16 @@ from paramecio2.libraries.db.coreforms import SelectModelForm
from flask import request
class ParentField(IntegerField):
"""Field used for create fields used by save a parent id from a row in db."""
def __init__(self, name, size=11, required=False, field_name='name'):
"""
Args:
name (str): The name of field
size (int): The size of the new field in database. By default 11.
required (bool): Boolean for define if field is required or not
field_name (str): The name of the field used for identify the father row of the db.
"""
super().__init__(name, size, required)

View file

@ -4,6 +4,7 @@ from hmac import compare_digest as compare_hash
import crypt
class PasswordField(PhangoField):
"""Field for check and save passwords"""
def __init__(self, name, size=1024, required=False):
@ -57,6 +58,7 @@ class PasswordField(PhangoField):
@staticmethod
def verify( password, h):
"""Static method used for verify a password save using PasswordField"""
#return bcrypt_sha256.verify(password, h)
return compare_hash(h, crypt.crypt(password, h))

View file

@ -1,6 +1,7 @@
from paramecio2.libraries.db.corefields import IntegerField
class PercentField(IntegerField):
"""Field used for save percent values from 0 to 100."""
def __init__(self, name, required=False):

View file

@ -5,6 +5,7 @@ from slugify import slugify
from paramecio2.libraries.db.coreforms import HiddenForm
class SlugifyField(CharField):
"""Field for process text and slugify it"""
def __init__(self, name, size=255, field_related=None, required=False):

View file

@ -11,6 +11,7 @@ check_url = re.compile(
r'(?:/?|[/?]\S+)$', re.IGNORECASE)
class UrlField(CharField):
"""Field for check and save strings in url format"""
def check(self, value):
@ -28,6 +29,7 @@ class UrlField(CharField):
check_domain=re.compile('^(([a-zA-Z]{1})|([a-zA-Z]{1}[a-zA-Z]{1})|([a-zA-Z]{1}[0-9]{1})|([0-9]{1}[a-zA-Z]{1})|([a-zA-Z0-9][a-zA-Z0-9-_]{1,61}[a-zA-Z0-9]))\.([a-zA-Z]{2,6}|[a-zA-Z0-9-]{2,30}\.[a-zA-Z]{2,3})$')
class DomainField(CharField):
"""Field for check and save strings in domain internet format"""
def check(self, value):

View file

@ -5,7 +5,9 @@ import crypt
import re
class UserNameField(PhangoField):
"""Field for save and check usernames"""
def check(self, value):
if not re.match("^[A-Za-z0-9_-]+$", value):