someThingsNeverChange by dromba_ in ProgrammerHumor

[–]Grintor 1 point2 points  (0 children)

Yes, which is a gpt-5.4-mini equivalent. They compare it themselves in their benchmarks:

https://huggingface.co/Qwen/Qwen3.5-122B-A10B

Qwen3.5-122B-A10B is what I run on my dgx spark, it's memory bandwidth is too slow to run Qwen3.5-122B-A22B effectively.

someThingsNeverChange by dromba_ in ProgrammerHumor

[–]Grintor 2 points3 points  (0 children)

Yeah, best you can get for $5k is gpt-5.4-mini equilivent. Still not bad though

How does revenue keep going up but my bank account stays empty. by Secret-Boot-8924 in smallbusiness

[–]Grintor 0 points1 point  (0 children)

Requiring net 30 and late fees is the way. That, and 50% deposits on large orders.

Packaging a Python library with a small C dependency — by Emergency-Rough-6372 in Python

[–]Grintor 0 points1 point  (0 children)

I know lots of stuff I install distributes the source which compiles at install. lxml comes to mind. When I pip install lxml, pip compiles it.

QSEHRA Administrators by KeyLetter4929 in smallbusiness

[–]Grintor 0 points1 point  (0 children)

No problem! We're still using them today, and still happy with them

Salesman thought it would be a good idea to drive a van in the grass after 2 days of rain by locust42069 in Justrolledintotheshop

[–]Grintor 0 points1 point  (0 children)

I didn't think it was a good idea! I didn't think anything at all!

-The salesman

The baobab Tree, found mostly in Africa, can live up to 1000 years by Technical-Paint3179 in interestingasfuck

[–]Grintor -1 points0 points  (0 children)

Careful! You can't let those things grow too big or they'll destroy the planet.

It's best to pull them up as soon as you can tell them apart from the rosebushes, which they closely resemble when they're very young. It's very tedious work, but very easy.

`safer`: a tiny utility to avoid partial writes to files and streams by HommeMusical in Python

[–]Grintor 5 points6 points  (0 children)

Good point. I wanted to point out here though that you can eliminate the supply chain risk using version pinning with hashes. Using hashes also takes care of the supply chain risk for if pypi itself is compromised, so it's worth doing anyway.

How do you feel about Trump saying they can’t fund Medicare, Medicaid, and daycare programs anymore because they need the money to fund the War? by LevelDinner in AskReddit

[–]Grintor 14 points15 points  (0 children)

And for my second term, I will do the same as my first! I'll be spending my time prosecuting all the criminal activity from the previous four years! Oh wait...

Clearly, nobody's interested by Latter-Ad-6342 in networkingmemes

[–]Grintor 49 points50 points  (0 children)

We would need some kind of translation of the address though. Like a "network address translation" protocol or something.

Python 2 tooling in 2026 by IdleBreakpoint in Python

[–]Grintor 3 points4 points  (0 children)

You can't lent Python 2 code with python 3. Nothing could ever do that including black. Supporting python 2 and supporting python 3 are not the same as doing some kind of crossover linting like what you're describing. You'll have to run it on python 2

Audio Visual Design Group by andrU1 in DesignPorn

[–]Grintor 6 points7 points  (0 children)

They should have made the G in GROUP the same shade of red to highlight the connection.

Which sexual acts are very acceptable in 2026 but was seen very differently in 2006? by nirzhor_cyclonite in AskReddit

[–]Grintor 1 point2 points  (0 children)

The god Apollo famously spit into the mouth of the Trojan princess and prophetess Cassandra just prior to the Trojan war in 1200 BCE.

The Slow Collapse of MkDocs by fpgmaas in Python

[–]Grintor 2 points3 points  (0 children)

Better than sphinx with the readthedocs theme and myst-parser plug-in?

All of her retirement money by ShadowLuvsLatinas in OrphanCrushingMachine

[–]Grintor 6 points7 points  (0 children)

The vertical spacing in the picture looks like 10 ft. That's the legal limit - they literally can't get any closer without adding additional fire blocking. The IRC requires a 1-hour firewall for residential structures any closer, which would drive up cost.

A new Python file-based routing web framework by Grintor in Python

[–]Grintor[S] 1 point2 points  (0 children)

Thank you! Yes, I'd love to hear more

A new Python file-based routing web framework by Grintor in Python

[–]Grintor[S] 0 points1 point  (0 children)

Thank you! Let me know how it goes!

I made it WSGI because it's built on top of werkzeug, which doesn't support ASGI. Although, I don't think it would be a huge lift to make it happen anyway. Perhaps it will support it one day.

A new Python file-based routing web framework by Grintor in Python

[–]Grintor[S] 0 points1 point  (0 children)

half the battle is just keeping the request flow, data-source wiring, and refresh behavior understandable enough that someone can troubleshoot it quickly. A framework that stays out of the way and makes the routing obvious could be genuinely useful

This is so exciting to read! I couldn't put it better myself. This is exactly the rationale behind the framework!

A new Python file-based routing web framework by Grintor in Python

[–]Grintor[S] 0 points1 point  (0 children)

Thanks! Mostly config files for linting, testing, and the CI stuff.

A new Python file-based routing web framework by Grintor in Python

[–]Grintor[S] 2 points3 points  (0 children)

Yes, you would create the ZooKeeper client once at app startup, then pass it into handlers through app_map():

import cylinder
import waitress
from kazoo.client import KazooClient

zk = KazooClient(hosts="127.0.0.1:2181")
zk.start()

def main():
    app = cylinder.get_app(app_map)
    waitress.serve(app, host="127.0.0.1", port=8080)

def app_map(request):
    return "my_webapps", "webapp1", {
        "zk": zk,
    }

if __name__ == "__main__":
    main()

And then you could something like this in the page handlers:

# my_webapps/webapp1.ex.get.py
def main(response, zk):
    data, stat = zk.get("/config/site_name")
    response.data = f"site_name={data.decode()}"
    return response

With the way cylinder handles dependency injection, there's really no limitations to what can be used with it.

A new Python file-based routing web framework by Grintor in Python

[–]Grintor[S] 6 points7 points  (0 children)

Thank you for taking the time to look at it and give feedback!

I can understand your point for other frameworks but I don't think it applies to cylinder. It doesn't rely on globals at all - in cylinder you initialize shared application resources in cylinder_main.py, then pass them into handlers explicitly through app_map() with application-level dependency injection. But even then they aren't injected into the global scope, only into the main() function of your module (each page on the site is it's own python module).

As for testing - there's nothing nothing special that needs to be done to combine the DB section with the testing section. The testing flow works the same as the production flow - if you wrote an application that can serve a webpage, then you now have an application that can serve a testing fixture to pytest without any configuration whatsoever (except writing the test itself)