Skip to main content

Common utilities and tools maintained by Greenbone Networks

Project description

Greenbone Logo

Pontos - Greenbone Python Utilities and Tools

GitHub releases PyPI release code test coverage Build and test

The pontos Python package is a collection of utilities, tools, classes and functions maintained by Greenbone Networks.

Pontos is the German name of the Greek titan Pontus, the titan of the sea.

Table of Contents

Tools and Utilities

pontos comes with a continiously increasing set of features. The following commands are currently available:

  • pontos-release - Release handling utility for C and Python Projects

We also provide easy-to-use GitHub Actions, that we recommended to use instead of manually releasing with pontos-release.

# Prepare the next patch release (x.x.2) of project <foo>, use conventional commits for release notes
pontos-release prepare --project <foo> -patch -CC
# Release that patch version of project <foo>
pontos-release release --project <foo>
# Sign a release:
pontos-release sign --project <foo> --release-version 1.2.3 --signing-key 1234567890ABCDEFEDCBA0987654321 [--passphrase <for_that_key>]
  • pontos-version - Version handling utility for C, Go and Python Projects
# Update version of this project to 22.1.1
pontos-version update 22.1.1
# Show current projects version
pontos-version show
  • pontos-update-header - Handling Copyright header for various file types and licences

We also provide an easy-to-use GitHub Action, that updates copyright year in header of files and creates a Pull Request.

# Update year in Copyright header in files, also add missing headers
pontos-update-header -d <dir1> <dir2>
  • pontos-changelog - Parse conventional commits in the current branch, creating CHANGELOG.md file
# Parse conventional commits and create <changelog_file>
pontos-changelog -o <changelog-file>
  • pontos-github` - Handling GitHub operations, like Pull Requests (beta)
# create a PR on GitHub
pontos-github pr create <orga/repo> <head> <target> <pr_title> [--body <pr_body>]
# update a PR on GitHub
pontos-github pr update <orga/repo> <pr> [--target <target_branch>] [--title <pr_title>] [--body <pr_body>]
# get modified and deleted files in a PR, store in file test.txt
pontos-github FS <orga/repo> <pull_request> -s modified deleted -o test.txt
# add labels to an Issue/PR
pontos-github L <orga/repo> <issue/PR> label1 label2
  • pontos also comes with a Terminal interface printing prettier outputs
import pontos.terminal.terminal

term = terminal.Terminal()
with term.indent():
    term.ok("Hello indented World")
  • pontos also comes with git and GitHub APIs
import pontos.git
import pontos.github

Installation

Requirements

Python 3.7 and later is supported.

Install using pip

pip 19.0 or later is required.

Note: All commands listed here use the general tool names. If some of these tools are provided by your distribution, you may need to explicitly use the Python 3 version of the tool, e.g. pip3.

You can install the latest stable release of pontos from the Python Package Index (pypi) using pip

pip install --user pontos

Install using poetry

Because pontos is a Python library you most likely need a tool to handle Python package dependencies and Python environments. Therefore we strongly recommend using pipenv or poetry.

You can install the latest stable release of pontos and add it as a dependency for your current project using poetry

poetry add pontos

For installation via pipenv please take a look at their documentation.

Development

pontos uses poetry for its own dependency management and build process.

First install poetry via pip

pip install --user poetry

Afterwards run

poetry install

in the checkout directory of pontos (the directory containing the pyproject.toml file) to install all dependencies including the packages only required for development.

Afterwards activate the git hooks for auto-formatting and linting via autohooks.

poetry run autohooks activate

Validate the activated git hooks by running

poetry run autohooks check

Maintainer

This project is maintained by Greenbone Networks GmbH

Contributing

Your contributions are highly appreciated. Please create a pull request on GitHub. Bigger changes need to be discussed with the development team via the issues section at GitHub first.

License

Copyright (C) 2020-2021 Greenbone Networks GmbH

Licensed under the GNU General Public License v3.0 or later.

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

pontos-22.4.0.tar.gz (93.4 kB view details)

Uploaded Source

Built Distribution

pontos-22.4.0-py3-none-any.whl (99.2 kB view details)

Uploaded Python 3

File details

Details for the file pontos-22.4.0.tar.gz.

File metadata

  • Download URL: pontos-22.4.0.tar.gz
  • Upload date:
  • Size: 93.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.12

File hashes

Hashes for pontos-22.4.0.tar.gz
Algorithm Hash digest
SHA256 1d61d12229cbff48e2069e2c5454ba65792a86b1f67a0ec1af249281e3ddad12
MD5 b991464960d356567a110230b8b59f52
BLAKE2b-256 78737ea0ab520dfe44ba4194ae5c2ea90aaf80c09bacc6311e1bb3b6bb2a366d

See more details on using hashes here.

Provenance

File details

Details for the file pontos-22.4.0-py3-none-any.whl.

File metadata

  • Download URL: pontos-22.4.0-py3-none-any.whl
  • Upload date:
  • Size: 99.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.8.12

File hashes

Hashes for pontos-22.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0fc6d41f34440e9706eaf38f9cf5237ca0ee5c6a24600ae3e45c4ab0162cdbb8
MD5 15ab652e05cc6a70380e85cd5ef8ef8c
BLAKE2b-256 87dff97f2ab22d69ce6ec24d7181173e15839b99afcc0fa4c428e3a55b214c62

See more details on using hashes here.

Provenance

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page