From 6124a7dfd4f73cd5620695ab159db21312a92a43 Mon Sep 17 00:00:00 2001 From: "Karl O. Pinc" Date: Fri, 22 Jan 2021 13:28:04 -0600 Subject: [PATCH] Modernize initial form value classes with attrs module --- src/pgwui_core/core.py | 36 ++++++++++++++++++------------------ tests/test_core.py | 2 +- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/pgwui_core/core.py b/src/pgwui_core/core.py index d8d487c..bf8f9fc 100644 --- a/src/pgwui_core/core.py +++ b/src/pgwui_core/core.py @@ -75,34 +75,34 @@ from pgwui_core.constants import ( # Setup default values for forms. +@attr.s class UserInitialPost(): - def __init__(self, settings={}): - super().__init__() + db = attr.ib(default='') + user = attr.ib(default='') + password = attr.ib(default='') + + def build(self, settings={}): self.db = settings['pgwui'].get('default_db', '') - self.user = '' - self.password = '' + return self +@attr.s class UploadFileInitialPost(UserInitialPost): - def __init__(self, settings={}): - super().__init__(settings) - self.upload_fmt = CSV - self.trim_upload = True - self.literal_col_headings = False - self.datafile = '' + upload_fmt = attr.ib(default=CSV) + trim_upload = attr.ib(default=True) + literal_col_headings = attr.ib(default=False) + datafile = attr.ib(default='') +@attr.s class UploadNullFileInitialPost(UploadFileInitialPost): - def __init__(self, settings={}): - super().__init__(settings) - self.upload_null = True - self.null_rep = '' + upload_null = attr.ib(default=True) + null_rep = attr.ib(default='') +@attr.s class UploadTableInitialPost(UploadNullFileInitialPost): - def __init__(self, settings={}): - super().__init__(settings) - self.table = '' + table = attr.ib(default='') # The wtforms that suck data out of the html. @@ -187,7 +187,7 @@ class LoadedForm(collections.abc.MutableMapping): store.update(kwargs) self._store = store self._fc = fc - self.ivals = fc.ivals(self.uh.request.registry.settings) + self.ivals = fc.ivals().build(self.uh.request.registry.settings) def __iter__(self): for item in self._store: diff --git a/tests/test_core.py b/tests/test_core.py index e8d4a91..1665b68 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -27,7 +27,7 @@ from pgwui_core import core def test_userinitialpost_init(): default_db = 'defaultdb' settings = {'pgwui': {'default_db': default_db}} - uip = core.UserInitialPost(settings) + uip = core.UserInitialPost().build(settings) assert uip.db == default_db assert uip.user == '' assert uip.password == '' -- 2.34.1