PDM
Nuitka
Our great sponsors
PDM | Nuitka | |
---|---|---|
47 | 91 | |
6,370 | 10,582 | |
4.9% | 2.0% | |
9.6 | 10.0 | |
about 15 hours ago | 7 days ago | |
Python | Python | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
PDM
-
Implementing Quality Checks In Your Git Workflow With Hooks and pre-commit
# See https://pre-commit.com for more information # See https://pre-commit.com/hooks.html for more hooks repos: - repo: https://github.com/pre-commit/pre-commit-hooks rev: v3.2.0 hooks: - id: trailing-whitespace - id: end-of-file-fixer - id: check-yaml - id: check-toml - id: check-added-large-files - repo: local hooks: - id: tox lint name: tox-validation entry: pdm run tox -e test,lint language: system files: ^src\/.+py$|pyproject.toml|^tests\/.+py$ types_or: [python, toml] pass_filenames: false - id: tox docs name: tox-docs language: system entry: pdm run tox -e docs types_or: [python, rst, toml] files: ^src\/.+py$|pyproject.toml|^docs\/ pass_filenames: false - repo: https://github.com/pdm-project/pdm rev: 2.10.4 # a PDM release exposing the hook hooks: - id: pdm-lock-check - repo: https://github.com/jumanjihouse/pre-commit-hooks rev: 3.0.0 hooks: - id: markdownlint
-
Beginning Python: Project Management With PDM
PDM is a solution that allows for easy creation and management of python projects. Some of the key features that will improve the management of python projects include:
-
A question about good practice when using docker.
You'd need a proper dependencies management tool like PDM or Poetry to exhaustively resolve and lock down all the transitive dependencies if you want to have anything closed to reproducible build.
-
pdm-dotenv: Simplify Your Project's Environment Variable Management
Are you working on a Python project that uses pdm for dependency management and dotenv for local environment variable and secrets management? Do you find it frustrating when CLI tools like pgcli don't automatically pick up your .env file, forcing you to resort to npm install -g dotenv-cli? I've got a more convenient solution for you!
-
PEP 582 rejected - consensus among the community needed
I first learned about PDM from a blog post written by one of the PDM contributers. The post was about OOPifying argparse to allow for easy creation/modification of subcommands that exist as their own classes/files, and to avoid maintaining a single long script with an endless number of subparser.add_argument(...) lines.
It's per project, check out pdm if you want a preview https://github.com/pdm-project/pdm
-
PEP 704 – Require virtual environments by default for package installers
That's more or less what PEP 582 plans to do, but it's been stalled and mired in discussions for years. The PDM tool went ahead and implemented it though if you want to use it: https://github.com/pdm-project/pdm
-
This Week In Python
pdm – A modern Python package and dependency manager
-
How does a virtual environment work?
pdm and PEP 582 enter the chat
-
Boring Python: Code Quality
I'm liking PDM for a while now. Quicker than Poetry and built according to the Python package spec in mind and not as an afterthought. While it was originally meant to work with PEP 582, it works with virtual environments too (now default).
Nuitka
-
Faster Blogging: A Developer's Dream Setup
glee is rich in blogging features but has some drawbacks. One of the main drawbacks is its compatibility with multiple operating systems and system architectures. We lost one potential customer due to glee incompatibility in macOS. Another major issue is the deployment time. We built the first version of glee entirely in Python and used nuitka, nuitka compiles Python programs into a single executable binary file. We need to create three separate stages for creating executable binaries for Windows, Mac, and Linux in deployment, and it takes around 20 minutes to complete.
-
Python 3.13 Gets a JIT
There is already an AOT compiler for Python: Nuitka[0]. But I don't think it's much faster.
And then there is mypyc[1] which uses mypy's static type annotations but is only slightly faster.
And various other compilers like Numba and Cython that work with specialized dialects of Python to achieve better results, but then it's not quite Python anymore.
-
Briefcase: Convert a Python project into a standalone native application
Nuitka deals pretty well with those in general: https://nuitka.net/
-
Why not tell people to “simply” use pyenv, poetry or anaconda
That's more of cultural problem in the Python community.
If I provide an end user software to my client written an Python (so not a backend, not a lib...), I will compile it with nuitka (https://github.com/Nuitka/Nuitka) and hide the stack trace (https://www.bitecode.dev/p/why-and-how-to-hide-the-python-st...) to provide a stand alone executable.
This means the users don't have to know it's made with Python or install anything, and it just works.
However, Python is not like Go or Rust, and providing such an installer requires more than work, so a huge part of the user base (which have a lot of non professional coders) don't have the skill, time or resources to do it.
And few people make the promotion of it.
I should write an article on that because really, nobody wants to setup python just to use a tool.
- Python cruising on back of c++
-
Extending web applications with WebAssembly and Python
> Your comment would make sense if Python code could be compiled into x86 or ARM assembly in the first place.
It can actually be compiled (or transpiled) into C code [1] with few limitations, so I can't see why not.
-
Codon: Python Compiler
Just for reference,
* Nuitka[0] "is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.4, 3.5, 3.6, 3.7, 3.8, 3.9, 3.10, and 3.11."
* Pypy[1] "is a replacement for CPython" with builtin optimizations such as on the fly JIT compiles.
* Cython[2] "is an optimising static compiler for both the Python programming language and the extended Cython programming language... makes writing C extensions for Python as easy as Python itself."
* Numba[3] "is an open source JIT compiler that translates a subset of Python and NumPy code into fast machine code."
* Pyston[4] "is a performance-optimizing JIT for Python, and is drop-in compatible with ... CPython 3.8.12"
- Is there a way to use turn a project into a single executable file that doesn't require anyone to do anything like install Python before using it?
-
Python-based compiler achieves orders-of-magnitude speedups
So the differences:
https://docs.exaloop.io/codon/general/differences
So more limited types (integers) and more type checking and collections have to have one kind of thing in them.
There are other python compilers though, like https://github.com/Nuitka/Nuitka
I wonder really what the advantages/disadvantages of these are?
-
List of all subreddits on reddit
I also compiled it with Nuitka and was able to process a ~35 million line file in 1 hour and 22 minutes, averaging about 6,800 lines per second.
What are some alternatives?
PyInstaller - Freeze (package) Python programs into stand-alone executables
Poetry - Python packaging and dependency management made easy
pyarmor - A tool used to obfuscate python scripts, bind obfuscated scripts to fixed machine or expire obfuscated scripts.
conda - A system-level, binary package and environment manager running on all major operating systems and platforms.
PyOxidizer - A modern Python application packaging and distribution tool
py2exe - modified py2exe to support unicode paths
pip-tools - A set of tools to keep your pinned Python dependencies fresh.
pip - The Python package installer
false-positive-malware-reporting - Trying to release your software sucks, mostly because of antivirus false positives. I don't have an answer, but I do have a list of links to help get your code whitelisted.
Pipenv - Python Development Workflow for Humans.
PyFlow - Visual scripting framework for python - https://wonderworks-software.github.io/PyFlow
py2app