packaging.python.org
py-lmdb
packaging.python.org | py-lmdb | |
---|---|---|
4 | 1 | |
1,363 | 614 | |
0.9% | - | |
9.5 | 2.7 | |
6 days ago | 6 months ago | |
Python | C | |
- | GNU General Public License v3.0 or later |
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.
packaging.python.org
- ABI compatibility in Python: How hard could it be?
-
Making Sense of pyproject.toml, setup.cfg, and setup.py
[metadata] name = sample_pkg version = 1.0.0 author = Sharon Fitzpatrick description = this is the smallest description long_description = This is a longest description url = https://github.com/pypa/packaging.python.org keywords = python,example [options] python_requires = >=3.8, <4 install_requires = numpy matplotlib [options.extras_require] test = pytest coverage [options.package_data] sample = sample_data.csv'
-
How to Build a pyproject.toml File
# tells pip what build tool to use to build your package [build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta" # tells pip how to build your pypi webpage & what dependencies to install [project] name = "sample_pkg" dynamic = ["readme"] version = "0.0.30" authors = [ { name="Sharon Fitzpatrick", email="[email protected]" }] description = "A tool that performs xyz" dependencies = ["matplotlib", "numpy<1.23.0"] license = { file="LICENSE" } requires-python = ">=3.8" classifiers = [ "Programming Language :: Python :: 3", "License :: OSI Approved :: MIT License", "Operating System :: OS Independent", ] # (BETA) tells setuptools you will be using a readme file for the long description field for your pypi profile. [tool.setuptools.dynamic] readme = {file = ["README.md"]} # (OPTIONAL) tells pypi that these urls are where your project's source code and issue tracker reside [project.urls] "Homepage" = "https://github.com/pypa/packaging.python.org" "Bug Tracker" = "https://github.com/pypa/packaging.python.org/issues"
-
Pypi.org is running a survey on the state of Python packaging
If the package is available as a wheel, you don't need to execute code to see what the requirements are; you just need to parse the "METADATA" file. However, the only way to get the METADATA for a wheel (using PyPA standard APIs, anyway) is to download the whole wheel.
For comparison, pacman (the Arch Linux package manager) packages have fairly similar ".PKGINFO" file in them; but in order to support resolving dependencies without downloading the packages, the server's repository index includes not just a listing of the (name, version) tuple for each package, it also includes each package's full .PKGINFO.
Enhancing the PyPA "Simple repository API" to allow fetching the METADATA independently of the wheel would be a relatively simple enhancement that would make a big difference.
----
As I was writing this comment, I discovered that PyPA did this; adopting PEP 658 in March of this year. https://github.com/pypa/packaging.python.org/commit/1ebb57b7...
py-lmdb
-
ABI compatibility in Python: How hard could it be?
I maintain a small open source Python module written in C. I can't use the limited API (I use stuff outside it), so I have to maintain a build matrix. If you want to see what a decent-sized Python build matrix looks like, take a gander:
https://github.com/jnwatson/py-lmdb/actions/runs/3457851983
It gets out of hand pretty fast.
What are some alternatives?
ring-xous - Pure-Rust port of Ring for 32-bit embedded targets.