onths of the year and days of the week. (Contributed by Prince Roshan in [ gh-103636 ](https://github.com/python/cpython/issues/103636) .) 

###  csv  Â¶

  * Add [ ` csv.QUOTE_NOTNULL  ` ](../library/csv.html#csv.QUOTE_NOTNULL "csv.QUOTE_NOTNULL") and [ ` csv.QUOTE_STRINGS  ` ](../library/csv.html#csv.QUOTE_STRINGS "csv.QUOTE_STRINGS") flags to provide finer grained control of ` None  ` and empty strings by [ ` csv.writer  ` ](../library/csv.html#csv.writer "csv.writer") objects. 

###  dis  Â¶

  * Pseudo instruction opcodes (which are used by the compiler but do not appear in executable bytecode) are now exposed in the [ ` dis  ` ](../library/dis.html#module-dis "dis: Disassembler for Python bytecode.") module. [ ` HAVE_ARGUMENT  ` ](../library/dis.html#opcode-HAVE_ARGUMENT) is still relevant to real opcodes, but it is not useful for pseudo instructions. Use the new [ ` dis.hasarg  ` ](../library/dis.html#dis.hasarg "dis.hasarg") collection instead. (Contributed by Irit Katriel in [ gh-94216 ](https://github.com/python/cpython/issues/94216) .) 

  * Add the [ ` dis.hasexc  ` ](../library/dis.html#dis.hasexc "dis.hasexc") collection to signify instructions that set an exception handler. (Contributed by Irit Katriel in [ gh-94216 ](https://github.com/python/cpython/issues/94216) .) 

###  fractions  Â¶

  * Objects of type [ ` fractions.Fraction  ` ](../library/fractions.html#fractions.Fraction "fractions.Fraction") now support float-style formatting. (Contributed by Mark Dickinson in [ gh-100161 ](https://github.com/python/cpython/issues/100161) .) 

###  importlib.resources  Â¶

  * [ ` importlib.resources.as_file()  ` ](../library/importlib.resources.html#importlib.resources.as_file "importlib.resources.as_file") now supports resource directories. (Contributed by Jason R. Coombs in [ gh-97930 ](https://github.com/python/cpython/issues/97930) .) 

  * Rename first parameter of [ ` importlib.resources.files()  ` ](../library/importlib.resources.html#importlib.resources.files "importlib.resources.files") to _anchor_ . (Contributed by Jason R. Coombs in [ gh-100598 ](https://github.com/python/cpython/issues/100598) .) 

###  inspect  Â¶

  * Add [ ` inspect.markcoroutinefunction()  ` ](../library/inspect.html#inspect.markcoroutinefunction "inspect.markcoroutinefunction") to mark sync functions that return a [ coroutine  ](../glossary.html#term-coroutine) for use with [ ` inspect.iscoroutinefunction()  ` ](../library/inspect.html#inspect.iscoroutinefunction "inspect.iscoroutinefunction") . (Contributed Carlton Gibson in [ gh-99247 ](https://github.com/python/cpython/issues/99247) .) 

  * Add [ ` inspect.getasyncgenstate()  ` ](../library/inspect.html#inspect.getasyncgenstate "inspect.getasyncgenstate") and [ ` inspect.getasyncgenlocals()  ` ](../library/inspect.html#inspect.getasyncgenlocals "inspect.getasyncgenlocals") for determining the current state of asynchronous generators. (Contributed by Thomas Krennwallner in [ gh-79940 ](https://github.com/python/cpython/issues/79940) .) 

  * The performance of [ ` inspect.getattr_static()  ` ](../library/inspect.html#inspect.getattr_static "inspect.getattr_static") has been considerably improved. Most calls to the function should be at least 2x faster than they were in Python 3.11, and some may be 6x faster or more. (Contributed by Alex Waygood in [ gh-103193 ](https://github.com/python/cpython/issues/103193) .) 

###  itertools  Â¶

  * Add [ ` itertools.batched()  ` ](../library/itertools.html#itertools.batched "itertools.batched") for collecting into even-sized tuples where the last batch may be shorter than the rest. (Contributed by Raymond Hettinger in [ gh-98363 ](https://github.com/python/cpython/issues/98363) .) 

###  math  Â¶

  * Add [ ` math.sumprod()  ` ](../library/math.html#math.sumprod "math.sumprod") for computing a sum of products. (Contributed by Raymond Hettinger in [ gh-100485 ](https://github.com/python/cpython/issues/100485) .) 

  * Extend [ ` math.nextafte