All Projects → dhondta → python-tinyscript

dhondta / python-tinyscript

Licence: GPL-3.0 license
Devkit for quickly building CLI tools with Python

Programming Languages

python
139335 projects - #7 most used programming language
CSS
56736 projects

Projects that are alternatives of or similar to python-tinyscript

AppmemDumper
Forensics triage tool relying on Volatility and Foremost
Stars: ✭ 22 (-43.59%)
Mutual labels:  ctf-tools, tinyscript
Brahma
Brahma - Privilege elevation exploit for Nintendo 3DS
Stars: ✭ 34 (-12.82%)
Mutual labels:  development
kar98k public
pwn & ctf tools for windows
Stars: ✭ 24 (-38.46%)
Mutual labels:  ctf-tools
Cheatsheets
Quick reference material for techies
Stars: ✭ 66 (+69.23%)
Mutual labels:  development
healthier
🧘‍♀️ Healthier is an opinionated style agnostic code linter – a friendly companion to Prettier
Stars: ✭ 78 (+100%)
Mutual labels:  development
awesome-shopify
👩‍🎓👨‍🎓 Must-read articles, videos and books for store owners, app and theme developers.
Stars: ✭ 86 (+120.51%)
Mutual labels:  development
winston-dev-console
Winston@3 console format aimed to improve development UX
Stars: ✭ 88 (+125.64%)
Mutual labels:  development
CTF-CryptoTool
CTF-CryptoTool is a tool written in python, for breaking crypto text of CTF challenges. It tries to decode the cipher by bruteforcing it with all known cipher decoding methods easily. Also works for the cipher which does not have a key.
Stars: ✭ 38 (-2.56%)
Mutual labels:  ctf-tools
remote-docker-aws
Remote Docker for local development hosted using AWS
Stars: ✭ 22 (-43.59%)
Mutual labels:  development
hacktoberfest-flutter
An app to find repositories on Github and to view the various contributors to said repos.
Stars: ✭ 25 (-35.9%)
Mutual labels:  development
frontend-tools
Links to front-end development tools
Stars: ✭ 143 (+266.67%)
Mutual labels:  development
react-native-text-area
Simple and easy to use TextArea for React Native.
Stars: ✭ 20 (-48.72%)
Mutual labels:  development
ducky
Chrome extension to overlay a (super adorable) rubber duck, as a virtual companion during rubber duck debugging.
Stars: ✭ 80 (+105.13%)
Mutual labels:  development
CFE-Blank-Project
A blank Django Starter Project that includes Docker support.
Stars: ✭ 17 (-56.41%)
Mutual labels:  development
tmpleak
Leak other players' temporary workspaces for ctf and wargames.
Stars: ✭ 76 (+94.87%)
Mutual labels:  ctf-tools
nvim-config
My neovim config
Stars: ✭ 63 (+61.54%)
Mutual labels:  development
penelope
Penelope Shell Handler
Stars: ✭ 291 (+646.15%)
Mutual labels:  ctf-tools
CS-study
cs지식을 정리하는 공간
Stars: ✭ 171 (+338.46%)
Mutual labels:  development
won
A new way to see HTML Web Pages
Stars: ✭ 15 (-61.54%)
Mutual labels:  development
iOS-11-Swift-Programming-Cookbook
O'Reilly's iOS 11 Swift Programming Cookbook Sample Codes
Stars: ✭ 73 (+87.18%)
Mutual labels:  development

TinyScript Tweet

Make a CLI tool with very few lines of code.

PyPi Read The Docs Build Status Coverage Status Python Versions Requirements Status Known Vulnerabilities License

This library is aimed to provide useful features and helpers in order to shorten the number of required lines of code for writing simple and nice-looking command-line interface tools. It is based on argparse and is considered a development kit, on the contrary of popular frameworks like cement, click or docopt, as it is not aimed to reinvent the wheel in yet another paradigm.

pip install tinyscript

💡 Philosophy

This library is built with the DRY (Don't Repeat Yourself) and KISS (Keep It Stupid Simple) philosophies in mind ; the whole machinery of Tinyscript holds in its star import (from tinyscript import *) and its initialization (with the initialize function).

It is aimed to shorten required code by setting a few things while loaded:

  • a proxy parser (coming from the star import) collects arguments definitions and formats help at initialization, preventing from rewriting the whole bunch of code needed to declare an ArgumentParser (and define its epilog, and so forth)
  • a main (colored) logger is preconfigured and can be tuned through two constants so that we don't care for writing a bunch of code needed to configure logging
  • preimports (while a bit anti-Pythonic, we confess) of common libraries also reduces the quantity of code required
  • among these, some modules are enhanced with new functions and classes that are not natively foreseen

Leveraging this allows to create very short scripts with only the real code that matters, reducing the code to be rewritten to create efficient, nice-looking and sophisticated CLI tools.

Note that, while star imports should be avoided according to Python's style guide (see PEP8), it is deliberately extensively used and covering a huge scope in order to shorten code length. This "anti-pattern" pays off after creating a few tools, when we can realize it shortens parts of the code that are often repeated from a tool to another (e.g. for shaping tool's help message).

😎 Usage

It is designed to be as simple and straightforward to use as possible. In order to learn and use it, you only need your browser (for consulting the documentation), a text editor and a good Python Interpreter (e.g. IDLE) for using auto-completion or an IDE like PyCharm to get helpers suggested.

The point is that you will use:

  • features, enabled by setting flags in the "master" function called ìnitialize
  • helpers, grouped under the "master" submodule called ts
  • reporting objects from the global scope

Please see the example tools herebelow for examples of usage of features, helpers and reporting.

Quick Start

Create from template

Edit source

Run your tool

🔍 Example tools

Security

Utils

👏 Supporters

Stargazers repo roster for @dhondta/python-tinyscript

Forkers repo roster for @dhondta/python-tinyscript

Back to top

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].