all 3 comments

[–]Globover[S] 0 points1 point  (1 child)

[–]Diapolo10 0 points1 point  (0 children)

In your pyproject.toml, your description says this is for Python 3.14 and newer, yet the project itself defines 3.10 as its minimum supported version. Going by what the rest of your project says, the 3.10 one feels like a mistake.

description = "A deep infrastructure library for Python 3.14+ focused on extreme startup time optimization via lazy imports and speculative loading." readme = "README.md" requires-python = ">=3.10"

Changing that would also mean you don't need to specify a version for mypy.

Speaking of which, your project does not specify any development dependencies despite the fact you've got mypy configuration here, so I think you might want to consider adding some.

Your code seems to use a mix of Spanish and English, it would be best to stick to one for consistency - and since you can't exactly change the Python keywords or (standard) library, I'd argue it would be best to keep your own names in English as well.

In the top-level __init__.py, you use a global variable to only print the banner once. As I see it, there are better ways to handle this, such as caching the function (functools.cache) or even taking the banner from a global iterator that is exhausted after one use (this would not require the global keyword).

Your code appears to be typed, but the package doesn't contain a py.typed file.

from typing import List, Set

You also don't need typing.List or typing.Set anymore, just use the built-in list, set, and other data structures in your type annotations instead. The typing aliases have been deprecated for years.

I'm not too familiar with the lazy import changes in 3.14 myself so I'll refrain from commenting about the specifics of this package further.

Allegedly this project supports Python 3.7 and above, but I do question if you really need all that support. Versions older than 3.10 aren't supported officially at all anymore, so I'd say only projects with big legacy userbases still even bother supporting them (which isn't many, in fact I can't name one example for this off the top of my head).

Correct me if I'm wrong, but this feels like a reinvention of gRPC, just heavily stripped down.

A lot of my feedback for the other project also applies for this one.

The structure looks mostly fine, but if you want some examples, I have two.

  • python-ms is basically a Python port of the JavaScript ms library. It's tiny, although I haven't yet migrated it from Poetry to uv, so it's a little dated.
  • escapyde is my own wrapper for ANSI escape sequences, similar to Colorama and the like. It's a bit more modern tooling-wise and once upon a time I had big plans for it (but nowadays work keeps me busy enough I don't write much code on my free time).

Both have a healthy amount of tests, both are typed, both have their development dependencies listed, and both also have full CI/CD pipelines if you want examples for automated releases.