loutilities 3.9.0.dev3__tar.gz → 3.9.3.dev2__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. {loutilities-3.9.0.dev3/loutilities.egg-info → loutilities-3.9.3.dev2}/PKG-INFO +3 -4
  2. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/datatables.jinja2 +1 -0
  3. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables.py +5 -3
  4. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/model.py +1 -1
  5. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/version.py +1 -1
  6. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2/loutilities.egg-info}/PKG-INFO +3 -4
  7. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities.egg-info/SOURCES.txt +0 -1
  8. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities.egg-info/entry_points.txt +0 -1
  9. loutilities-3.9.0.dev3/pyproject.toml +0 -52
  10. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/.gitattributes +0 -0
  11. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/.gitignore +0 -0
  12. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/README.md +0 -0
  13. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/__init__.py +0 -0
  14. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/agegrade.py +0 -0
  15. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/apikey.py +0 -0
  16. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/applytemplate.py +0 -0
  17. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/bfile.py +0 -0
  18. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/boolexpr.py +0 -0
  19. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/config.py +0 -0
  20. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/configparser.py +0 -0
  21. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/csvu.py +0 -0
  22. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/csvwt.py +0 -0
  23. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/extconfigparser.py +0 -0
  24. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/filetrigger.py +0 -0
  25. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/filtercsv.py +0 -0
  26. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/filters.py +0 -0
  27. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask/__init__.py +0 -0
  28. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask/user/__init__.py +0 -0
  29. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask/user/views.py +0 -0
  30. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask_helpers/__init__.py +0 -0
  31. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask_helpers/as_blueprint.py +0 -0
  32. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask_helpers/blueprints.py +0 -0
  33. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask_helpers/decorators.py +0 -0
  34. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/flask_helpers/mailer.py +0 -0
  35. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/geo.py +0 -0
  36. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/googleauth.py +0 -0
  37. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/kmlutils.py +0 -0
  38. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/makerst.py +0 -0
  39. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/namesplitter.py +0 -0
  40. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/nesteddict.py +0 -0
  41. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/nicknames.csv +0 -0
  42. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/nicknames.py +0 -0
  43. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/renderrun.py +0 -0
  44. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/sqlalchemy_helpers.py +0 -0
  45. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/readme.md +0 -0
  46. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/background-post-data-manager.js +0 -0
  47. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/branding.css +0 -0
  48. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/buttons.colvis.js +0 -0
  49. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/charts.css +0 -0
  50. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/charts.js +0 -0
  51. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/datatables-childrow.js +0 -0
  52. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/datatables.css +0 -0
  53. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/datatables.dataRender.datetime.js +0 -0
  54. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/datatables.dataRender.ellipsis.js +0 -0
  55. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/datatables.dataRender.googledoc.js +0 -0
  56. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/datatables.js +0 -0
  57. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor-saeditor.js +0 -0
  58. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.buttons.editchildrowrefresh.js +0 -0
  59. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.buttons.editrefresh.js +0 -0
  60. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.buttons.separator.js +0 -0
  61. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.ckeditor5.js +0 -0
  62. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.css +0 -0
  63. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.displayController.onPage.js +0 -0
  64. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.fieldType.display.js +0 -0
  65. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.googledoc.js +0 -0
  66. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/editor.select2.mymethods.js +0 -0
  67. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/eventscalendar.css +0 -0
  68. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/filters.css +0 -0
  69. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/filters.js +0 -0
  70. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/jquery.ui.dialog-clickoutside.js +0 -0
  71. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/jqueryui.theme.adjust.css +0 -0
  72. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/legend.js +0 -0
  73. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/user/admin/beforedatatables.js +0 -0
  74. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/user/admin/groups.js +0 -0
  75. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/static/utils.js +0 -0
  76. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/bare-layout.jinja2 +0 -0
  77. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/datatables.html +0 -0
  78. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/layout-base.jinja2 +0 -0
  79. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/layout.html +0 -0
  80. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/layout.jinja2 +0 -0
  81. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/security/change_password.jinja2 +0 -0
  82. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/security/email/reset_instructions.html +0 -0
  83. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/security/email/reset_instructions.txt +0 -0
  84. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/security/forgot_password.jinja2 +0 -0
  85. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/security/login_user.jinja2 +0 -0
  86. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/security/reset_password.jinja2 +0 -0
  87. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/tables-assets/templates/select-view.jinja2 +0 -0
  88. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/textreader.py +0 -0
  89. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/timeu.py +0 -0
  90. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/transform.py +0 -0
  91. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/__init__.py +0 -0
  92. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/applogging.py +0 -0
  93. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/audit_mixin.py +0 -0
  94. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/roles.py +0 -0
  95. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/scripts/__init__.py +0 -0
  96. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/scripts/users_init.py +0 -0
  97. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/settings.py +0 -0
  98. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/tablefiles.py +0 -0
  99. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/tables.py +0 -0
  100. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/views/__init__.py +0 -0
  101. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/user/views/userrole.py +0 -0
  102. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/wxextensions.py +0 -0
  103. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities/xmldict.py +0 -0
  104. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities.egg-info/dependency_links.txt +0 -0
  105. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities.egg-info/not-zip-safe +0 -0
  106. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities.egg-info/requires.txt +0 -0
  107. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/loutilities.egg-info/top_level.txt +0 -0
  108. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/setup.cfg +0 -0
  109. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/setup.py +0 -0
  110. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/tests/__init__.py +0 -0
  111. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/tests/models.py +0 -0
  112. {loutilities-3.9.0.dev3 → loutilities-3.9.3.dev2}/tests/test_sqlalchemy_helpers.py +0 -0
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: loutilities
3
- Version: 3.9.0.dev3
3
+ Version: 3.9.3.dev2
4
4
  Summary: some hopefully useful utilities
5
5
  Home-page: http://github.com/louking/loutilities
6
6
  Author: Lou King
7
7
  Author-email: lking@pobox.com
8
8
  License: Apache License, Version 2.0
9
- Platform: UNKNOWN
9
+ Requires-Dist: flask-security-too>=5.0.0
10
+ Requires-Dist: flask-sqlalchemy>=3.0.5
10
11
 
11
12
  loutilities - Lou's utilities
12
13
  ===================================
@@ -48,5 +49,3 @@ License
48
49
 
49
50
  loutilities is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
50
51
 
51
-
52
-
@@ -85,6 +85,7 @@
85
85
  <tbody>
86
86
  </tbody>
87
87
  </table>
88
+ {{ posttablehtml|safe }}
88
89
  {% if chartloc == 'aftertable' %}
89
90
  <div class='dt-chart'></div>
90
91
  {% endif %}
@@ -889,6 +889,7 @@ class CrudApi(MethodView):
889
889
  idSrc = 'DT_RowId',
890
890
  buttons = ['create', 'edit', 'remove', 'csv'],
891
891
  pretablehtml = '',
892
+ posttablehtml = '',
892
893
  scriptfilter = lambda filelist: filelist,
893
894
  dtoptions = {},
894
895
  edoptions = {},
@@ -1021,6 +1022,7 @@ class CrudApi(MethodView):
1021
1022
  tablefiles = tablefiles,
1022
1023
  tablebuttons = buttons,
1023
1024
  pretablehtml = self.pretablehtml if not callable(self.pretablehtml) else self.pretablehtml(),
1025
+ posttablehtml = self.posttablehtml if not callable(self.posttablehtml) else self.posttablehtml(),
1024
1026
  options = {
1025
1027
  'dtopts': self.getdtoptions(),
1026
1028
  'editoropts': self.getedoptions(),
@@ -1259,7 +1261,7 @@ class CrudApi(MethodView):
1259
1261
  return template.render(**context)
1260
1262
 
1261
1263
  def get(self):
1262
- print('request.path = {}'.format(request.path))
1264
+ if debug: print('request.path = {}'.format(request.path))
1263
1265
  if request.path[-5:] != '/rest':
1264
1266
  return self._renderpage()
1265
1267
  else:
@@ -2404,7 +2406,7 @@ class DbCrudApi(CrudApi):
2404
2406
  columndt_args.update(**_columndt_args)
2405
2407
  self.servercolumns.append(ColumnDT(**columndt_args))
2406
2408
  if submodel not in self.joins:
2407
- # print('DbCrudApi: self {} joining {}'.format(args['model'], submodel))
2409
+ # if debug: print('DbCrudApi: self {} joining {}'.format(args['model'], submodel))
2408
2410
  thisjoin = submodel
2409
2411
  if type(thisreln.onclause) != type(None):
2410
2412
  thisjoin = {'model': submodel, 'onclause': thisreln.onclause}
@@ -2417,7 +2419,7 @@ class DbCrudApi(CrudApi):
2417
2419
  [(j['model'], j['onclause']) for j in self.joins if isinstance(j, dict)]):
2418
2420
  addjoin = False
2419
2421
  if addjoin:
2420
- # print('DbCrudApi: self {} joining {}'.format(args['model'], subsubmodel))
2422
+ # if debug: print('DbCrudApi: self {} joining {}'.format(args['model'], subsubmodel))
2421
2423
  self.joins.append(thisjoin)
2422
2424
 
2423
2425
  # db processing section
@@ -164,7 +164,7 @@ class User(Base, UserMixin):
164
164
  active = Column( Boolean() )
165
165
  fs_uniquifier = Column( String(UNIQUIFIER_LEN), nullable=False )
166
166
  confirmed_at = Column( DateTime() )
167
- roles = relationship('Role', secondary=RolesUsers,
167
+ roles = relationship('Role', secondary=RolesUsers.__table__,
168
168
  backref=backref('users', lazy='dynamic'))
169
169
 
170
170
  version_id = Column(Integer, nullable=False, default=1)
@@ -1,2 +1,2 @@
1
1
  # this string is used for the version string in the documentation, as well as the egg
2
- __version__ = '3.9.0.dev3'
2
+ __version__ = '3.9.3.dev2'
@@ -1,12 +1,13 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: loutilities
3
- Version: 3.9.0.dev3
3
+ Version: 3.9.3.dev2
4
4
  Summary: some hopefully useful utilities
5
5
  Home-page: http://github.com/louking/loutilities
6
6
  Author: Lou King
7
7
  Author-email: lking@pobox.com
8
8
  License: Apache License, Version 2.0
9
- Platform: UNKNOWN
9
+ Requires-Dist: flask-security-too>=5.0.0
10
+ Requires-Dist: flask-sqlalchemy>=3.0.5
10
11
 
11
12
  loutilities - Lou's utilities
12
13
  ===================================
@@ -48,5 +49,3 @@ License
48
49
 
49
50
  loutilities is licensed under the [Apache License, Version 2.0](http://www.apache.org/licenses/LICENSE-2.0)
50
51
 
51
-
52
-
@@ -1,7 +1,6 @@
1
1
  .gitattributes
2
2
  .gitignore
3
3
  README.md
4
- pyproject.toml
5
4
  setup.py
6
5
  loutilities/__init__.py
7
6
  loutilities/agegrade.py
@@ -4,4 +4,3 @@ apikey = loutilities.apikey:main
4
4
  applytemplate = loutilities.applytemplate:main
5
5
  filtercsv = loutilities.filtercsv:main
6
6
  makerst = loutilities.makerst:main
7
-
@@ -1,52 +0,0 @@
1
- [build-system]
2
- requires = ["hatchling"]
3
- build-backend = "hatchling.build"
4
-
5
- [project]
6
- name = "loutilities"
7
- dynamic = ["version"]
8
- description = "some hopefully useful utilities"
9
- readme = "README.md"
10
- license = {text = "Apache-2.0"}
11
- requires-python = ">=3.9"
12
- authors = [
13
- { name = "Lou King", email = "lking@pobox.com" },
14
- ]
15
- dependencies = [
16
- "flask-security-too>=5.0.0",
17
- "flask-sqlalchemy>=3.0.5",
18
- ]
19
-
20
- [project.scripts]
21
- agegrade = "loutilities.agegrade:main"
22
- apikey = "loutilities.apikey:main"
23
- applytemplate = "loutilities.applytemplate:main"
24
- filtercsv = "loutilities.filtercsv:main"
25
- makerst = "loutilities.makerst:main"
26
-
27
- [project.urls]
28
- Homepage = "http://github.com/louking/loutilities"
29
- "Bug Tracker" = "https://github.com/louking/loutilities/issues"
30
-
31
- [tool.hatch.build]
32
- sources = ['loutilities']
33
- include = [
34
- 'tables-assets/static/*',
35
- 'tables-assets/static/user/*',
36
- 'tables-assets/static/user/admin/*',
37
- 'tables-assets/templates/*',
38
- 'tables-assets/templates/security/*',
39
- 'tables-assets/templates/security/email/*',
40
- '*.csv',
41
- ]
42
-
43
- [tool.hatch.version]
44
- path = "loutilities/version.py"
45
-
46
- [tool.hatch.build.targets.sdist]
47
- include = [
48
- "loutilities",
49
- ]
50
-
51
- [tool.hatch.build.targets.wheel]
52
- packages = ['loutilities']