Repository navigation
Claude/native declines perf - #208
Closed
KotlinIsland wants to merge 16 commits into
Closed
KotlinIsland wants to merge 16 commits into
KotlinIsland wants to merge 16 commits into
Conversation
…lds as python does compiled `==` asks the type rather than answering true for identical objects, tagged ints handle the short minimum and literals too wide to tag, the handled exception survives a re-raise and an except clause's class evaluation, a with block looks its methods up on the type, a name's value is released when the name is rebound, an instance made without __init__ has no fields, comparisons used as values keep the object their method returned, a second import hands back the first module object, and a float subclass goes to the interpreted definition. also releases temporaries at their last read, stores closure cells natively and speeds up big tagged ints
…ave as python's state objects collected from creation and refused construction from python, throw/close/athrow with python's arguments and wording, delegation through yield from and await, a running frame refused, the RuntimeWarning for a coroutine never awaited, weak references, generator expressions and lambdas inside a resumable frame, finally blocks on the exception path, and a traceback entry for each compiled frame an exception passes
a compiled call notices a module function rebound, deleted or patched from outside, and honours a reassigned __code__ or defaults; a compiled recursion counts against the recursion limit and the thread's stack. compile.bind-functions-early and compile.follow-recursion-limit turn each back off, and the development docs say what each leaves
…run python add an analysis of which operations can run python code over the native call graph, and use it to ask once, on the way into a loop, whether a builtin or module function still stands and whether an int field is set; read an extended class's fields through one licence per class
fill every slot python gives a dunder's name, carry members the module body rewrites after the class statement onto the emitted type, keep an attribute that shares a method's name in the instance dict, give instances a weak reference list on python's terms, hand interpreted subclasses an allocator that marks int fields unset, and fix delegation, parked loop iterators and generator expression evaluation order in generators
step a generator directly from a for loop with its state number as a machine integer and its iternext inlined, recycle finished generators' memory, release tagged int temporaries at their last read, borrow list elements across an unbox, hold loop counters as machine integers inside a loop copy, convert counters straight to doubles, unswitch nested loops, and follow python's float floor division, remainder and power case for case
…d checks methods bind through PyMethod_New and answer their def, module, qualname, defaults, annotations and repr as the interpreted function does, class and static methods are wrapped as a class statement wraps them, tp_new is left to object, class patterns read fields only where the layout is held, and a compiled module makes the interpreted build's soundness checks in the same places and words
emit the copy a versioned recursion falls back to as a function of its own, drop a type test an earlier guard already answered, memoize global reads and the soundness check per type and class, answer equality from the right operand's type, build displays from borrowed operands, stop leaking a reference on every compiled int return, and empty a moved-from register with its declared value
…on, and add inherit_ov and loops_aug rows bench.py stages only the source a leg builds from so .by rows build again, the benchmark programs are annotated as their docstrings say, and the sweep renderer prints a compiled method as a callable. cdiff scopes a by.h change definition by definition and writes its summary into its output file, ci runs the scoper's tests, and two benchmark rows measure @OverRide and augmented assignment against their plain siblings
an expression region carries the declarations a statement expression makes instead of asserting it has none, an overload set and a valueless Final are checked in a scope whose end is unreachable, and a class with a gradual base answers as having a gradual member
…eated `_` positional-only re-emit only the nodes an AST pass rewrote and pass the source of the rest through, keeping comments, indentation, clause-line bodies and docstrings, and report the author's own text for f-string and t-string fields. the splice refuses any edit it leaves out unless the pass covering it declares it writes that lowering. a repeated `_` is numbered past every name the module spells, positional-only, and named after an overridden method's parameters, decided once in ty and read by the transpiler, callable types and inline protocols included. `decorator def` gets real overloads, a context parameter is filled through an overload set that agrees on it, a module binding a runtime helper's name is reported, and by run compiles each staged module under its .by path and lines
…runtime evaluates for it version checks run for .by files except where the lowering removes the syntax; an evaluated `|` is `Union` below 3.10 and `T?` a tuple of classes in isinstance; a `some` parameter is a TypeVar at every version, refused off a parameter annotation and on variadics; the generics polyfill imports its constructors and declares its type variables under names the module does not spell and passes ParamSpec and TypeVarTuple defaults through; by run compiles from text so 3.9-3.11 do not recurse, and a -W error warning names the .by line; polyfill runtime tests run on an interpreter that can run them
…facility typing names, builtins, runtime helper names and module-level private symbols are imported or declared under names the module does not bind; one decision names each polyfilled type parameter for the polyfill, inline protocols and anonymous named tuples; the isinstance classinfo decision is one query ty and the transpiler share; method type variables are declared at module scope; a data class gets its slots below 3.10; keyword-pack defaults follow PEP 696
… relate guards by the parameter they narrow, and quote annotations once a protected or private rename onto a name the class hierarchy stores is invalid-visibility; `x is int?` parses the marker as part of the type and `?` over a value types as the `| None` it evaluates; a return guard's target is a type position, `-> a is not T` is refused, and callable types may return a guard, related by which parameter each narrows. a forward reference is not quoted again under the future import, synthesized annotations import with the module's other imports, imported backing functions and conversion targets are bound under per-module names, synthesized classes are named once per module by shape, and a private class-body type alias is a private member. a symbolic fold inside a tuple or callable type is written by the pass that replaces it, and a fold may name a type parameter bound where it is written
…and read repeated `_` names from ty an int register carries a bool or int subclass as the object, asking its own methods for truthiness, unary operators and mixed float arithmetic; unary `+` asks any operand's __pos__; a literal default a place cannot hold as itself goes to the twin; an augmented assignment's slow path asks the in-place method; compiled repeated `_` parameters are named and made positional-only from ty's answer; a float subclass narrowed to its value is documented
…and slot data classes methods marked override, final or abstractmethod compile, and the report counts what really runs; a method the class body binds again publishes what it bound; a module body that writes over a compiled class's members leaves the module interpreted; one decision says which classes are mutable, including a written __new__; a data class declares its slots, publishes __slots__ and its pickling state, and is compared against the class its decorators produced; __class__ reads the defining class; the header compiles below 3.13
Contributor
by ecosystem round-tripbase: regressions: 0, changed: 5562, improvements: 0, error changes: 0 (across 25268 files in 148 projects) ℹ️ changed round-trip outputDateType — _by_sourcemap.py--- base/_by_sourcemap.py
+++ head/_by_sourcemap.py
@@ -14,5 +14,5 @@
DIGESTS = {
"/tmp/tmp81xe78y2/DateType/build/docs/conf.py": {"by": "sha256:79307623df6ce61884512e0bdc1b32491e4c2aff4efcfa0c5e45d2976010bcf9", "py": "sha256:06ca40142aa11aa9b37898e59bce635d09cda0789cd6c625cf61aaf8bd01e31d"},
- "/tmp/tmp81xe78y2/DateType/build/datetype/__init__.py": {"by": "sha256:94a56a11a4d8888bd68aecc60bb49f92906a9be5b64866c1a0d305e178ecf4b0", "py": "sha256:004cfd025a866f8c8e143a268fd944d42cb70dab7afb748afb7f4b9c19460298"},
+ "/tmp/tmp81xe78y2/DateType/build/datetype/__init__.py": {"by": "sha256:94a56a11a4d8888bd68aecc60bb49f92906a9be5b64866c1a0d305e178ecf4b0", "py": "sha256:d2629aef5770ef569dea88a59c81afc2567b7a6186797a1bb40a50ed3ead757c"},
"/tmp/tmp81xe78y2/DateType/build/datetype/test/__init__.py": {"by": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855", "py": "sha256:e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"},
"/tmp/tmp81xe78y2/DateType/build/datetype/test/test_datetype.py": {"by": "sha256:61da5c59dcb92e423e8e5d7e45a646b3f76cf0d130642183aada96412a295dc4", "py": "sha256:680edea67d64782206eddb0866a5e9dae975afe0aa947b7e3d4de420218eea3c"},DateType — datetype/__init__.py--- base/datetype/__init__.py
+++ head/datetype/__init__.py
@@ -1,5 +1,5 @@
lazy from ty_extensions import JustFloat
-lazy from typing import Literal, overload
-_MISSING = object()
+lazy from typing import Any, Literal, overload
+_MISSING: Any = object()
lazy import sysDateType — datetype/_by_runtime.py--- base/datetype/_by_runtime.py
+++ head/datetype/_by_runtime.py
@@ -388,4 +388,35 @@
+# a `t"..."` the author wrote, carrying the text the author wrote for each of its
+# fields rather than the text this file was lowered to
+#
+# `Interpolation.expression` is the source of the field, which python reads off the
+# compiled file — `t"{a!}"` would hand a reader `_force_unwrap(a)`. `_exprs` runs
+# parallel to the fields: a string is the author's own text for that field, and
+# `None` a field nothing lowered, which keeps the interpolation python built and so
+# stays byte-identical to what python would have reported
+#
+# the import is made here rather than at the top of the file because this module is
+# shared with runtimes that have no `string.templatelib`. only a t-string can reach
+# this helper, and a t-string needs 3.14
+def _by_template(_t, _exprs):
+ from string.templatelib import Interpolation, Template
+
+ _strings = _t.strings
+ _parts = []
+ for _index, _field in enumerate(_t.interpolations):
+ _parts.append(_strings[_index])
+ _expr = _exprs[_index]
... 4723 characters elided ...
+ elif isinstance(member, property):
+ if (
+ _by_dataclass_class_cell(member.fget, cls, new)
+ or _by_dataclass_class_cell(member.fset, cls, new)
+ or _by_dataclass_class_cell(member.fdel, cls, new)
+ ):
+ break
+ return newExpression — _by_sourcemap.py--- base/_by_sourcemap.py
+++ head/_by_sourcemap.py
@@ -24,49 +24,49 @@
"/tmp/tmpul2udipb/Expression/build/expression/collections/__init__.py": ("/tmp/tmpul2udipb/Expression/expression/collections/__init__.by", [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]),
... 139698 characters elided ...
"/tmp/tmpul2udipb/Expression/build/tests/test_typing.py": {"by": "sha256:9ff606f2ff8f1f56236a67c22f0ecba579dcb4e854a595144bd690fae8089d14", "py": "sha256:d81726a709971ef16c9e6e4cb317ede9c6a7243d5e4ac5e82304db205692cc12"},Expression — expression/_by_runtime.py--- base/expression/_by_runtime.py
+++ head/expression/_by_runtime.py
@@ -388,4 +388,35 @@
+# a `t"..."` the author wrote, carrying the text the author wrote for each of its
+# fields rather than the text this file was lowered to
+#
+# `Interpolation.expression` is the source of the field, which python reads off the
+# compiled file — `t"{a!}"` would hand a reader `_force_unwrap(a)`. `_exprs` runs
+# parallel to the fields: a string is the author's own text for that field, and
+# `None` a field nothing lowered, which keeps the interpolation python built and so
+# stays byte-identical to what python would have reported
+#
+# the import is made here rather than at the top of the file because this module is
+# shared with runtimes that have no `string.templatelib`. only a t-string can reach
+# this helper, and a t-string needs 3.14
+def _by_template(_t, _exprs):
+ from string.templatelib import Interpolation, Template
+
+ _strings = _t.strings
+ _parts = []
+ for _index, _field in enumerate(_t.interpolations):
+ _parts.append(_strings[_index])
+ _expr = _exprs[_index]
... 4723 characters elided ...
+ elif isinstance(member, property):
+ if (
+ _by_dataclass_class_cell(member.fget, cls, new)
+ or _by_dataclass_class_cell(member.fset, cls, new)
+ or _by_dataclass_class_cell(member.fdel, cls, new)
+ ):
+ break
+ return newExpression — expression/collections/array.py--- base/expression/collections/array.py
+++ head/expression/collections/array.py
@@ -8,5 +8,5 @@
"""
lazy from ty_extensions import JustFloat
-lazy from typing import Callable, Literal
+lazy from typing import Any as Any2, Callable, Literal
from expression._by_runtime import Optional, _soundness_check, _soundness_parametric
@@ -92,6 +92,6 @@
-def array_from_typecode(type_code: TypeCode, initializer: Iterable[Any] | None) -> _Array[Any]:
- arr: _Array[Any] = list(initializer if initializer else [])
+def array_from_typecode(type_code: TypeCode, initializer: Iterable[Any2] | None) -> _Array[Any2]:
+ arr: _Array[Any2] = list(initializer if initializer else [])
if type_code == TypeCode.Byte:
return bytearray(arr)
@@ -120,8 +120,8 @@
def array_from_initializer(
- initializer: Iterable[Any] | None = None,
-) -> tuple[_Array[Any], TypeCode]:
+ initializer: Iterable[Any2] | None = None,
+) -> tuple[_Array[Any2], TypeCode]:
# Use list as the default array
- arr: _Array[Any] = list(initializer if initializer else [])
... 1511 characters elided ...
+def empty() -> TypedArray[Any2]:
return TypedArray()
@@ -551,5 +551,5 @@
-def is_empty(source: TypedArray[Any]) -> bool:
+def is_empty(source: TypedArray[Any2]) -> bool:
"""Returns `True` if the list is empty, `False` otherwise."""
return _soundness_check(source.is_empty(), bool)Expression — expression/collections/asyncseq.py--- base/expression/collections/asyncseq.py
+++ head/expression/collections/asyncseq.py
@@ -1,8 +1,7 @@
-lazy from typing import Any, Callable, overload
from expression._by_runtime import _soundness_check
lazy import builtins
lazy import itertools
lazy from collections.abc import AsyncIterable, AsyncIterator
-lazy from typing import TypeVar, cast
+lazy from typing import TypeVar, cast, Any, Callable, overload
lazy from expression.core import Option, pipeExpression — expression/collections/block.py--- base/expression/collections/block.py
+++ head/expression/collections/block.py
@@ -20,5 +20,5 @@
lazy from typing import Any, Callable, Literal, overload
from expression._by_runtime import Optional, _soundness_check, _soundness_parametric
-_MISSING = object()
+_MISSING: Any = object()Expression — expression/collections/map.py--- base/expression/collections/map.py
+++ head/expression/collections/map.py
@@ -1,3 +1,2 @@
-lazy from typing import Callable
from expression._by_runtime import _soundness_check, _soundness_iter
# Attribution to original authors of this code
@@ -19,5 +18,5 @@
lazy from collections.abc import ItemsView, Iterable, Iterator, Mapping
-lazy from typing import Any, TypeVar, cast
+lazy from typing import Any, TypeVar, cast, Callable
lazy from expression.core import Option, PipeMixin, curry_flip, pipeExpression — expression/collections/maptree.py--- base/expression/collections/maptree.py
+++ head/expression/collections/maptree.py
@@ -22,5 +22,4 @@
Do not use directly. Use the `map` module instead.
"""
-lazy from typing import Any, Callable
from expression._by_runtime import Optional, _soundness_check, _soundness_iter
@@ -28,5 +27,5 @@
lazy from collections.abc import Iterable, Iterator
lazy from dataclasses import dataclass
-lazy from typing import Generic, TypeVar
+lazy from typing import Generic, TypeVar, Any, Callable
lazy from expression.core import Nothing, Option, Some, failwith, pipeExpression — expression/collections/seq.py--- base/expression/collections/seq.py
+++ head/expression/collections/seq.py
@@ -22,7 +22,7 @@
>>> ys = xs.map(lambda x: x + 1).filter(lambda x: x < 3)
"""
-lazy from typing import Any, Callable, overload
+lazy from typing import Any, Callable as Callable2, overload
from expression._by_runtime import Optional, _soundness_check, _soundness_parametric
-_MISSING = object()
+_MISSING: Any = object()
@@ -96,8 +96,8 @@
return Seq(concat(self._value, *others))
- def filter(self, predicate: Callable[[_TSource], bool]) -> Seq[_TSource]:
+ def filter(self, predicate: Callable2[[_TSource], bool]) -> Seq[_TSource]:
return Seq(filter(predicate)(self))
- def choose(self, chooser: Callable[[_TSource], Option[_TResult]]) -> Seq[_TResult]:
+ def choose(self, chooser: Callable2[[_TSource], Option[_TResult]]) -> Seq[_TResult]:
"""Choose items from the sequence.
@@ -124,5 +124,5 @@
return Seq(concat(*self))
- def collect(self, mapping: Callable[[_TSource], Seq[_TResult]]) -> Seq[_TResult]:
... 11213 characters elided ...
"""Unfold sequence.
@@ -1078,5 +1078,5 @@
def zip(
source1: Iterable[_TSource],
-) -> Callable[[Iterable[_TResult]], Iterable[tuple[_TSource, _TResult]]]:
+) -> Callable2[[Iterable[_TResult]], Iterable[tuple[_TSource, _TResult]]]:
"""Zip sequence with other.Expression — expression/core/aiotools.py--- base/expression/core/aiotools.py
+++ head/expression/core/aiotools.py
@@ -8,5 +8,4 @@
by itself.
"""
-lazy from typing import Any
from expression._by_runtime import _soundness_check
@@ -14,5 +13,5 @@
lazy from asyncio import Future, Task
lazy from collections.abc import Awaitable, Callable
-lazy from typing import TypeVar
+lazy from typing import TypeVar, Any
lazy from expression.system import CancellationToken, OperationCanceledErrorExpression — expression/core/async_builder.py--- base/expression/core/async_builder.py
+++ head/expression/core/async_builder.py
@@ -4,5 +4,4 @@
create computational expressions for async operations.
"""
-lazy from typing import Callable, Literal
from expression._by_runtime import _soundness_check
@@ -11,5 +10,5 @@
lazy from collections.abc import AsyncGenerator, Awaitable, Callable
lazy from functools import wraps
-lazy from typing import Any, Generic, TypeVar, cast
+lazy from typing import Any, Generic, TypeVar, cast, Callable as Callable2, Literal
lazy from typing_extensions import ParamSpec
@@ -35,5 +34,5 @@
# Required methods
async def bind(
- self, xs: _M, fn: Callable[[_T], Awaitable[_M]]
+ self, xs: _M, fn: Callable2[[_T], Awaitable[_M]]
) -> _M: # Use concrete types for Callable input and output
raise NotImplementedError("AsyncBuilder does not implement a `bind` method")
@@ -58,5 +57,5 @@
# Optional methods for control flow
- async def delay(self, fn: Callable[[], _M]) -> _M:
+ async def delay(self, fn: Callable2[[], _M]) -> _M:
"""Delay the computation.Expression — expression/core/builder.py--- base/expression/core/builder.py
+++ head/expression/core/builder.py
@@ -1,3 +1,2 @@
-lazy from typing import Callable, Literal
from expression._by_runtime import _soundness_check
lazy import inspect
@@ -5,5 +4,5 @@
lazy from collections.abc import Callable, Generator
lazy from functools import wraps
-lazy from typing import Any, Generic, TypeVar, cast
+lazy from typing import Any, Generic, TypeVar, cast, Callable as Callable2, Literal
lazy from typing_extensions import ParamSpec
@@ -28,5 +27,5 @@
# Required methods
- def bind(self, xs: _M, fn: Callable[[_T], _M]) -> _M: # Use concrete types for Callable input and output
+ def bind(self, xs: _M, fn: Callable2[[_T], _M]) -> _M: # Use concrete types for Callable input and output
raise NotImplementedError("Builder does not implement a `bind` method")
@@ -50,5 +49,5 @@
# Optional methods for control flow
- def delay(self, fn: Callable[[], _M]) -> _M:
+ def delay(self, fn: Callable2[[], _M]) -> _M:
"""Delay the computation.Expression — expression/core/compose.py--- base/expression/core/compose.py
+++ head/expression/core/compose.py
@@ -1,5 +1,4 @@
-lazy from typing import Any, Callable, overload
lazy from functools import reduce
-lazy from typing import TypeVar
+lazy from typing import TypeVar, Any, Callable, overload
lazy from typing import TypeVarTuple, UnpackExpression — expression/core/curry.py--- base/expression/core/curry.py
+++ head/expression/core/curry.py
@@ -1,6 +1,5 @@
-lazy from typing import Any, Callable, Literal, overload
lazy import functools
lazy from collections.abc import Callable
-lazy from typing import Concatenate, TypeVar
+lazy from typing import Concatenate, TypeVar, Any, Callable as Callable2, Literal, overload
lazy from typing_extensions import ParamSpec
@@ -17,5 +16,5 @@
-def _curry(args: tuple[Any, ...], arity: int, fun: Callable[..., Any]) -> Callable[..., Any]:
+def _curry(args: tuple[Any, ...], arity: int, fun: Callable2[..., Any]) -> Callable2[..., Any]:
def wrapper(*args_: Any, **kw: Any) -> Any:
if arity == 1:
@@ -27,5 +26,5 @@
@overload
-def curry(num_args: Literal[0]) -> Callable[[Callable[_P, _B]], Callable[_P, _B]]: ...
+def curry(num_args: Literal[0]) -> Callable2[[Callable[_P, _B]], Callable[_P, _B]]: ...
@@ -33,5 +32,5 @@
def curry(
num_args: Literal[1],
-) -> Callable[[Callable[Concatenate[_A, _P], _B]], Callable[[_A], Callable[_P, _B]]]: ...
... 3354 characters elided ...
def _wrap_curried(*curry_args: Any) -> Any:
return fun(*curry_args, *args, **kwargs)
@@ -146,5 +145,5 @@
*args: _P.args,
**kwargs: _P.kwargs,
-) -> Callable[[_A], _B]:
+) -> Callable2[[_A], _B]:
"""Partially apply a function's arguments after its pipeline value.Expression — expression/core/mailbox.py--- base/expression/core/mailbox.py
+++ head/expression/core/mailbox.py
@@ -1,3 +1,2 @@
-lazy from typing import Any, Callable
from expression._by_runtime import _soundness_check
# Attribution to original authors of this code
@@ -18,5 +17,5 @@
lazy from queue import SimpleQueue
lazy from threading import RLock
-lazy from typing import Generic, TypeVar
+lazy from typing import Generic, TypeVar, Any, Callable
lazy from expression.system import CancellationToken, OperationCanceledErrorExpression — expression/core/misc.py--- base/expression/core/misc.py
+++ head/expression/core/misc.py
@@ -1,4 +1,3 @@
-lazy from typing import Any, Callable
-lazy from typing import TypeVar
+lazy from typing import TypeVar, Any, Callable
lazy from typing import TypeVarTuple, UnpackExpression — expression/core/option.py--- base/expression/core/option.py
+++ head/expression/core/option.py
@@ -6,5 +6,5 @@
the only argument.
"""
-lazy from typing import Callable, Literal, Protocol
+lazy from typing import Any, Callable, Literal, Protocol
from expression._by_runtime import Optional, _soundness_check
class _Callable_3fc10be8(Protocol):Expression — expression/core/pipe.py--- base/expression/core/pipe.py
+++ head/expression/core/pipe.py
@@ -12,5 +12,5 @@
>>> assert pipe(v, fn, gn) == gn(fn(v))
"""
-lazy from typing import Callable, Protocol, overload
+lazy from typing import Any, Callable as Callable2, Protocol, overload
from expression._by_runtime import _soundness_check
class _Callable_22b0031f(Protocol):
@@ -57,17 +57,17 @@
@overload
-def pipe(value: _A, fn1: Callable[[_A], _B], /) -> _B: ...
-
-
-@overload
-def pipe(value: _A, fn1: Callable[[_A], _B], fn2: Callable[[_B], _C], /) -> _C: ...
-
-
-@overload
-def pipe(
- value: _A,
- fn1: Callable[[_A], _B],
- fn2: Callable[[_B], _C],
- fn3: Callable[[_C], _D],
+def pipe(value: _A, fn1: Callable2[[_A], _B], /) -> _B: ...
+
+
+@overload
+def pipe(value: _A, fn1: Callable2[[_A], _B], fn2: Callable2[[_B], _C], /) -> _C: ...
+
+
+@overload
+def pipe(
+ value: _A,
+ fn1: Callable2[[_A], _B],
+ fn2: Callable2[[_B], _C],
+ fn3: Callable2[[_C], _D],
/,
) -> _D: ...
@@ -77,8 +77,8 @@
def pipe(
value: _A,
- fn1: Callable[[_A], _B],
- fn2: Callable[[_B], _C],
... 23071 characters elided ...
+ fn9: Callable2[[_T], _J],
+ fn10: Callable2[[_J], _I],
+ fn11: Callable2[[_I], _K1],
+ fn12: Callable2[[_K1], _L],
+ fn13: Callable2[[_L], _M],
+ fn14: Callable2[[_M], _N],
+ fn15: Callable2[[_N], _O],
+ fn16: Callable2[[_O], _P1],
/,
) -> _P1: ...Expression — expression/core/result.py--- base/expression/core/result.py
+++ head/expression/core/result.py
@@ -9,5 +9,4 @@
the Result type to Exception.
"""
-lazy from typing import Callable, Literal
from expression._by_runtime import Optional, _soundness_check
@@ -15,5 +14,5 @@
lazy import builtins
lazy from collections.abc import Awaitable, Generator, Iterable
-from typing import TYPE_CHECKING, Any, Generic, TypeGuard, TypeVar, cast, get_args, get_origin
+from typing import TYPE_CHECKING, Any, Generic, TypeGuard, TypeVar, cast, get_args, get_origin, Callable, LiteralExpression — expression/core/tagged_union.py--- base/expression/core/tagged_union.py
+++ head/expression/core/tagged_union.py
@@ -1,7 +1,6 @@
-lazy from typing import Any, Callable, overload
from expression._by_runtime import _soundness_check
lazy from copy import deepcopy
lazy from dataclasses import dataclass, field, fields
-lazy from typing import TypeVar
+lazy from typing import TypeVar, Any, Callable, overload
lazy from typing import dataclass_transformExpression — expression/core/typing.py--- base/expression/core/typing.py
+++ head/expression/core/typing.py
@@ -1,7 +1,6 @@
lazy from abc import abstractmethod
-lazy from typing import Any
lazy from collections.abc import Iterable
-lazy from typing import Protocol, TypeVar, get_origin
+lazy from typing import Protocol, TypeVar, get_origin, AnyExpression — expression/effect/async_option.py--- base/expression/effect/async_option.py
+++ head/expression/effect/async_option.py
@@ -5,9 +5,8 @@
works with async operations.
"""
-lazy from typing import Callable
from expression._by_runtime import Optional, _soundness_check
lazy from collections.abc import AsyncGenerator, Awaitable, Callable
-lazy from typing import Any, ParamSpec, TypeVar
+lazy from typing import Any, ParamSpec, TypeVar, Callable as Callable2
lazy from expression.core import Nothing, Option, Some
@@ -30,5 +29,5 @@
self,
xs: Option[_TSource],
- fn: Callable[[Any], Awaitable[Option[_TResult]]],
+ fn: Callable2[[Any], Awaitable[Option[_TResult]]],
) -> Option[_TResult]:
"""Bind a function to an async option value.
@@ -108,5 +107,5 @@
return Nothing
- async def delay(self, fn: Callable[[], Option[_TSource]]) -> Option[_TSource]:
+ async def delay(self, fn: Callable2[[], Option[_TSource]]) -> Option[_TSource]:
"""Delay the computation.Expression — expression/effect/async_result.py--- base/expression/effect/async_result.py
+++ head/expression/effect/async_result.py
@@ -5,9 +5,8 @@
works with async operations.
"""
-lazy from typing import Callable
from expression._by_runtime import _soundness_check
lazy from collections.abc import AsyncGenerator, Awaitable, Callable
-lazy from typing import Any, ParamSpec, TypeVar
+lazy from typing import Any, ParamSpec, TypeVar, Callable as Callable2
lazy from expression.core import Ok, Result
@@ -31,5 +30,5 @@
self,
xs: Result[_TSource, _TError],
- fn: Callable[[Any], Awaitable[Result[_TResult, _TError]]],
+ fn: Callable2[[Any], Awaitable[Result[_TResult, _TError]]],
) -> Result[_TResult, _TError]:
"""Bind a function to an async result value.
@@ -109,5 +108,5 @@
return _soundness_check(Ok(None), Result)
- async def delay(self, fn: Callable[[], Result[_TSource, _TError]]) -> Result[_TSource, _TError]:
+ async def delay(self, fn: Callable2[[], Result[_TSource, _TError]]) -> Result[_TSource, _TError]:
"""Delay the computation.Expression — expression/effect/option.py--- base/expression/effect/option.py
+++ head/expression/effect/option.py
@@ -1,6 +1,5 @@
-lazy from typing import Callable
from expression._by_runtime import Optional, _soundness_check
lazy from collections.abc import Callable, Generator
-lazy from typing import Any, TypeVar
+lazy from typing import Any, TypeVar, Callable as Callable2
lazy from typing_extensions import ParamSpec
@@ -15,5 +14,5 @@
class OptionBuilder(Builder[_TSource, Option[Any]]):
- def bind(self, xs: Option[_TSource], fn: Callable[[_TSource], Option[_TResult]]) -> Option[_TResult]:
+ def bind(self, xs: Option[_TSource], fn: Callable2[[_TSource], Option[_TResult]]) -> Option[_TResult]:
"""Bind a function to an option value.
@@ -84,5 +83,5 @@
return Nothing
- def delay(self, fn: Callable[[], Option[_TSource]]) -> Option[_TSource]:
+ def delay(self, fn: Callable2[[], Option[_TSource]]) -> Option[_TSource]:
"""Delay an option computation.Expression — expression/effect/result.py--- base/expression/effect/result.py
+++ head/expression/effect/result.py
@@ -1,6 +1,5 @@
-lazy from typing import Callable
from expression._by_runtime import _soundness_check
lazy from collections.abc import Callable, Generator
-lazy from typing import Any, TypeVar
+lazy from typing import Any, TypeVar, Callable as Callable2
lazy from typing_extensions import ParamSpec
@@ -19,5 +18,5 @@
self,
xs: Result[_TSource, _TError],
- fn: Callable[[Any], Result[_TResult, _TError]],
+ fn: Callable2[[Any], Result[_TResult, _TError]],
) -> Result[_TResult, _TError]:
"""Bind a function to a result value.Expression — expression/effect/seq.py--- base/expression/effect/seq.py
+++ head/expression/effect/seq.py
@@ -1,5 +1,4 @@
-lazy from typing import Callable
lazy from collections.abc import Generator, Iterable
-lazy from typing import Any, TypeVar
+lazy from typing import Any, TypeVar, Callable
lazy from expression.collections import seqExpression — expression/extra/option/pipeline.py--- base/expression/extra/option/pipeline.py
+++ head/expression/extra/option/pipeline.py
@@ -1,6 +1,5 @@
-lazy from typing import Callable, overload
from expression._by_runtime import Optional, _soundness_check
lazy from functools import reduce
-lazy from typing import Any, TypeVar
+lazy from typing import Any, TypeVar, Callable, overload
lazy from expression.core import Option, SomeExpression — expression/extra/parser.py--- base/expression/extra/parser.py
+++ head/expression/extra/parser.py
@@ -1,8 +1,7 @@
lazy from ty_extensions import JustFloat
-lazy from typing import Any, Callable, overload
from expression._by_runtime import Optional, _soundness_check, _soundness_parametric
lazy import string
-lazy from typing import Generic, TypeVar
+lazy from typing import Generic, TypeVar, Any, Callable, overload
lazy from expression.collections import Block, blockExpression — expression/extra/result/catch.py--- base/expression/extra/result/catch.py
+++ head/expression/extra/result/catch.py
@@ -1,7 +1,6 @@
-lazy from typing import Any, Callable, overload
from expression._by_runtime import _soundness_check
lazy from functools import wraps
-lazy from typing import TypeVar, cast
+lazy from typing import TypeVar, cast, Any, Callable, overload
lazy from expression.core import Error, Ok, ResultExpression — expression/extra/result/pipeline.py--- base/expression/extra/result/pipeline.py
+++ head/expression/extra/result/pipeline.py
@@ -1,6 +1,5 @@
-lazy from typing import Callable, overload
from expression._by_runtime import _soundness_check
lazy from functools import reduce
-lazy from typing import Any, TypeVar
+lazy from typing import Any, TypeVar, Callable, overload
lazy from expression.core.result import Ok, ResultExpression — expression/extra/result/traversable.py--- base/expression/extra/result/traversable.py
+++ head/expression/extra/result/traversable.py
@@ -1,7 +1,6 @@
"""Data structures that can be traversed from left to right, performing an action on each element."""
-lazy from typing import Any, Callable
from expression._by_runtime import _soundness_check
-lazy from typing import TypeVar
+lazy from typing import TypeVar, Any, Callable
lazy from expression import effectExpression — expression/system/disposable.py--- base/expression/system/disposable.py
+++ head/expression/system/disposable.py
@@ -1,7 +1,6 @@
-lazy from abc import abstractmethod
lazy from typing import Callable
from expression._by_runtime import _soundness_check, _soundness_iter
-lazy from abc import ABC
+lazy from abc import ABC, abstractmethod
lazy from asyncio import iscoroutinefunction
lazy from collections.abc import AwaitableExpression — tests/_by_runtime.py--- base/tests/_by_runtime.py
+++ head/tests/_by_runtime.py
@@ -388,4 +388,35 @@
+# a `t"..."` the author wrote, carrying the text the author wrote for each of its
+# fields rather than the text this file was lowered to
+#
+# `Interpolation.expression` is the source of the field, which python reads off the
+# compiled file — `t"{a!}"` would hand a reader `_force_unwrap(a)`. `_exprs` runs
+# parallel to the fields: a string is the author's own text for that field, and
+# `None` a field nothing lowered, which keeps the interpolation python built and so
+# stays byte-identical to what python would have reported
+#
+# the import is made here rather than at the top of the file because this module is
+# shared with runtimes that have no `string.templatelib`. only a t-string can reach
+# this helper, and a t-string needs 3.14
+def _by_template(_t, _exprs):
+ from string.templatelib import Interpolation, Template
+
+ _strings = _t.strings
+ _parts = []
+ for _index, _field in enumerate(_t.interpolations):
+ _parts.append(_strings[_index])
+ _expr = _exprs[_index]
... 4723 characters elided ...
+ elif isinstance(member, property):
+ if (
+ _by_dataclass_class_cell(member.fget, cls, new)
+ or _by_dataclass_class_cell(member.fset, cls, new)
+ or _by_dataclass_class_cell(member.fdel, cls, new)
+ ):
+ break
+ return newExpression — tests/test_array.py--- base/tests/test_array.py
+++ head/tests/test_array.py
@@ -1,7 +1,6 @@
-lazy from typing import Callable
from tests._by_runtime import Optional, _soundness_check, _soundness_iter, _soundness_parametric
lazy import functools
lazy from collections.abc import Callable
-lazy from typing import Any
+lazy from typing import Any, Callable as Callable2
lazy import pytest
@@ -57,5 +56,5 @@
assert len(xs) == 3
- mapper: Callable[[str], array.uint8] = array.uint8 # type: ignore
+ mapper: Callable2[[str], array.uint8] = array.uint8 # type: ignore
ys: TypedArray[array.uint8] = _soundness_check(pipe(xs, array.map(mapper)), TypedArray)
assert len(ys) == 3
@@ -68,5 +67,5 @@
assert len(xs) == 3
- mapper: Callable[[str], array.uint16] = array.uint16 # type: ignore
+ mapper: Callable2[[str], array.uint16] = array.uint16 # type: ignore
ys: TypedArray[array.uint16] = _soundness_check(pipe(xs, array.map(mapper)), TypedArray)
assert len(ys) == 3
@@ -79,5 +78,5 @@
assert len(xs) == 3
- mapper: Callable[[str], array.uint32] = array.uint32 # type: ignore
... 3488 characters elided ...
- g: Callable[[int], TypedArray[int]] = lambda y: rtn(y * 42)
+ f: Callable2[[int], TypedArray[int]] = lambda x: rtn(x + 10)
+ g: Callable2[[int], TypedArray[int]] = lambda y: rtn(y * 42)
m = _soundness_parametric(array.of_seq(xs), TypedArray[int], (0,))Expression — tests/test_block.py--- base/tests/test_block.py
+++ head/tests/test_block.py
@@ -1,9 +1,8 @@
lazy from ty_extensions import JustFloat
-lazy from typing import Callable
from tests._by_runtime import Optional, _soundness_check, _soundness_iter, _soundness_parametric
lazy import functools
lazy from builtins import list as list
lazy from collections.abc import Callable
-lazy from typing import Any, List, Annotated
+lazy from typing import Any, List, Annotated, Callable as Callable2
lazy from hypothesis import given # type: ignore
@@ -135,5 +134,5 @@
@given(st.lists(st.tuples(st.integers(), st.integers()))) # type: ignore
def test_seq_pipe_starmap(xs: List[tuple[int, int]]):
- mapper: Callable[[int, int], int] = lambda x, y: x + y
+ mapper: Callable2[[int, int], int] = lambda x, y: x + y
ys = _soundness_parametric(pipe(
_soundness_parametric(block.of_seq(xs), Block[tuple[int, int]], (0,)),
@@ -147,5 +146,5 @@
@given(st.lists(st.tuples(st.integers(), st.integers()))) # type: ignore
def test_seq_pipe_map2(xs: List[tuple[int, int]]):
- mapper: Callable[[int, int], int] = lambda x, y: x + y
... 3339 characters elided ...
- f: Callable[[int], Block[int]] = lambda x: rtn(x + 10)
- g: Callable[[int], Block[int]] = lambda y: rtn(y * 42)
+ f: Callable2[[int], Block[int]] = lambda x: rtn(x + 10)
+ g: Callable2[[int], Block[int]] = lambda y: rtn(y * 42)
m = _soundness_parametric(block.of_seq(xs), Block[int], (0,))Expression — tests/test_compose.py--- base/tests/test_compose.py
+++ head/tests/test_compose.py
@@ -1,3 +1,3 @@
-lazy from typing import Callable
+lazy from typing import Callable as Callable2
lazy from collections.abc import Callable
@@ -27,5 +27,5 @@
@given(st.integers()) # type: ignore
def test_compose_1(x: int):
- fn: Callable[[int], int] = lambda x: x + 42
+ fn: Callable2[[int], int] = lambda x: x + 42
gn = compose(fn)Expression — tests/test_option.py--- base/tests/test_option.py
+++ head/tests/test_option.py
@@ -1,4 +1,4 @@
lazy from ty_extensions import JustFloat
-lazy from typing import Callable
+lazy from typing import Any, Callable
from tests._by_runtime import Optional, _soundness_check, _soundness_iter, _soundness_parametric
lazy from typing import Any, AnnotatedExpression — tests/test_option_builder.py(only produced on head)Expression — tests/test_pipe.py--- base/tests/test_pipe.py
+++ head/tests/test_pipe.py
@@ -1,5 +1,4 @@
-lazy from typing import Callable
from tests._by_runtime import _soundness_check
-lazy from typing import TypeVar
+lazy from typing import TypeVar, Callable
lazy from hypothesis import givenExpression — tests/test_result.py--- base/tests/test_result.py
+++ head/tests/test_result.py
@@ -1,7 +1,6 @@
lazy from ty_extensions import JustFloat
-lazy from typing import Callable
from tests._by_runtime import Optional, _soundness_check, _soundness_iter, _soundness_parametric
lazy from dataclasses import dataclass
-lazy from typing import Any, Annotated
+lazy from typing import Any, Annotated, Callable
lazy from hypothesis import given # type: ignoreExpression — tests/test_result_builder.py(only produced on head)Expression — tests/test_seq.py(only produced on base)Expression — tests/test_seq_builder.py--- base/tests/test_seq_builder.py
+++ head/tests/test_seq_builder.py
@@ -1,7 +1,6 @@
-lazy from typing import Any
from tests._by_runtime import _soundness_check, _soundness_iter
lazy from collections.abc import Generator, Iterable
-lazy from typing import List
+lazy from typing import List, Any
lazy from pytest import raisesExpression — tests/test_tagged_union.py--- base/tests/test_tagged_union.py
+++ head/tests/test_tagged_union.py
@@ -1,8 +1,7 @@
lazy from ty_extensions import JustFloat
-lazy from typing import Literal
from tests._by_runtime import _soundness_check
lazy from dataclasses import asdict, dataclass
-lazy from typing import Generic, TypeVar
+lazy from typing import Generic, TypeVar, Literal
lazy import pytestPyGithub — _by_sourcemap.py--- base/_by_sourcemap.py
+++ head/_by_sourcemap.py
@@ -4,13 +4,13 @@
... 478363 characters elided ...
"/tmp/tmpkeqwyfs3/PyGithub/build/tests/RequiredStatusChecks.py": {"by": "sha256:02e89f7f1870cbdfeb6f79559e659cc116d0809545191f4325bf1a2171ffb89c", "py": "sha256:fd861209441fc49e9532b6870bcf9c6806acf9a0dbe7827f51db1d8db7c26a62"},PyGithub — github/AdvisoryBase.py--- base/github/AdvisoryBase.py
+++ head/github/AdvisoryBase.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -30,5 +29,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CVSSPyGithub — github/AdvisoryCredit.py--- base/github/AdvisoryCredit.py
+++ head/github/AdvisoryCredit.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -32,5 +31,5 @@
-from typing import TYPE_CHECKING, Union
+from typing import TYPE_CHECKING, Union, Any
lazy from typing_extensions import TypedDictPyGithub — github/AdvisoryCreditDetailed.py--- base/github/AdvisoryCreditDetailed.py
+++ head/github/AdvisoryCreditDetailed.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -45,5 +44,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.NamedUserPyGithub — github/AdvisoryVulnerability.py--- base/github/AdvisoryVulnerability.py
+++ head/github/AdvisoryVulnerability.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check, _soundness_iter
############################ Copyrights and license ############################
@@ -31,5 +30,5 @@
-from typing import TYPE_CHECKING, Union
+from typing import TYPE_CHECKING, Union, Any
lazy from typing_extensions import TypedDictPyGithub — github/ApplicationOAuth.py--- base/github/ApplicationOAuth.py
+++ head/github/ApplicationOAuth.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -34,5 +33,5 @@
lazy import urllib.parse
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.AccessTokenPyGithub — github/Artifact.py--- base/github/Artifact.py
+++ head/github/Artifact.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -48,5 +47,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.WorkflowRunPyGithub — github/Auth.py--- base/github/Auth.py
+++ head/github/Auth.py
@@ -1,4 +1,5 @@
+lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/AuthenticatedUser.py--- base/github/AuthenticatedUser.py
+++ head/github/AuthenticatedUser.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check, _soundness_iter
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/Authorization.py--- base/github/Authorization.py
+++ head/github/Authorization.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/Branch.py--- base/github/Branch.py
+++ head/github/Branch.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check, _soundness_iter
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/BranchProtection.py--- base/github/BranchProtection.py
+++ head/github/BranchProtection.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -35,5 +34,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubObjectPyGithub — github/CheckRun.py--- base/github/CheckRun.py
+++ head/github/CheckRun.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/CheckSuite.py--- base/github/CheckSuite.py
+++ head/github/CheckSuite.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/Clones.py--- base/github/Clones.py
+++ head/github/Clones.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -42,5 +41,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.TrafficPyGithub — github/CodeScanAlert.py--- base/github/CodeScanAlert.py
+++ head/github/CodeScanAlert.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -34,5 +33,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CodeScanAlertInstancePyGithub — github/CodeScanAlertInstance.py--- base/github/CodeScanAlertInstance.py
+++ head/github/CodeScanAlertInstance.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -30,5 +29,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CodeScanAlertInstanceLocationPyGithub — github/CodeSecurityConfigRepository.py--- base/github/CodeSecurityConfigRepository.py
+++ head/github/CodeSecurityConfigRepository.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -27,5 +26,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.RepositoryPyGithub — github/Commit.py--- base/github/Commit.py
+++ head/github/Commit.py
@@ -2,5 +2,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/CommitCombinedStatus.py--- base/github/CommitCombinedStatus.py
+++ head/github/CommitCombinedStatus.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CommitStatusPyGithub — github/CommitComment.py--- base/github/CommitComment.py
+++ head/github/CommitComment.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -47,5 +46,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubObjectPyGithub — github/CommitStatus.py--- base/github/CommitStatus.py
+++ head/github/CommitStatus.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -43,5 +42,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubObjectPyGithub — github/Comparison.py--- base/github/Comparison.py
+++ head/github/Comparison.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -41,5 +40,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CommitPyGithub — github/ContentFile.py--- base/github/ContentFile.py
+++ head/github/ContentFile.py
@@ -1,4 +1,3 @@
lazy from ty_extensions import JustFloat
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -49,5 +48,5 @@
lazy import base64
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GitCommitPyGithub — github/Copilot.py--- base/github/Copilot.py
+++ head/github/Copilot.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -25,5 +24,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CopilotSeatPyGithub — github/CopilotSeat.py--- base/github/CopilotSeat.py
+++ head/github/CopilotSeat.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -27,5 +26,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.NamedUserPyGithub — github/DefaultCodeSecurityConfig.py--- base/github/DefaultCodeSecurityConfig.py
+++ head/github/DefaultCodeSecurityConfig.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CodeSecurityConfigPyGithub — github/DependabotAlert.py--- base/github/DependabotAlert.py
+++ head/github/DependabotAlert.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -28,5 +27,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.AdvisoryVulnerabilityPackagePyGithub — github/DependabotAlertAdvisory.py--- base/github/DependabotAlertAdvisory.py
+++ head/github/DependabotAlertAdvisory.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -27,5 +26,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.DependabotAlertVulnerabilityPyGithub — github/DependabotAlertDependency.py--- base/github/DependabotAlertDependency.py
+++ head/github/DependabotAlertDependency.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -28,5 +27,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.AdvisoryVulnerabilityPackagePyGithub — github/DependabotAlertVulnerability.py--- base/github/DependabotAlertVulnerability.py
+++ head/github/DependabotAlertVulnerability.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -26,5 +25,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.AdvisoryVulnerabilityPackagePyGithub — github/Deployment.py--- base/github/Deployment.py
+++ head/github/Deployment.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/DeploymentStatus.py--- base/github/DeploymentStatus.py
+++ head/github/DeploymentStatus.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -47,5 +46,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubAppPyGithub — github/DiscussionBase.py--- base/github/DiscussionBase.py
+++ head/github/DiscussionBase.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubObjectPyGithub — github/DiscussionCommentBase.py--- base/github/DiscussionCommentBase.py
+++ head/github/DiscussionCommentBase.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubObjectPyGithub — github/Enterprise.py--- base/github/Enterprise.py
+++ head/github/Enterprise.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy from typing_extensions import deprecatedPyGithub — github/EnterpriseConsumedLicenses.py--- base/github/EnterpriseConsumedLicenses.py
+++ head/github/EnterpriseConsumedLicenses.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -43,5 +42,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.NamedEnterpriseUserPyGithub — github/Environment.py--- base/github/Environment.py
+++ head/github/Environment.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -46,5 +45,5 @@
lazy import urllib.parse
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.EnvironmentDeploymentBranchPolicyPyGithub — github/EnvironmentProtectionRule.py--- base/github/EnvironmentProtectionRule.py
+++ head/github/EnvironmentProtectionRule.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -45,5 +44,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.EnvironmentProtectionRuleReviewerPyGithub — github/EnvironmentProtectionRuleReviewer.py--- base/github/EnvironmentProtectionRuleReviewer.py
+++ head/github/EnvironmentProtectionRuleReviewer.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.NamedUserPyGithub — github/Event.py--- base/github/Event.py
+++ head/github/Event.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubObjectPyGithub — github/Gist.py--- base/github/Gist.py
+++ head/github/Gist.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check, _soundness_iter
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/GistComment.py--- base/github/GistComment.py
+++ head/github/GistComment.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -45,5 +44,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GithubObjectPyGithub — github/GistHistoryState.py--- base/github/GistHistoryState.py
+++ head/github/GistHistoryState.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -42,5 +41,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.CommitStatsPyGithub — github/GitCommit.py--- base/github/GitCommit.py
+++ head/github/GitCommit.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -44,5 +43,5 @@
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GitAuthorPyGithub — github/GitRef.py--- base/github/GitRef.py
+++ head/github/GitRef.py
@@ -1,5 +1,6 @@
+lazy from builtins import object as object2
lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object2()
############################ Copyrights and license ############################
# #PyGithub — github/GitRelease.py--- base/github/GitRelease.py
+++ head/github/GitRelease.py
@@ -1,5 +1,5 @@
lazy from typing import Any
from github._by_runtime import _soundness_check
-_MISSING = object()
+_MISSING: Any = object()
############################ Copyrights and license ############################
# #PyGithub — github/GitReleaseAsset.py--- base/github/GitReleaseAsset.py
+++ head/github/GitReleaseAsset.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -50,5 +49,5 @@
lazy from collections.abc import Iterator
lazy from datetime import datetime
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.NamedUserPyGithub — github/GitTag.py--- base/github/GitTag.py
+++ head/github/GitTag.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -42,5 +41,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GitAuthorPyGithub — github/GitTree.py--- base/github/GitTree.py
+++ head/github/GitTree.py
@@ -1,3 +1,2 @@
-lazy from typing import Any
from github._by_runtime import _soundness_check
############################ Copyrights and license ############################
@@ -42,5 +41,5 @@
-from typing import TYPE_CHECKING
+from typing import TYPE_CHECKING, Any
lazy import github.GitTreeElementTanjun — tests/test_annotations.py(only produced on base)Tanjun — tests/test_annotations_future_annotations.py(only produced on base)5491 finding(s) omitted to fit GitHub's 65536-character comment limit. Every finding, with nothing elided, is in the |
Contributor
ecosystem checkLinter (stable)✅ ecosystem check detected no linter changes. Linter (preview)✅ ecosystem check detected no linter changes. Formatter (stable)✅ ecosystem check detected no format changes. Formatter (preview)✅ ecosystem check detected no format changes. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
No description provided.