r/madeinpython • u/super1017639 • 16h ago
r/madeinpython • u/AgentArlo • 12h ago
Built a marketing tool to turn our Python SDK’s documentation and code snippets into narrated videos
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 • u/spidertyler2005 • 20h ago
I made OpenPluginLoader- a general purpose plugin loader for applications built in Python
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 • u/AppAesthetics • 7h ago
Python — runs real CPython in WebAssembly (Pyodide) on perchance
🐍 Python — runs real CPython in WebAssembly (Pyodide), with 200+ packages available: numpy, pandas, scikit-learn, matplotlib, requests, regex, sqlite3...
First use of a package loads it automatically, so the basics are instant. 🟨 JavaScript — a sandboxed iframe with console output and a live DOM you can manipulate.
🌐 HTML/CSS — instant rendering with a live preview pane.
17 built-in example programs to learn from (data viz with matplotlib, web scraping, OOP, DOM animations, responsive design...).
Stop buttons for runaway loops (we've all been there). Dark neon UI, comments section, zero account required.
The math behind it: everything runs client-side — your code never leaves your machine. Free, no install, no server.
Try it here: https://perchance.org/ai-code-builder
Feedback very welcome — especially which packages/examples you'd want next. If there's interest I'll add more tutorials, more packages, and maybe a save/share feature.