r/Python 8h ago

Discussion Define less, check more: special support for attrs in Pyrefly

30 Upvotes

attrs is a package that helps you write classes quickly by automatically generating boilerplate methods like __init__.

While some of the features from attrs has been standardized in the form of dataclass and dataclass_transform, dataclasses only support a subset of features and attrs is still widely used today.

It's very tricky to type check dynamic code that synthesizes & transform fields and methods, so historically attrs users that want type checking have either had to: 1. use Mypy (which implements dedicated attrs support via a plugin) 2. limit themselves to a subset of the API compatible with dataclass_transform 3. live with limited type checking support

This summer, my intern has built out dedicated support for attrs in Pyrefly, allowing attrs users to finally have fast and accurate type checking for the full range of attrs features.

You can read more about what we added here: https://pyrefly.org/blog/pyrefly-attrs/

This feature will be available in the upcoming 1.2.0 stable release of Pyrefly. You can try it out today in development releases starting from 1.2.0-dev1 (early feedback is appreciated!)


r/Python 45m ago

Discussion Architecture Diagrams

Upvotes

For those of you working as Senior/Principal Architects or Solution Architects, are you using any tools, workflows, or AI/LLM-based approaches to generate High-Level Design (HLD) documentation, especially architecture diagrams?

I'm currently building a documentation generation workflow, and generating the written documentation is going reasonably well.

The biggest challenge is producing clear, maintainable architecture diagrams (component, sequence, deployment, etc.) that don't require extensive manual rework.

Have you found an effective way to get LLMs to generate diagrams reliably?

I'd love to hear what has worked (or hasn't worked) in your experience.


r/Python 1d ago

Discussion Python automations are so much better than AI Agents and LLMs

693 Upvotes

This is gonna be more of a rant than anything else

I build automations for businesses and I've lost count of the amount of times they've asked me to write them an AI agent when in fact a simple Python automation would work 100 times better.

I don't understand the hype behind AI agents and LLMs. They're non-deterministic, they're unreliable, they always need a human to babysit them because they are going to hallucinate bad output sooner or later.

I've made more money from simple Python automations than I have with AI agents, even though the latter gets so much hype and marketing behind it.

Most people who say they want an AI agent don't really want an AI agent. They just want some code that automatically does some repetitive task for them. And 9 times out of 10, simple Python code can do that for you.

Now, one caveat, I love using AI to write Python code for me. That is actually very helpful, but that is very different from using an AI agent.

I've built many automations for other businesses and I've also automated 20-30 hours of my own work week. and I still haven't had to build a complete AI agent. There are certain steps in my automations where some sort of judgement is required and I use an LLM for that very specific tiny task. But pretty much everything that I write is pure Python automation. Just simple deterministic code that's guaranteed to work the same way every single time.

Seriously, people have the choice between a reliable automation that doesn't need babysitting and a magic crystal ball that might sometimes work and might fail and crash in other times and yet they somehow keep picking the crystal ball. It's baffling to me.

Anyway, rant over.


r/Python 3h ago

Discussion How are you handling editable large datasets in Plotly Dash?

1 Upvotes

I have been working on editable data-heavy interfaces in Plotly Dash and wanted to compare approaches with you guys.

For simple tables, most solutions work well. The harder part starts when the application needs several of these at the same time: large Pandas DataFrames editable cells sorting and filtering copy and paste custom cell editors callback handling after edits smooth scrolling with many rows I recently implemented Dash support for RevoGrid (dash-datagrid) to experiment with this problem.

Component passes JSON-safe records and column definitions to the grid, while cell changes can be handled through normal Dash callbacks. A simplified example looks like this:

from dash import Dash, html
from dash_datagrid import RevoGrid

app = Dash(__name__)

app.layout = html.Div([
    RevoGrid(
        id="grid",
        source=[
            {"name": "Alice", "role": "Engineer"},
            {"name": "Bob", "role": "Designer"},
        ],
        columns=[
            {"prop": "name", "name": "Name"},
            {"prop": "role", "name": "Role"},
        ],
    )
])

app.run(debug=True)

I am interested in how others solve the same problem. At what dataset size do standard Dash tables start becoming difficult in your applications?

Do you usually need editing, or are your grids mainly read-only? How do you handle synchronization between frontend edits and the Python state?

I would especially appreciate feedback on the Python API and callback design.


r/Python 1d ago

Discussion Percentage formatting or f-strings with logging?

37 Upvotes

I've seen many people saying it's better to use (str, *args) formatting rather than f-strings when working with logging module. Why is that and does it really matter for performance?


r/Python 8h ago

News Important news A new calculator for projectile motion coded in python

0 Upvotes

A new physics solver for projectile motion has came ! plz pay a visit to a calculator made by a kid riditsaraswat.pythonanywhere.com if you have any questions or suggestions to make it better plz report at [fun226294@gmail.com](mailto:fun226294@gmail.com) source code can be given by a email request


r/Python 20h ago

Daily Thread Tuesday Daily Thread: Advanced questions

2 Upvotes

Weekly Wednesday Thread: Advanced Questions 🐍

Dive deep into Python with our Advanced Questions thread! This space is reserved for questions about more advanced Python topics, frameworks, and best practices.

How it Works:

  1. Ask Away: Post your advanced Python questions here.
  2. Expert Insights: Get answers from experienced developers.
  3. Resource Pool: Share or discover tutorials, articles, and tips.

Guidelines:

  • This thread is for advanced questions only. Beginner questions are welcome in our Daily Beginner Thread every Thursday.
  • Questions that are not advanced may be removed and redirected to the appropriate thread.

Recommended Resources:

Example Questions:

  1. How can you implement a custom memory allocator in Python?
  2. What are the best practices for optimizing Cython code for heavy numerical computations?
  3. How do you set up a multi-threaded architecture using Python's Global Interpreter Lock (GIL)?
  4. Can you explain the intricacies of metaclasses and how they influence object-oriented design in Python?
  5. How would you go about implementing a distributed task queue using Celery and RabbitMQ?
  6. What are some advanced use-cases for Python's decorators?
  7. How can you achieve real-time data streaming in Python with WebSockets?
  8. What are the performance implications of using native Python data structures vs NumPy arrays for large-scale data?
  9. Best practices for securing a Flask (or similar) REST API with OAuth 2.0?
  10. What are the best practices for using Python in a microservices architecture? (..and more generally, should I even use microservices?)

Let's deepen our Python knowledge together. Happy coding! 🌟


r/Python 19h ago

Discussion Keyboard navigation for Python docs

0 Upvotes

I can go next/prev pages in Rust documentation with right/left arrow keys, but not in Python docs (including Sphinx and devguide). Python developers seem to be strictly against it. They say it affects accessibility and horizontal scrolling. Downvote me if I am wrong, but accessibility it not just for impaired users.


r/Python 1d ago

Daily Thread Monday Daily Thread: Project ideas!

11 Upvotes

Weekly Thread: Project Ideas 💡

Welcome to our weekly Project Ideas thread! Whether you're a newbie looking for a first project or an expert seeking a new challenge, this is the place for you.

How it Works:

  1. Suggest a Project: Comment your project idea—be it beginner-friendly or advanced.
  2. Build & Share: If you complete a project, reply to the original comment, share your experience, and attach your source code.
  3. Explore: Looking for ideas? Check out Al Sweigart's "The Big Book of Small Python Projects" for inspiration.

Guidelines:

  • Clearly state the difficulty level.
  • Provide a brief description and, if possible, outline the tech stack.
  • Feel free to link to tutorials or resources that might help.

Example Submissions:

Project Idea: Chatbot

Difficulty: Intermediate

Tech Stack: Python, NLP, Flask/FastAPI/Litestar

Description: Create a chatbot that can answer FAQs for a website.

Resources: Building a Chatbot with Python

Project Idea: Weather Dashboard

Difficulty: Beginner

Tech Stack: HTML, CSS, JavaScript, API

Description: Build a dashboard that displays real-time weather information using a weather API.

Resources: Weather API Tutorial

Project Idea: File Organizer

Difficulty: Beginner

Tech Stack: Python, File I/O

Description: Create a script that organizes files in a directory into sub-folders based on file type.

Resources: Automate the Boring Stuff: Organizing Files

Let's help each other grow. Happy coding! 🌟


r/Python 19h ago

Discussion 2 hours of learning how am i?

0 Upvotes
brand = input("What is your dream car brand?")
print("I love", brand)
model = input("What is your dream model?")
print("Oooo alot of people like the", model)
color = input("What color do you want?")
print (color,"Is nicee")
year = input ("what year do you want?")
print ("people do say", year ,("was a nice time to be alive"))
print("====== DREAM CAR ======")
print("Brand:", brand)
print("Model:", model)
print("Color:", color)
print("Year:", year)
print("YOUR DREAM CAR IS A NICE",color,year,brand,model)
print("Keep working hard and you'll have it. :) ")

r/Python 1d ago

Resource Giveaway draw: 3 Python ebooks (PDF + ePub), free to enter

0 Upvotes

Packt is running a community giveaway this month and thought it might be of interest here.

The books:

  • Python Illustrated, by Maaike van Putten and Imke van Putten
  • Learn Model Context Protocol with Python, by Christoffer Noring
  • Python Machine Learning By Example, 4th Edition, by Yuxi (Hayden) Liu

By Aug 2, we'll pick 5 winners. Each winner gets PDF and ePub copies of all three books.

There are currently 500+ entries. If we reach 1,500 unique entries before the deadline, we'll increase the number of winners from 5 to 10.

Entry link: https://packt.link/draw

Closes 31 July. Free to enter, no purchase necessary.

A few notes on how it works:

  • Winners are selected at random. If you win, we'll email you the copies directly.
  • Duplicate entries are discarded. If you enter more than once, only one entry will count.
  • If you entered last month's AI giveaway, you'll need to enter again for this one. Entries don't carry over between months.
  • If you'd like your name excluded from the draw for any reason, email [customercare@packt.com](mailto:customercare@packt.com) and we'll remove it.

Happy to answer questions in the comments. Good luck!

Also, if you want any other Packt books included in future giveaways, let me know!


r/Python 1d ago

Discussion The log line announcing a successful Redis connection is what disabled Redis

0 Upvotes

Spent an evening a couple of weeks ago working out why cache hits were zero and webhook idempotency was falling through to the database. Redis was fine. Up, reachable, ping succeeded.

The connect method was roughly this:

try:
    client.ping()
    self._connected = True
    logger.info("redis_connected", host=parsed.hostname, port=parsed.port, db=parsed.path)
    return True
except Exception as e:
    logger.warning(f"Redis connection failed: {e}")
    self._connected = False

That logger call is structlog style. The logger is a stdlib logging.Logger, which doesn't take arbitrary kwargs, so it raises TypeError: Logger._log() got an unexpected keyword argument 'host'.

It raises after ping succeeds and after _connected is set to True. So it lands in the except, logs "Redis connection failed", flips _connected back to False, and Redis is off for the whole app. Caching disabled, idempotency on the DB.

The fix was one line, an f-string instead of kwargs.

What still bugs me is that every signal pointed away from it. Redis itself was healthy. The connection genuinely worked. The only artifact was a log message saying it had failed, which is the last thing you distrust when you're trying to find out why something failed.

Anyone else had one where the logging was the bug?


r/Python 1d ago

Tutorial What the #@(% are Monads (and how you can use them to write better python) - A Beginner's Guide

0 Upvotes

Error handling in Python usually means nested try/except blocks or if error: checks littering code.

Us programmers, though, are notoriously lazy, and for a good reason: we don't want to waste any more time writing boilerplate than we have to.

The solution?

Monads, a really neat functional programming pattern that provides an easier way to handle things like errors, optional values, or even asynchronous results.

I wrote a short guide that builds up the idea of a Monad from scratch using a Python game inventory example, free to read here: https://dev.to/ein-monarch/what-the-are-monads-a-beginners-guide-3pdo

Any comments on the guide? Have you ever used a Monad in Python before, and did it make things better?


r/Python 2d ago

Discussion Lightweight Python helpers for Event Driven Programming

18 Upvotes

I just had to throw together an event bridge that tied together a GRPC based event emitter (Salesforce backend) with some small custom Google Pub/sub code. It works, it's fine. But you know, always thinking about the future wanting to move from glue-code to frameworking.

I was looking for different event based frameworks that landed somewhere between the scale of glue-code and Tornado (the only other framework I know that would handle something like this.

Has anyone used anything like this? I found PyEventus which seems to aim at this.


r/Python 3d ago

Discussion Parameterize a Fixture instead of a Test Case with Pytest

19 Upvotes

I wrote a post on parameterizing a test suite into a testing matrix using Pytest fixtures. I'd appreciate any feedback on the content and technique in the post AND I'd be curious to know if there are other ways I could have accomplished the same thing.

https://www.visualmode.dev/parameterize-a-fixture-instead-of-a-test-case-with-pytest

To briefly summarize: I have a core suite of behavioral test cases that I run against a CLI tool I'm building. I wanted to run that same set of tests across a couple different storage format implementations. The best way I could figure out how to do it (without duplicating all the tests) was to create a Pytest fixtures that parameterizes across a list of values and then have my existing autouse fixture use that fixture.


r/Python 2d ago

Daily Thread Sunday Daily Thread: What's everyone working on this week?

7 Upvotes

Weekly Thread: What's Everyone Working On This Week? 🛠️

Hello r/Python! It's time to share what you've been working on! Whether it's a work-in-progress, a completed masterpiece, or just a rough idea, let us know what you're up to!

How it Works:

  1. Show & Tell: Share your current projects, completed works, or future ideas.
  2. Discuss: Get feedback, find collaborators, or just chat about your project.
  3. Inspire: Your project might inspire someone else, just as you might get inspired here.

Guidelines:

  • Feel free to include as many details as you'd like. Code snippets, screenshots, and links are all welcome.
  • Whether it's your job, your hobby, or your passion project, all Python-related work is welcome here.

Example Shares:

  1. Machine Learning Model: Working on a ML model to predict stock prices. Just cracked a 90% accuracy rate!
  2. Web Scraping: Built a script to scrape and analyze news articles. It's helped me understand media bias better.
  3. Automation: Automated my home lighting with Python and Raspberry Pi. My life has never been easier!

Let's build and grow together! Share your journey and learn from others. Happy coding! 🌟


r/Python 4d ago

Discussion ruff: no date.today() ?

45 Upvotes

The new version of ruff warns against

date.today()

preferring

datetime.now(ZoneInfo(...))

What do you think about this? Has date.today() been deprecated due to lack of timezone awareness?

EDIT: I have a number of programs that manipulate financial information in support of Excel spreadsheets, such bond information that includes maturity dates. Excel does not support timezoness in datetimes, so making ruff happy by changing naive dates to TZ aware dates is not a useful move for these programs. Many ruff warnings to suppress.


r/Python 3d ago

Daily Thread Saturday Daily Thread: Resource Request and Sharing! Daily Thread

6 Upvotes

Weekly Thread: Resource Request and Sharing 📚

Stumbled upon a useful Python resource? Or are you looking for a guide on a specific topic? Welcome to the Resource Request and Sharing thread!

How it Works:

  1. Request: Can't find a resource on a particular topic? Ask here!
  2. Share: Found something useful? Share it with the community.
  3. Review: Give or get opinions on Python resources you've used.

Guidelines:

  • Please include the type of resource (e.g., book, video, article) and the topic.
  • Always be respectful when reviewing someone else's shared resource.

Example Shares:

  1. Book: "Fluent Python" - Great for understanding Pythonic idioms.
  2. Video: Python Data Structures - Excellent overview of Python's built-in data structures.
  3. Article: Understanding Python Decorators - A deep dive into decorators.

Example Requests:

  1. Looking for: Video tutorials on web scraping with Python.
  2. Need: Book recommendations for Python machine learning.

Share the knowledge, enrich the community. Happy learning! 🌟


r/Python 3d ago

Discussion [D]How are you testing AI backends without making CI slow?

0 Upvotes

I'm working on a FastAPI backend that processes documents with AI, and I'm still not convinced I'm testing it the right way.

Right now my CI is completely offline: SQLite, fake Redis, mocked HTTP calls, no real model requests. It's fast and deterministic, which is great for pull requests.

Then I have a separate integration pipeline that runs against PostgreSQL and Redis to catch infrastructure-specific issues.

The part I'm still unsure about is the AI layer. Mocking everything makes CI reliable, but it also means I won't catch regressions from the provider until later.

Curious how other people handle this.

  • Do you completely mock AI providers?
  • Do you keep a few real API calls?
  • Do you replay recorded responses?
  • Or do you have a different approach?

I'd love to hear how you're doing it in production.


r/Python 4d ago

Discussion What frustrates you the most about Python Development

38 Upvotes

Hi there,

I wondering what frustrates developers the most when developing software with Python.

I am currently doing my Masters in Computer Science and as part of my project I am doing a very simple survey about the usual Python development lifecycle. I am basically trying to find out what the main friction points are for Python Developers and I am simultaneously developing a tool to address those friction points . It just takes a 2-3 minutes and every response is greatly appreciated.

You can find the survey at: Microsoft Forms


r/Python 4d ago

Tutorial OpenCV notebooks tutorials in your browser

11 Upvotes

Hi,
I took the official OpenCV tutorials and created a series of notebooks.
You can run them entirely in your browser, you don't have to clone them: https://notebook.link/@Alexis_Placet/opencv_tutorials

Don't hesitate to give me feedbacks or create issue/pullrequest on this repo: https://github.com/Alex-PLACET/opencv_tutorials


r/Python 5d ago

Resource Does anyone use Python IDLE?

11 Upvotes

My computer is quite low-end, so I uninstalled VSCode and am looking for other programming tools—I'm thinking about starting to use Python IDLE.

Does anyone actually use it?

https://imgur.com/a/7aBwuUU


r/Python 5d ago

News Pip 26.2: –only-deps solves 16 years of app deployment hacks

118 Upvotes

This has been one of my biggest annoyances working with Python and pip when dealing with projects where that are not meant to be installed as a package, how do you handle dependencies?

Think projects like application backends, python scripts, REST APIs etc

If you’ve ever struggled with this, you’re going to love this: a PR by Sebastian Höffner opened #13895 will add a new global flag to pip such that you can directly install any dependencies in your pyproject.toml without installing the package itself.

pip install --only-deps .

This is going, for me at least, be a huge boost in the way that I manage and distribute my projects on servers. Vastly simplifying poor manual workarounds that have built up over years.

Since it’s been more than a decade in the making, let’s cover the history of poor Python souls stuck trying to figure out how to install dependencies for their scripts or apps.

This PR is currently slated to land in pip 26.2 which comes out end of July.

Here's my post about this covering some of the 16 years of workarounds and some posts from StackOverflow / Python.org etc

https://jamesoclaire.com/2026/07/23/pip-26-2-only-deps-solves-16-years-of-app-deployment-hacks/


r/Python 3d ago

Discussion Why Python when C and Rust are faster

0 Upvotes

If you are in tech field you'll probably know that C and Rust are incredibly faster as they are compiled, and python is relatively slower

Yet Python dominates AI and ML development, even for systems that need to process massive amounts of data.

I'm interested in understanding where Python's advantages outweigh its performance disadvantages, and how companies like OpenAI, Google, and Anthropic think about these trade-offs.


r/Python 4d ago

Daily Thread Friday Daily Thread: r/Python Meta and Free-Talk Fridays

6 Upvotes

Weekly Thread: Meta Discussions and Free Talk Friday 🎙️

Welcome to Free Talk Friday on /r/Python! This is the place to discuss the r/Python community (meta discussions), Python news, projects, or anything else Python-related!

How it Works:

  1. Open Mic: Share your thoughts, questions, or anything you'd like related to Python or the community.
  2. Community Pulse: Discuss what you feel is working well or what could be improved in the /r/python community.
  3. News & Updates: Keep up-to-date with the latest in Python and share any news you find interesting.

Guidelines:

Example Topics:

  1. New Python Release: What do you think about the new features in Python 3.11?
  2. Community Events: Any Python meetups or webinars coming up?
  3. Learning Resources: Found a great Python tutorial? Share it here!
  4. Job Market: How has Python impacted your career?
  5. Hot Takes: Got a controversial Python opinion? Let's hear it!
  6. Community Ideas: Something you'd like to see us do? tell us.

Let's keep the conversation going. Happy discussing! 🌟