Skip to content

Commit a5642ea

Browse files
author
khz
committed
views use subdirs now
1 parent 0fcc31a commit a5642ea

File tree

10 files changed

+83
-27
lines changed

10 files changed

+83
-27
lines changed

pythononwheels/start/config.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import {{appname}}.encoders
77
import os
88
import logging
9+
import datetime
910

1011
server_settings = {
1112
"base_url" : "http://localhost",
@@ -54,6 +55,17 @@
5455

5556
db_base_path = r"{{db_base_path}}"
5657
database = {
58+
"default_values": {
59+
"string" : "",
60+
"integer" : 0,
61+
"float" : 0.0,
62+
"list" : [],
63+
"boolean" : False,
64+
"datetime" : datetime.datetime.utcnow(),
65+
"dict" : {},
66+
"binary" : None
67+
68+
},
5769
"sql" : {
5870
"type" : "sqlite",
5971
"dbname" : r"{{sqlite_path}}", # better leave the r to enable absolute paths with backslashes

pythononwheels/start/generate_scaffold.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,11 @@ def generate_scaffold(handler_name, appname=None, view_type=None):
4242
#
4343
# copy to dest dir first
4444
#
45-
ofile_name = os.path.join(cfg.templates["views_path"], handler_class_name + "_" + view + ".tmpl")
45+
opath = os.path.join(cfg.templates["views_path"], str.lower(handler_class_name))
46+
if not os.path.exists(opath):
47+
os.makedirs(opath)
48+
49+
ofile_name = os.path.join( opath, handler_class_name + "_" + view + ".tmpl")
4650
shutil.copy( template_file, ofile_name )
4751
#
4852
# then process the template

pythononwheels/start/handlers/base.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
import tornado.escape
33
import json
44
from {{appname}} import config as cfg
5+
import os
56
#from {{appname}}.models.sql.user import User
67

78

@@ -301,6 +302,9 @@ def success(self, message=None, data=None, succ=None, prev=None,
301302
# for elem in data:
302303
# print("elem: " + str(type(elem)))
303304
viewname = self.__class__.__name__ + "_" + self.view + ".tmpl"
305+
vpath = os.path.join(cfg.templates["template_path"], str.lower(self.__class__.__name__ ))
306+
viewname = os.path.join(vpath, viewname)
307+
print(" ... looking for view: " + viewname)
304308
if self.view is not None:
305309
model=self.__class__.model
306310
show_list=getattr(self.__class__, "show_list", [])

pythononwheels/start/models/modelobject.py

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from {{appname}}.powlib import merge_two_dicts
99
from {{appname}}.encoders import pow_json_serializer
1010
from {{appname}}.decoders import pow_json_deserializer
11+
import {{appname}}.config as cfg
1112

1213
class ModelObject():
1314
"""
@@ -42,6 +43,22 @@ def setup_instance_schema(self):
4243
basic_schema)
4344
print(" .. Schema is now: " + str(self.schema))
4445

46+
def setup_instance_values(self):
47+
""" fills the instance with defined default values"""
48+
for key in self.schema.keys():
49+
if self.schema[key].get("default", None) != None:
50+
setattr(self,key,self.schema[key].get("default"))
51+
self.schema[key].pop("default", None)
52+
else:
53+
#print("no default for: " + str(self.schema[key]))
54+
#print("trying: " + str(cfg.database["default_values"][self.schema[key]["type"]]))
55+
try:
56+
#print("trying: " + config.database["default_values"][self.schema[key]["type"]])
57+
setattr(self,key,cfg.database["default_values"][self.schema[key]["type"]])
58+
except Exception as e:
59+
print(e.message)
60+
setattr(self, key, None)
61+
4562
def setup_from_format(self, *args, **kwargs):
4663
"""
4764
setup values from kwargs or from init_from_<format> if format="someformat"
@@ -103,9 +120,9 @@ def validate(self):
103120
#v = cerberus.Validator(self.schema)
104121
v = Validator(self.schema)
105122
if v.validate(self.to_dict(lazy=False)):
106-
return True
123+
return (True, None)
107124
else:
108-
return v
125+
return (False,v)
109126

110127
def init_from_dict(self, d, ignore=True, simple_conversion=False):
111128
"""

pythononwheels/start/models/mongodb/basemodel.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ def init_on_load(self, *args, **kwargs):
4343
#print(" .. Schema is now: " + str(self.schema))
4444

4545
# setup the instance attributes from schema
46-
for key in self.schema.keys():
47-
if self.schema[key].get("default", None) != None:
48-
setattr(self,key,self.schema[key].get("default"))
49-
self.schema[key].pop("default", None)
50-
else:
51-
#print("no default for: " + str(self.schema[key]))
52-
setattr(self, key, None)
53-
46+
#for key in self.schema.keys():
47+
# if self.schema[key].get("default", None) != None:
48+
# setattr(self,key,self.schema[key].get("default"))
49+
# self.schema[key].pop("default", None)
50+
# else:
51+
# #print("no default for: " + str(self.schema[key]))
52+
# setattr(self, key, None)
53+
self.setup_instance_values()
5454
#
5555
# setup values from kwargs or from init_from_<format> if format="someformat"
5656
# example: m = Model( data = { 'test' : 1 }, format="json")

pythononwheels/start/models/sql/basemodel.py

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ def init_on_load(self, *args, **kwargs):
6464
if myapp["sql_auto_schema"]:
6565
self._setup_schema_from_sql()
6666

67-
67+
#self.setup_instance_values()
6868
#
6969
# setup values from kwargs or from init_from_<format> if format="someformat"
7070
# example: m = Model( data = { 'test' : 1 }, format="json")
@@ -91,6 +91,23 @@ def __tablename__(cls):
9191
""" returns the tablename for this model """
9292
return pluralize(cls.__name__.lower())
9393

94+
def setup_instance_values(self):
95+
""" fills the instance with defined default values"""
96+
for key in self.schema.keys():
97+
if self.schema[key].get("default", None) != None:
98+
setattr(self,key,self.schema[key].get("default"))
99+
self.schema[key].pop("default", None)
100+
else:
101+
#print("no default for: " + str(self.schema[key]))
102+
#print("trying: " + str(cfg.database["default_values"][self.schema[key]["type"]]))
103+
try:
104+
#print("trying: " + config.database["default_values"][self.schema[key]["type"]])
105+
if key not in ["created_at", "last_updated", "id"]:
106+
setattr(self,key,cfg.database["default_values"][self.schema[key]["type"]])
107+
except Exception as e:
108+
print(e.message)
109+
setattr(self, key, None)
110+
94111
def _setup_schema_from_sql(self):
95112
"""
96113
Constructs a cerberus definition schema

pythononwheels/start/models/tinydb/basemodel.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -50,14 +50,14 @@ def init_on_load(self, *args, **kwargs):
5050
#print(" .. Schema is now: " + str(self.schema))
5151

5252
# setup the instance attributes from schema
53-
for key in self.schema.keys():
54-
if self.schema[key].get("default", None) != None:
55-
setattr(self,key,self.schema[key].get("default"))
56-
self.schema[key].pop("default", None)
57-
else:
58-
#print("no default for: " + str(self.schema[key]))
59-
setattr(self, key, None)
60-
53+
#for key in self.schema.keys():
54+
# if self.schema[key].get("default", None) != None:
55+
# setattr(self,key,self.schema[key].get("default"))
56+
# self.schema[key].pop("default", None)
57+
# else:
58+
# #print("no default for: " + str(self.schema[key]))
59+
# setattr(self, key, None)
60+
self.setup_instance_values()
6161
#
6262
# setup values from kwargs or from init_from_<format> if format="someformat"
6363
# example: m = Model( data = { 'test' : 1 }, format="json")

pythononwheels/start/server.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,11 @@ def main(stdout=False):
4848
#app = tornado.web.Application(handlers=routes, **app_settings)
4949
if stdout:
5050
for idx, elem in enumerate(db_settings.keys()):
51-
if elem.lower() == "sql":
52-
print(" DB #" +str(idx) + ": " + db_settings[elem]["type"] + " enabled: " + str(db_settings[elem]["enabled"]) )
53-
else:
54-
print(" DB #" +str(idx) + ": " + elem + " enabled: " + str(db_settings[elem]["enabled"]))
51+
if elem != "default_values":
52+
if elem.lower() == "sql":
53+
print(" DB #" +str(idx) + ": " + db_settings[elem]["type"] + " enabled: " + str(db_settings[elem]["enabled"]) )
54+
else:
55+
print(" DB #" +str(idx) + ": " + elem + " enabled: " + str(db_settings[elem]["enabled"]))
5556
#app.listen(app_settings["port"], **server_settings)#
5657
#app=Application()
5758
#print(app)

pythononwheels/start/stubs/sql_model_template.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class {{model_class_name}}(Base):
4949

5050
# init
5151
def __init__(self, **kwargs):
52+
self.setup_instance_values()
5253
self.init_on_load(**kwargs)
5354
#
5455
# your model's methods down here

setup.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88

99

1010
setup(name='pythononwheels',
11-
version='0.7.0b',
11+
version='0.7.2b',
1212
description='The simple, quick and easy generative web framework for python',
1313
long_description=long_description,
1414
classifiers=[
@@ -49,11 +49,11 @@
4949
"start/views/*",
5050
]},
5151
install_requires=[
52-
#"tornado>4"
52+
"tornado"
5353
],
5454
entry_points={
5555
'console_scripts': [
56-
'pow_generate_app = pythononwheels.generate_app:main',
56+
'generate_app = pythononwheels.generate_app:main',
5757
]
5858
},
5959
#scripts=['bin/generate_app'],

0 commit comments

Comments
 (0)