Skip to main content

GROS Python server framework

PyPI Build status Coverage Status Quality Gate Status DOI

This repository contains a framework for setting up a Web application based on Python modules, using CherryPy for routing.

This framework is used for a few servers within the Grip on Software pipeline, namely the deployer and status-dashboard repositories.

Installation and building

The latest version of GROS server framework module and its dependencies can be installed using pip install gros-server.

Another option is to build the module from this repository, which allows using the most recent development code. Some functionality of the server framework is based on the data gathering module and requires a proper installation of that package. It and other dependencies may be installed using make setup. The server framework itself may then be installed with make install, which places the package in your current environment. We recommend using a virtual environment during development.

Use make build in order to generate a wheel package for the framework. The files can then be found in the dist directory (and installed from there using pip install <path>).

The Jenkinsfile in this repository contains steps to build the package and upload it to a PyPi-based repository so that it may be installed from there, when built on a Jenkins CI server.

Development and testing

To run tests, first install the test dependencies with make setup_test which also installs all dependencies for the server framework. Then make coverage provides test results in the output and in XML versions compatible with, e.g., JUnit and SonarQube available in the test-reports/ directory. If you do not need XML outputs, then run make test to just report on test successes and failures or make cover to also have the terminal report on hits and misses in statements and branches.

GitHub Actions is used to run the unit tests and report on coverage on commits and pull requests. This includes quality gate scans tracked by SonarCloud and Coveralls for coverage history.

The Python module conforms to code style and typing standards which can be checked using Pylint with make pylint and mypy with make mypy, after installing the pylint and mypy dependencies using make setup_analysis; typing reports are XML formats compatible with JUnit and SonarQube placed in the mypy-report/ directory. To also receive the HTML report, use make mypy_html instead.

We publish releases to PyPI using make setup_release to install dependencies and make release which performs multiple checks: unit tests, typing, lint and version number consistency. The release files are also published on GitHub and from there are archived on Zenodo. Noteworthy changes to the module are added to the changelog.

Metadata

Release files for gros-server 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gros-server 1.0.0
File Size Uploaded Provenance Actions
gros_server-1.0.0.tar.gz 17.2 kB Without provenance Details for gros_server-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for gros-server 1.0.0
File Interpreter ABI Platform Actions
gros_server-1.0.0-py3-none-any.whl Python 3 none any Details for gros_server-1.0.0-py3-none-any.whl

Total release size: 34.2 kB

Release files / gros_server-1.0.0.tar.gz

Download URL gros_server-1.0.0.tar.gz
Size 17.2 kB
Tags Source
SHA-256 checksum
How to use checksums
aeccaaccd2cd78474c414e07841b5ae0c9dd8461f5337238560e0215d7a7f4ff
BLAKE2b-256 checksum
How to use checksums
bcb5bb3bc6ac2fe118a9c059f9a49d79f4fa63990af470af8ffaaf5572cf4f6e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.8.10

Release files / gros_server-1.0.0-py3-none-any.whl

Download URL gros_server-1.0.0-py3-none-any.whl
Size 17.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8c9db56f34808f12c82443654882d6f308f98d6ea096c9f7766e11ecf7b94593
BLAKE2b-256 checksum
How to use checksums
d5bbff6c690af8710cd55dc431bce864c6b32352c96fa85b3f38b059be7af0c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.1 CPython/3.8.10

Security for gros-server 1.0.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.0.0 This release

2 release files No provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page