gros-server


Namegros-server JSON
Version 1.0.0 PyPI version JSON
download
home_pageNone
SummaryGrip on Software server framework
upload_time2024-07-15 11:25:15
maintainerNone
docs_urlNone
authorNone
requires_python>=3.8
licenseApache 2.0
keywords server framework authentication templates
VCS
bugtrack_url
requirements CherryPy flup gros-gatherer python-ldap
Travis-CI No Travis.
coveralls test coverage
            # GROS Python server framework

[![PyPI](https://img.shields.io/pypi/v/gros-server.svg)](https://pypi.python.org/pypi/gros-server)
[![Build 
status](https://github.com/grip-on-software/server-framework/actions/workflows/server-tests.yml/badge.svg)](https://github.com/grip-on-software/server-framework/actions/workflows/server-tests.yml)
[![Coverage 
Status](https://coveralls.io/repos/github/grip-on-software/server-framework/badge.svg?branch=master)](https://coveralls.io/github/grip-on-software/server-framework?branch=master)
[![Quality Gate
Status](https://sonarcloud.io/api/project_badges/measure?project=grip-on-software_server-framework&metric=alert_status)](https://sonarcloud.io/project/overview?id=grip-on-software_server-framework)
[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11580150.svg)](https://doi.org/10.5281/zenodo.11580150)

This repository contains a framework for setting up a Web application based on 
Python modules, using [CherryPy](https://cherrypy.dev/) for routing.

This framework is used for a few servers within the Grip on Software pipeline, 
namely the [deployer](https://github.com/grip-on-software/deployer) and 
[status-dashboard](https://github.com/grip-on-software/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](https://pypi.org/project/gros-gatherer/) 
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](https://github.com/grip-on-software/server-framework/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](https://sonarcloud.io/project/overview?id=grip-on-software_server-framework) 
and [Coveralls](https://coveralls.io/github/grip-on-software/server-framework) 
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](https://pypi.org/project/gros-server/) 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](https://github.com/grip-on-software/server-framework/releases) and 
from there are archived on 
[Zenodo](https://zenodo.org/doi/10.5281/zenodo.11580149). Noteworthy changes to 
the module are added to the [changelog](CHANGELOG.md).

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "gros-server",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.8",
    "maintainer_email": null,
    "keywords": "server framework, authentication, templates",
    "author": null,
    "author_email": "Leon Helwerda <l.s.helwerda@liacs.leidenuniv.nl>",
    "download_url": "https://files.pythonhosted.org/packages/bc/b5/bb3bc6ac2fe118a9c059f9a49d79f4fa63990af470af8ffaaf5572cf4f6e/gros_server-1.0.0.tar.gz",
    "platform": null,
    "description": "# GROS Python server framework\n\n[![PyPI](https://img.shields.io/pypi/v/gros-server.svg)](https://pypi.python.org/pypi/gros-server)\n[![Build \nstatus](https://github.com/grip-on-software/server-framework/actions/workflows/server-tests.yml/badge.svg)](https://github.com/grip-on-software/server-framework/actions/workflows/server-tests.yml)\n[![Coverage \nStatus](https://coveralls.io/repos/github/grip-on-software/server-framework/badge.svg?branch=master)](https://coveralls.io/github/grip-on-software/server-framework?branch=master)\n[![Quality Gate\nStatus](https://sonarcloud.io/api/project_badges/measure?project=grip-on-software_server-framework&metric=alert_status)](https://sonarcloud.io/project/overview?id=grip-on-software_server-framework)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.11580150.svg)](https://doi.org/10.5281/zenodo.11580150)\n\nThis repository contains a framework for setting up a Web application based on \nPython modules, using [CherryPy](https://cherrypy.dev/) for routing.\n\nThis framework is used for a few servers within the Grip on Software pipeline, \nnamely the [deployer](https://github.com/grip-on-software/deployer) and \n[status-dashboard](https://github.com/grip-on-software/status-dashboard) \nrepositories.\n\n## Installation and building\n\nThe latest version of GROS server framework module and its dependencies can be \ninstalled using `pip install gros-server`.\n\nAnother option is to build the module from this repository, which allows using \nthe most recent development code. Some functionality of the server framework is \nbased on the [data gathering module](https://pypi.org/project/gros-gatherer/) \nand requires a proper installation of that package. It and other dependencies \nmay be installed using `make setup`. The server framework itself may then be \ninstalled with `make install`, which places the package in your current \nenvironment. We recommend using a virtual environment during development.\n\nUse `make build` in order to generate a wheel package for the framework. The \nfiles can then be found in the `dist` directory (and installed from there using \n`pip install <path>`).\n\nThe `Jenkinsfile` in this repository contains steps to build the package and \nupload it to a PyPi-based repository so that it may be installed from there, \nwhen built on a Jenkins CI server.\n\n## Development and testing\n\nTo run tests, first install the test dependencies with `make setup_test` which \nalso installs all dependencies for the server framework. Then `make coverage` \nprovides test results in the output and in XML versions compatible with, e.g., \nJUnit and SonarQube available in the `test-reports/` directory. If you do not \nneed XML outputs, then run `make test` to just report on test successes and \nfailures or `make cover` to also have the terminal report on hits and misses in \nstatements and branches.\n\n[GitHub Actions](https://github.com/grip-on-software/server-framework/actions) \nis used to run the unit tests and report on coverage on commits and pull \nrequests. This includes quality gate scans tracked by \n[SonarCloud](https://sonarcloud.io/project/overview?id=grip-on-software_server-framework) \nand [Coveralls](https://coveralls.io/github/grip-on-software/server-framework) \nfor coverage history.\n\nThe Python module conforms to code style and typing standards which can be \nchecked using Pylint with `make pylint` and mypy with `make mypy`, after \ninstalling the pylint and mypy dependencies using `make setup_analysis`; typing \nreports are XML formats compatible with JUnit and SonarQube placed in the \n`mypy-report/` directory. To also receive the HTML report, use `make mypy_html` \ninstead.\n\nWe publish releases to [PyPI](https://pypi.org/project/gros-server/) using \n`make setup_release` to install dependencies and `make release` which performs \nmultiple checks: unit tests, typing, lint and version number consistency. The \nrelease files are also published on \n[GitHub](https://github.com/grip-on-software/server-framework/releases) and \nfrom there are archived on \n[Zenodo](https://zenodo.org/doi/10.5281/zenodo.11580149). Noteworthy changes to \nthe module are added to the [changelog](CHANGELOG.md).\n",
    "bugtrack_url": null,
    "license": "Apache 2.0",
    "summary": "Grip on Software server framework",
    "version": "1.0.0",
    "project_urls": {
        "CI: Coveralls": "https://coveralls.io/github/grip-on-software/server-framework?branch=master",
        "CI: GitHub Actions": "https://github.com/grip-on-software/server-framework/actions",
        "CI: SonarCloud": "https://sonarcloud.io/project/overview?id=grip-on-software_server-framework",
        "Homepage": "https://gros.liacs.nl",
        "Issues": "https://github.com/grip-on-software/server-framework/issues",
        "Pull Requests": "https://github.com/grip-on-software/server-framework/pulls",
        "PyPI": "https://pypi.python.org/pypi/gros-server",
        "Source Code": "https://github.com/grip-on-software/server-framework"
    },
    "split_keywords": [
        "server framework",
        " authentication",
        " templates"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d5bbff6c690af8710cd55dc431bce864c6b32352c96fa85b3f38b059be7af0c1",
                "md5": "3a7545adc6e0a85a7aa8d754dc1d02dd",
                "sha256": "8c9db56f34808f12c82443654882d6f308f98d6ea096c9f7766e11ecf7b94593"
            },
            "downloads": -1,
            "filename": "gros_server-1.0.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "3a7545adc6e0a85a7aa8d754dc1d02dd",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.8",
            "size": 16986,
            "upload_time": "2024-07-15T11:25:13",
            "upload_time_iso_8601": "2024-07-15T11:25:13.315102Z",
            "url": "https://files.pythonhosted.org/packages/d5/bb/ff6c690af8710cd55dc431bce864c6b32352c96fa85b3f38b059be7af0c1/gros_server-1.0.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcb5bb3bc6ac2fe118a9c059f9a49d79f4fa63990af470af8ffaaf5572cf4f6e",
                "md5": "ce832bfe6a62fac7ded616ff7ed3fd8d",
                "sha256": "aeccaaccd2cd78474c414e07841b5ae0c9dd8461f5337238560e0215d7a7f4ff"
            },
            "downloads": -1,
            "filename": "gros_server-1.0.0.tar.gz",
            "has_sig": false,
            "md5_digest": "ce832bfe6a62fac7ded616ff7ed3fd8d",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.8",
            "size": 17205,
            "upload_time": "2024-07-15T11:25:15",
            "upload_time_iso_8601": "2024-07-15T11:25:15.461089Z",
            "url": "https://files.pythonhosted.org/packages/bc/b5/bb3bc6ac2fe118a9c059f9a49d79f4fa63990af470af8ffaaf5572cf4f6e/gros_server-1.0.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-07-15 11:25:15",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "grip-on-software",
    "github_project": "server-framework",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "CherryPy",
            "specs": [
                [
                    "==",
                    "18.9.0"
                ]
            ]
        },
        {
            "name": "flup",
            "specs": [
                [
                    "==",
                    "1.0.3"
                ]
            ]
        },
        {
            "name": "gros-gatherer",
            "specs": [
                [
                    "==",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "python-ldap",
            "specs": [
                [
                    "==",
                    "3.4.3"
                ]
            ]
        }
    ],
    "lcname": "gros-server"
}
        
Elapsed time: 4.73592s