Python Daily
2.57K subscribers
1.48K photos
53 videos
2 files
38.9K links
Daily Python News
Question, Tips and Tricks, Best Practices on Python Programming Language
Find more reddit channels over at @r_channels
Download Telegram
Set Up User Authentication in Minutes — With or Without Managing a User Database


Github: lihil
Official Docs: lihil.cc

## What My Project Does

As someone who has worked on multiple web projects, I’ve found user authentication to be a recurring pain point. Whether I was integrating a third-party auth provider like Supabase, or worse — rolling my own auth system — I often found myself rewriting the same boilerplate:

- Configuring JWTs

- Decoding tokens from headers
- Serializing them back
- Hashing passwords
- Validating login credentials

And that’s not even touching error handling, route wiring, or OpenAPI documentation.

So I built lihil-auth, a plugin that makes user authentication a breeze. It supports both third-party platforms like Supabase and self-hosted solutions using JWT — with minimal effort.

### Supabase Auth in One Line

If you're using Supabase, setting up authentication is as simple as:

from lihil import Lihil
from lihil.plugins.auth.supabase import signin_route_factory, signup_route_factory

app = Lihil()
app.include_routes(
signin_route_factory(route_path="/login"),
signup_route_factory(route_path="/signup"),
)

Here signin_route_factory and signup_route_factory generate the /login and /signup routes for you, respectively. They handle everything from user registration to login, including password hashing and JWT generation(thanks to supabase).

You can customize credential type by configuring sign_up_with parameter, where you might want to use phone instead of email(default option) for signing up users:

These routes immediately become available in your OpenAPI docs (/docs), allowing you to

/r/Python
https://redd.it/1kwftsz
Django lovers, did you try Litestar?

Hi there!

I've worked with Django for many years and loved it. Then I tried FastAPI to make a fair comparison and despite some positive points (like strict typing), I was a bit disapointed by the overall experiance because I constantly needed to reinvent the wheel for no real reason.

Then I found litestar and thought it's a perfect sweet spot between FastAPI and Django. Very modern, but with batteries included.

I wrote a blog post about it, if you want to find out why I think it's better than FastAPI: https://www.david-dahan.com/blog/litestar-is-the-fastapi-killer

/r/django
https://redd.it/1kv5h89
Project I just built my first project and I was wondering if I could get some feedback. :)

What My Project Does: Hello! I just created my first project on Python, its called Sales Report Generator and it kinda... generates sales reports. :)

You input a csv or excel file, choose an output folder and it can provide files for excel, csv or pdf. I implemented 7 different types of reports and added a theme just to see how that would go.

Target Audience: Testers? Business clerks/managers/owners of some kind if this was intended for publishing.

Comparison: I'm just trying new things.

As I mentioned, its my very first project so I'm not expecting for it to be impressive and would like some feedback on it, I'm learning on my own so I relied on AI for revising or whenever I got stuck. I also have no experience writing readme files so I'm not sure if it has all the information necessary.

The original version I built was a portable .exe file that didn't require installation, so that's what the readme file is based on.

The repository is here, I would like to think it has all the files required, thanks in advance to anyone who decides to give it a test.

/r/Python
https://redd.it/1kwqo6f
Blog: ReThinking Django Template: Part 1

Ever feel like your Python code is super neat, but your Django templates are a total mess? You're not alone. As a full-stack Django developer, I've seen a lot of projects where the backend is clean, but the templates are hard to read and maintain.

HTML tags, template tags, long Tailwind CSS classes, and even JavaScript and SVG strings all mixed together can make a template a nightmare.

It's time to change that.

This is the first in my series, "ReThinking Django Template." We'll explore better ways to write your templates so they're easier to understand and keep up. For this first post, we're tackling a big one: how to handle JavaScript in your Django templates.

Ready to make your templates much cleaner?

Read ReThinking Django Template: Part 1 Here!

/r/django
https://redd.it/1kwok9y
Deploying Django on Cpanel

A friend of mine who's new to Django had a rough time trying to deploy his project on cPanel. After struggling for 4 days, he asked me for help. I walked him through the whole process — from setting up the Python app to handling static files in production.

To make it easier for others who might face the same issue, I recorded a step-by-step video
How to Deploy https://youtu.be/6\_HH5k76A2s?si=S4Mgp2OEU8pScMhj
How to serve static files https://youtu.be/qxtDxIJJIFw?si=H43VPtAgZqOLUGaI

Let me know what you think — and feel free to drop any suggestions or improvements!

/r/djangolearning
https://redd.it/1kuedkk
New meaty chapter on SimPy Architecture & Patterns – Stop simulations looking like a dog's dinner!

Alright, if you're interested in simulation in Python (ideally with SimPy) then this one is for you.

If you've ever had a simulation model that's started to resemble a particularly tricky knot or perhaps a bowl of spaghetti after a toddler's had a go... You know, the kind where changing one thing makes three other things wobble precariously? We've all been there, no shame in it!

Well, despair no more! I've just bolted a brand-new chapter onto my book, **"Simulation in Python with SimPy,"** and this one's all about **Simulation Architecture and Patterns;** basically, how to build your models so they're less of a headache and more of a well-oiled machine.

**So, what's in the tin?** I cover the essentials to keep your code clean and your mind clear:

* **Basic SimPy Processes:** For when you need to get things moving, quick and simple.
* **Object-Oriented Architecture (OOA):** Getting a bit more grown-up, perfect for when your simulations have many moving parts that need to behave themselves.
* **Entity Component System (ECS):** Fancy a bit of that game-dev magic? ECS is brilliant for those really complex beasts where entities have all sorts of different hats they wear. (There's a beefy gas station example in a Colab

/r/Python
https://redd.it/1kwsgkw
Wednesday Daily Thread: Beginner questions

# Weekly Thread: Beginner Questions 🐍

Welcome to our Beginner Questions thread! Whether you're new to Python or just looking to clarify some basics, this is the thread for you.

## How it Works:

1. Ask Anything: Feel free to ask any Python-related question. There are no bad questions here!
2. Community Support: Get answers and advice from the community.
3. Resource Sharing: Discover tutorials, articles, and beginner-friendly resources.

## Guidelines:

This thread is specifically for beginner questions. For more advanced queries, check out our [Advanced Questions Thread](#advanced-questions-thread-link).

## Recommended Resources:

If you don't receive a response, consider exploring r/LearnPython or join the Python Discord Server for quicker assistance.

## Example Questions:

1. What is the difference between a list and a tuple?
2. How do I read a CSV file in Python?
3. What are Python decorators and how do I use them?
4. How do I install a Python package using pip?
5. What is a virtual environment and why should I use one?

Let's help each other learn Python! 🌟

/r/Python
https://redd.it/1kx2vcc
timelength - A flexible duration parser designed for human readable lengths of time.

Hello!

I'm here to share timelength, a project I started 3 years ago for personal use in a Discord bot and which I've sporadically been refining since. I would appreciate any feedback!

GitHub: https://github.com/EtorixDev/timelength

## What My Project Does
timelength is a duration parser which is designed for human readable lengths of time. It's goal is ultimate flexibility.

Most duration parsers use regex and expect a rather narrow set of input formats, and/or don't allow much deviation by way of mistake, typo, or just quirk of whichever method/individual input the duration.

For automated systems, this is just fine. But when working with real people and natural input, it can be more useful to have flexibility. That's where timelength comes in.

timelength uses a customizable configuration file of tokens allowing for parsing a whole plethora of mixed formats, such as: 1m, 1min, 1 Minute, 1m and 2 SECONDS, 3h, 2 min, 3sec, 1.2d, 1,234s, one hour, twenty-two hours and thirty five minutes, half of a day, 1/2 of a day, 1/4 hour, 1 Day, 2:34:12, 1:2:34:12, 1:5:1/3:27:22 and more.

The parsing behavior can also be customized by way of ParserSettings which will allow or deny certain behaviors, and FailureFlags which will decide whether certain invalid inputs should wholly invalidate

/r/Python
https://redd.it/1kx7x7c
Should I drop pandas and move to polars/duckdb or go?

Good day, everyone!
Recently I have built a pandas pipeline that runs in every two minutes, does pandas ops like pivot tables, merging, and a lot of vectorized operations.
with the ram and speed it is tolerable, however with CPU it is disaster. for context my dataset is small, 5-10k rows at most, and the final dataframe columns can be up to 150-170. the final dataframe size is about 100 kb in memory.
it is over geospatial data, it takes data from 4-5 sources, runs pivot table operations at first, finds h3 cell ids and sums the values on the same cells.
then it merges those sources into single dataframe and does math. all of them are vectorized, so the speed is not problem. it does, cumulative sum operations, numpy calculations, and others.

the app runs alongside fastapi, and shares objects, calculation happens in another process, then passed to main process and the object in main process is updated

the problem is the runs inside not big server inside a kubernetes cluster, alongside go services.
this pod uses a lot of CPU and RAM, the pod has 1.5-2 CPUs and 1.5-2 GB RAM to do the job,

/r/Python
https://redd.it/1kxd97o
I Built a Python Bot That Automatically Cleans Up Your Apple Music Library

My friend had **3,000+ songs** rotting in her Apple Music library from over the past 8 years, and manually deleting them was abysmal. 😩 So I programmed a Python bot that nukes unwanted tracks automatically — *and it worked*. It took about 2 hours to clean up the sucker, but now she's alieveated with her fresh start.

**What My Project Does:**
It’s a script that auto-deletes Apple Music tracks based on rules *you* set (like play counts, skips, or date added). No more endless scrolling and tapping.

**Who It’s For:**
Casual users are drowning in old music, **not** production environments. This is a scrappy personal tool — use at your own risk!

**Why This Over Alternatives?**

* **Manual deletion:** Apple still won’t let you bulk-select (why??).
* **Paid apps:** Tools like SongShift or Tune Sweeper cost $$$ and lack customization.
* **Mine:** Free, open-source, and tweakable. Want to delete all songs with <5 plays? Change 1 line of code.

Video demo: [https://www.youtube.com/watch?v=7bDLTM5qMOE](https://www.youtube.com/watch?v=7bDLTM5qMOE)
GitHub (star if you’re into it): [https://github.com/tycooperaow/apple\_music\_deleter/tree/main](https://github.com/tycooperaow/apple_music_deleter/tree/main)

/r/Python
https://redd.it/1kx426z
🚀 Free for First 50 Django Beginners Ebook – Build Real Projects, 100% Off!

Hi everyone,

I just published an ebook called “Django Unchained for Beginners” – a hands-on guide to learning Django by building two complete projects:

1. To-Do App – Covers core Django CRUD concepts
2. Blog App – Includes:
Custom user auth
Newsletter system
Comments
Rich Text Editor
PostgreSQL
Deployed for free on Render

📁 Source code included for both projects.

🎁 I'm giving away the ebook 100% free to the first 50 people.

📝 If you grab a copy, I’d really appreciate an honest review to help others!

📎 Gumroad link and blog demo will be added in the comments below. (if you don't find the link in the comment section then you can manually type the link in your browser)

Thanks and happy coding!

https://preview.redd.it/a8eucmbtak3f1.png?width=1460&format=png&auto=webp&s=649fc9148e4ab15976451dd3513d70dff303a800



/r/django
https://redd.it/1kxn2rv
Repurposed an Old Laptop into a Headless SMS Notification Server — Here's How

What My Project Does

This project listens to desktop notifications on a Fedora Linux machine (like Gmail, WhatsApp Web, Instagram, etc.) and sends them as SMS messages using an old USB GSM modem and Gammu. The whole thing is headless, automated via a systemd user service, and runs persistently even with the laptop lid closed.

I built it out of necessity after switching to a feature phone (yes, really!). Now, my old laptop sits tucked in a drawer, running this service silently and sending me SMS alerts for things I’d normally miss without a smartphone.

GitHub: https://github.com/joshikarthikey/notify-sms


---

Target Audience

Tinkerers who want to repurpose old laptops and modems.

Anyone moving away from smartphones but still wanting critical app notifications.

Hobbyists, sysadmins, and privacy-conscious users.

Great for DIY automation enthusiasts!


This is not a production-grade service, but it’s stable and reliable enough for daily personal use.


---

Comparison to Alternatives

Most alternatives are cloud-based or depend on mobile apps. This project:

Requires no cloud account, no smartphone, and no internet on the phone.

Runs completely offline, powered by Linux, Python, Gammu, and systemd.

Can be installed on any old Linux machine with a USB modem.


Unlike apps like Pushbullet or Twilio-based setups, this is entirely DIY and local.


/r/Python
https://redd.it/1kxs9b0
Thursday Daily Thread: Python Careers, Courses, and Furthering Education!

# Weekly Thread: Professional Use, Jobs, and Education 🏢

Welcome to this week's discussion on Python in the professional world! This is your spot to talk about job hunting, career growth, and educational resources in Python. Please note, this thread is not for recruitment.

---

## How it Works:

1. Career Talk: Discuss using Python in your job, or the job market for Python roles.
2. Education Q&A: Ask or answer questions about Python courses, certifications, and educational resources.
3. Workplace Chat: Share your experiences, challenges, or success stories about using Python professionally.

---

## Guidelines:

- This thread is not for recruitment. For job postings, please see r/PythonJobs or the recruitment thread in the sidebar.
- Keep discussions relevant to Python in the professional and educational context.

---

## Example Topics:

1. Career Paths: What kinds of roles are out there for Python developers?
2. Certifications: Are Python certifications worth it?
3. Course Recommendations: Any good advanced Python courses to recommend?
4. Workplace Tools: What Python libraries are indispensable in your professional work?
5. Interview Tips: What types of Python questions are commonly asked in interviews?

---

Let's help each other grow in our careers and education. Happy discussing! 🌟

/r/Python
https://redd.it/1kxwlna
I accidentally built a vector database using video compression

While building a RAG system, I got frustrated watching my 8GB RAM disappear into a vector database just to search my own PDFs. After burning through $150 in cloud costs, I had a weird thought: what if I encoded my documents into video frames?

The idea sounds absurd - why would you store text in video? But modern video codecs have spent decades optimizing for compression. So I tried converting text into QR codes, then encoding those as video frames, letting H.264/H.265 handle the compression magic.

The results surprised me. 10,000 PDFs compressed down to a 1.4GB video file. Search latency came in around 900ms compared to Pinecone’s 820ms, so about 10% slower. But RAM usage dropped from 8GB+ to just 200MB, and it works completely offline with no API keys or monthly bills.

The technical approach is simple: each document chunk gets encoded into QR codes which become video frames. Video compression handles redundancy between similar documents remarkably well. Search works by decoding relevant frame ranges based on a lightweight index.

You get a vector database that’s just a video file you can copy anywhere.

https://github.com/Olow304/memvid

/r/Python
https://redd.it/1ky24a0
I built a template for FastAPI apps with React frontends using Nginx Unit

Hey guys, this is probably a common experience, but as I built more and more Python apps for actual users, I always found myself eventually having to move away from libraries like Streamlit or Gradio as features and complexity grew.

This meant that I eventually had to reach for React and the disastrous JS ecosystem; it also meant managing two applications (the React frontend and a FastAPI backend), which always made deployment more of a chore. However, having access to building UIs with Tailwind and Shadcn was so good, I preferred to just bite the bullet.

But as I kept working on and polishing this stack, I started to find ways to make it much more manageable. One of the biggest improvements was starting to use Nginx Unit, which is a drop-in replacement for uvicorn in Python terms, but it can also serve SPAs like React incredibly well, while also handling request routing internally.

This setup lets me collapse my two applications into a single runtime, a single container. Which makes it SO much easier to deploy my applications to GCP Cloud Run, Azure Web Apps, Fly Machines, etc.

Anyways, I created a template repo that I could reuse to skip the boilerplate of this

/r/Python
https://redd.it/1ky1bwq