Le 23 novembre 2025 à 23:22:49 :
Le 23 novembre 2025 à 23:22:12 :
Le 23 novembre 2025 à 23:21:20 :
Le 23 novembre 2025 à 23:20:50 :
Le 23 novembre 2025 à 23:18:36 :
import threading import asyncio import contextvars cv = contextvars.ContextVar("cv", default=[]) class Tricky(type): def __new__(mcls, name, bases, ns, **kw): ns["attr"] = len(ns) + len(bases) cls = super().__new__(mcls, name, bases, ns) print("meta", cls.__name__, cls.attr) return cls class Base(metaclass=Tricky): def __init_subclass__(cls, **kw): super().__init_subclass__(**kw) print("init_subclass", cls.__name__, getattr(cls, "attr", None)) class A(Base): x = [i for i in range(3)] def __init__(self, n=cv.get()): n.append(id(self)) self.n = n class B(A, attr=42): async def run(self): await asyncio.sleep(0) print("B.run", self.n, cv.get()) async def main(): cv.set(["main"]) a = A() b = B() print("objects", id(a) == id(b), a.n is b.n) async def task(): cv.set(["task"]) await b.run() t = threading.Thread(target=lambda: asyncio.run(task())) t.start() await asyncio.sleep(0) await b.run() t.join() asyncio.run(main())liste tous les prints qui peuvent apparaître
t'as un moyen simple de trouver mais pour ça faut savoir coder en python
alors pourquoi faire un topax sur ce theme ahii
soit concis, culture générale, one liner, pas entretien technique
Le 23 novembre 2025 à 23:23:52 :
Le 23 novembre 2025 à 23:22:49 :
Le 23 novembre 2025 à 23:22:12 :
Le 23 novembre 2025 à 23:21:20 :
Le 23 novembre 2025 à 23:20:50 :
> Le 23 novembre 2025 à 23:18:36 :
>
import threading > import asyncio > import contextvars > > cv = contextvars.ContextVar("cv", default=[]) > > > class Tricky(type): > def __new__(mcls, name, bases, ns, **kw): > ns["attr"] = len(ns) + len(bases) > cls = super().__new__(mcls, name, bases, ns) > print("meta", cls.__name__, cls.attr) > return cls > > > class Base(metaclass=Tricky): > def __init_subclass__(cls, **kw): > super().__init_subclass__(**kw) > print("init_subclass", cls.__name__, getattr(cls, "attr", None)) > > > class A(Base): > x = [i for i in range(3)] > > def __init__(self, n=cv.get()): > n.append(id(self)) > self.n = n > > > class B(A, attr=42): > async def run(self): > await asyncio.sleep(0) > print("B.run", self.n, cv.get()) > > > async def main(): > cv.set(["main"]) > a = A() > b = B() > print("objects", id(a) == id(b), a.n is b.n) > > async def task(): > cv.set(["task"]) > await b.run() > > t = threading.Thread(target=lambda: asyncio.run(task())) > t.start() > > await asyncio.sleep(0) > await b.run() > t.join() > > > asyncio.run(main()) >>
> liste tous les prints qui peuvent apparaître
t'as un moyen simple de trouver mais pour ça faut savoir coder en python
alors pourquoi faire un topax sur ce theme ahii
soit concis, culture générale, one liner, pas entretien technique
![]()
bon, bon.. allez plutot orienté avis/veille, que penses tu du nouveau modele developpé par yan lecunn ?
Le 23 novembre 2025 à 23:24:32 :
Le 23 novembre 2025 à 23:23:52 :
Le 23 novembre 2025 à 23:22:49 :
Le 23 novembre 2025 à 23:22:12 :
Le 23 novembre 2025 à 23:21:20 :
> Le 23 novembre 2025 à 23:20:50 :
> > Le 23 novembre 2025 à 23:18:36 :
> >
import threading > > import asyncio > > import contextvars > > > > cv = contextvars.ContextVar("cv", default=[]) > > > > > > class Tricky(type): > > def __new__(mcls, name, bases, ns, **kw): > > ns["attr"] = len(ns) + len(bases) > > cls = super().__new__(mcls, name, bases, ns) > > print("meta", cls.__name__, cls.attr) > > return cls > > > > > > class Base(metaclass=Tricky): > > def __init_subclass__(cls, **kw): > > super().__init_subclass__(**kw) > > print("init_subclass", cls.__name__, getattr(cls, "attr", None)) > > > > > > class A(Base): > > x = [i for i in range(3)] > > > > def __init__(self, n=cv.get()): > > n.append(id(self)) > > self.n = n > > > > > > class B(A, attr=42): > > async def run(self): > > await asyncio.sleep(0) > > print("B.run", self.n, cv.get()) > > > > > > async def main(): > > cv.set(["main"]) > > a = A() > > b = B() > > print("objects", id(a) == id(b), a.n is b.n) > > > > async def task(): > > cv.set(["task"]) > > await b.run() > > > > t = threading.Thread(target=lambda: asyncio.run(task())) > > t.start() > > > > await asyncio.sleep(0) > > await b.run() > > t.join() > > > > > > asyncio.run(main()) > >> >
> > liste tous les prints qui peuvent apparaître
>
t'as un moyen simple de trouver mais pour ça faut savoir coder en python
alors pourquoi faire un topax sur ce theme ahii
soit concis, culture générale, one liner, pas entretien technique
![]()
bon, bon.. allez plutot orienté avis/veille, que penses tu du nouveau modele developpé par yan lecunn ?
tu parles de quoi ? sa startup ? son v-jepa ?
si tu parles du v-jepa j'ai trouvé ça cool
JvArchive compagnon