Skip to content

Don't be a wanker, be a thanker! Automatically give thanks to Pypi packages you use in your project.

License

Notifications You must be signed in to change notification settings

WardPearce/thanker

Repository files navigation

Don't be a wanker, be a thanker!

Automatically give thanks to Pypi packages you use in your project!

Index

Install

pip3 install thanker

Examples

Command-line

Usage: thanks [OPTIONS]

Options:
  --packages TEXT            List of packages to thank, seperated by a comma
  --requirements PATH        Used to load a requirements from a requirements
                             file
  --gratitude_level INTEGER  Basically the depth of requirements we should go
                             to
  --layout TEXT              The layout of the thanks, can be any pypi info
                             parameter
  --display BOOLEAN          If the output should be displayed in console
  --save FILENAME            File to save thanks to
  --group_by TEXT            Pypi parameter to group requirements by
  --group_by_layout TEXT     Layout for group by
  --help                     Show this message and exit.

command line gif

Programmatically

import asyncio
from thanker import Thanker, GroupBy

async def example() -> None:
    async with Thanker(packages=["thanker"], gratitude_level=None) as thanks:
        # No grouping
        print(await thanks.style("- [{name}]({package_url}) by {author}"))

        # Grouping requirements by author
        print(await thanks.style(
            layout="- [{name}]({package_url})",
            group_by=GroupBy(
                group="author",
                layout="### Created by {author}\n{__layout__}"
            )
        ))

loop = asyncio.get_event_loop()
loop.run_until_complete(example())

Webpanel

from thanker import webpanel

if __name__ == "__main__":
    webpanel()

Image of thanker webpanel, with uvicorn & starlette as the provided packages.

Supported Pypi parameters

pypi parameters

Thanks to

Created by Nikolay Kim

Created by Hynek Schlawack

Created by Mark Pilgrim

Created by Andrew Svetlov

Created by Kim Davies

Created by Guido van Rossum, Jukka Lehtosalo, Łukasz Langa, Michael Lee

Created by Armin Ronacher

Created by Martin Richard

Created by Tin Tvrtkovic