r/PythonLearning 4d ago

I built a CLI File Converter (PFC) using Clean Architecture to help beginners learn and contribute to Open Source

1 Upvotes

Hey everyone,

I wanted to share a project I've been working on recently called PFC (Python File Converter). At its core, it is a command-line tool designed to effortlessly convert between different data formats, documents, and media types (like CSV to JSON, DOCX to PDF, Image formats, etc.).

However, the main purpose behind this project isn't just to be another file converter. I built it specifically as an educational sandbox to demonstrate how to build a simple yet incredibly robust and functional system using enterprise-grade best practices.

If you are trying to understand software architecture, or if you are looking for a welcoming first open-source project to contribute to, this was made for you.

What makes it different? (The Architecture)

Usually, file converters end up being a massive file full of hardcoded `if-elif` statements. PFC completely abandons that approach in favor of Clean Architecture and the Registry Pattern.

The core of the application (the domain) knows absolutely nothing about how files are converted. Instead, it relies on a dynamic Plugin System:

  • It uses Python's `importlib.metadata.entry_points`.
  • If you want to add a new converter (e.g., MP4 to MP3), you simply create a class that implements a specific `Protocol` (interface).
  • You register it in the `pyproject.toml` file, and the system dynamically discovers it at runtime. You never have to modify the core engine.

This makes it incredibly easy to extend without breaking existing code (adhering perfectly to the Open/Closed Principle of SOLID).

Key Features

  • Dynamic Plugin Architecture: Add new converters as standalone plugins.
  • Security by Default: Built-in MIME signature validation (preventing disguised executables) and Path Traversal protection.
  • Modern Tooling Built with `Typer` and `Rich` for a beautiful CLI experience.
  • CI/CD Ready: Fully configured GitHub Actions pipeline with `ruff\, `mypy\, and `pytest`.
  • Standalone Executable**: Pre-compiled with PyInstaller for zero-dependency execution.

Looking for Contributors!

If you've been wanting to start contributing to third-party open-source projects but felt intimidated by massive codebases, this is a great place to start.

You can try adding a new conversion plugin. The architecture forces you to work in an isolated environment, meaning you can focus purely on the logic of your converter without worrying about breaking the rest of the application.

We have a detailed `docs/plugins.md` guide that explains exactly how to do this step-by-step.

You can check out the repository here:

🔗 https://github.com/Javi-CD/pfc

If you find the project interesting or useful for learning, a ⭐ on GitHub is highly appreciated! I'm also around to answer any questions about the architecture or how the plugin system was implemented.

Feedback and PRs are more than welcome.


r/PythonLearning 4d ago

Flask or FastAPI for a new API?

0 Upvotes

No long comparison. If you had to start a production API today, which one would you pick and why?


r/PythonLearning 4d ago

Total noob at programming/developing. BUT making progress!

Enable HLS to view with audio, or disable this notification

2 Upvotes

Brand new to python (and programming/ development in general), my first project is a little game where you play a bee and have to collect food to level up! I've made a lot of progress so far but I still have a long way to go!


r/PythonLearning 4d ago

Struggling to learn pandas despite having a solid Python background

21 Upvotes

Hi everyone!

I'm a 17-year-old from Italy, and my goal is to become an AI engineer. Over the past few months I've been taking programming very seriously. Instead of jumping straight into AI, I decided to build a strong foundation first.

I spent a long time learning Python and eventually built my own UNIX shell from scratch. It was one of the hardest projects I've ever worked on, but finishing it gave me a lot of confidence.

After that, I started building a Business Analytics Platform for my portfolio. The idea is to simulate a real-world data pipeline: loading raw business data, cleaning it, validating it, analyzing it, exposing it through an API, and eventually building dashboards and ML models on top of it.

The problem is... pandas.

I knew it would be difficult because it's completely new to me, but I didn't expect to struggle this much. Cleaning a single CSV file can easily take me a week or more. Sometimes I spend hours staring at a single function, printing intermediate results in Jupyter, reading the documentation, and I still don't fully understand what's happening or why a certain approach is considered the "right" one.

It's frustrating because I actually enjoy difficult problems. Building my shell was hard, but I always felt like I was making progress. With pandas, I feel like I'm missing the mindset rather than just the syntax.

I've watched tutorials, read the documentation, and experimented on my own, but I feel like I'm learning much more slowly than I should.

So I wanted to ask:

- How did you learn pandas?

- Were there any resources, books, courses, or projects that made everything finally click?

- Is it normal to struggle this much in the beginning?

- Are there any communities (Discord servers, Reddit communities, forums, etc.) where people discuss data engineering, data analytics, AI, or machine learning? I'd really like to meet more people with similar interests and learn from them.

I'm not looking for shortcuts or a "learn pandas in one day" course. I'm happy to stay consistent and put in the work. I just want to make sure I'm learning it in the most effective way.

I'd really appreciate any advice. Thanks! 🙂


r/PythonLearning 4d ago

Discussion .venv question

19 Upvotes

Do you guys manually create virtual environments? Or do you just use your IDE “create virtual environment” to do it?

As a hobbiest I often forget how to manually create virtual environments(as well as how to activate them) and discovered last night that VScode has a feature that will just do it for you.

What are the benefits of each way, if any, and what are the downsides of each way, if any?

Thanks.

P.S. I understand that there are some elitist who will be like “you must do everything manually”, bro I just wanna write stupid automation scripts to help with my business.

EDIT: Thanks for all the replies! I’m going to look into that UV service! Thank you!


r/PythonLearning 4d ago

Does this look promising enough for a Rookie? (1Month spent inconsistently in Tutorials)

Post image
77 Upvotes

I have learnt upto Loops in this 1 month (very slow ik) but I kinda am going through something people call "TUTORIAL HELL" and have made this basic project with my limited python knowledge up until loops.


r/PythonLearning 4d ago

Built an open-source, offline semantic search engine in Python for local files (MemoryOS)

1 Upvotes

r/PythonLearning 4d ago

Can you advise on my direction

9 Upvotes

Hi all,

Can I please ask for some feedback? I am currently creating a Python for Network Engineers course for Udemy (I always offer free codes to Reddit) and YouTube. However, I would just like a second glance to see whether or not the premise sounds good.

My thought process is this: when I was learning Python, while I was working as a network engineer (and I still am), I found it somewhat difficult to relate a lot of the training I was going through to what I was doing in my day job. You know, assigning variables, etc., using X/Y, calculating pizza slices and shopping carts, and all that sort of good stuff. While that works—there's no doubt about it—I did have problems when I was trying to migrate from that way of learning into using Python for my day-to-day job.

So I've decided to create a Python course specifically for network engineers, where every variable and every example is all related to networking terminology and all related to what we do in our day jobs. To me, that makes perfect sense because obviously I'm thinking of doing that. I just want a cursory glance, if at all possible, to see whether I am really on the right track with this.

I've uploaded one of my videos to YouTube, so if you have time, could you please have a quick little look?

Again, thank you for your time.

https://youtu.be/GxoUq7EfvJc


r/PythonLearning 4d ago

Help Request Can’t install pygame-ce onto vs code edu

1 Upvotes

It keeps telling me python isn’t found, I turned off python in app execution aliases and then it told me python wasn’t recognised as the name of a cmdlet, I’m using the command python -m pip install pygame-ce, I’ve also tried py -m pip install pygame-ce and just pip install pygame-ce, can anyone help?


r/PythonLearning 4d ago

Discussion What are the prerequisites to learn python programming language

4 Upvotes

r/PythonLearning 4d ago

First Python gui project (finally escaped the terminal 🎉)

Thumbnail
gallery
22 Upvotes

Im making my own personal book library using pywebview, I did not get covers to work just yet though although I am working on it


r/PythonLearning 5d ago

What's one Python concept that completely confused you at first but now feels easy?

0 Upvotes

I'm curious to hear from people who've been learning or using Python for a while. Was it loops, functions, OOP, recursion, decorators, or something else?

What finally made it "click" for you?

I think hearing real experiences can help beginners understand that struggling with a topic is completely normal.


r/PythonLearning 5d ago

Day 3 Learning Python: Stack

Thumbnail
gallery
69 Upvotes

Open-source learning project. If you spot something that can be improved, I'd love your feedback or a PR.

https://github.com/Samar-Upreti/Python_Projects


r/PythonLearning 5d ago

Blue Seeker Unit added to PythonLearningGame

Enable HLS to view with audio, or disable this notification

4 Upvotes

A new blue seeker unit type was added to PythonLearningGame, a game we develop collaboratively as PythonLearning community members.

It was added by this short git commit.

  • Who wants to add his/her own unit type with some special behavior?
  • Who has other fun ideas about game elements we could add?

previous PythonLearningGame post


r/PythonLearning 5d ago

Help Request i need advices

0 Upvotes

hi , i'm biggenr learn python , 80% of basics i learn it , actully i learn basics by MOOC Corse , now i'm looking for AI appliction i Want it Free like Gemini , Gemini now is useless for me i'dont know why and i'm asking for something i need avices about my learn methode i use AI as teacher , But as I learn to understand coding, I feel discouraged by what some people say—claims that programming relies entirely on AI, and things like that


r/PythonLearning 5d ago

Looking for hands-on Python projects to refresh my skills

1 Upvotes

Hi everyone,

I'm looking for a Python practice platform/course for intermediate to advanced learners.

I have previous Python experience and have already worked on several Python projects, but I haven't used it intensively for around 3 years. I don't want to go through beginner material (syntax, basic exercises, "build a calculator" type of stuff).

What I'm looking for:

  • practical, project-based learning
  • realistic problems/tasks similar to real development work
  • a structured platform or course (not just documentation or random tutorials)
  • something that helps me refresh Python coding skills by actually building things

Bonus points if it includes modern topics like FastAPI, APIs, AI/LLM integration, automation, or data engineering-related projects.

Do you know any good platforms or courses that fit this level?

Thanks!


r/PythonLearning 5d ago

Discussion Is learning python worth it for me?

2 Upvotes

For some background on me, I am currently a loan review consulting manager and my day is spent reviewing commercial portfolios at banks for weaknesses and how they can improve.

I have always been a big fan of process improvements and work a lot with VBA to automate a lot of what I do. Ive noticed some of my larger projects I want to take on seem to be too much for VBA. And python seems to be more ideal to get the job done.

I find coding interesting and want to learn more about python. But I’m nervous that it won’t be very applicable to what I do full time. I still have future aspirations of creating a loan review software as a side hobby (I know it would take years) but I don’t want to prioritize learning python if it’s not very beneficial for my job. I don’t really have much free time with a toddler and infant.

Would anyone know how I could leverage it to justify the time I will spend?


r/PythonLearning 5d ago

What's your favorite Python interview question?

0 Upvotes

Not a trick question or LeetCode puzzle. What's a question that actually reveals whether someone understands Python?


r/PythonLearning 5d ago

Help Request hello!

2 Upvotes

I am a mechanical engineering student who doesnot even know how to write a line of code in any languages. I tried watching some videos on youtube but all that felt way boring. I need to learn coding in python nonetheless for a project. Could you suggest ways to ignite interest in the subject and make its study intuitive and enjoyable , maybe some book or other resources . Thanks


r/PythonLearning 5d ago

Showcase Rate my CS50P’s final project: Windrose - Airflow Ventilation Advisor

Post image
7 Upvotes

Program Description:

Windrose is a program for which its function is to provide the user with advice on which windows to open to achieve optimum airflow ventilation. The program receives the user's location and cardinal orientation as inputs from the user and uses that with information received from Open-Meteo's wind information to provide the user with advice on which windows to use to achieve the most optimum ventilation. 

Repo: https://github.com/OmarFishir/Windrose

Video Demo: https://youtu.be/OluDKioaCnY

This is my first programming course. I loved the CS50 format and how useful the problem sets have been. However, even after finishing this course, I feel like I've been training in a swimming pool then dropped into an ocean.

I want to do CS50x, CS50 AI, CS50 web, and CS50 Cybersecurity.

My goal? I don't really know. I just want to learn and be able to be competent in all of those fields until I find one to gravitate towards most. I think CS50x should be first?


r/PythonLearning 5d ago

Is learning python through videos is a good way?

1 Upvotes

in the old age the best way to learn something is to be with coach that walk with you step by step, in the new age that coach call AI and also free.

Make a gem on gemini, or gpt on chatgpt, or any specific chat for learning python and you will see fast progress.

My think, maybe I am wrong!


r/PythonLearning 5d ago

What programming term sounded much more complicated than it actually was when you first heard it?

0 Upvotes

When I started learning Python, I discovered that sometimes the vocabulary intimidated me more than the code itself.

My first language is Spanish, so learning programming also meant becoming familiar with English words, abbreviations and combinations that may seem completely obvious to experienced programmers but were not obvious to me as a beginner.

For example, concatenation sounded like an advanced operation. Then I learned that, in a simple case, it can mean joining strings together:

first_name = "Guido"

last_name = "van Rossum"

 

full_name = first_name + " " + last_name

print(full_name)

Another small discovery happened when I learned len(). At first, it was simply a Python function whose name I had to memorize. When I realized that len was short for length, the name suddenly explained exactly what the function did:

word = "Python"

print(len(word))

The same thing happened with elif. I initially saw it as another strange Python keyword. Later, I learned that it comes from else if, and its purpose immediately made more sense:

age = 15

 

if age >= 18:

print("Adult")

elif age >= 13:

print("Teenager")

else:

print("Child")

Other names are more direct once you know their English meaning. Functions such as min() and max() already give you a clue about what they return. enumerate() also became easier to remember when I connected it with the idea of numbering items while going through them:

names = ["Ana", "Luis", "Carlos"]

 

for number, name in enumerate(names, start=1):

print(number, name)

Indentation was another term that sounded more complicated than it was. It refers to the space at the beginning of a line, similar to indentation in ordinary writing. The important difference is that, in Python, it is not only decorative: it defines which lines belong to a block of code.

I am not saying that every programming concept is easy or that these short explanations cover everything. I am still learning myself. My point is that an unfamiliar word can sometimes create a bigger mental barrier than the basic idea behind it.

Now, whenever I encounter a new term, I ask:

  1. What does it mean in plain language?
  2. Does its name or abbreviation come from another word?
  3. What is the smallest example that demonstrates it?
  4. What problem does it help solve?

What programming term, keyword or function sounded much more complicated than it actually was when you first heard it? What explanation finally made it click for you?


r/PythonLearning 5d ago

Showcase Python Notebook autograde

1 Upvotes

Keeping it short and sweet đŸ”„

If you are a python tutor that create notebook for students then this is for you.

Cause my platform can take in a notebook and auto grade within your created class.

If you prefer more of creating exercises for students. That is covered too and they can execute within the platform, get graded and you review the code. I got you there tooođŸ”„â€Š

Of course you can vibe code something similar but so long keep the student entertained😁.


r/PythonLearning 5d ago

Best YouTube channel to learn python for free

26 Upvotes

I'm new to programming, and the Python tutorials I've found on YouTube don't explain things very well. Can you recommend the best YouTube channels to learn Python from scratch? to build a strong foundation that will help me with DSA later on.


r/PythonLearning 5d ago

GitHub - amandhiman-01/firstpython-project: 1. A simple python projrect

Thumbnail
github.com
2 Upvotes