{"id":20696624,"url":"https://github.com/maxvalue/python-tools","last_synced_at":"2026-05-27T06:32:09.864Z","repository":{"id":87798880,"uuid":"120823955","full_name":"MaxValue/Python-Tools","owner":"MaxValue","description":"a collection of python scripts which ease command-line work","archived":false,"fork":false,"pushed_at":"2023-02-14T13:17:42.000Z","size":21,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-25T18:29:30.042Z","etag":null,"topics":["command-line-tool","python3","unix"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/MaxValue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-08T22:08:13.000Z","updated_at":"2023-03-04T18:32:06.000Z","dependencies_parsed_at":null,"dependency_job_id":"a6e5dfc1-e384-4e9e-87df-229341a9450d","html_url":"https://github.com/MaxValue/Python-Tools","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/MaxValue/Python-Tools","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FPython-Tools","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FPython-Tools/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FPython-Tools/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FPython-Tools/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/MaxValue","download_url":"https://codeload.github.com/MaxValue/Python-Tools/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/MaxValue%2FPython-Tools/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33554780,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-27T02:00:06.184Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["command-line-tool","python3","unix"],"created_at":"2024-11-17T00:14:39.257Z","updated_at":"2026-05-27T06:32:09.842Z","avatar_url":"https://github.com/MaxValue.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Python Tools\n_a collection of python scripts which ease command-line work_\n\n\n## Contents\n* Gxep: grep, but for XML files\n\n## To Dos:\n* find better command-line arguments parsing module than argparse (in order to mimic GNU/Linux tools better) and use it in all the tools\n* if you launch a tool directly by double-clicking on it in the file browser, it will start in GUI mode. if it does not have a GUI, it will show a graphical error message.\n* find way to support command-line tab-completion\n\n## Planned Tools\n* make link: checks if given string is telephone number, url, email address, rss feed or file path and sanitizes the string and make a proper url out of it. can take multiple strings at once, a file or files, output to a file, open the URL(s) directly\n* easy chmod: interpret permission string from ls as stanzas\n* smart cd: cd to directory if given path is file\n* download all files using url, looping through numbers\n* verbose numbers and vice-versa\n* manipulate tables\n*\t\tlines = rows or columns\n*\t\tremove lines\n*\t\tadd lines\n*\t\treorder lines\n*\t\tsort line\n*\t\tsanitize values:\n\t\t\t(select all numbers)\n\t\t\t(select lines/cells after specific pattern)\n*\t\t\tmap values to different range\n*\t\t\tpad numbers\n*\t\textract raw data\n*\n* convert files to windows/unix/mac line endings\n* strip whitespace from files\n* identify files and rename them according to their type\n* generate list of trackers sorted by their ping speed\n* generate links: mailto, tel, ...\n* tool to create symlink bindings for steam games\n* tool to create symlink bindings for common system-config-files\n* CLI for own installer scripts\n* generate combinations of given options\n* own extensions for sublime text:\n*\ttext-editor additions:\n*\t\tnormalize space: remove additional spaces and replace them with one. \"\\s{2,}\" to \" \"\n*\t\tnormalize punctuation: remove unnecessary whitespace around punctuation and add correct one:\n\t\t\t\"\\s*([?.!,;:])\\s*(?!\\n)\" to \"\\1 \"\n\t\t\t\"\\s*([?.!,;:])\\s*\\n\" to \"\\1\"\n*\t\tnormalize repetitions: remove unnecessary repetitions and correct them:\n\t\t\t\"\\.{2,}\" to \"...\"(special 3 dot character here)\n\t\tnormalize quotes: replace normal quote characters with fancy or locale dependent ones:\n\t\t\t\"([\"'])([^\"']+)\\1\" to \"“\\2”\"(or locale dependent quote characters)\n*\tif text is selected and the caps key is pressed, the text is converted to upper or lower case respectively\n*\treindex list sublimetext addition\n\t\"\"\"\n\t\tFROM:\n\t\t\t\t1. bla\n\t\t\t\t1. bla\n\t\t\t\t2. bla\n\t\t\t\t4. bla\n\t\t\t\t6. bla\n\t\t\t\t3. bla\n\t\t\t\t9. bla\n\t\tTO:\n\t\t\t\t1. bla\n\t\t\t\t2. bla\n\t\t\t\t3. bla\n\t\t\t\t4. bla\n\t\t\t\t5. bla\n\t\t\t\t6. bla\n\t\t\t\t7. bla\n\t\t(also allows padding with 0's, choosing the start value and the step size (can also be negative))\n\t\"\"\"\n*\tregex extension to search for successive numbers\n\t\"\"\"\n\t\tWOULD MATCH:\n\t\t\t\t9. bla\n\t\t\t\t6. bla\n\t\t\t\t-------\n\t\t\t\t3. bla\n\t\t\t\t4. bla\n\t\t\t\t5. bla\n\t\t\t\t-------\n\t\t\t\t1. bla\n\t\t\t\t7. bla\n\t\"\"\"\n*\tspecific standard regex expressions to ease searching: should either populate the history in the CTRL+F and CTRL+H screens or a menu which you call via a command: this presents you with a list of regex wher you choose one, this regex is then inserted into the search field of the CTRL+F/CTRL+H screen\n*\tautomatic day/night theme: if time is past a specific defined time, a predefined, different theme is set to active: on_activated(view), set_timeout_async(callback, delay), run_command(\"select_color_scheme\", \"Packages/Colorsublime - Themes/Wildlife-Day.tmTheme\")\n*\texpand lines: if you want to replace a words by multiple non-related words then the line is duplicated by the number of distinct strings and the respective word/phrase is replace by one of the target strings\n\t\"\"\"\n\t\tFROM:\n\t\t\t\tremove lines\n\t\t\t\tadd lines\n\t\t\t\treorder lines\n\t\tTO:\n\t\t\t\tremove rows\n\t\t\t\tremove columns\n\t\t\t\tadd rows\n\t\t\t\tadd columns\n\t\t\t\treorder rows\n\t\t\t\treorder columns\n\t\t(and vice-versa)\n\t\"\"\"\n*\tadd tabs at the end of several lines to match them up\n\t\"\"\"\n\t\tFROM:\n\t\t\tUnmapped Pages|\n\t\t\tCurrent Page|\n\t\t\tPrevious Page|\n\t\t\tLast Different Page|\n\t\t\tPages Accessed|\n\t\tTO:\n\t\t\tUnmapped Pages\t\t\t|\n\t\t\tCurrent Page\t\t\t|\n\t\t\tPrevious Page\t\t\t|\n\t\t\tLast Different Page\t\t|\n\t\t\tPages Accessed\t\t\t|\n\t\t(| symbolizes end of tabs)\n\t\"\"\"\n* create web crawlers for common tasks: watching websites, downloading websites, social media feeds, DDOS a website or service, ...\n* smarter regex: .+? or [^\\n]+? are \"less interesting\" parts of a pattern. definitions like strings or specific, custom classes are more interesting. when highlighting, only the more interesting parts should be highlighted. better: ighlight whole match, but highlight more interesting parts more than the rest. also allow replacement/manipulation operations for those more interesting parts.\n* smarter regex: support dynamically sized lookaheads and lookbehinds (`* + {} ?` and so on)\n* create pkpass file from calendar event. can also just create the source files.\n* have some support functions by default when launching python interpreter in terminal. see \"using python as login shell\"\n* compress json(feed through json),html(???),xml(???),css(???),js(???),eml(???) files\n* basic image manipluation tasks: scale/crop/flip/mirror/rotate image, black and white, add background (transparent, color, simple gradient), circumsize(remove equal amount of pixels from all edges)\n* slice up images into chunks\n* combine images as chunks to a bigger image\n\n## Style\n* There is a directory which contains the personalized scripts created by the tools\n* secure environments?\n* Those personalized scripts can be automatically saved to the correct folders if they are gonna be reused\n* easy to setup reocurring runs of scripts\n* the execution of a tool is already a script. meaning: if caled, this is considered as a personalized use. this ideology allows to also define repetitive runs for tools themselves\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxvalue%2Fpython-tools","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmaxvalue%2Fpython-tools","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmaxvalue%2Fpython-tools/lists"}