Skip to main content

Generate badges/shields with pure HTML/CSS.

Project description

Generate status badges/shields of pure HTML+CSS.

abadge-discovered.png

Overview

The Badge class in the module is used to generate status badges. It supports various configuration options like font, background etc., and also includes rudimentary threshold support, which is useful for presenting job status, for example.

Usage

Badge can be instantiated to generate many badges with the same format:

from abadge import Badge

success_badge = Badge(value_text_color='#11a')
print(success_badge.to_html('build', 'passed'))
print(success_badge.to_html('tests', 'ok'))

or for one-shot generation:

print(Badge(label='tests', value='4/8').to_html())
print(Badge().to_html(label='tests', value='4/8'))  # Same thing
print(Badge.make_badge(tests, '4/8'))               # This too

The arguments to all of the methods are identical. The arguments to the constructor will be stored in the instance as default values which can then be overridden by the arguments to the to_html method. make_badge always use the class default configuration (it is a class method).

Arguments

All three methods support the following arguments:

Optional arguments

label:

text for the label (left) part. Can also be given as keyword argument label=<text>

value:

text for the value (right) part. Can also be given as keyword argument value=<text>

Keyword arguments

border_radius:

how rounded the corners of the badge should be (CSS “padding”)

font_family:

font to use in the badge (CSS “font-family”)

font_size:

font size to use in the badge (CSS “font-size”)

label:

the text in label part of the badge

label_background:

background color for the label (left) part (CSS “background”)

label_text_color:

text color for the label (left) part (CSS “color”)

label_text_shadow:

configuration for the text shadow (CSS “text-shadow”)

link_decoration:

decoration for the link (CSS “text-decoration”)

padding:

amount of space between the border and the text (CSS “padding”)

thresholds:

dict with label to value to value_background mappings. See Thresholds below

url:

makes the badge link to the given URL

value:

the text in the value part of the badge

value_background:

background color for the value part (CSS “background”). This is also the final fallback if the value is neither found in thresholds nor in value_backgrounds

value_backgrounds:

dict with value to value_background mappings. See Thresholds below

value_text_color:

text color for the value part (CSS “color”)

value_text_shadow:

configuration for the text shadow (CSS “text-shadow”)

Thresholds

The thresholds argument is a dict with label to value to background color mapping:

build_badge = Badge(thresholds={'build': {'SUCCESS': '#0f0',
                                          'FAILURE': '#f00',
                                          'UNSTABLE': '#ff0',
                                          'ABORTED': '#f80',},
                                'KPI': {'A': '#0f4',
                                        'B': '#f04',
                                        'C': '#f84',
                                        'D': '#ff4',},)
print(build_badge('build', job.get_status()))
# Using a non-existing value will use the value_background color
print(build_badge('build', 'SKIP'))
print(build_badge('build', 'HOP', value_background='#888'))

If the background is not found in thresholds then the value will be looked up in the value_backgrounds dict as a fallback:

build_badge = Badge(thresholds={'build': {'SUCCESS': '#0f0',
                                          'FAILURE': '#f00',
                                          'UNSTABLE': '#ff0',
                                          'ABORTED': '#f80',}}
                    value_backgrounds: {'SUCCESS': '#0f4',
                                        'FAILURE': '#f04',
                                        'UNSTABLE': '#f84',
                                        'ABORTED': '#ff4',},)
print(build_badge('test', job.get_status()))

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

abadge-1.0.0.tar.gz (4.3 kB view details)

Uploaded Source

Built Distribution

abadge-1.0.0-py3-none-any.whl (4.4 kB view details)

Uploaded Python 3

File details

Details for the file abadge-1.0.0.tar.gz.

File metadata

  • Download URL: abadge-1.0.0.tar.gz
  • Upload date:
  • Size: 4.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.4

File hashes

Hashes for abadge-1.0.0.tar.gz
Algorithm Hash digest
SHA256 ba0081aea465e6472878f80b4f4217cbc5214ea059c6095b1beef1d5f63022f3
MD5 49cf4e543e09e96970c37a1329ec34e0
BLAKE2b-256 fd05b6e6d7ad1cb8ecfbe15604499974959958900064c138373f5bb7d8e7b341

See more details on using hashes here.

File details

Details for the file abadge-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: abadge-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 4.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.11.0 pkginfo/1.4.2 requests/2.19.1 setuptools/40.2.0 requests-toolbelt/0.8.0 tqdm/4.25.0 CPython/3.6.4

File hashes

Hashes for abadge-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ebe4ae24c0b892dbc0b9ae9815c78f642e625b482aa8f10ff9117e5c182307eb
MD5 b11713ceb2f8cc024d708bf41f0a84cb
BLAKE2b-256 e6e1e56d48c9ba2e9cb6942c19d373613a46dd6c35f22240c221adf564f41da1

See more details on using hashes here.

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