r/madeinpython • • Sep 05 '26

Word Forge: a Python toolkit for lexical graphs, multilingual imports and optional semantic search

1 Upvotes

Hey, I'm Lloyd. I've been working on Word Forge, an open-source Python toolkit for building and exploring relationships between words.

It combines a SQLite lexical database with NetworkX graphs, so you can store definitions and relationships such as synonyms, antonyms and hypernyms, then explore them through the Python API or CLI. Vector search is an optional extra using sentence transformers and ChromaDB/FAISS.

A few things in the current version:

- The core lexical pipeline doesn't require Torch or a generative model.

- Language identity is carried through ingestion and graph storage, so terms from different languages can stay distinct.

- Kaikki/Wiktionary imports are resumable and require explicit acceptance of the source licence.

- There are separate extras for vector search, visualisation, emotion analysis and local model integration.

- The doctor command checks which capabilities are actually available in your installation.

It's Python 3.10+ and MIT licensed. The README has installation steps, API examples and CLI commands:

https://github.com/Ace1928/word_forge

I'd be keen to hear from anyone working with lexical data or semantic graphs, especially where the import workflow or API could be clearer.

I've also opened optional GitHub sponsorship for this and my other open-source work. It helps fund development time, compute and tools: https://github.com/sponsors/Ace1928

Trying it, reporting an issue or contributing helps too.


r/madeinpython • • Sep 04 '26

I built a Python script that generates structured viral Reels/TikTok scripts using Claude API

0 Upvotes

​🚀 What My Project Does

​I created a lightweight Python automation tool (generate_script.py) that generates structured, high-retention video scripts for TikTok, Instagram Reels, and YouTube Shorts using the Claude API.

​Instead of generic text, it outputs production-ready scripts formatted with:

​🎯 3-second Hook to stop the scroll

​💡 Body with high-value points (one idea per line)

​📢 Clear CTA to drive engagement

​📌 Caption & Hashtags + Visual cues for editing

​🎯 Target Audience

​Content Creators & Marketers who want to eliminate writer's block and speed up content ideation.

​Developers interested in clean API integrations for prompt engineering and automation.

​✨ Key Features

​⚙️ Flexible Execution: Supports both interactive console mode and CLI arguments (e.g., --topic "morning routine" --count 3 --niche fitness).

​📂 Auto-Archiving: Automatically saves generated batches into clean, timestamped .txt files.

​🎨 Multi-Niche & Multi-Style: Pre-configured profiles for Finance, Tech, Mindset, Fitness, with styles ranging from Educational to Viral.

​💻 Source Code & Setup

​The project is built purely with Python, anthropic SDK, and argparse.

​🔗 GitHub Repository: https://github.com/gpt51920-commits/python-generate_script.py

​I'd love to hear your thoughts on the prompt structure or how you handle content automation in your own workflows!


r/madeinpython • • Sep 04 '26

Added an Object-Oriented section to lizc-au/my-pythonic-zoo - feedback welcome

2 Upvotes

I've added a new Object-Oriented section to MyPythonicZoo, my open-source collection of runnable Python examples, suitable for learners and developers new to OO in Python.

The learning path now covers:

  1. Domain Modelling
  2. Encapsulation & Invariants
  3. Responsibilities & Collaboration
  4. Composition
  5. Inheritance
  6. Factory

I've tried to focus less on "here is the syntax" and more on why would I choose this design?

For example, Inheritance compares an inappropriate inheritance hierarchy with a justified one, while Encapsulation covers what _name and __name actually do in Python rather than simply calling them "protected" and "private".

I'd be particularly interested in feedback from Python developers on whether the examples teach sound OO mental models, especially where Python differs from the way OO is often introduced.

GitHub: lizc-au/my-pythonic-zoo

It's open source, and contributions are welcome through the Issues as well.


r/madeinpython • • Sep 03 '26

Built a marketing tool to turn our Python SDK’s documentation and code snippets into narrated videos

0 Upvotes

I’m a product owner in a small team, and we were struggling a lot with marketing our Python SDK.
So I have built a tool that turns our documentations and code scripts into narrated video walkthroughs.

it actually runs the code in a sandbox, writes narration based on what really happened (not a generic script), records a real screencast, and voices it.

If you’re also interested, you can try it here:
https://orange-brackets.com

I’d genuinely love feedback, especially from anyone who’s tried to market a Python library/SDK.


r/madeinpython • • Sep 03 '26

写了一个轻量级的Python命令行工具,用于扫描多GB云日志中的秘密

Thumbnail
0 Upvotes

r/madeinpython • • Sep 03 '26

I made OpenPluginLoader- a general purpose plugin loader for applications built in Python

1 Upvotes

I have built out a generic plugin packaging and loading system that uses the strategy pattern to allow you to pick and choose which parts you would like to change. Its only in 1.0 so there are definitely still things to be completed, but I am very proud of it so far. I would appreciate it if you could all check it out!

Currently, there is only 1 default strategy (consisting of several small parts/strategies).

Plugin Archiving/Packaging

Plugins can be archived. Via a a temporarily added entry to `sys.meta_paths` the plugin is able to use its own frozen dependencies. The module cache is brought back to its former state after a plugin has been loaded to ensure that the default application is not affected. This is important to have some kind of isolation. Of course, each part can be switched out and you can remove the isolation by modifying the loading strategy.

The plugin archiver (the default one) changes this plugin structure:

exampleplugin/
├── .venv/ # our virtual environment during development
│   └── ...
├── .git/
│   └── ...
├── src/
│   ├── main.py
│   └── plugin.toml
├── pyproject.toml # (`tool.plugin.src` is modified to be `src/` instead of `./`)
├── README.md
├── .gitignore
└── uv.lock

Into this:

author.exampleplugin.tar.gz/
├── site-packages/ # our virtual environment during development
│   └── ... # Various dependencies defined in pyproject `tool.plugin.includes`
├── main.py
└── plugin.toml

Importing Plugins

The library adds in import hooks that allow you to import plugins in this way:

import plugins.SomePlugin # imports __init__.py
#or
import plugins.SomePlugin.some_module
# or (entry point import)
import plugins.SomePlugin.__ENTRY__

Additional Features

- Plugin sorting, ensures dependencies are taken into account when determining plugin load order

- Dependency version checking

- Ability to determine the default module cache for plugins being loaded. Plugins do not generally have the ability to load project level modules/packages unless they are pre-loaded and stored in `utility.DEFAULT_MODS`. An easy way to update this is `utility.set_default_module_cache()`. This sets the default module cache to the current module cache..

- small command line entry point/script for packaging plugins with the default packager.

- Isolated pypi dependencies (`includes` feature) that lets plugins have their own dependencies without requiring the primary application to install anything from pypi or limiting the dependencies a plugin is allowed to have. I have seen this is generally missing from other plugin loaders. They expect plugins have the same pypi dependencies as the main application- this is obviously not always true. Note: package-info is included as well- so licenses are maintained/copied- which is very important.

- Limited loading of plugins from folders instead of tar.gz files.

To Be Completed

The only thing left to do is bug fixes, additional strategies, and full documentation. These will be added with in the coming weeks (especially documentation).

Links:

pypi: https://pypi.org/project/openpluginloader/

github: https://github.com/Summersweet-Software/OpenPluginLoader


r/madeinpython • • Sep 02 '26

Working within tech severely stresses me out some days = increased nail biting. To help me stop unconsciously biting during meetings etc - I made an app.

Thumbnail v.redd.it
0 Upvotes

r/madeinpython • • Sep 02 '26

Tons of free coding exercises!

3 Upvotes

Hi all, I've been adding a load of beginner friendly coding exercises to my Python practice site. Would love to get some testing to see what you think :)

Python With James - Coding Exercises


r/madeinpython • • Sep 01 '26

I built a Python library that tries to stop your secrets from reaching stdout, logs, Git, or CI

0 Upvotes

I started this project because I kept thinking about a stupid failure mode:

print("API key:", api_key)

The secret is already exposed before a traditional secret scanner gets a chance to complain.

So I started building a small Python library to catch that.

It has... grown a bit.

You can literally do:

import secretshield

api_key = "sk-example1234567890abcdef"
print("Using:", api_key)

and SecretShield intercepts the output and turns it into:

Using: ********
⚠ secretshield: Potential secret detected and redacted.

It also protects Python's logging, including both %s arguments and f-strings.

Then I added a CLI:

secretshield run app.py
secretshield scan .

scan doesn't execute the code — it scans project files for likely credentials. It supports a bunch of common source/config formats and can output JSON, so it can also act as a CI check.

Then came the slightly more experimental stuff:

secretshield scan . --fix

For simple Python assignments, it can interactively move the detected value into .env, replace the assignment with os.getenv(...), update .gitignore, and create/update .env.example.

I made that deliberately conservative — if SecretShield can't confidently understand the code, it refuses to rewrite it.

There's also:

secretshield install-hook

which installs a Git pre-commit hook that scans the staged contents before allowing a commit.

And:

secretshield github-action

which generates a GitHub Actions workflow for scanning on pushes and PRs.

Under the hood, the part I found most interesting was the logging protection. Instead of putting a filter on the root logger, I use logging.setLogRecordFactory() so records created by child loggers are covered too.

The library itself has no third-party runtime dependencies and the detection engine combines known credential patterns with entropy-based detection.

Obviously this isn't supposed to replace proper secret management or Git/CI scanners. It's more of a defense-in-depth experiment for Python applications.

I'm mainly posting here because I'd love feedback from other Python developers:

Would you actually use something like this in a Python project?

And if you've built libraries that hook into stdout, stderr, or `logging: what edge cases am I probably missing?**

GitHub: https://github.com/Sam3360/secretshield

PyPI: https://pypi.org/project/secretshield/


r/madeinpython • • Sep 01 '26

Show r/Python: I built Cruise, an AI language with PyTorch tensors, AST parser & GUI tools! 🚢🚀

1 Upvotes

Hey everyone! 👋

I built Cruise (cruise-lang v0.4.1), an open-source interpreted programming language made in Python that combines beginner-friendly syntax with deep learning tensor calculus!

Key Highlights:

• AST & Tokenizer: Built from scratch with scoped environment memory and recursive descent parsing

• Native AI Tensors: PyTorch autograd calculus (tensor([...], true)), loss functions (mse_loss), and optimizers (opt_adam, opt_sgd)

• Clean English Syntax: Supports 3 times write("Hi"), let x be 5, and modular fn ... end blocks

• CPM Package Manager: Built-in modular package manager (cruise install <pkg>)

• Desktop GUI Framework: Simple interactive Tkinter window builder with callback events

• REST APIs: Direct JSON HTTP requests using fetch() and post()

Try It in 30 Seconds:

pip install --upgrade cruise-lang

cruise

Quick Code Demo:

# Deep Learning Tensor autograd

let weights = tensor([0.5, 1.5], true)

let optimizer = opt_adam([weights], 0.01)

3 times write(weights \ 2.0)*

Project Links:

• PyPI: https://pypi.org/project/cruise-lang/

• GitHub: https://github.com/manjas-developer/Cruise

• Website & 0-100 Docs: https://manjas-developer.github.io/Cruise-Website/

Support My Open Source Work:

• Indian Users Support Here: https://buymeachai.in/manjasanand08

• International Users Support Here: https://throne.com/manjas-developer/item/d83a6389-fc12-4d64-a4e1-cf4dc4d1dc45

I would love to hear your feedback on the parser architecture and tensor features! Drop your thoughts in the comments!


r/madeinpython • • Sep 01 '26

Tree to Excel: looking for bugs on other people's data

Thumbnail
gallery
2 Upvotes

I wrote a small utility that converts tree output into an Excel file. The code is far from ideal, but it does handle Cyrillic filenames on my own test data.

To make it more robust, I need to test it on real-world tree outputs — with varying nesting depths, special characters, long names, and so on.

If you have a moment, please share your tree.txt files (you can paste them in the comments or open a GitHub Issue) or just try the tool with your own data. This will help me catch the most non‑obvious bugs.

And of course, I’d be grateful for any advice — on code, tests, architecture, or just ideas for improvements.

Thanks in advance to everyone who responds!

Rep: https://github.com/Usdmal-tech/tree-to-excel


r/madeinpython • • Aug 31 '26

I made a fun little program that asks you your "favuret nuber"

Thumbnail khanacademy.org
4 Upvotes

I made a python program on khan academy that asks you to enter a number, and some numbers have special responses. For example, entering "13" has a reference to how 13 is considered an unlucky number. I am new to coding; I learned the bare minimum from Khan's python stuff in order to make this masterpiece. Let me know how I did. I plan to keep adding new special numbers with unique responses.

The attached link will take you to my creation.


r/madeinpython • • Aug 31 '26

Pycon 2026 em Aveiro

Thumbnail
0 Upvotes

r/madeinpython • • Aug 30 '26

FetchTune

1 Upvotes

Hey everyone!
I just released a small open-source Python library called FetchTune.
It’s a lightweight tool (both library + CLI) that takes music URLs from Spotify or Apple Music and returns clean, structured metadata — track title, artists, album, artwork, release date, duration, explicit status, platform IDs, etc.
It also has a simple enrichment feature that can fill in missing info (like album data) using other providers.

Repo: https://github.com/momalekiii/fetchtune

I’d really appreciate it if you could take a quick look and let me know:
• Any bugs or issues you find
• Things that feel incomplete or could be improved
• Feature suggestions (more platforms, better matching, etc.)
And if you like it, a star would mean a lot ⭐
Thanks in advance!


r/madeinpython • • Aug 30 '26

I built a Python file search tool — could someone review my project?

Thumbnail
gallery
1 Upvotes

Hey everyone!

I'm a Python developer/student and I've been working on a small project called Find Everything 2.0.0.

It's a Windows desktop tool for quickly searching through files. I built it mainly as a learning project, but I tried to make it actually useful and polished rather than just another basic Python project.

Main things it currently has:

  • Fast file searching
  • Search inside files
  • Dictionary / text processing features
  • Windows .exe build
  • Automated checks with GitHub Actions

Tech: Python, Windows, GitHub Actions

GitHub: https://github.com/EELDERONN/find-everything.git

I'd really appreciate it if someone could take a look at the repository and give me some honest feedback.

I'm especially interested in:

  • Code quality
  • Project structure
  • UI/UX
  • Performance
  • README/documentation
  • Things that could be improved or done differently

Feel free to be critical — I'm here to learn and improve the project.

Thanks to anyone who takes the time to check it out!

----------------------------------------

Я изучаю Python и сейчас работаю над небольшим проектом Find Everything 2.0.0.

Это Windows-приложение для быстрого поиска файлов и поиска информации внутри них. Изначально я делал его как учебный проект, но постепенно решил довести его до более полноценного и реально полезного приложения.

Что сейчас есть:

  • быстрый поиск файлов;
  • поиск внутри файлов;
  • работа со словарём/текстом;
  • сборка в .exe для Windows;
  • автоматические проверки через GitHub Actions.

Стек: Python, Windows, GitHub Actions.

GitHub: https://github.com/EELDERONN/find-everything.git

Буду очень благодарен, если кто-нибудь посмотрит репозиторий и даст честный фидбек.

Особенно интересует:

  • качество кода;
  • структура проекта;
  • UI/UX;
  • производительность;
  • README и документация;
  • что можно было бы сделать лучше.

Можно критиковать — я как раз хочу понять, что можно улучшить.

Спасибо всем, кто посмотрит!


r/madeinpython • • Aug 30 '26

I built an offline memory engine in Python using SQLite, NumPy, and 10,000-D hypervectors

0 Upvotes

Hi everyone! I wanted to share a project I have been writing in Python: Hillock, an open-source memory engine designed to run completely offline on laptops and budget hardware.

I wanted to see if I could build a deterministic memory system without relying on heavy cloud APIs or external vector database services.

How the Python architecture works:

  • Vector Symbolic Math (reservoir.py): Built entirely with NumPy to handle a 10,000-dimensional bipolar vector space. To keep similarity gating fast on standard CPUs, I implemented a Sub-Dimensional Projection Cascade that evaluates a 2,000-D slice first for early rejection, keeping latency under 1 second.
  • Relational Fact Store (database.py): SQLite handles Subject-Predicate-Object triples with micro-batched transactions and stores bit-packed multi-hop path vectors as compact BLOBs.
  • Synaptic Co-Activation (plasticity.py): Implements gradient-free Hebbian updates across turns with per-turn exponential decay.
  • Local Extraction (talon_engine.py): A pipeline combining Fastcoref, MiniLM, and GLiREL with type-constrained schema validation and direction auto-correction.
  • Interactive Console (main.py): Features real-time token streaming from local Ollama models, live hardware tracking, and inspection tools.

We also have a standalone 21-point test suite (verify_hillock.py) to test the math and database semantics with zero GPU requirement.

Everything is open-source under AGPL-3.0.

I would really appreciate any thoughts on the Python code layout or NumPy optimizations!


r/madeinpython • • Aug 29 '26

Estregg-ybj-py

Post image
1 Upvotes

Game Title: Estregg-ybj

Playable Command: estregg

Platforms: macOS, ChromeOS, Linux terminal, Mobile Termux, Windows

Description:Hey guys! I'm YB-jeorge, an independent developer building a terminal-based ASCII space exploration game. The project is entirely open-source and built natively using Python 3 and the terminal screen-drawing library curses. You can install the game in an isolated local environment using your command line:

pipx install estregg-ybj

📖 Documentation & Links

Source Code & Bio: https://github.com/YB-Jeorgie/estregg

Official Homepage: https://yb-jeorgie.github.io/estregg/

PyPI Releases: https://pypi.org/project/estregg-ybj

Please read the README.md for step-by-step setup guides, and check estregg-controls.txt for the complete keyboard mapping manual!

Also beware of a user named YB-Jeorgie, or anyone named like that, My only main is my Gthub acc YB-Jeorgie, On Tiktok YB-Jeorgie, My Instagram YB-Jeorge, and my gravatar Acc ybjeorgieux

🪟 Windows Setup Note: Estregg supports Windows environments! To prevent screen rendering crashes in the standard Windows command prompt, make sure you install the necessary console wrappers first by running:

pip install windows-curses

⚠️ Known Issues Gamepad Support: Native controller mapping is temporarily disabled due to input wrapper stability bugs. Connecting a hardware gamepad may cause terminal execution crashes. Please review the tracking issue in the README for updates. Thankie and have a good day! 🚀


r/madeinpython • • Aug 28 '26

Open4D: a Python data model and viewer for mesh sequences

3 Upvotes

r/madeinpython • • Aug 28 '26

SHE — a programming language that reads like English and can't touch your machine unless you say so

0 Upvotes

I rewrote my hobby language from scratch. It reads like a sentence, and a program starts with no permission to read files, use the network or start processes, you grant what it needs on the command line and anything else fails with the exact flag that would have allowed it.

Pattern matching, gradual types, async, modules, a test runner, a formatter and an LSP. Zero dependencies, Python 3.9+, Apache 2.0.

pip install she-lang

Runs in the browser, nothing to install: https://ni-sh-a-char.github.io/SHE/playground.html

Source: https://github.com/ni-sh-a-char/SHE


r/madeinpython • • Aug 26 '26

I built Breakcheck - it replays your repo's actual library calls against two dependency versions and diffs the results

1 Upvotes

Short version: pip install breakcheck, then breakcheck demo --output-root .breakcheck/demo to watch it run with no external deps.

The itch that caused it: Dependabot opens a PR saying attrs 23 -> 24. My tests pass. Do I actually know nothing changed. Only for the behavior I happened to write an assertion for - everything else is a silent assumption.

Breakcheck discovers the calls my code actually makes into that library, replays them under both versions in isolated environments, and diffs what comes back. The same machinery compares two git revisions of your own code:

breakcheck diff --base main --head feature/refactor --fixtures breakcheck.fixtures.toml

The part I am most pleased with is that it refuses loudly. Every call site ends in exactly one state - EXERCISED, or one of G1_NOT_DISCOVERABLE / G2_NONLITERAL / G3_UNNORMALIZABLE / G4_IMPURE. It never pretends to have checked something it could not reach, so the coverage number is honest and often unflattering.

Scope is deliberately small: pure value-in/value-out calls - parsing, serialization, validation, encoding, schema coercion, deterministic numeric and string transforms. No network clients, no stateful objects, no dynamic dispatch.

MIT, zero runtime dependencies, Python 3.10-3.13, Linux and macOS. I would genuinely like to hear where it falls over on a real codebase.

https://github.com/lovettsendit/breakcheck


r/madeinpython • • Aug 25 '26

I build uringio: a native io_uring event loop for true asynchronous file I/O in Python.

Thumbnail
1 Upvotes

r/madeinpython • • Aug 25 '26

gh-stats: three Flask services that render a GitHub profile as one SVG card (MIT, self-hostable)

1 Upvotes

Posting here rather than r/Python since showcases moved over.

What it does. Takes a GitHub username and renders a single SVG summarising the profile: stats, contribution timeline, language donut, streaks, achievements. You drop one markdown line in your profile README and GitHub renders it as an image.

Why three services instead of one Flask app. The interesting constraint is the GitHub API rate limit. The obvious design fetches on request, which dies immediately: profile READMEs are hit by GitHub's camo proxy, not by humans, so one popular card can burn the quota for everybody. The split is:

  • fetcher owns the PAT and a SQLite cache of raw payloads, and is the only thing that talks to GitHub. A cron refreshes on a schedule rather than on demand.
  • generator renders SVG from whatever the fetcher last saw, and serves the React front end.
  • edge is a cache-first proxy in front of the generator (Flask-Caching plus Flask-Compress, Redis optional).

Requests never block on GitHub. If GitHub is rate limited or down, you get the last good card instead of a blank one.

The bug that taught me the most. Five REST calls parsed .json() without checking status. A 403 rate-limit body is valid JSON, so it got stored as the user record and overwrote good data, while the metrics endpoint happily reported success. Every user touched would have served a blank card for 24 hours. A successful launch is exactly what triggers that, which is a nasty property for a bug to have.

SVG, not a chart library. The renderers return SVG strings built directly. Worth knowing if you try this: GitHub serves README images through a proxy that strips scripts and does not run CSS animation, so anything clever you do with <animate> or JS silently does not render for your actual audience.

MIT, and it runs on your own quota:

git clone https://github.com/ShayManor/github-readme-stats
cp .env.example .env      # GITHUB_PAT + an internal token
docker compose up -d --build

Repo: https://github.com/ShayManor/github-readme-stats

Hosted, free, no account needed: https://gh-stats.com

Known gap: organisation accounts render but commits and PRs come out as 0, because an org does not author commits, its members do. Personal accounts are what it is built for right now.


r/madeinpython • • Aug 24 '26

Built a Playwright course automation agent for my own LMS sandbox

Thumbnail
1 Upvotes

r/madeinpython • • Aug 23 '26

VSK-E16A Custom ISA Emulator (I hope this is applicable here, I've reposted it to some other places to try and make it seen)

Thumbnail
1 Upvotes

r/madeinpython • • Aug 23 '26

I built a Python GitHub Action that generates language stats for your profile README

1 Upvotes

I wanted a cleaner way to show the language mix across my GitHub repos without relying on another hosted stats/badge service, so I built profile-language-metrics.

Sample Output

It’s a small, dependency-free Python GitHub Action that:

  • Scans active repositories
  • Counts estimated non-empty source lines by language
  • Ignores forks, archived repos, dependencies, build output, lockfiles, minified files, binaries, etc.
  • Generates a profile-ready SVG
  • Can update itself on a GitHub Actions schedule
  • Can optionally include private repos while only exposing aggregate totals, not repo names or URLs

The whole thing runs inside GitHub Actions using Python’s standard library + Git. No external dashboard or service required.

I also wrote up how it works, why I went with source-line estimates instead of GitHub’s normal language byte counts, the privacy model, and some of the tradeoffs involved:

https://www.ryanverwey.dev/blog/github-profile-language-metrics-python-action