рдкрд╛рдпрдерди 3.11 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреЗ рдкреНрд░рдХрд╛рд╢рди

рд╡рд┐рдХрд╛рд╕рд╛рдЪреНрдпрд╛ рдПрдХрд╛ рд╡рд░реНрд╖рд╛рдирдВрддрд░, рдкрд╛рдпрдерди 3.11 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖реЗрдЪреЗ рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдкреНрд░рдХрд╛рд╢рди рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдирд╡реАрди рд╢рд╛рдЦреЗрд▓рд╛ рджреАрдб рд╡рд░реНрд╖рд╛рд╕рд╛рдареА рдЖрдзрд╛рд░ рджрд┐рд▓рд╛ рдЬрд╛рдИрд▓, рддреНрдпрд╛рдирдВрддрд░ рдЖрдгрдЦреА рд╕рд╛рдбреЗрддреАрди рд╡рд░реНрд╖рд╛рдВрд╕рд╛рдареА, рдЕрд╕реБрд░рдХреНрд╖рд┐рддрддрд╛ рджреВрд░ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рддреНрдпрд╛рдЪреНрдпрд╛рд╕рд╛рдареА рдирд┐рд░рд╛рдХрд░рдгреЗ рддрдпрд╛рд░ рдХреЗрд▓реА рдЬрд╛рддреАрд▓.

рддреНрдпрд╛рдЪ рд╡реЗрд│реА, рдкрд╛рдпрдерди 3.12 рд╢рд╛рдЦреЗрдЪреА рдЕрд▓реНрдлрд╛ рдЪрд╛рдЪрдгреА рд╕реБрд░реВ рдЭрд╛рд▓реА (рдирд╡реАрди рд╡рд┐рдХрд╛рд╕ рд╡реЗрд│рд╛рдкрддреНрд░рдХрд╛рдиреБрд╕рд╛рд░, рдирд╡реАрди рд╢рд╛рдЦреЗрдЪреЗ рдХрд╛рдо рдорд╛рдЧреАрд▓ рд╢рд╛рдЦреЗрдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреНрдпрд╛ рдкрд╛рдЪ рдорд╣рд┐рдиреЗ рдЖрдзреА рд╕реБрд░реВ рд╣реЛрддреЗ рдЖрдгрд┐ рдкреБрдвреАрд▓ рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреНрдпрд╛ рд╡реЗрд│реЗрдкрд░реНрдпрдВрдд рдЕрд▓реНрдлрд╛ рдЪрд╛рдЪрдгреАрдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдкреЛрд╣реЛрдЪрддреЗ. ). Python 3.12 рд╢рд╛рдЦрд╛ рд╕рд╛рдд рдорд╣рд┐рдиреНрдпрд╛рдВрд╕рд╛рдареА рдЕрд▓реНрдлрд╛ рд░рд┐рд▓реАрдЭрдордзреНрдпреЗ рдЕрд╕реЗрд▓, рдЬреНрдпрд╛ рджрд░рдореНрдпрд╛рди рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЬреЛрдбрд▓реА рдЬрд╛рддреАрд▓ рдЖрдгрд┐ рджреЛрд╖ рдирд┐рд╢реНрдЪрд┐рдд рдХреЗрд▓реЗ рдЬрд╛рддреАрд▓. рдпрд╛рдирдВрддрд░, рдмреАрдЯрд╛ рдЖрд╡реГрддреНрддреНрдпрд╛рдВрдЪреА рддреАрди рдорд╣рд┐рдиреНрдпрд╛рдВрд╕рд╛рдареА рдЪрд╛рдЪрдгреА рдХреЗрд▓реА рдЬрд╛рдИрд▓, рдЬреНрдпрд╛ рджрд░рдореНрдпрд╛рди рдирд╡реАрди рд╡реИрд╢рд┐рд╖реНрдЯреНрдпреЗ рдЬреЛрдбрдгреНрдпрд╛рд╕ рдордирд╛рдИ рдХреЗрд▓реА рдЬрд╛рдИрд▓ рдЖрдгрд┐ рджреЛрд╖ рдирд┐рд░рд╛рдХрд░рдг рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕рд░реНрд╡ рд▓рдХреНрд╖ рджрд┐рд▓реЗ рдЬрд╛рдИрд▓. рдкреНрд░рдХрд╛рд╢рдирд╛рдЪреНрдпрд╛ рд╢реЗрд╡рдЯрдЪреНрдпрд╛ рджреЛрди рдорд╣рд┐рдиреНрдпрд╛рдВрдкреВрд░реНрд╡реА, рд╢рд╛рдЦрд╛ рдкреНрд░рдХрд╛рд╢рди рдЙрдореЗрджрд╡рд╛рд░рд╛рдЪреНрдпрд╛ рдЯрдкреНрдкреНрдпрд╛рд╡рд░ рдЕрд╕реЗрд▓, рдЬреНрдпрд╛рд╡рд░ рдЕрдВрддрд┐рдо рд╕реНрдерд┐рд░реАрдХрд░рдг рдХреЗрд▓реЗ рдЬрд╛рдИрд▓.

рдкрд╛рдпрдерди 3.11 рдордзреНрдпреЗ рдирд╡реАрди рдЬреЛрдбрдгреНрдпрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗрдд:

  • рдХрд╛рд░реНрдпрдкреНрд░рджрд░реНрд╢рди рдСрдкреНрдЯрд┐рдорд╛рдЗрдЭ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдорд╣рддреНрддреНрд╡рдкреВрд░реНрдг рдХрд╛рд░реНрдп рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗ. рдирд╡реАрди рд╢рд╛рдЦреЗрдд рдкреНрд░рд╡реЗрдЧ рдЖрдгрд┐ рдлрдВрдХреНрд╢рди рдХреЙрд▓реНрд╕рдЪреНрдпрд╛ рдЗрдирд▓рд╛рдЗрди рддреИрдирд╛рддреАрд╢реА рд╕рдВрдмрдВрдзрд┐рдд рдмрджрд▓, рдорд╛рдирдХ рдСрдкрд░реЗрд╢рдиреНрд╕рдЪреНрдпрд╛ рдЬрд▓рдж рджреБрднрд╛рд╖реНрдпрд╛рдВрдЪрд╛ рд╡рд╛рдкрд░ (x+x, x*x, xx, a[i], a[i] = z, f(arg) рдпрд╛рдВрдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЖрд╣реЗ. C( arg), o.method(), o.attr = z, *seq), рддрд╕реЗрдЪ Cinder рдЖрдгрд┐ HotPy рдкреНрд░рдХрд▓реНрдкрд╛рдВрджреНрд╡рд╛рд░реЗ рддрдпрд╛рд░ рдХреЗрд▓реЗрд▓реЗ рдСрдкреНрдЯрд┐рдорд╛рдпрдЭреЗрд╢рди. рд▓реЛрдбрдЪреНрдпрд╛ рдкреНрд░рдХрд╛рд░рд╛рдиреБрд╕рд╛рд░, 10-60% рдЪреНрдпрд╛ рдХреЛрдбрдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрдЪреНрдпрд╛ рдЧрддреАрдордзреНрдпреЗ рд╡рд╛рдв рд╣реЛрддреЗ. рд╕рд░рд╛рд╕рд░реА, pyperformance рдЪрд╛рдЪрдгреА рд╕рдВрдЪрд╛рддреАрд▓ рдХрд╛рдордЧрд┐рд░реА 25% рдиреЗ рд╡рд╛рдврд▓реА.

    рдмрд╛рдЗрдЯрдХреЛрдб рдХреЕрд╢рд┐рдВрдЧ рдпрдВрддреНрд░рдгрд╛ рдкреБрдиреНрд╣рд╛ рдбрд┐рдЭрд╛рдЗрди рдХреЗрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреНрдпрд╛рдореБрд│реЗ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░ рд╕реНрдЯрд╛рд░реНрдЯрдЕрдкрдЪреА рд╡реЗрд│ 10-15% рдХрдореА рдЭрд╛рд▓реА рдЖрд╣реЗ. рдХреЛрдб рдЖрдгрд┐ рдмрд╛рдЗрдЯрдХреЛрдб рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдЖрддрд╛ рдЗрдВрдЯрд░рдкреНрд░рд┐рдЯрд░рджреНрд╡рд╛рд░реЗ рд╕реНрдерд┐рд░рдкрдгреЗ рд╡рд╛рдЯрдк рдХреЗрд▓реНрдпрд╛ рдЖрд╣реЗрдд, рдЬреНрдпрд╛рдореБрд│реЗ рдХреЕрд╢реЗрдордзреВрди рдХрд╛рдврд▓реЗрд▓реНрдпрд╛ рдмрд╛рдпрдХреЛрдбрдЪреЗ рдЕрдирдорд╛рд░реНрд╢рд▓рд┐рдВрдЧ рдЯрдкреНрдкреЗ рджреВрд░ рдХрд░рдгреЗ рдЖрдгрд┐ рдбрд╛рдпрдиреЕрдорд┐рдХ рдореЗрдорд░реАрдордзреНрдпреЗ рдареЗрд╡рдгреНрдпрд╛рд╕рд╛рдареА рдХреЛрдбрд╕рд╣ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕рдЪреЗ рд░реВрдкрд╛рдВрддрд░ рдХрд░рдгреЗ рд╢рдХреНрдп рдЭрд╛рд▓реЗ.

  • рдбрд╛рдпрдЧреНрдиреЛрд╕реНрдЯрд┐рдХ рдореЗрд╕реЗрдЬрдордзреНрдпреЗ рдХреЙрд▓ рдЯреНрд░реЗрд╕ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛рдирд╛, рдЖрддрд╛ рддреНрд░реБрдЯреА рдирд┐рд░реНрдорд╛рдг рдХрд░рдгрд╛рд▒реНрдпрд╛ рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдмрджреНрджрд▓ рдорд╛рд╣рд┐рддреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ (рдкреВрд░реНрд╡реА, рдУрд│реАрдЪреНрдпрд╛ рдХреЛрдгрддреНрдпрд╛ рднрд╛рдЧрд╛рдореБрд│реЗ рддреНрд░реБрдЯреА рдЖрд▓реА рд╣реЗ рддрдкрд╢реАрд▓ рди рджреЗрддрд╛ рдлрдХреНрдд рдУрд│ рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХреЗрд▓реА рдЬрд╛рдд рд╣реЛрддреА). рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЯреНрд░реЗрд╕ рдорд╛рд╣рд┐рддреА API рджреНрд╡рд╛рд░реЗ рджреЗрдЦреАрд▓ рдорд┐рд│рд╡рддрд╛ рдпреЗрддреЗ рдЖрдгрд┐ codeobject.co_positions() рдкрджреНрдзрдд рдХрд┐рдВрд╡рд╛ C API рдлрдВрдХреНрд╢рди PyCode_Addr2Location() рд╡рд╛рдкрд░реВрди рд╕реНрддреНрд░реЛрдд рдХреЛрдбрдордзреАрд▓ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдерд╛рдирд╛рд╡рд░ рд╡реИрдпрдХреНрддрд┐рдХ рдмрд╛рдпрдХреЛрдб рд╕реВрдЪрдирд╛ рдореЕрдк рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╡рд╛рдкрд░рд▓реА рдЬрд╛рдК рд╢рдХрддреЗ. рдмрджрд▓рд╛рдореБрд│реЗ рдиреЗрд╕реНрдЯреЗрдб рдбрд┐рдХреНрд╢рдирд░реА рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕, рдорд▓реНрдЯрд┐рдкрд▓ рдлрдВрдХреНрд╢рди рдХреЙрд▓реНрд╕ рдЖрдгрд┐ рдХреНрд▓рд┐рд╖реНрдЯ рдЕрдВрдХрдЧрдгрд┐рдд рдЕрднрд┐рд╡реНрдпрдХреНрддреАрдВрд╕рд╣ рд╕рдорд╕реНрдпрд╛ рдбреАрдмрдЧ рдХрд░рдгреЗ рдЦреВрдк рд╕реЛрдкреЗ рд╣реЛрддреЗ. рдЯреНрд░реЗрд╕рдмреЕрдХ (рд╕рд░реНрд╡рд╛рдд рдЕрд▓реАрдХрдбреАрд▓ рдХреЙрд▓ рд╢реЗрд╡рдЯрдЪрд╛): рдлрд╛рдЗрд▓ "calculation.py", рдУрд│ 54, рдкрд░рд┐рдгрд╛рдореА = (x / y / z) * (a / b / c) ~~~~~~^~~ ZeroDivisionError: рд╢реВрдиреНрдпрд╛рдиреЗ рднрд╛рдЧрд╛рдХрд╛рд░
  • рдЕрдкрд╡рд╛рдж рдЧрдЯрд╛рдВрд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбрд▓реЗ, рдкреНрд░реЛрдЧреНрд░рд╛рдорд▓рд╛ рдПрдХрд╛рдЪ рд╡реЗрд│реА рдЕрдиреЗрдХ рднрд┐рдиреНрди рдЕрдкрд╡рд╛рдж рд╡реНрдпреБрддреНрдкрдиреНрди рдЖрдгрд┐ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рджреЗрддреЗ. рдПрдХрд╛рдзрд┐рдХ рдЕрдкрд╡рд╛рджрд╛рдВрдЪреЗ рдЧрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрдгрд┐ рддреНрдпрд╛рдВрдирд╛ рдПрдХрддреНрд░ рд╡рд╛рдврд╡рдгреНрдпрд╛рд╕рд╛рдареА, рдирд╡реАрди рдЕрдкрд╡рд╛рдж рдкреНрд░рдХрд╛рд░ ExceptionGroup рдЖрдгрд┐ BaseExceptionGroup рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рд╕рдореВрд╣рд╛рддреАрд▓ рд╡реИрдпрдХреНрддрд┐рдХ рдЕрдкрд╡рд╛рдж рд╣рд╛рдпрд▓рд╛рдЗрдЯ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "рд╡рдЧрд│рддрд╛*" рдЕрднрд┐рд╡реНрдпрдХреНрддреА рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.
  • add_note() рдкрджреНрдзрдд BaseException рдХреНрд▓рд╛рд╕рдордзреНрдпреЗ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, рдЬреА рддреБрдореНрд╣рд╛рд▓рд╛ рдЕрдкрд╡рд╛рджрд╛рд▓рд╛ рдордЬрдХреВрд░ рдиреЛрдЯ рдЬреЛрдбрдгреНрдпрд╛рдЪреА рдкрд░рд╡рд╛рдирдЧреА рджреЗрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, рдЕрдкрд╡рд╛рдж рдЯрд╛рдХрд▓реНрдпрд╛рд╡рд░ рдЙрдкрд▓рдмреНрдз рдирд╕рд▓реЗрд▓реА рд╕рдВрджрд░реНрднрд┐рдд рдорд╛рд╣рд┐рддреА рдЬреЛрдбрдгреЗ.
  • рд╕рдзреНрдпрд╛рдЪреНрдпрд╛ рдЦрд╛рдЬрдЧреА рд╡рд░реНрдЧрд╛рдЪреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕реЗрд▓реНрдл рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд▓рд╛. TypeVar рд╡рд╛рдкрд░рдгреНрдпрд╛рдкреЗрдХреНрд╖рд╛ рддреНрдпрд╛рдЪреНрдпрд╛ рд╡рд░реНрдЧрд╛рдЪреЗ рдЙрджрд╛рд╣рд░рдг рд╕реЛрдкреНрдпрд╛ рдкрджреНрдзрддреАрдиреЗ рд░рд┐рдЯрд░реНрди рдХрд░рдгрд╛рд░реНтАНрдпрд╛ рдкрджреНрдзрддреА рднрд╛рд╖реНрдп рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рд╕реЗрд▓реНрдлрдЪрд╛ рд╡рд╛рдкрд░ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. рд╡рд░реНрдЧ MyLock: def __enter__(self) -> Self: self.lock() рд╕реНрд╡рддрдГ рдкрд░рдд рдХрд░рд╛
  • рдПрдХ рд╡рд┐рд╢реЗрд╖ LiteralString рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд▓рд╛ рдЬреНрдпрд╛рдордзреНрдпреЗ рдлрдХреНрдд LiteralString рдкреНрд░рдХрд╛рд░рд╛рд╢реА рд╕реБрд╕рдВрдЧрдд рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд▓рд┐рдЯрд░рд▓реНрд╕рдЪрд╛ рд╕рдорд╛рд╡реЗрд╢ рдХреЗрд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ (рдореНрд╣рдгрдЬреЗ, рдмреЗрдЕрд░ рдЖрдгрд┐ LiteralString рд╕реНрдЯреНрд░рд┐рдВрдЧ, рдкрд░рдВрддреБ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд┐рдВрд╡рд╛ рдПрдХрддреНрд░рд┐рдд str рд╕реНрдЯреНрд░рд┐рдВрдЧ рдирд╛рд╣реАрдд). LiteralString рдкреНрд░рдХрд╛рд░ рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЖрд░реНрдЧреНрдпреБрдореЗрдВрдЯреНрд╕рдЪреЗ рдкрд╛рд╕рд┐рдВрдЧ рдорд░реНрдпрд╛рджрд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА, рд╕реНрдЯреНрд░рд┐рдВрдЧрдЪреНрдпрд╛ рднрд╛рдЧрд╛рдВрдЪреЗ рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЬреНрдпрд╛рдордзреНрдпреЗ рднреЗрджреНрдпрддрд╛ рд╣реЛрдК рд╢рдХрддреЗ, рдЙрджрд╛рд╣рд░рдгрд╛рд░реНрде, SQL рдХреНрд╡реЗрд░реА рдХрд┐рдВрд╡рд╛ рд╢реЗрд▓ рдХрдорд╛рдВрдбрд╕рд╛рдареА рд╕реНрдЯреНрд░рд┐рдВрдЧ рддрдпрд╛рд░ рдХрд░рддрд╛рдирд╛ рд╡рд╛рдкрд░рд▓рд╛ рдЬрд╛рдК рд╢рдХрддреЛ. def run_query(sql: LiteralString) -> ... ... def рдХреЙрд▓рд░( arbitrary_string: str, query_string: LiteralString, table_name: LiteralString, ) -> рдХрд╛рд╣реАрд╣реА рдирд╛рд╣реА: run_query("рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрдХрдбреВрди рдирд┐рд╡рдбрд╛") # рдареАрдХ рдЖрд╣реЗ рд░рди_рдХреНрд╡реЗрд░реА(рд▓рд┐рдЯрд░рд▓_рд╕реНрдЯреНрд░рд┐рдВрдЧ) # рдУрдХреЗ рд░рди_рдХреНрд╡реЗрд░реА ("рд╕рд┐рд▓реЗрдХреНрдЯ * рдлреНрд░реЙрдо" + рд╢рд╛рдмреНрджрд┐рдХ_рд╕реНрдЯреНрд░рд┐рдВрдЧ) # рдУрдХреЗ рд░рди_рдХреНрд╡реЗрд░реА(рдЖрд░реНрдмрд┐рдЯрд░реА_рд╕реНрдЯреНрд░рд┐рдВрдЧ) # рдПрд░рд░ рд░рди_рдХреНрд╡реЗрд░реА (# рдПрд░рд░ рдПрдл" рдирд┐рд╡рдбрд╛ * рд╡рд┐рджреНрдпрд╛рд░реНрдереНрдпрд╛рдВрдХрдбреВрди рдХреБрдареЗ рдирд╛рд╡ = {рдЕрд░реНрдмрд┐рдЯрд░реА_рд╕реНрдЯреНрд░рд┐рдВрдЧ}")
  • TypeVarTuple рдкреНрд░рдХрд╛рд░ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ, рдЬреЛ TypeVar рдЪреНрдпрд╛ рд╡рд┐рдкрд░реАрдд рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЬреЗрдиреЗрд░рд┐рдХ рд╡рд╛рдкрд░рдгреНрдпрд╛рд╕ рдЕрдиреБрдорддреА рджреЗрддреЛ, рдЬреНрдпрд╛рдордзреНрдпреЗ рдПрдХ рдкреНрд░рдХрд╛рд░ рдирд╛рд╣реА рддрд░ рдкреНрд░рдХрд╛рд░рд╛рдВрдЪреА рдЕрдирд┐рдпрдВрддреНрд░рд┐рдд рд╕рдВрдЦреНрдпрд╛ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
  • рдорд╛рдирдХ рд▓рд╛рдпрдмреНрд░рд░реАрдордзреНрдпреЗ TOML рдлреЙрд░рдореЕрдЯ рдкрд╛рд░реНрд╕ рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╣ tomllib рдореЙрдбреНрдпреВрд▓ рд╕рдорд╛рд╡рд┐рд╖реНрдЯ рдЖрд╣реЗ.
  • рдЖрд╡рд╢реНрдпрдХ рдЖрдгрд┐ рдкрд░реНрдпрд╛рдпреА рдлреАрд▓реНрдб (рдПрдХреВрдг рдкреЕрд░рд╛рдореАрдЯрд░ False рд╡рд░ рд╕реЗрдЯ рди рдХреЗрд▓реНрдпрд╛рд╕ рдбреАрдлреЙрд▓реНрдЯрдиреБрд╕рд╛рд░, рд╕рд░реНрд╡ рдШреЛрд╖рд┐рдд рдлреАрд▓реНрдб рдЖрд╡рд╢реНрдпрдХ рдЖрд╣реЗрдд) рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА рдЖрд╡рд╢реНрдпрдХ рдЖрдгрд┐ NotRequired рд▓реЗрдмрд▓реНрд╕рд╕рд╣ рдЯрд╛рдЗрдк рдХреЗрд▓реЗрд▓реНрдпрд╛ рд╢рдмреНрджрдХреЛрд╢рд╛рдВрдЪреЗ (TypedDict) рд╡реИрдпрдХреНрддрд┐рдХ рдШрдЯрдХ рдЪрд┐рдиреНрд╣рд╛рдВрдХрд┐рдд рдХрд░рдгреЗ рд╢рдХреНрдп рдЖрд╣реЗ. рд╡рд░реНрдЧ рдЪрд┐рддреНрд░рдкрдЯ(TypedDict): рд╢реАрд░реНрд╖рдХ: str рд╡рд░реНрд╖: NotRequired[int] m1: Movie = {"title": "Black Panther", "year": 2018} # OK m2: Movie = {"title": "Star Wars" } # рдУрдХреЗ (рд╡рд░реНрд╖ рдлреАрд▓реНрдб рдкрд░реНрдпрд╛рдпреА рдЖрд╣реЗ) m3: рдЪрд┐рддреНрд░рдкрдЯ = {тАЬрд╡рд░реНрд╖тАЭ: реирежреиреи} # рддреНрд░реБрдЯреА, рдЖрд╡рд╢реНрдпрдХ рд╢реАрд░реНрд╖рдХ рдлреАрд▓реНрдб рднрд░рд▓реЗрд▓реЗ рдирд╛рд╣реА)
  • рдЯрд╛рд╕реНрдХрдЧреНрд░реБрдк рдХреНрд▓рд╛рд╕ рдПрд╕рд┐рдВрдХреНрд░реЛрдирд╕ рдХреЙрдиреНрдЯреЗрдХреНрд╕реНрдЯ рдореЕрдиреЗрдЬрд░рдЪреНрдпрд╛ рдЕрдВрдорд▓рдмрдЬрд╛рд╡рдгреАрд╕рд╣ asyncio рдореЙрдбреНрдпреВрд▓рдордзреНрдпреЗ рдЬреЛрдбрд▓рд╛ рдЧреЗрд▓рд╛ рдЖрд╣реЗ рдЬреЛ рдХрд╛рд░реНрдпрд╛рдВрдЪрд╛ рд╕рдореВрд╣ рдкреВрд░реНрдг рд╣реЛрдгреНрдпрд╛рдЪреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░рддреЛ. рдЧреНрд░реБрдкрдордзреНрдпреЗ рдЯрд╛рд╕реНрдХ рдЬреЛрдбрдгреЗ create_task() рдкрджреНрдзрдд рд╡рд╛рдкрд░реВрди рдХреЗрд▓реЗ рдЬрд╛рддреЗ. async def main(): async with asyncio.TaskGroup() as tg: task1 = tg.create_task(some_coro(...)) task2 = tg.create_task(another_coro(...)) print("рджреЛрдиреНрд╣реА рдХрд╛рд░реНрдпреЗ рдЖрддрд╛ рдкреВрд░реНрдг рдЭрд╛рд▓реА рдЖрд╣реЗрдд. .")
  • рдХреНрд▓рд╛рд╕, рдкрджреНрдзрддреА рдЖрдгрд┐ рдлрдВрдХреНрд╢рдиреНрд╕рд╕рд╛рдареА @dataclass_transform рдбреЗрдХреЛрд░реЗрдЯрд░ рдЬреЛрдбрд▓реЗ рдЖрд╣реЗ, рдЬреЗрд╡реНрд╣рд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреЗрд▓реЗ рдЬрд╛рддреЗ, рддреЗрд╡реНрд╣рд╛ рд╕реНрдЯреЕрдЯрд┐рдХ рдЯрд╛рдЗрдк рдЪреЗрдХрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдСрдмреНрдЬреЗрдХреНрдЯрд▓рд╛ @dataclasses.dataclass рдбреЗрдХреЛрд░реЗрдЯрд░ рд╡рд╛рдкрд░рд▓реНрдпрд╛рдкреНрд░рдорд╛рдгреЗ рд╣рд╛рддрд╛рд│рддреЗ. рдЦрд╛рд▓реАрд▓ рдЙрджрд╛рд╣рд░рдгрд╛рдд, CustomerModel рд╡рд░реНрдЧ, рдкреНрд░рдХрд╛рд░ рддрдкрд╛рд╕рддрд╛рдирд╛, @dataclasses.dataclass рдбреЗрдХреЛрд░реЗрдЯрд░ рдЕрд╕рд▓реЗрд▓реНрдпрд╛ рд╡рд░реНрдЧрд╛рдкреНрд░рдорд╛рдгреЗрдЪ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗрд▓реА рдЬрд╛рдИрд▓, рдЙрджрд╛. рдЖрдпрдбреА рдЖрдгрд┐ рдиреЗрдо рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓реНрд╕ рд╕реНрд╡реАрдХрд╛рд░рдгрд╛рд░реА __init__ рдкрджреНрдзрдд рдЖрд╣реЗ. @dataclass_transform() рд╡рд░реНрдЧ рдореЙрдбреЗрд▓рдмреЗрд╕: ... рдХреНрд▓рд╛рд╕ CustomerModel(ModelBase): id: int name: str
  • рд░реЗрдЧреНрдпреБрд▓рд░ рдПрдХреНрд╕реНрдкреНрд░реЗрд╢рдиреНрд╕рдордзреНрдпреЗ, рдЕрдгреБ рд╕рдореВрд╣реАрдХрд░рдг (?>...)) рдЖрдгрд┐ possessive quantifiers (*+, ++, ?+, {m,n}+) рд╡рд╛рдкрд░рдгреНрдпрд╛рдЪреА рдХреНрд╖рдорддрд╛ рдЬреЛрдбрд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ.
  • sys.path рд╡рд░реАрд▓ рд╕рдВрднрд╛рд╡реНрдп рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдлрд╛рдИрд▓ рдкрдерд╛рдВрдЪреЗ рд╕реНрд╡рдпрдВрдЪрд▓рд┐рдд рд╕рдВрд▓рдЧреНрдирдХ рдЕрдХреНрд╖рдо рдХрд░рдгреНрдпрд╛рд╕рд╛рдареА "-P" рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рдкрд░реНрдпрд╛рдп рдЖрдгрд┐ PYTHONSAFEPATH рдкрд░реНрдпрд╛рд╡рд░рдг рд╡реНрд╣реЗрд░рд┐рдПрдмрд▓ рдЬреЛрдбрд▓реЗ.
  • рд╡рд┐рдВрдбреЛрдЬ рдкреНрд▓реЕрдЯрдлреЙрд░реНрдорд╕рд╛рдареА py.exe рдпреБрдЯрд┐рд▓рд┐рдЯреА рд▓рдХреНрд╖рдгреАрдпрд░реАрддреНрдпрд╛ рд╕реБрдзрд╛рд░рд▓реА рдЧреЗрд▓реА рдЖрд╣реЗ, "-V:" рд╡рд╛рдХреНрдпрд░рдЪрдирд╛рд╕рд╛рдареА рд╕рдорд░реНрдерди рдЬреЛрдбреВрди. / " рд╡реНрдпрддрд┐рд░рд┐рдХреНрдд "- . "
  • C API рдордзреАрд▓ рдЕрдиреЗрдХ рдореЕрдХреНрд░реЛ рдирд┐рдпрдорд┐рдд рдХрд┐рдВрд╡рд╛ рд╕реНрдерд┐рд░ рдЗрдирд▓рд╛рдЗрди рдлрдВрдХреНрд╢рдиреНрд╕рдордзреНрдпреЗ рд░реВрдкрд╛рдВрддрд░рд┐рдд рд╣реЛрддрд╛рдд.
  • uu, cgi, pipes, crypt, aifc, chunk, msilib, telnetlib, audioop, nis, sndhdr, imghdr, nntplib, spwd, xdrlib, cgitb, mailcap, ossaudiodev, рдЖрдгрд┐ sunau рдореЙрдбреНрдпреБрд▓ рдирд╛рдкрд╕рдВрдд рдХреЗрд▓реЗ рдЧреЗрд▓реЗ рдЖрд╣реЗрдд рдЖрдгрд┐ рддреЗ рдХрд╛рдвреВрди рдЯрд╛рдХрд▓реЗ рдЬрд╛рддреАрд▓. 3.13 рд░рд┐рд▓реАрдЬ. PyUnicode_Encode* рдХрд╛рд░реНрдпреЗ рдХрд╛рдврд▓реА.

рд╕реНрддреНрд░реЛрдд: opennet.ru

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╛