Database manager command line interface and API for yhttp.
Project description
yhttp-dbmanager
A yhttp extension to create and remove database(s) using command line and
API.
Quickstart
Dependencies
Install postgresql brefore use of this project.
apt install postgresql
Prepare
Create 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 psql
Usage
Import 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(...)
# 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 --help
Contribution
Dependencies
Install postgresql brefore use of this project.
apt install postgresql
Prepare
Create 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 psql
Virtualenv
Create virtual environment:
make venv
Delete virtual environment:
make venv-delete
Activate the virtual environment:
source ./activate.sh
Install (editable mode)
Install this project as editable mode and all other development dependencies:
make env
Tests
Execute all tests:
make test
Execute specific test(s) using wildcard:
make test F=tests/test_db*
make test F=tests/test_form.py::test_querystringform
refer 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-html
Lint
make lint
Distribution
Execute these commands to create Python's standard distribution packages
at dist directory:
make sdist
make wheel
Or
make dist
to create both sdidst and wheel packages.
Clean build directory
Execute:
make clean
to clean-up previous dist/* and build/* directories.
PyPI
WARNING: Do not do this if you'r not responsible as author and or maintainer of this project.
Execute
make clean
make pypi
to upload sdists and wheel packages on PyPI.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file yhttp_dbmanager-6.0.1.tar.gz.
File metadata
- Download URL: yhttp_dbmanager-6.0.1.tar.gz
- Upload date:
- Size: 8.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4dedc92002471e14f8cd4ad01f4f144e4322e216f6aa57fa4ee67f841dd71373
|
|
| MD5 |
1020fac3ffe760684554259bae00be18
|
|
| BLAKE2b-256 |
9ede11c526b35de42f6f6908d2b87a37a4a38ade9e64f04977bd007ad0459a46
|
File details
Details for the file yhttp_dbmanager-6.0.1-py3-none-any.whl.
File metadata
- Download URL: yhttp_dbmanager-6.0.1-py3-none-any.whl
- Upload date:
- Size: 6.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ddd0ffc02cac9029009cee2a2e865ec4711d9c9166b9d1f313afad8e5c91446d
|
|
| MD5 |
a577400d6895baca5149ef1ad67256fa
|
|
| BLAKE2b-256 |
256426435131cb7ca959150672d0c74fa8fb1be49e40e3bba8ae3bcf1a9e5867
|