Compare commits

...

5 commits

Author SHA1 Message Date
067b30e1af docs: add badge for black code style 2025-08-31 13:31:50 -05:00
c0ff89fec3 fix: format all code with black
and from now on should not deviate from that...
2025-08-31 13:11:31 -05:00
0c4fa7ad06 fix: add generic entry points for WSGI and ASGI, e.g. for uvicorn 2024-12-18 15:15:50 -06:00
fbb3d0b6c8 add static libcache files for vue2 + buefy
Refs: wutta/wuttaweb#1
2024-12-10 17:04:31 -06:00
Lance Edgar
a82d729246 build: cleanup release task 2024-11-24 20:55:51 -06:00
16 changed files with 87 additions and 55 deletions

1
.gitignore vendored
View file

@ -1,2 +1,3 @@
*.pyc *.pyc
dist/
Wutta_Demo.egg-info/ Wutta_Demo.egg-info/

View file

@ -2,3 +2,5 @@
# Wutta Demo # Wutta Demo
This is a starter Python project. This is a starter Python project.
[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/psf/black)

View file

@ -31,11 +31,12 @@ dependencies = [
[project.scripts] [project.scripts]
wuttademo = "wuttademo.commands:wuttademo_typer" wuttademo = "wuttademo.commands:wuttademo_typer"
[project.entry-points."fanstatic.libraries"]
wuttademo_libcache = "wuttademo.web.static:libcache"
[project.entry-points."wutta.config.extensions"] [project.entry-points."wutta.config.extensions"]
"wuttademo" = "wuttademo.config:WuttaDemoConfig" "wuttademo" = "wuttademo.config:WuttaDemoConfig"
[project.entry-points."paste.app_factory"] [project.entry-points."paste.app_factory"]
"main" = "wuttademo.web.app:main" "main" = "wuttademo.web.app:main"

View file

@ -3,4 +3,4 @@
from importlib.metadata import version from importlib.metadata import version
__version__ = version('Wutta-Demo') __version__ = version("Wutta-Demo")

View file

@ -8,23 +8,22 @@ import typer
from wuttjamaican.cli import make_typer from wuttjamaican.cli import make_typer
wuttademo_typer = make_typer( wuttademo_typer = make_typer(name="wuttademo", help="Wutta Demo -- ")
name='wuttademo',
help="Wutta Demo -- "
)
@wuttademo_typer.command() @wuttademo_typer.command()
def install( def install(
ctx: typer.Context, ctx: typer.Context,
): ):
""" """
Install the Wutta Demo app Install the Wutta Demo app
""" """
config = ctx.parent.wutta_config config = ctx.parent.wutta_config
app = config.get_app() app = config.get_app()
install = app.get_install_handler(pkg_name='wuttademo', install = app.get_install_handler(
app_title="Wutta Demo", pkg_name="wuttademo",
pypi_name='Wutta-Demo', app_title="Wutta Demo",
egg_name='Wutta_Demo') pypi_name="Wutta-Demo",
egg_name="Wutta_Demo",
)
install.run() install.run()

View file

@ -10,20 +10,23 @@ class WuttaDemoConfig(WuttaConfigExtension):
""" """
Config extension for Wutta Demo Config extension for Wutta Demo
""" """
key = 'wuttademo'
key = "wuttademo"
def configure(self, config): def configure(self, config):
# app info # app info
config.setdefault(f'{config.appname}.app_title', "Wutta Demo") config.setdefault(f"{config.appname}.app_title", "Wutta Demo")
config.setdefault(f'{config.appname}.app_dist', "Wutta-Demo") config.setdefault(f"{config.appname}.app_dist", "Wutta-Demo")
# app model # app model
config.setdefault(f'{config.appname}.model_spec', 'wuttademo.db.model') config.setdefault(f"{config.appname}.model_spec", "wuttademo.db.model")
# web app menu # web app menu
config.setdefault(f'{config.appname}.web.menus.handler_spec', config.setdefault(
'wuttademo.web.menus:WuttaDemoMenuHandler') f"{config.appname}.web.menus.handler_spec",
"wuttademo.web.menus:WuttaDemoMenuHandler",
)
# web app libcache # web app libcache
#config.setdefault('tailbone.static_libcache.module', 'wuttademo.web.static') config.setdefault("wuttaweb.static_libcache.module", "wuttademo.web.static")

View file

@ -8,21 +8,38 @@ from wuttaweb import app as base
def main(global_config, **settings): def main(global_config, **settings):
""" """
This function returns a Pyramid WSGI application. Make and return the WSGI application, per given settings.
""" """
# prefer Wutta Demo templates over wuttaweb # prefer Wutta Demo templates over wuttaweb
settings.setdefault('mako.directories', [ settings.setdefault(
'wuttademo.web:templates', "mako.directories",
'wuttaweb:templates', [
]) "wuttademo.web:templates",
"wuttaweb:templates",
],
)
# make config objects # make config objects
wutta_config = base.make_wutta_config(settings) wutta_config = base.make_wutta_config(settings)
pyramid_config = base.make_pyramid_config(settings) pyramid_config = base.make_pyramid_config(settings)
# bring in the rest of Wutta Demo # bring in the rest of Wutta Demo
pyramid_config.include('wuttademo.web.static') pyramid_config.include("wuttaweb.static")
pyramid_config.include('wuttademo.web.subscribers') pyramid_config.include("wuttademo.web.subscribers")
pyramid_config.include('wuttademo.web.views') pyramid_config.include("wuttademo.web.views")
return pyramid_config.make_wsgi_app() return pyramid_config.make_wsgi_app()
def make_wsgi_app():
"""
Make and return the WSGI app.
"""
return base.make_wsgi_app(main)
def make_asgi_app():
"""
Make and return the ASGI app.
"""
return base.make_asgi_app(main)

View file

@ -3,11 +3,16 @@
Static assets Static assets
""" """
# from fanstatic import Library, Resource from fanstatic import Library, Resource
# # libcache # fanstatic libcache
# libcache = Library('wuttademo_libcache', 'libcache') libcache = Library("wuttademo_libcache", "libcache")
vue_js = Resource(libcache, "vue-2.6.14.min.js")
vue_resource_js = Resource(libcache, "vue-resource-1.5.3.min.js")
buefy_js = Resource(libcache, "buefy-0.9.25.min.js")
buefy_css = Resource(libcache, "buefy-0.9.25.min.css")
fontawesome_js = Resource(libcache, "fontawesome-5.3.1-all.min.js")
# bb_vue_js = Resource(libcache, 'vue.esm-browser-3.3.11.prod.js') # bb_vue_js = Resource(libcache, 'vue.esm-browser-3.3.11.prod.js')
# bb_oruga_js = Resource(libcache, 'oruga-0.8.10.js') # bb_oruga_js = Resource(libcache, 'oruga-0.8.10.js')
# bb_oruga_bulma_js = Resource(libcache, 'oruga-bulma-0.3.0.js') # bb_oruga_bulma_js = Resource(libcache, 'oruga-bulma-0.3.0.js')
@ -15,8 +20,3 @@ Static assets
# bb_fontawesome_svg_core_js = Resource(libcache, 'fontawesome-svg-core-6.5.2.js') # bb_fontawesome_svg_core_js = Resource(libcache, 'fontawesome-svg-core-6.5.2.js')
# bb_free_solid_svg_icons_js = Resource(libcache, 'free-solid-svg-icons-6.5.2.js') # bb_free_solid_svg_icons_js = Resource(libcache, 'free-solid-svg-icons-6.5.2.js')
# bb_vue_fontawesome_js = Resource(libcache, 'vue-fontawesome-3.0.6.index.es.js') # bb_vue_fontawesome_js = Resource(libcache, 'vue-fontawesome-3.0.6.index.es.js')
def includeme(config):
config.include('wuttaweb.static')
config.add_static_view('wuttademo', 'wuttademo.web:static', cache_max_age=3600)

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View file

@ -8,9 +8,9 @@ import wuttademo
def add_wuttademo_to_context(event): def add_wuttademo_to_context(event):
renderer_globals = event renderer_globals = event
renderer_globals['wuttademo'] = wuttademo renderer_globals["wuttademo"] = wuttademo
def includeme(config): def includeme(config):
config.include('wuttaweb.subscribers') config.include("wuttaweb.subscribers")
config.add_subscriber(add_wuttademo_to_context, 'pyramid.events.BeforeRender') config.add_subscriber(add_wuttademo_to_context, "pyramid.events.BeforeRender")

View file

@ -7,7 +7,7 @@ Wutta Demo Views
def includeme(config): def includeme(config):
# core views for wuttaweb # core views for wuttaweb
config.include('wuttaweb.views.essential') config.include("wuttaweb.views.essential")
# TODO: include your own views here # TODO: include your own views here
#config.include('wuttademo.web.views.widgets') # config.include('wuttademo.web.views.widgets')

View file

@ -9,25 +9,13 @@ import shutil
from invoke import task from invoke import task
here = os.path.abspath(os.path.dirname(__file__))
exec(open(os.path.join(here, 'wuttademo', '_version.py')).read())
@task @task
def release(c): def release(c):
""" """
Release a new version of Wutta Demo Release a new version of Wutta Demo
""" """
# rebuild local tar.gz file for distribution if os.path.exists("dist"):
if os.path.exists('Wutta_Demo.egg-info'): shutil.rmtree("dist")
shutil.rmtree('Wutta_Demo.egg-info')
c.run('python -m build --sdist')
# filename of built package c.run("python -m build --sdist")
filename = 'Wutta-Demo-{}.tar.gz'.format(__version__) c.run("twine upload dist/*")
# TODO: uncomment and update these details, to upload to private PyPI
#c.run('scp dist/{} rattail@pypi.example.com:/srv/pypi/wuttademo/'.format(filename))
# TODO: or, uncomment this to upload to *public* PyPI
#c.run('twine upload dist/{}'.format(filename))