Smart Meter Data Collector Configurator
Project description
Smart Meter Data Collector Configurator Backend
Introduction
The backend is written with Python3 and bases on the following frameworks and libraries:
- Uvicorn: ASGI server implementation, using uvloop and httptools.
- Starlette: ASGI framework/toolkit
- Pydantic: Data validation and settings management using Python type hinting.
For managing dependency packages and virtualenv pipenv is used.
Development
Requirements
- Python >= 3.8
pipenv
- Optional software packages (Debian / Ubuntu)
- python3-all
- debhelper
- dh-python
Project Setup
With
pipenv install --dev
a new virtualenv
is set up and the listed (inclusive dev) dependencies in the Pipfile are installed.
pipenv shell
activates the created virtualenv
and opens a shell inside.
You can also run a command directly with:
pipenv run <command>
Running during development
Inside the virtualenv
run:
python -m smartmeter_datacollector_configurator [-c <config_path>] [-s <static_path>] [-d]
Now, the backend is running on port 8000
listening to 127.0.0.1
. With the option -d
hot-reloading and debug logs are enabled.
For development purposes it is possible to create an empty static
folder inside the backend
directory and start the application without the -s
option. At the same time you start the frontend (npm run serve
) in a separate shell. The API calls of the frontend, during development, are directed to a local backend to port 8000.
Command line arguments
The following command line arguments are supported:
-h, --help
: Shows the help output ofsmartmeter-datacollector-configurator
.-c, --config PATH
: Directory path where the configuration files are read and deployed (default: Current directory./
).-s,--static PATH
: Directory path where the static frontend files are located. If left empty the app check if a static directory exists in the package location and falls back to the current directory./static
.--host
: Listening host IP (default:127.0.0.1
).--port
: Listening port number (default:8000
).-d, --dev
: Enable development mode which provides debug logging and hot reloading.
Custom commands & workflows
smartmeter-datacollector-configurator
offers a few custom pipenv run
commands to simplify certain development workflows:
build_check
usestwine
to check if the built Python package will be accepted byPiPI
.build_deb
builds a Debian package for the current development plattform.build_srcdeb
builds a Debian source package which can be used to build a Debian (binary) package for any platform (e.g. usingpbuilder
)build
builds a Python package which can be uploaded toPyPI
usingtwine
.debianize
creates adebian/
directory used to build Debian source / binary packages.format_check
checks if the code follows theautopep8
code formatting rules.format
automatically adjusts the code to follow theautopep8
code formatting rules.isort_check
checks if the order of the import statements is correct usingisort
.isort
automatically re-orders the import statements usingisort
.lint_check
checks if the code follows thepylint
rules defined inpyproject.toml
.lint
automatically adjust the code to follow thepylint
rules defined inpyproject.toml
.setup_check
checks whether the dependencies defined inPipfile
/Pipfile.lock
are in sync withsetup.py
.setup
synchronizes the dependencies defined inPipfile
/Pipfile.lock
withsetup.py
.
Make sure to run format_check
/ format
, isort_check
/ isort
, lint_check
/ lint
, license
, setup_check
/ setup
before committing changes to the repository to avoid unnecessary development cycles. smartmeter-datacollector-configurator
uses GitHub Actions to check if these rules apply.
Visit Wiki - Creating a Release for further documentation about contributing.
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
File details
Details for the file smartmeter-datacollector-configurator-1.2.0.tar.gz
.
File metadata
- Download URL: smartmeter-datacollector-configurator-1.2.0.tar.gz
- Upload date:
- Size: 1.3 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9bb7260b4ae13b2e2681c9367504d3c14fdea204f368dd5fc17bd903e60bef2e |
|
MD5 | a41bdadb744d3501fa71ae640d0fb845 |
|
BLAKE2b-256 | 080b189b8facaa875d4519a5dae18a33be0586d2e463f64ae2da5eeae253bb88 |
File details
Details for the file smartmeter_datacollector_configurator-1.2.0-py3-none-any.whl
.
File metadata
- Download URL: smartmeter_datacollector_configurator-1.2.0-py3-none-any.whl
- Upload date:
- Size: 1.3 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.11.8
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf4c6c70db01d2ac888ceb0af5dec09af8543cf5b11131848c1d7a2d46703d4d |
|
MD5 | abe5b1058847d74797db9ed8d0b01367 |
|
BLAKE2b-256 | c1eadfefd6a116222262504d88e6a0a4c9b704970ce6abd4e83099fe015e91d1 |