A yhttp extension to create and remove database(s) using command line and
API.
Install postgresql brefore use of this project.
apt install postgresqlCreate and grant the postgresql role with createdb permission to
authenticate the current unix user within postgresql using the peer
authentication.
echo "CREATE USER ${USER} WITH CREATEDB" | sudo -u postgres psql
# Or
echo "ALTER USER ${USER} CREATEDB" | sudo -u postgres psqlImport and install the extension inside the roolup.py:
# foo/version.py
__version__ = '0.1.'# foo/rollup.py
from yhttp.core import Application
from yhttp.ext import dbmanager
from .version import __version__
app = Application(__version__, 'foo')
# builtin settings
app.settings.merge('''
db:
url: postgres://:@/ticketing
```)
# install extensions
dbmanager.install(app)
# http handlers
from . import handlers# foo/__init__.py
from .version import __version__
from .rollup import app# setup.py
import re
from os.path import join, dirname
from setuptools import setup, find_packages
# reading package version (same way the sqlalchemy does)
with open(join(dirname(__file__), 'foo/version.py')) as v_file:
package_version = re.compile('.*__version__ = \'(.*?)\'', re.S).\
match(v_file.read()).group(1)
dependencies = [
'yhttp >= 7.0.1, < 8'
'yhttp-dbmanager >= 5.0.1, < 6'
]
setup(
name='foo',
version=package_version,
install_requires=dependencies,
packages=find_packages(
where='.',
exclude=['tests']
),
entry_points={
'console_scripts': [
'foo = foo:app.climain'
]
},
)After installing the extension these command line interfaces will be available as as subcommand of your application command line interface:
foo db --helpInstall postgresql brefore use of this project.
apt install postgresqlCreate and grant the postgresql role with createdb permission to
authenticate the current unix user within postgresql using the peer
authentication.
echo "CREATE USER ${USER} WITH CREATEDB" | sudo -u postgres psql
# Or
echo "ALTER USER ${USER} CREATEDB" | sudo -u postgres psqlCreate virtual environment:
make venvDelete virtual environment:
make venv-deleteActivate the virtual environment:
source ./activate.shInstall this project as editable mode and all other development dependencies:
make envExecute all tests:
make testExecute specific test(s) using wildcard:
make test F=tests/test_db*
make test F=tests/test_form.py::test_querystringformrefer to pytest documentation for more info about invoking tests.
Execute tests and report coverage result:
make cover
make cover F=tests/test_static.py
make cover-htmlmake lintExecute these commands to create Python's standard distribution packages
at dist directory:
make sdist
make wheelOr
make distto create both sdidst and wheel packages.
Execute:
make cleanto clean-up previous dist/* and build/* directories.
WARNING: Do not do this if you'r not responsible as author and or maintainer of this project.
Execute
make clean
make pypito upload sdists and wheel packages on PyPI.