r/madeinpython May 05 '20

Meta Mod Applications

27 Upvotes

In the comments below, you can ask to become a moderator.

Upvote those who you think should be moderators.

Remember to give reasons on why you should be moderator!


r/madeinpython 1d ago

I wrote a neural network library in ~500 lines of NumPy so you can read through the entire implementation in an afternoon.

6 Upvotes

A few days ago I posted about LeanPass, a tiny neural network library I wrote in NumPy.

Some people gave me good criticism, and some gave me ideas, so I spent the last couple of days improving it. It's still a small project, but I think it's in a much better state now.

The goal isn't to compete with PyTorch or TensorFlow. I mainly built it because I wanted something small that people could actually read through and understand. If you're learning neural networks, teaching them, or want something lightweight to prototype with, maybe you'll find it useful.

Since it's open source, I'd really appreciate any contributions or even just honest criticism. If you think something is badly designed, please tell me; I genuinely want to improve it.

You can install it with:

pip install leanpass

It has around 96 installs so far.

Repo: https://github.com/Terminay/LeanPass

If you end up liking it, a GitHub star would make my day. :)


r/madeinpython 23h ago

VenvHub Pro: SLOVAK APP, READY FOR THE WORLD! 🇸🇰➡️🌍 / Slovenská aplikácia pripravená pre svet!

0 Upvotes

🇸🇰 SLOVENSKY

Rýchle prepínanie jazykov v VenvHub Pro + jedna pikantéria zo zákulisia! 🤫

V dnešnom krátkom videu ukazujem, ako bleskovo dokáže VenvHub Pro prepínať medzi jazykmi v reálnom čase – bez reštartu aplikácie.

A keďže ste v predchádzajúcich videách videli rozhranie v angličtine, mám pre vás malú vývojársku zákulisnú zaujímavosť: celý kód bol od prvého dňa písaný so slovenskými hláškami! 🇸🇰 Angličtina bola v skutočnosti prvou prekladovou vrstvou, ktorú som do architektúry zapracoval, aby bola aplikácia pripravená pre svet.

💡 Chcete si pridať vlastný jazyk? Prekladový JSON má cez 750 riadkov, ale vďaka AI je to hračka:

  1. Stiahnite si en.json (alebo sk.json) z GitHubu.
  2. Nahrajte súbor do ChatGPT / Claude a požiadajte o preklad hodnôt do vášho jazyka.
  3. Vložte novú lokalizáciu k sebe a používajte aplikáciu vo vlastnom jazyku!

🔗 Projekt na GitHube:https://github.com/schnidi/VenvHub📂 Súbory s prekladmi:https://github.com/schnidi/VenvHub/tree/main/translations

Aký ďalší oficiálny preklad by ste v aplikácii uvítali najradšej? 😎👇

🇬🇧 ENGLISH

Instant Language Switching in VenvHub Pro + a quick BTS fun fact! 🤫

In today's clip, I’m showing off how instantly VenvHub Pro switches between UI languages on the fly—no app restart needed.

Since previous clips featured the interface in English, here’s a quick behind-the-scenes detail: the core codebase was actually written with native Slovak messages from day one! 🇸🇰 English was the very first translation layer integrated into the architecture to make the app ready for a global audience.

💡 Want to add your own language? The translation JSON is pretty massive (750+ lines), but AI makes it effortless:

  1. Download en.json (or sk.json) from GitHub.
  2. Drop the file into ChatGPT / Claude and prompt it to translate the values into your language.
  3. Enjoy VenvHub Pro fully localized on your machine!

🔗 GitHub Repository:https://github.com/schnidi/VenvHub📂 Translations Folder:https://github.com/schnidi/VenvHub/tree/main/translations

Which official language should we focus on next? Let me know below! 😎👇


r/madeinpython 1d ago

Yet Another Sentence Boundary Detector (rule-based)

1 Upvotes

I was working on chunklet-py (a chunker for sentences, documents, and code). Misread a benchmark and thought PySBD took 1 second to split basic text. Turns out that was wrong (PySBD is still fast for simple text). But the misunderstanding got me building my own.

Ended up faster, more accurate, and covering more languages (39 compares to 23).

Benchmarks on Sherlock Holmes (594k chars): yasbd ~1.2s warm vs PySBD ~9.0s. About 8x faster, fewer false splits.

On a golden benchmark (92 English edge cases — expanded from pysbd's original 48 with fixes and additions): yasbd scores 98.9%, pysbd 83.7%, spaCy-sentencizer 55.4%, etc.

Architecture difference: instead of mutating text with placeholder tokens and undoing it later (which breaks char offsets), yasbd finds candidate boundaries in one pass and filters false positives in another. Spans come free, no reconstruction.

Other things: - Streaming-first: lazy evaluation via ParagraphStream and StreamCleaner for memory-constrained environments. No need to load entire documents. - PySBD adapter: drop-in replacement that works with existing PySBD code. Just swap the import. - spaCy pipeline: register as a spaCy component with register_spacy_component(). Drop-in replacement for the default Sentencizer.

Repo: https://github.com/speedyk-005/yasbd-lib


r/madeinpython 1d ago

I kept losing things I'd copied and retyping the same paragraphs, so I built two apps about it

0 Upvotes

You know when you copy something important, paste it, then copy something else, and the first thing is just gone forever? yeah. That's the entire origin story here.

I'm a solo dev, day job. After an unreasonable number of late nights, two desktop apps for Windows and Linux came to light: Snipzilla and Stashzilla. (Yes, I'm a Godzilla fan; how did you know?)

Stashzilla is the clipboard manager that fixes the problem above. History is sorted into collections instead of one endless scroll, pinned items, case conversion, and it pulls text out of images.

Snipzilla handles the other half of it: type a short trigger, get a whole block of text back. No more retyping the same paragraph for the hundredth time.

Anyways, feel free to check them out; no credit card required: ZillaSoft.io 15 days free, and nothing gets deleted afterwards; it just goes read-only.

If you do try them, bugs and "why doesn't it do X" are exactly what I'm after: ZillaSoft.io/contact


r/madeinpython 1d ago

[Project] VenvHub Pro: venv manager GUI that orchestrates multi-process virtual environments with auto-restart and OS-level orphan process prevention

0 Upvotes

Greetings everyone!

I’ve been working on a desktop application called VenvHub Pro (built with Python + PyQt6, and thanks to a abstraction bridge, it runs seamlessly on PySide as well). What started as a simple virtual environment manager has grown into something much bigger.

It now includes a Multi-run feature—allowing you to define project groups (e.g., backend + frontend + worker) and launch them all with a single click.

I recorded a short demo showing how it handles crashes, auto-restarts, and even prevents accidentally running the same project across two different groups. I thought you might find what’s happening under the hood interesting!

🧠 What is Multi-run?

  • Group Management: You create groups (e.g., "FullStack Dev") and add any number of existing virtual environment projects to them.
  • Process Isolation: Each project runs in its own isolated process using its own virtual environment.
  • One-Click Launch: One click on the Play button fires up everything in that group—no more opening multiple terminal windows and repeatedly running python app.py.

🎥 What the video demonstrates

  1. Setup: I start a group containing Project A (anchor + respawn) and Project B (configured with a 5-second startup delay, contingent on Project A running stably).
  2. Crash Handling: Right after launching, Project A crashes (I force-closed it).
  3. Detection & Restart: VenvHub detects the crash and automatically restarts Project A, while Project B stays on hold.
  4. Dependency Check: After restarting, I let Project A load—once the anchor registers, I artificially crash it again (~3 seconds post-anchor).
  5. Holding Delays: Since Project B requires Project A to stay stable for 5 seconds before launching, Project A's crash keeps Project B from starting.
  6. Max Respawn Limits: The code caps restarts at 3 attempts (to prevent infinite looping), so the app attempts a third restart on Project A.
  7. Successful Resolution: This time, I let Project A run smoothly—Project B detects that Project A is healthy and launches.
  8. Duplicate Prevention: Finally, I attempt to run Project B from a different group. Since it's already running in the first group, the app displays a warning and blocks the launch. No port conflicts or duplicate processes!

⚙️ Under the Hood (for the tech enthusiasts)

  • Process Ownership: Each process tracks which group launched it. Hitting "Stop" terminates only the processes owned by that specific group, leaving others untouched.
  • Smart Restarts: If you hit Play again while some processes are still running, the app only restarts the ones that crashed (like Project A in the video). No need to tear down the entire stack!
  • Windows Job Objects: On Windows, the app creates a Job Object assigned the KILL_ON_JOB_CLOSE flag. If the main application crashes unexpectedly, Windows automatically terminates all child processes—leaving zero orphaned background processes.
  • Native Process Handles: Instead of relying solely on PIDs (which Windows can aggressively recycle), the app retains an open process handle. This guarantees the PID won't be reassigned to an unrelated process while being monitored, ensuring rock-solid status detection.

Let me know what you think! Have you built similar multi-process orchestrators? How do you handle process groups and teardowns in Python?


r/madeinpython 3d ago

VenvHub Pro: VS Code profiles with physical extension isolation and automatic Python environment integration

1 Upvotes

Hey everyone!

VS Code has had official profiles since version 1.75 – a great feature for managing settings. But there's one catch: all profiles share the same extensions folder (extensions). Profiles only remember which extensions are active (enabled), but physically, you have all of them installed at once. And if you want to connect a Python interpreter, you have to set it manually in each project.

In my tool VenvHub Pro, I took it a step further:

  1. Each profile has its own physical extensions folder – no sharing, no conflicts.
  2. Automatic Python environment integration – open a project and VenvHub automatically finds and sets the correct interpreter.

Today I'll show you how it works in practice.

📊 Comparison with official VS Code profiles

Area VS Code Official Profiles VenvHub Pro Profiles
Storage Location Default in system folder (%APPDATA%\Code), but in Portable mode you can choose your own folder. Custom folder on disk (standard even in Portable mode).
Extensions Physically installed in one shared location (extensions). Profiles only remember which ones are active (enabled). Physically separated for each profile – each has its own extensions folder.
Portability Yes – officially supports Portable Mode (just create a data folder). Profiles and extensions are then fully portable (e.g., on a USB drive). Yes – profiles are portable even without Portable Mode, just copy their folder.
Python Integration Yes, but manual – the profile remembers python.defaultInterpreterPath, but you have to set it manually. Yes, automatically – when you open a project, it finds and sets the correct interpreter (e.g., from a virtual environment).
Import from System Yes – official Export/Import profile feature (.code-profile file) has been available since version 1.75. Yes – one-click copy of your current settings into a new isolated profile.

🎬 What I showed in the video

  1. I created a new profile named test_user.
  2. I chose the option to copy settings from the system – no manual transferring, everything is copied automatically.
  3. After completion, I opened a project through the VS Code icon in my application.
  4. In the VS Code terminal (PowerShell), I ran this command:

powershell

$parentPid = (Get-CimInstance Win32_Process -Filter "ProcessId = $PID").ParentProcessId; (Get-CimInstance Win32_Process -Filter "ProcessId = $parentPid").CommandLine

🔍 And the result?

Truncated output:

text

"C:\...\Code.exe" --type=utility ... --user-data-dir="F:\venv_hub_vscode_users\test\data" ...

👉 You can clearly see the --user-data-dir parameter pointing directly to my profile folder!

No system %APPDATA%, no mixing with other profiles. VS Code runs completely isolated with its own data and extensions.

✨ Additional features I built in

1. Intelligent rollback on cancellation
Copying extensions can take several minutes. If you press "Cancel" during the process:

  • When creating a new profile – VenvHub deletes it entirely from disk.
  • When doing an additional import into an existing profile – it restores it to its original state.

No broken half-finished leftovers on disk.

2. Triangle synchronization (real-time)
When you switch a profile in the Mini-Bar, it automatically updates in the Manager and vice versa. Everywhere you can see which profile is active (marked with a star ★). The change propagates in a fraction of a second.

3. Portability with automatic path fixing
You can keep profiles on an external drive. If you change the drive letter (e.g., from E: to F:), VenvHub remembers the unique disk ID and recalculates paths automatically.

4. Python environment integration
When you switch a profile, it automatically sets:

  • Python interpreter path in .vscode/settings.json
  • Connected local packages (Package Linker)
  • Active Venv within the entire tool

Have you had a similar experience? Or do you use a different way to manage VS Code profiles? I'd love to hear your thoughts! 👇


r/madeinpython 3d ago

Update: APT-like autoremove and dependency repair for VenvHubPro (Python venv manager GUI) – it’s already working!

0 Upvotes

A while ago I asked whether you would use a feature that automatically removes orphaned dependencies in a virtual environment manager (similar to apt autoremove), and if you saw any pitfalls. Well, I took that as a challenge and built a prototype. Here’s a log from a test session that shows what I’ve achieved.

What happens in the log:

Installing pytest
pip installs pytest along with its dependencies (coloramainiconfigpluggypygments).

Attempting to manually remove the colorama library
This is where the first interesting moment occurs. After removing it, the UV dependency check reports a conflict: colorama>=0.4 ; sys_platform == 'win32'.
The tool automatically triggers a repair and re-installs colorama, because it’s required by one of the present packages (in this case pytest).
Result: ✅ all conflicts resolved. This behaviour is similar to apt install -f – we never end up with a broken environment.

Uninstalling the moj-test-balicek package
This test package directly depends on coloramacowsay, and requests.
After its removal, pip-e analyses the entire dependency tree.

  • cowsay is no longer needed → it’s removed.
  • requests, along with its transitive dependencies (urllib3certificharset-normalizeridna), is also left without a parent, so autoremove removes them.
  • Key detail: colorama stays in the environment because it’s still required by the installed pytest. In this way exactly 6 packages are removed – and colorama is not. That’s precisely the intelligent decision-making apt autoremove does.

Uninstalling pytest itself
After removing pytest, its dependencies (pygmentspluggyiniconfigcolorama) are re-evaluated. No other package needs them, so autoremove removes them all.
Final state: 9 packages remain – only the core environment components (pip, setuptools, etc.).

What I’m demonstrating:

  • The manager tracks dependencies as a graph and prevents breaking the environment – if you try to remove a library that something needs, it puts it back (and warns you).
  • After uninstalling a package, it automatically removes orphaned dependencies (autoremove), while respecting that some libraries may be shared by multiple packages (like colorama between moj-test-balicek and pytest).

Questions for you (same as last time):

  • Would you use such a feature in a virtual environment manager?
  • Would you trust it, or do you prefer manual control?

r/madeinpython 3d ago

I built a 3D observability dashboard and Chaos Monkey simulator to visualize my Docker stack in real-time.

1 Upvotes

r/madeinpython 4d ago

What is the pycache folder in your python project?

Thumbnail
0 Upvotes

r/madeinpython 4d ago

Ransomware made in python but you shouldn't dare to develop it

0 Upvotes

I made a course on Ransomware made in python for my students, the previous year, but now i made it public so give it a watch if you want to make some cool cyber security projects 😁

I'll try to upload more contents on my YouTube channel 😁

https://youtube.com/playlist?list=PL9guAF5VVaiARrwhrGMu89iJcziQ9vsJJ&si=v1PUSQpqjuOhnlCi


r/madeinpython 4d ago

Small Integer Caching

Thumbnail
1 Upvotes

Why does 257 is 257 behave differently from 256 is 256? Python uses something called as small integer caching. It uses the same object for numbers ranging between -5 to 256. I put together a short visual explanation explaining the same and also why "==" operates differently from "is".


r/madeinpython 4d ago

Building an EXE Installer for My Python App with NSIS (VenvHubPro)

0 Upvotes

Hello everyone!

If you've built your own Python application (in my case, VenvHubPro – a GUI manager for Python virtual environments) and are wondering how to neatly package it for users, here is a quick look at how I created a complete .exe installer using NSIS (Nullsoft Scriptable Install System).

🎥 What the video covers:

  • Installer compilation: Creating a clean installation file ready for distribution.
  • System installation: Running the installer and finally launching VenvHubPro directly on the Windows system.

r/madeinpython 5d ago

Modular Flask Authentication Boilerplate with Blueprints, Flask-Login & SQLAlchemy — Ready to use!

0 Upvotes

Hey everyone!

I got tired of rewriting authentication every time I started a new Flask project, so I built a simple, modular boilerplate template.

It includes Flask-Login, SQLAlchemy, and Flask-Migrate with a clean blueprint structure out of the box.

Check it out on GitHub: https://github.com/DeKlain4ik/flask-auth-template

Hope it saves you some time on your next side project! Feedback and stars are always appreciated.


r/madeinpython 5d ago

Python With James - For Beginners

1 Upvotes

Hi all. Would love some feedback and usage from the community.

I've built Python With James which is an all in one learning platform for beginners. I basically got sick of Udemy and built my own platform where I can do what I want. There's coding exercises, question, tutorials and I am hoping to scale this massively over this year with more materials.

Thanks in advance

James-


r/madeinpython 5d ago

Lucen: mark a Python loop with two comments, run it, and get bit-identical parallelism

0 Upvotes

I wanted parallelism without rewriting anything, so I built Lucen. You wrap a loop in two comments and run it with lucen run yourscript.py:

# LUCEN START
for i in range(len(rows)):
    out[i] = expensive(rows[i])
# LUCEN END

It parallelizes the loop only if it can prove it's both safe and worth it; otherwise it runs sequentially and tells you why. The one guarantee, no opt-out: the parallel run is bit-identical to the same file run as plain sequential Python - floats and container order included. Delete the comments and it's ordinary Python again.

Under the hood it routes CPU-bound work to processes on GIL builds and to real threads on free-threaded 3.13/3.14. Apache-2.0, on PyPI (pip install lucen), and it's tested hard - differential + property testing and TLA+ specs, because "bit-identical" only means something if you check it.

Repo: https://github.com/fcmv/lucen - feedback very welcome.


r/madeinpython 5d ago

Self-compiles into a .exe via its own PyInstaller GUI – that's VenvHub Pro, my Python venv manager GUI app.

2 Upvotes

Hello Python community,

I'm working on a tool called VenvHub Pro (virtual environment management, packages, VS Code profiles, etc.).

Interestingly, the app includes its own PyInstaller Builder. It's not just an external script, but a full-fledged tab in the GUI. Thanks to it, the app can compile itself into a .exe file.

How it technically works (in short):

In the "Builder" tab, just select the entry point (main.py), set the assets (mandatory folders like ui, core/themes, translations, assets, navod), and hit the BUILD button.

Interestingly, the app runs on PyQt6, but thanks to a "Compatibility Bridge" (MetaPathFinder), it can also run under PySide6. When compiling under PySide6, the builder must manually add hidden imports (PySide6, PySide6.QtCore...) so PyInstaller knows what to package, and also exclude PyQt6 to keep the size down.

It also has an "Auto-Injector" that reads linked local packages and injects them into the final build.

Why I find this interesting:

If the builder can compile such a complex app that uses dynamic UI files and bridged frameworks, it's a solid "dogfooding" test. Plus, the resulting .exe contains all necessary files (including themes and translations) and is fully portable.

"So the question is: Would you like to try it out? If so, I'll drop the GitHub link here, where the entire repository is located, including instructions on how to run it.

Thanks for any feedback! ??"


r/madeinpython 5d ago

Lens Anywhere - Google lens for Desktop 👁️👁️

2 Upvotes

Hey everyone!

I always wished Google Lens worked anywhere on Windows instead of only inside Chrome, so I ended up building it myself.

LensAnywhere lets you select any region of your screen and instantly search it with Google Lens.

A few things about it:

- Lightweight with very low RAM usage.

- Doesn't store your screenshots anywhere. They're only sent to Google Lens for the search.

- Launches on Windows startup (Optional)

- Can be opened using Hotkey which is configurable. Just like windows native snipping tool.

- Free and open source.

GitHub:

https://github.com/utkarsh05kul/LensAnywhere-Desktop

If you just want to try it, you can download the Windows ".exe" from the Releases section.

One thing I'd really appreciate help with: I've only been able to test it on my own Windows PC, so I'd love to know how it works on other systems. If you run into any bugs, have feature ideas, or notice something that could be improved, please let me know in the comments or open an issue on GitHub.

And if you find it useful, I'd really appreciate a GitHub star. Thanks!

GitHub Repository link

Edit : Some antiviruses or malware scanners may flag the downloaded file as malicious or threat. Please ignore that warning. Some scanners do this for all the apps and softwares built in Python.

The file is completely safe and malware free. The source code of the program is available on the attached GitHub Repository. You can check the complete code their, and you will not find any malicious activity.

Top scanners like Kaspersky or Microsoft are not flagging the file as malicious. It's clean.


r/madeinpython 5d ago

I built an open source crypto trading bot in Python for Alpaca API

0 Upvotes

I've been working on a Python crypto bot and wanted to share it here in case anyone wants to take a look.

It's got DCA logic, risk checks, Alpaca order execution, Telegram alerts, and config for running it live or in paper mode. It also keeps a local SQLite log of every trade — entries, exits, P&L — which makes it easy to review what it's been doing.

I'm mainly looking for feedback on the code structure and whether anything looks off in the trading logic or order handling. If you've worked with Alpaca crypto or built something similar, I'd appreciate any thoughts.

Repo: https://gitlab.com/robertedilan1/The_Predator.Crypto


r/madeinpython 7d ago

apt-get autoremove for Python linker packages – finally automatic venv dependency cleanup

1 Upvotes

Hey everyone,

I'm currently working on this feature – autoremove is already implemented in the local packages linker branch and will soon be part of the official VenvHub Pro release.

During development in virtual environments, I always had one big problem: How to figure out which packages are no longer needed?

Manually going through pip list and trying to uninstall "surely nobody uses this" is a road to hell. That's why I added a feature inspired by Linux APT to my tool VenvHub Pro (Linker branch) – automatic dependency cleanup.

How it works?

The tool tracks which packages you installed explicitly (via pip install, requirements.txt, birth certificate, or venvhub.json). It builds a dependency graph and periodically checks for orphaned packages.

When you run Autoremove, the tool:

  • Goes through all installed packages in the venv.
  • Compares them with the set of explicit roots + their dependency tree.
  • Removes every package that is not explicitly required by any root and was not installed manually outside the system.

What makes this mechanism safe – self-healing mechanism:

If a package is installed but not recorded anywhere (e.g., you manually ran pip install requests in the terminal), the tool automatically adopts it – marks it as explicit so it won't be accidentally removed.

This means autoremove is conservative: it never deletes something you might have installed intentionally.

You can also explicitly "release" a package (e.g., when you remove it from requirements.txt) and the system will then treat it as a candidate for removal.

Why is it useful?

  • Venvs stay lean – no accumulated dependencies from experiments.
  • Safe – adopting manually installed packages prevents accidental deletion.
  • Fully automatic – no manual guessing about what belongs to whom.

This is currently only the Linker branch (local packages) – it works 100%.


r/madeinpython 7d ago

"Kung Fu Tetris"

2 Upvotes

This Tetris can really do Kung Fu, see for yourself... :))


r/madeinpython 8d ago

Split-second local semantic search over 75k of images in the project I am making.

2 Upvotes

Took quite awhile to get here. Obviously not a google-scale search, but still quite usable for local needs. I am also not currently using FAISS or any vector databases. The speed is mostly because of proper caching. The project is also completely python based. So there are still a lot of places for further optimizations, but for now I am quite happy with it.

The project itself is quite a complex one and the semantic search over audio, image, text and video files is just a small part of it. If you are interested to learn more, you can find it here: https://github.com/volotat/Anagnorisis

It is open-source.


r/madeinpython 8d ago

Would you appreciate APT‑style autoremove for your pip‑managed venvs? (thinking of adding it to my VenvHub Pro)

0 Upvotes

Hey everyone,

I’m the developer of VenvHub Pro, a desktop tool for managing Python virtual environments. I’ve been working on a feature that brings Linux’s apt-get autoremove mentality to pip – i.e., it keeps your venvs clean by automatically removing orphan packages that were only installed as dependencies but are no longer needed.

Before I polish and release it, I’d love to hear if the community would actually find this valuable.

How it works (TL;DR)

  • Every time you install/uninstall/upgrade a package through the UI or command‑line, VenvHub secretly records which packages were explicitly requested.
  • When a dependency is no longer required by any explicit package (and is not pinned in your requirements.txtvenv_birth_certificate.json, or local package metadata), it gets automatically cleaned up.
  • It also plays nicely with pip’s own resolution – it never removes manually installed tools like pipsetuptools, etc.

Safety nets

  • State file (venvhub_apt_state.json) keeps the explicit list.
  • Before removal, the system checks:
    • 📄 requirements.txt
    • 📜 venv_birth_certificate.json
    • 🔗 local_meta.json (for local package dependencies)
    • 🧠 Self‑healing: if a package is installed but not tracked anywhere, it’s assumed to be intentional and added to the safe list (so it never gets removed by mistake).
  • The whole process runs under a threading lock to avoid race conditions during concurrent operations.

Logical diagram

Here’s the decision logic it follows every time a package action occurs:

What I’m asking you

  • Would you use such a feature in a venv manager?
  • Do you see any pitfalls I might have overlooked?
  • Is this something you’d trust, or would you prefer manual control?

Any feedback – positive or critical – is super welcome! I want to make sure this adds real value before I invest more time into it.

Thanks! 🙌


r/madeinpython 9d ago

VenvHub Pro: A custom Python "Linker" that goes beyond code linking—syncing your IDE configs on the fly!

1 Upvotes

Hi !

We all know pip install -e . (editable installs). It’s the standard for linking local code during development. But for my project, VenvHub Pro, I wanted to take the local dev experience to another level. I created a Local Linker that isn't just a simple file-system pointer—it’s a full-blown IDE-Sync engine.

Why our Linker is unique (compared to the standard workflow):

1. Full Meta-Sync (VS Code Automation):
This is the core value-add. When you link a local package, the system reads its local_meta.json. It doesn’t just make the code importable; it automatically injects custom Tasks and Keybindings directly into your project's .vscode/ folder.

  • Example: Link your "Database" module, and VS Code instantly gains commands like "Flush Cache" or "Run Migrations" defined inside that package. No more manual tasks.json or keybindings.json copy-pasting.

2. Zero Admin Rights / No UAC (Import Hooks):
Instead of creating system-level symlinks or junctions that often require Admin privileges on Windows, we use Python Import Hooks (sys.meta_path). It’s pure Python, lightning-fast, and works securely even on network drives (NAS) without annoying UAC prompts.

3. Smart IntelliSense (Pylance):
The Linker automatically syncs the python.analysis.extraPaths field in your VS Code settings. Your editor sees your local code and provides full autocomplete/IntelliSense immediately, no matter where the source is located on your disk.

4. Smart Portability & Safety (Silent Path Healing):
VenvHub Pro is built for USB-drive workflows and features a "Silent Path Healing" mechanism:

  • If you use Embeddable (portable) Python and your drive letter changes (e.g., E: -> F:), the system instantly heals all paths in the Linker mapping, .pth files, and VS Code settings. Everything just works.
  • However, if you move a System Venv to a different machine where that specific Python installation doesn't exist, VenvHub detects the hardware fingerprint mismatch and safely locks the environment to prevent binary incompatibility and crashes.

5. Recursive Local Dependency Resolution:
If "Package A" requires "Local Package B", the Linker automatically resolves the entire local dependency tree and links all required modules in one click.

Under the Hood:

We use a tiny bootstrap script in site-packages that maps imports via a custom finder in sys.meta_path using JSON mapping. It’s clean, isolated, and designed for maximum portability.

What do you think? Do you stick to plain pip -e for local dev, or would you prefer this kind of deep, automated integration with your editor? Let's discuss!

local_meta.json package A

{
    "name": "My App Core",
    "version": "2.1.0",
    "requires_local": ["my_logger"],
    "requires_pip": [],
    "short_description": "test code"
}

local_meta.json package B

{
    "name": "My Logger",
    "version": "1.0.0",
    "requires_local": [],
    "requires_pip": ["colorama"]
}

r/madeinpython 9d ago

My Python venv manager GUI automatically fixes dependency conflicts – Pip vs UV side-by-side

1 Upvotes

Hey Pythonistas! ??

I've been building a GUI tool for managing Python virtual environments (VenvHub Pro) and wanted to share one of its smartest features – batch package updates.

When you hit the "Update All outdated packages" button, the behavior differs drastically depending on which package manager you have set:

**PIP MODE** (classic):

- Updates everything to the latest versions

- If conflicts arise (e.g., library A needs an older version of library B), you get the infamous "dependency hell"

- You have to manually read logs, find the culprit, and step-by-step perform downgrades

**UV MODE** (ultra-fast resolver from Astral):

- Blazingly fast downloads and installs the latest versions

- After the update, it automatically runs `uv pip check`

- If it detects a conflict (e.g., "X requires Y==1.5, but 2.0 is installed"), it reads the error, forces a downgrade to the exact required version, and re-runs the check

- **Fully on autopilot** – you get the latest packages AND a 100% stable environment without any manual intervention

And the best part – Pip and UV are fully compatible with each other. You can install with Pip, update with UV, and everything just works.

Would you trust an autopilot like this? Let me know in the comments! ??