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
I was curious how django keeps track of all my model classes...

Ever wondered what happens under the hood when you run python manage.py makemigrations in Django? I recently asked this to myself and went through the rabbit hole of reading the Django code base.

I wrote a short blog post with a short deep dive into the model detection mechanism. No magic wands, just a bit of metaclasses, the new method, and a dash of django.setup().

If you're curious but not looking for an epic saga, check out the post https://svemaraju.github.io/django-model-detection.html

/r/django
https://redd.it/18bmnzw
sqlglot - Amazing SQL parsing library

Wanted to give sqlglot a shoutout as it saved me a ton of time.

I had a task that involved building a dependency graph by statically analyzing the relationship of MySQL views. Initially, I was using sqlparse to extract the dependencies from the SQL statements, but it required me to create an increasingly hacky recursive function. I kept encountering examples in our codebase that required more test cases and further updating.

Then I stumbled upon sqlglot, and the code reduced to just a few lines, working immediately. It was barely more complex than this:

from sqlglot import parseone, exp

for table in parse
one(sqlstatement).findall(exp.Table):
print(table.name)

I'm surprised I hadn't heard of it before.

/r/Python
https://redd.it/18bprha
Pytest over Unittest

Hi all ,

I'd like to hear your opinions over when you have decided to use Pytest over Unittest as your testing framework for your projects and why.

I've personally never used Pytest but recently found it on a project I started to work on and I've been finding it interesting.

/r/Python
https://redd.it/18bjv0y
Introducing Great Tables

Great Tables is a *great* new Python package that simplifies the process of making tabular data presentable for any sort of publication task. With Great Tables, you can easily use data from a Pandas or Polars DataFrame and turn it into a beautiful table that can be included in a notebook, a Quarto document, or exported as HTML.


We've been working hard on making this package as useful as possible, and we're excited to share it with you. The package (v0.1.0) is available on PyPI and can be installed with:


pip install great_tables


The documentation site at https://posit-dev.github.io/great-tables/articles/intro.html has a *Get Started* tutorial that will walk you through the basics of using the package. The API documentation is also available on the site and it is chock full of examples that'll show you how to use the various features of the package.


We want Great Tables to be really useful for your work and so we really value any and all feedback. Send us a note in https://github.com/posit-dev/great-tables/issues or https://github.com/posit-dev/great-tables/discussions anytime you like!

​

https://preview.redd.it/vwuu06h5ui4c1.png?width=988&format=png&auto=webp&s=50e381e692bc16775eb1f6a4f6de309d75048139

\-------

This was originally posted by Rich Iannone over at LinkedIn. He asked me to post this here.

/r/Python
https://redd.it/18biyrh
Can python/ipython be used to replace Bash?

I am a heavy Bash user, and curiosity has me trying to see if it's feasible to move completely to Python.

chsh -s $(which ipython3)
exec ipython3

I'm just taking my first baby steps, but how much can I expect it to act like a normal shell like in /etc/shells?

(I did manually add ipython3 there, but unsure if that did anything.)

Since .bashrc is no longer being read, I probably need a .ipythonrc or something, to setup my environment, but I don't know how to make sure it's read when a new terminal opens. Is there a Python equivalent to /etc/profile, /etc/rc.local etc... ?

If I try to put !ipython3 --profile=pagefault into ~/.ipython/profile_default/startup/startup_default.py I get:

TerminalIPythonApp WARNING | Unknown error in handling startup files:
File ~/.ipython/profiledefault/startup/startuppagefault.py:6
!ipython3 --profile pagefault
^
SyntaxError: invalid syntax

What is the proper way to ensure my custom profile gets loaded by default?

Finally, I'm having a lot of trouble with my custom layout. Would some of you mind helping me cheat my way through by sharing your custom ipython_config.py scripts?

/r/IPython
https://redd.it/18bniyw
Deciding which functions/routes should be async

I have an application powered by FastAPI with HTTP routes that call different internal functions, celery tasks, 3rd party APIs, and DB queries.

How should I decide what should be async? Also how should i manage the different normal/async functions? For example, I'm using Pymongo & Motor, should I make seperate classes for each?

/r/Python
https://redd.it/18c679a
lockfiles for hatch projects

I'm a huge fan of using hatch to manage my Python projects. It lets me define my projects with a single pyproject.toml file and define my extra environments and scripts (i.e testing / linting / docs). One big thing it's missing though is an integration with lockfiles.

For all my projects I found myself regenerating manual lock files using complex shell commands with pip-compile to get a reproducible environments across devices using a custom pre-install-command. I finally decided that instead of hacking together the same solution on all my projects I would build a plugin that handles this complexity for me.

I came up with hatch-pip-compile \- it's a hatch plugin that connects your hatch-managed virtual environment to a lockfile managed with pip-compile. The plugin detects whether your environment or lockfile is out to date and automatically syncs them when needed - and it's fast!

It's completely configurable and easy to get started. After adding the last few features and settling on a stable configuration I finally feel like it's ready for a wider audience. I'm extremely proud of how it turned out and I'm excited to share it with the hatch-world. I hope you find it useful for your Python projects!

TL;DR check

/r/Python
https://redd.it/18cakmd
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/18ci6c7
Need help with first flask project ( collage management system)

Hey people of flask . I am new here as well as to flask , i am doing that flask project with my mates for a college assignment . the project is a "college management system" i am doing the oop with pure python , someone is doing the front-end with html and css , and there is someone doing flask and handling database (we are using sqlachemy and sqlite) . for me i am doing classes for students,profs,prof-assts,courses, and creating relations between them. so there will be the courses with their labs and the prof teaching it and assistant giving the lab. when a student enrolls a course he will be added to list of students who enrolled the course, to list of students the prof is teaching and this list contains dictionaries each with the course and students enrolled it ,same for the assistant , and finally the student will have a list of courses they enrolled . as for oop i guess i did a pretty solid structure and relations . the front-end is pretty good also, now when it comes to flask and data base how can we connect those together . when we take

/r/flask
https://redd.it/18cfkm9
Simple and easy documentation Builder

Hello redditors,

I've been working on an open-source project called BrowseDocs, designed to assist open-source developers in documenting their libraries and tools with greater intuitiveness. The goal is to provide developers with an integrated and enhanced user experience while reading documentation.

​

Some of the current features include:

Generate documentation pages from markdown files (chose .md because most of the developers are familiar).
Create multi-version, multi-paged documentation with a click of button.
dark/light themes included by default.
A quick search. (currently just a simple search)
A separate about page for every project.
Rich text editor for developers to write blogs and tutorials.

Now the project itself is in its first iteration, which is why I look forward for your feedback. I'd like to know what features you'd like to see in the upcoming releases and what features you'd like to be removed from the project. I look forward to your responses.

PS: I am still working on enhancing the UI of the landing page, any heads up would be greatly appreciated

​

You can visit the project at https://browsedocs.com

Github repo for the project: https://github.com/PaulleDemon/BrowseDocs

​

Thanks,

Have a great day ahead.

​

/r/Python
https://redd.it/18c8uqu
Saluting the Unsung Hero: A Tribute to Django Admin

In the bustling world of web development, where flashy front-ends and complex back-ends often steal the spotlight, there lies an unsung hero quietly powering many of our projects – Django Admin. This tool has been a steadfast ally to developers, making database management seem like a breeze.

From the effortless customization to the intuitive user interface, Django Admin has transformed the mundane tasks of data entry and management into a smooth and efficient process. Its robust yet flexible framework allows us to tailor it to our specific needs, making each project not just manageable but enjoyable.

What truly sets Django Admin apart is its seamless integration with Django applications. It respects our time, understands our needs, and delivers without fail. Whether it's handling complex queries or managing vast amounts of data, Django Admin does it with unparalleled grace and efficiency.

So here's to Django Admin - a tool that doesn't just make our lives easier but also enhances the quality of our work. In a tech world where the latest tools often overshadow the foundational ones, Django Admin continues to be a pillar of reliability and functionality.

As we continue to navigate the ever-evolving landscape of web development, let's take a moment to appreciate

/r/django
https://redd.it/18ciefr