Skip to content

pyrift v0.5.0 — 90 rules, 316 tests

Choose a tag to compare

@BHUVANSH855 BHUVANSH855 released this 24 Aug 19:50
· 48 commits to main since this release

The biggest release yet

90 rules — 45 CPython + 45 PyPy

316 tests — all passing on Python 3.10, 3.11, 3.12, 3.13

Zero dependencies — pure Python

What's new in v0.5.0

CPython rules added (CPY019–CPY045)

  • distutils removed in Python 3.12+
  • datetime.utcnow() and utcfromtimestamp() deprecated in 3.12
  • asyncio.get_event_loop() raises RuntimeError in 3.12+
  • asyncio.iscoroutinefunction() deprecated in 3.12
  • Bitwise inversion on bool deprecated in 3.12
  • typing.TypeGuard, ParamSpec, TypeAlias, Never, TypeVarTuple, Unpack, Required, assert_never, reveal_type
  • locale.resetlocale(), lib2to3, typing.io, typing.re removed in 3.13
  • zoneinfo, graphlib require Python 3.9+
  • str.removeprefix/removesuffix, pathlib.is_relative_to require Python 3.9+
  • int.bit_count(), aiter(), anext(), math.lcm() require Python 3.10+
  • dict | merge operator requires Python 3.9+
  • NaN hash behaviour changed in 3.10

PyPy rules added (PPY008–PPY045)

  • threading.local(), gc.collect(), sys.getsizeof(), sys.settrace()
  • os.fork(), os.urandom(), subprocess.PIPE, open() buffering
  • Generator GC timing, string concatenation O(n²), float('nan') identity
  • builtins always module, readline.parse_and_bind() ignored
  • sys.setrecursionlimit(), sys.flags, inspect.ismethod() differences
  • C extension packages, decimal backend, decimal module differences
  • Exception variable