DotNetPy is the only .NET–Python interop library with Native AOT support — call Python from C# in 4 lines, manage Python versions and dependencies directly from C# via uv, and get compile-time injection warnings from a built-in Roslyn analyzer. { author: 남정현 } https://lnkd.in/eP3y8R5k
Native AOT Support for .NET-Python Interop with DotNetPy
More Relevant Posts
-
I wrote a short guide on using `uv` for Python dependency management. It’s helped clean up my local environments a bit, so I thought I’d share it in case it’s useful to anyone else. https://lnkd.in/dwqduhp9 #Python #uv
To view or add a comment, sign in
-
What if one tool could manage both your Python packages and compiled system libraries? uv installs Python packages from PyPI, but it doesn't support compiled C/C++ libraries. The typical workaround is to install system libraries separately using an OS package manager, then manually align versions with your Python dependencies. Since these system dependencies aren't captured in project files, reproducing the environment across machines can be unreliable. pixi solves this by managing both Python packages from PyPI and compiled system libraries from conda-forge in a single tool. Quick comparison: • uv: fast, reliable lockfiles, Python-only • conda: system libraries supported, but slower and no lockfiles • pixi: fast, unified, with system libraries, lockfiles, and a built-in task runner In this article, I compare uv and pixi on a real ML project so you can see how they perform in practice. 🚀 Link: https://bit.ly/4t16m34 #Python #PackageManagement #DataScience
To view or add a comment, sign in
-
Some essential Python packages rely on C/C++ compiled libraries that need to be installed system-wide. Pixi addresses this by managing packages and system-level libraries. #Pixi #Python #uv https://lnkd.in/ewB4Qaqk
To view or add a comment, sign in
-
turboAPI - FastAPI compatible python framework, but written in Zig Apparently a drop-in replacement with a much better performance footprint by removing GIL and more handlers written in Zig. https://lnkd.in/eCAUHvV7
To view or add a comment, sign in
-
7 Python Mistakes That Make Your Code Slow 🐍 👉 Bad coding practices make Python slow — not Python itself. When written correctly, Python powers some of the world’s biggest platforms like Google, Netflix, and Instagram. The difference between average Python code and professional Python code is usually these small mistakes. Here are some serious Python mistakes developers often make 👇 ❌ Writing nested loops for heavy operations ❌ Ignoring list comprehensions ❌ Not using virtual environments ❌ Poor error handling ❌ Writing everything in one huge script ❌ Not using built-in libraries ❌ Inefficient database queries Professional Python developers do this instead 👇 ✅ Use list comprehensions & generators ✅ Split code into modular functions and classes ✅ Use virtual environments for dependencies ✅ Implement proper exception handling ✅ Use built-in optimized libraries ✅ Optimize database queries ✅ Write clean and maintainable code When used properly, **Python can handle large-scale applications, AI systems, and data platforms efficiently. Which Python mistake do you see most often? #python #pythondeveloper #programmingtips #softwaredeveloper #codinglife #webdevelopment #backenddeveloper #developercommunity #learnpython #programming
To view or add a comment, sign in
-
-
🐍 Python has had frozenset for decades. Python may soon have frozendict The key nuance: frozendict is not part of a stable Python release yet. It is targeted for Python 3.15 and is available in preview builds for testing. Treat it as an upcoming feature, not something already shipped in production. Here’s why it matters ⚙️ Regular dictionaries in Python are mutable. You can add keys, reassign values, and remove items at any time. They are also unhashable, which means they cannot be used as keys in other dictionaries or stored in sets. In addition, like all mutable objects, they can be modified when passed into functions that receive them, which can make it harder to guarantee that data remains unchanged. frozendict addresses a long-standing need in the Python ecosystem for an immutable, hashable mapping type. 🔧 What it provides → Hashable - can be used as a dictionary key or stored in a set → Immutable - attempts to modify raise an exception at runtime → Preserves insertion order 💡 What this enables → Configuration objects that cannot be accidentally modified → Cache keys that require stable hashing → Safer data sharing between components → Functional-style patterns without defensive copying If you are using Python 3.15 preview builds, you can experiment with it today config = frozendict(api_version="v2", timeout=30, retries=3) # config["timeout"] = 10 → TypeError More information 👉 https://shorturl.at/g4IE6 #Python #Python3 #Python315 #Programming #ProgrammingLanguages #SoftwareEngineering #SoftwareDevelopment #BackendDevelopment #DevOps #CleanCode #SystemDesign #CodeQuality #ComputerScience #DevTactics #Developer #Programmer
To view or add a comment, sign in
-
-
🚀 Day 16 – Exploring REST API Tools in Python Today I learned about tools and frameworks used to build REST APIs in Python, and how real-world APIs are structured. 🔹 Key Concepts Covered: • Understanding how APIs manage resources like countries (name, capital, area) • Designing endpoints such as /countries for handling data • Using JSON as a standard data format • Storing data temporarily using Python lists 🔹 Framework Explored: Flask • Lightweight Python framework for building APIs • Handles HTTP requests and routes them to functions • Built simple endpoints like: GET /countries → retrieve data POST /countries → add new data 🔹 What I understood: • How APIs are structured in real applications • How requests and responses work in backend systems • How Python can be used not just to consume APIs, but also to build them This was my first step into backend API development using Python, and it gave me a clear understanding of how data flows in real-world applications. Continuing to build my Data Engineering & API knowledge step by step. 🐍💻 #Python #DataEngineering #APIs #RESTAPI #BackendDevelopment #LearningJourney #SelfLearning
To view or add a comment, sign in
-
-
As a long-time Java engineer, I continue to be impressed by how much Python has evolved. What once felt like a simple scripting language has grown into a remarkably capable ecosystem: C-backed libraries like NumPy, performance-oriented tooling in Rust, native coroutine support with async and await, and multiple concurrency models for very different workloads. One thing I find especially interesting is Python’s concurrency toolbox. Choosing the right model usually comes down to one question: What is your code actually waiting on? If your program is mostly waiting on the network, a database, or disk, you are likely dealing with an I/O-bound problem. In that case, asyncio can be a strong fit when the surrounding stack is async-native. If your program spends most of its time computing, parsing, or transforming data, you are likely dealing with a CPU-bound problem. In standard CPython, threads usually do not speed up pure Python CPU work because of the GIL. For that, multiprocessing is often the better fit. A few practical rules I keep in mind: • asyncio for high-concurrency I/O with async-native libraries • threads for blocking libraries or simpler concurrency • multiprocessing for CPU-heavy pure Python workloads • threads with native libraries when heavy work runs in C or Rust A good example is PyArrow and PyIceberg. PyArrow’s Parquet reader supports multi-threaded reads. That means you can get parallelism without rewriting everything around asyncio, because the heavy work happens in native code rather than Python bytecode. PyIceberg builds on this ecosystem. From the Python caller’s point of view, the workflow is still synchronous, while file access and data processing can benefit from native parallelism underneath. The key lesson for me: Not every high-performance I/O workflow in Python needs asyncio. If the underlying engine is native and already parallelizes efficiently, threads can be the right tool. If the stack is async-native, asyncio becomes much more compelling. A simple mental model: Async-native I/O → asyncio Native libraries parallelizing outside Python → threads CPU-heavy pure Python → multiprocessing Not sure → profile first That mindset is often more useful than memorizing any specific framework. #Python #Java #Concurrency #AsyncIO #Threading #Multiprocessing #Performance #SoftwareEngineering #DataEngineering
To view or add a comment, sign in
-
Parameters now support enums for cleaner, more reliable eval configurations. Define dropdown options in Python or TypeScript, and Braintrust automatically generates UI controls with validation.
To view or add a comment, sign in
Explore content categories
- Career
- Productivity
- Finance
- Soft Skills & Emotional Intelligence
- Project Management
- Education
- Technology
- Leadership
- Ecommerce
- User Experience
- Recruitment & HR
- Customer Experience
- Real Estate
- Marketing
- Sales
- Retail & Merchandising
- Science
- Supply Chain Management
- Future Of Work
- Consulting
- Writing
- Economics
- Artificial Intelligence
- Employee Experience
- Workplace Trends
- Fundraising
- Networking
- Corporate Social Responsibility
- Negotiation
- Communication
- Engineering
- Hospitality & Tourism
- Business Strategy
- Change Management
- Organizational Culture
- Design
- Innovation
- Event Planning
- Training & Development