Ipython: 7.2.0 рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдЯреВрдЯреЗ рд╣реБрдП рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдЯреИрдм рдкреВрд░реНрдгрддрд╛

рдХреЛ рдирд┐рд░реНрдорд┐рдд 14 рджрд┐рд╕ре░ 2018  ┬╖  32рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: ipython/ipython

рддрд╛рд░ рдХреЗ рднреАрддрд░ рд░рд╛рд╕реНрддреЛрдВ рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдЯреИрдм рдлрд┐рд░ рд╕реЗ рдЯреВрдЯрд╛ рд╣реБрдЖ рд▓рдЧрддрд╛ рд╣реИ (рдкрд╣рд▓реЗ рдХрдИ рдЬрдЧрд╣реЛрдВ рдкрд░, рдЬреИрд╕реЗ # 10961, # 10996, рдиреЛрдЯрдмреБрдХ рдЗрд╢реНрдпреВ # 3333 )ред рдпрд╣рд╛рдБ рдореБрдЭреЗ v7.2.0 :

screen shot 2018-12-14 at 12 39 17 pm

v7.1.1 рдореЗрдВ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ:

screen shot 2018-12-14 at 12 38 20 pm

рд╕рдВрднрд╡рддрдГ # 11503 рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдЬреЗрдбреА рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ ( c.IPCompleter.use_jedi = False ipython_config.py ) рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╕рд╣реА рд╡реНрдпрд╡рд╣рд╛рд░ рджреЗрддрд╛ рд╣реИред

рд╡реНрдпрд╡рд╕реНрдерд╛ рдХреА рд╕реВрдЪрдирд╛

{'commit_hash': '523ed2fe5',
 'commit_source': 'installation',
 'default_encoding': 'UTF-8',
 'ipython_path': '/usr/local/lib/python3.6/site-packages/IPython',
 'ipython_version': '7.2.0',
 'os_name': 'posix',
 'platform': 'Darwin-17.7.0-x86_64-i386-64bit',
 'sys_executable': '/usr/local/opt/python/bin/python3.6',
 'sys_platform': 'darwin',
 'sys_version': '3.6.5 (default, Jun 17 2018, 12:13:06) \n'
                '[GCC 4.2.1 Compatible Apple LLVM 9.1.0 (clang-902.0.39.2)]'}

help wanted tab-completion

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

IPython == 7.1.1 рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛ред

рд╕рднреА 32 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд╣реИ, ipython 7.2.0ред

IPython == 7.1.1 рдкрд░ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗ рд▓рдЧрд╛ред

рдХреНрдпрд╛ рдХреЛрдИ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдпрджрд┐ jedi рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рд╕реЗ рдЙрдирдХреЗ рд╡рд░реНрдХрдлрд╝реНрд▓реЛ рдореЗрдВ рдорджрдж рдорд┐рд▓реЗ, рдФрд░ рдЕрдЧрд░ рдРрд╕рд╛ рд╣реБрдЖ, рддреЛ рдореИрдВ рдЬрд╛рдирдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдХрд┐ рдХреИрд╕реЗ?

рдЗрд╕рдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ: рдХреЛрдИ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдкреВрд░реНрдгрддрд╛, рдХреЛрдИ рдлрд╝реЛрд▓реНрдбрд░ рдкреВрд░реНрдгрддрд╛ рдирд╣реАрдВ, рдФрд░ рди рд╣реА рд╕реЗрд▓ рдЪрд▓рд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдореИрдВ рд╕реНрд╡рдд: рдкреВрд░реНрдгрддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ ( df = pd.DataFrame(); df.val<TAB> рд╡рд┐рдлрд▓)

рдмрдЧ рдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИред

рдСрдЯреЛ-рд╕рдорд╛рдкрди рд╢рд╛рдпрдж рдПрдХ рдЗрдВрдЯрд░реЗрдХреНрдЯрд┐рд╡ рд╢реЗрд▓ рдХреА рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред рдХреНрдпрд╛ рдПрдХ рддрд░рд╣ рд╕реЗ рдЬреЗрдбреА рдФрд░ рд░рд╛рд╕реНрддрд╛ рдСрдЯреЛ рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?
рдЬреЗрдбреА рдпрд╛ рд╡рд┐рд░рд╛рд╕рдд рдХреЛ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рдореЗрдВ рдХреБрдЫ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рдЖрдВрдХрдбрд╝реЗ рдПрдХ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдВрдЧреЗ: рдпрджрд┐ рдХреЛрдИ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╣реИ, рддреЛ рдпрд╣ рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреЛрдИ рд╡рд░реНрддрдорд╛рди рдирд╛рдорд╕реНрдерд╛рди рд╕реЗ рдирд╛рдо рдЪрд╛рд╣рддрд╛ рд╣реИред

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рдореБрджреНрджреЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ , рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ jedi рд╕реНрд╡рддрдГ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк ipython_config.py рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

# Generate config
ipython profile create
# Edit config file in vim
vim .ipython/profile_default/ipython_kernel_config.py 

рдФрд░ c.IPCompleter.use_jedi = False рдХреЛ ipython_config.py рдмрджрд▓реЗрдВ

[рдЬреЗрдбреА рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛] рдиреЗ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдореЗрд░реЗ рдЬреАрд╡рди рдХреЛ рдмрд╣реБрдд рдХрдард┐рди рдмрдирд╛ рджрд┐рдпрд╛ рд╣реИ: рдХреЛрдИ рдмрд╣реБ-рд╕реНрддрд░реАрдп рдкреВрд░реНрдгрддрд╛, рдХреЛрдИ рдлрд╝реЛрд▓реНрдбрд░ рдкреВрд░реНрдгрддрд╛ рдирд╣реАрдВ, [тАж]

рдирд╣реАрдВ рдирд╣реАрдВ рдирд╣реАрдВред рдпрд╣ рдЬреЗрдбреА рдХрдВрдкрд╛рдЗрд▓рд░ рдирд╣реАрдВ рд╣реИ рдЬреЛ рдРрд╕рд╛ рдХрд░рддрд╛ рд╣реИред рдХрдИ рдкреВрд░реНрдгрддрд╛рдПрдВ рд╣реИрдВ рдФрд░ рдЖрдк рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдЧрд▓рдд рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рдЪрдпрди рдХреЛрдб рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдФрд░ рдЬреЗрдбреА рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдХреЗ рдкреВрд░реНрдгрдХреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рдЫреВрдХрд░ рдЙрд╕ рдмрдЧ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд┐рдпрд╛ред @takluyver https://github.com/ipython/ipython/pull/10996#issuecomment -378288569 рдореЗрдВ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИред

рдЬреЗрдбреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдВрдкрд╛рдЗрд▓рд░ рдЪрдпрди рдХреЛрдб (# 11064 рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ) рдХреЛ рдареАрдХ рдХрд░рдирд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛ред

рдореЗрд░реА рд╕рдордЭ рдпрд╣ рд╣реИ рдХрд┐ рд╕рднреА рдкреВрд░реНрдгрддрд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдкреВрд░реНрдгрдХреЛрдВ рдХреЛ рдпрд╣рд╛рдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред matches рд╕реВрдЪреА (рд╕реНрд╡рддрдГ-рдкреВрд░реНрдг рд╣реЛрдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо) рдореЗрдВ рд╕рднреА рдкреВрд░реНрдг рдкрд░рд┐рдгрд╛рдореЛрдВ рдХрд╛ рд╕рдВрдШрдирди рд╣реЛрдЧрд╛, рдФрд░ file_matches рд╕рдВрдХрд▓рдирдХрд░реНрддрд╛ рдЕрднреА рднреА рдЗрд╕рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП jedi рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдкрд░ рдкрде / рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ, "рдЯреВрдЯрд╛ рд╣реБрдЖ" рд╣реИ, рдмрд╕ рдЗрддрдирд╛ рд╣реИ рдХрд┐ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкрд░рд┐рдгрд╛рдо (рдЬреЗрдбреА рд╕реЗ рдЖ рд░рд╣реЗ рд╣реИрдВ) рд╣реИ рдХрд┐ рдЖрдк рдЕрдкрдиреЗ рдлрд╝рд╛рдЗрд▓ рдкрде рдХреЛ рдЕрдм рдФрд░ рдорд┐рд▓рд╛рди рдирд╣реАрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред

рдПрдХ рдлрд┐рдХреНрд╕ рдХреЗ рд▓рд┐рдП рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рд╡рд┐рдЪрд╛рд░ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдкрд░ рдЬреЗрдбреА рдСрдЯреЛ-рдкреВрд░реНрдг рдХреЛ рдЕрдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛? рдХреНрдпрд╛ рдЗрд╕рд╕реЗ рдХрд╛рдо рд╣реЛ рдЬрд╛рдпреЗрдЧрд╛?
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧреА рд╡рд╣ рд╣реИ eval рдпрд╛ exec рдХреЗ рд╕рд╛рде рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╕рдордп рдСрдЯреЛ-рдкреВрд░рд╛ рдХрд░рдирд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рд╣рд░ рдПрдХ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рдареАрдХ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдФрд░ рдпрд╣ рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ рдЬреИрд╕реЗ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрде рд╕реНрд╡рддрдГ рдкреВрд░реНрдгред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ @ рдлреНрд▓рд╛рдЗрдВрдЧ-рднреЗрдбрд╝ # 11064 рд╕реЗ рдЬреБрдбрд╝реЗ рдЕрдиреНрдп рдореБрджреНрджреЗ рдХреЛ рдкрдврд╝рддреЗ рд╣реБрдП, рдореИрдВ рд╕рдордЭрддрд╛ рд╣реВрдВ рдХрд┐ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЯрд╛рдЗрдк рдХрд░рддреЗ рд╕рдордп рдЬреЗрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рддрд░реНрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИ?

рдмрд╕ рдореИрдВ рдЬреЛ рдХрд╣ рд░рд╣рд╛ рд╣реВрдВ рдЙрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рджреЛрдиреЛрдВ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ рдЬреЗрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд▓рд┐рдП рдЧрдП рдереЗ, рдЖрдк рджреЗрдЦрддреЗ рд╣реИрдВ рдХрд┐ рдкрде-рдкреВрд░реНрдгрддрд╛ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рдереЛрдбрд╝рд╛ рдФрд░ рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХ рдореИрдЪ рд╣реИрдВред
test1
test2

рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рд╣реИ: рдереЛрдбрд╝рд╛ рдЯрд╛рдЗрдк рдХрд░рдирд╛ рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЛ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдирд╣реАрдВ рдкрддрд╛ рд╣реИред рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдЕрдЧрд░ рдЖрдкрдиреЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдкрде рдЯрд╛рдЗрдк рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ "/" рдХрдВрдкрд╛рдЗрд▓рд░ "рд░реАрд╕реЗрдЯ" рдХреЗ рдмрд╛рдж рдореБрдЭреЗ рдПрдмреНрд╕ (), рд╕рднреА () рдФрд░ рдЕрдиреНрдп рдмрд┐рд▓рд┐рди рджрд┐рдЦрд╛рдиреЗ рдХреЗ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдореЛрдб рдореЗрдВред
image

рдЕрдЧрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдХреБрдЫ рдиреЗрд╕реНрдЯреЗрдб рдлреЛрд▓реНрдбрд░ рдХреЗ рд╕рд╛рде рд▓рдВрдмреЗ рд░рд╛рд╕реНрддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рдПрдХ рдмрдбрд╝реА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдмреИрд╢ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ "рдЯреИрдм" рдкрд░ рдЪреАрдЬреЗрдВ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред рд╡рд░реНрддрдорд╛рди ipython рд╕реНрд╡рддрдГ рдкреВрд░реНрдг рдХреЗ рд╕рд╛рде рдЖрдкрдХреЛ рдкрд╣рд▓рд╛ рдЕрдХреНрд╖рд░ рдпрд╛ рдкреНрд░рддреНрдпреЗрдХ рдлрд╝реЛрд▓реНрдбрд░ / рдлрд╝рд╛рдЗрд▓ рдХреЛ рдпрд╛рдж рд░рдЦрдирд╛ рд╣реЛрдЧрд╛, рдЗрд╕реЗ рдЯрд╛рдЗрдк рдХрд░реЗрдВ, рдФрд░ рдлрд┐рд░ рдЕрдкрдиреА рдлрд╝рд╛рдЗрд▓ / рдлрд╝реЛрд▓реНрдбрд░ рдЦреЛрдЬрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдХреБрдЫ рдмрд┐рд▓реНрдбрд┐рдВрдЧреНрд╕ рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЬрд╛рдПрдВред

рдЕрдЧрд░ рд╕рднреА рдмрд┐рд▓реНрдбрд┐рдВрд╕ рдХреЛ рдСрдЯреЛреЛрдХрдореНрдкрд┐рд╢рди рд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдерд╛, рдФрд░ рд╕рднреА ipython рдЬрд╛рджреВ - рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдмрд╣реБрдд рдмреЗрд╣рддрд░ рд╣реЛрдЧрд╛!

рдореБрдЭреЗ рдкрддрд╛ рд╣реИ рдХрд┐ 'рдПрдмреНрд╕' рдХреИрд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рд╣рдо рдореЗрдВ рд╕реЗ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЗрд╕реЗ рдСрдЯреЛрдХрдВрдкреНрд▓реАрдореЗрдВрдЯ рд▓рд┐рд╕реНрдЯ рд╕реЗ рдЪреБрдирдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрдИ рдЧреБрдирд╛ рдЕрдзрд┐рдХ рддреЗрдЬреА рд╕реЗ рдЯрд╛рдЗрдк рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдЪреНрдЫрд╛ рдХрд╛рд░рдг рд╣реИ, рдФрд░ рдЕрдиреНрдп 3-4 рдкрддреНрд░ рд▓рдВрдмреЗ рдмрд┐рд▓рд┐рдпрди рд╣реИрдВ, рдкрд╣рд▓реА рдЬрдЧрд╣ рдореЗрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП! рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рдпрджрд┐ рдмрд┐рд▓реНрдбрд░реЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдерд╛, рддреЛ рдореИрдВ рдмрд╕ рдХреБрдЫ рд▓рдВрдмреЗ рдирд╛рдореЛрдВ рдХреЛ рдЫреЛрдбрд╝ рджреВрдВрдЧрд╛ рдЬреЛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреИрд╕реЗ рдХрд┐ рдбреЗрдкрд░реЗрд╢рди рд╡рд░реНрдирд┐рдВрдЧ, рдФрд░ рдмрд╛рдХреА рд╕рднреА рдЪреАрдЬреЛрдВ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдПрдВред

рдмрд╕ рдЫрд╡рд┐ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рдХреЛ рджреЗрдЦреЗрдВ: рдореИрдВ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╢рд╛рдмреНрджрд┐рдХ рдХреЗ рдЕрдВрджрд░ рдкрд╛рдпрдерди рдСрдмреНрдЬреЗрдХреНрдЯ рдирд╛рдо рдХреНрдпреЛрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛?

рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЙрдкрдпреЛрдЧ рдорд╛рдорд▓рд╛ рдкрд╛ рд╕рдХрддрд╛ рд╣реВрдВ:

exec("print(abs(-3))", [globals()])

рд╢рд╛рдпрдж рдпрд╣ рдХрдо рдЙрдкрдпреЛрдЧ рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдЗрд╕ рдмрд╛рдд рд╕реЗ рд╕рд╣рдордд рд╣реВрдБ рдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдкрде рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рдорд╛рдорд▓реЗ рд╕реЗ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред

рд╣рд╛рдБ, рдпрд╣ рдПрдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдФрд░ рдХреБрдЫ рд▓реЛрдЧ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдирд┐рд╖реНрдкрд╛рджрди рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВред

рдЖрджрд░реНрд╢ рд░реВрдк рд╕реЗ, рд╕реНрд╡рдд: рдкреВрд░реНрдг рдкрддрд╛ рд▓рдЧрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдпрд╣ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдореЛрдб рдореЗрдВ рд╣реИ, рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдмреИрд╢ рдЯреИрдм рдкреВрд░рд╛ рд╣реЛрдиреЗ рдХреА рддрд░рд╣ рдХрд╛рд░реНрдп рдХрд░рддрд╛ рд╣реИред рдПрдХ рдЕрдЪреНрдЫрд╛ рдкреНрд░реЙрдХреНрд╕реА "/", "./" рдпрд╛ "C:" "D:" рдЖрджрд┐ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИред

рдпрд╣ рднреА рдХрдо рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрди рдЪрд░реЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдорд╛рдиреНрдп рдЕрдЬрдЧрд░ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБ рд╣реЛрдВрдЧреАред

рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЛрдИ a = "C:print(abs(-3))"; exec(a[2:]) рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдмрдирд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдмрд╣реБрдд рд╕рдВрднрд╛рд╡рдирд╛ рдирд╣реАрдВ рд╣реИред

рд╣рд╛рдБ, рдЬрдм рдЖрдк рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЯрд╛рдЗрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдХреЛрдб рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬреЗрдбреА рдкреВрд░рд╛ рдХрд░рдирд╛ рдЫреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рдкрдВрдХреНрддрд┐ рдХреЛ рджреЗрдЦреЗрдВ: https://github.com/ipython/ipython/blob/65778adec13a65f82c5d2bab123e7a63516702c8/ipython/core/completer.py#L1375
рдФрд░ рдпрд╣ рдЬреЗрдбреА рдХреЗ рдЖрдВрддрд░рд┐рдХ рдкрд╛рд░реНрд╕рд┐рдВрдЧ рддрд░реНрдХ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдЬрд╛ рд╕рдХреЗ рдХрд┐ рд╣рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред
рдореИрдВрдиреЗ рдЗрд╕ рдХреЛрдб рдХрд╛ рдереЛрдбрд╝рд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдФрд░ рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдЯреВрдЯрд╛ рд╣реБрдЖ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП path = " рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдкрд░ рдпрд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ рдХрд┐ рдЖрдк рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╣реИрдВ, рд▓реЗрдХрд┐рди path = "./ ред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЯреЛрдХрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рдХреЗ рд╕рд╛рде рдЖ рд╕рдХрддреЗ рд╣реИрдВред

рдХреНрдпрд╛ рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдбреА рдХреЛ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ, рдпрд╛ рдпрд╣ рдЗрд╕рд▓рд┐рдП рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рджреЛ рдиреЛрдбреНрд╕ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реИ?

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореИрдВрдиреЗ рдЬрд▓реНрджреА рд╕реЗ рдЕрдкрдиреЗ рджрд┐рдорд╛рдЧ рдХреЛ tokenize рдмрджрд▓ рджрд┐рдпрд╛ рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рдпрд╣ рддрдереНрдп рдкрд╕рдВрдж рдирд╣реАрдВ рдерд╛ рдХрд┐ рдпрд╣ рдЖрдВрддрд░рд┐рдХ рдЬреЗрдбреА рд╕рд╛рдорд╛рди (рдирд┐рдЬреА рдПрдкреАрдЖрдИ) рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИред

рдЯреЛрдХрди рдХреА рднреА рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реЗрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЗрдВрдбреЗрдВрдЯреЗрд╢рдирдПрдпрд░реНрд░рдо рдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕рдПрдпрд░реНрд░рдо рдЙрдард╛рддрд╛ рд╣реИ?

рдЖрдкрдХреЛ рдзреАрд░реЗ-рдзреАрд░реЗ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рдкреАрдЫреЗ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдлрд┐рд░ рдЖрдк рд╣рдореЗрд╢рд╛ рдЕрдкреВрд░реНрдг рд╕реНрдЯреНрд░рд┐рдВрдЧ рдШреЛрд╖рдгрд╛ рдХреЗ рдХрд╛рд░рдг рдХрд░реНрд╕рд░ рдХреЗ рдкрд╛рд╕ рдПрдХ рддреНрд░реБрдЯрд┐ рдХреА рдЙрдореНрдореАрдж рдХрд░ рд░рд╣реЗ рд╣реИрдВ?

рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдореИрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рддрд░реНрдХ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪ рд░рд╣рд╛ рд╣реВрдВ рдЬреИрд╕реЗ рдпрд╣ inputtransformer2.py ред рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рддрд░реНрдХ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ рдПрдХ рд╕реВрдЪреА рдпрд╛ рдПрдХ рд╢рдмреНрджрдХреЛрд╢ рдЯрд╛рдЗрдк рдХрд░ рд░рд╣рд╛ рд╣реИ, рддрд╛рдХрд┐ enter рджрдмрд╛рддреЗ рд╕рдордп рдЖрдк рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рди рдХрд░реЗрдВ, рдЖрдк рдПрдХ рдирдИ рд▓рд╛рдЗрди рдбрд╛рд▓рддреЗ рд╣реИрдВ:
test1
test2
рд╢рд╛рдпрдж рд╣рдо " рдФрд░ ' рд╡рд░реНрдгреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рд╕рдорддреБрд▓реНрдп рдкреНрд░рдпрд╛рд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдореИрдВ рдПрдХ PR рдХреЗ рд╕рд╛рде рдЖрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ)ред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ regexp рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдореИрдВ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рдмреЗрдХрд╛рд░ рд╣реЛрдЧрд╛ рд╣рд╛рд▓рд╛рдВрдХрд┐: рдкреА

рдЯреЛрдХрди рдХреА рднреА рдЕрдкрдиреА рд╕рдорд╕реНрдпрд╛ рд╣реИред рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рд╕реЗрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЦреЛрд▓рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдПрдХ рдЗрдВрдбреЗрдВрдЯреЗрд╢рдирдПрдпрд░ рдпрд╛ рд╕рд┐рдВрдЯреИрдХреНрд╕рдПрдпрд░ рдЙрдард╛рддрд╛ рд╣реИ

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкреВрд░рд╛ рдирд╣реАрдВ рд╣реЛрдЧрд╛ ... рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ? рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ рдПрдХ SyntaxError рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдХреНрдпрд╛ рд╕реНрд╡рддрдГ рдкреВрд░реНрдгрддрд╛ рдЕрднреА рднреА рдХрд╛рдо рдХрд░рддреА рд╣реИ? рд╣рдореЗрдВ рдЬрд╛рдВрдЪ рдХрд░рдиреА рдЪрд╛рд╣рд┐рдП

7.3.0 рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рд╣реА рдореБрджреНрджрд╛ред

рд╣рд╛рдБ, рдпрд╣ рддрдм рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдЬрдм рдЖрдкрдХреЗ рдкрд╛рд╕ рд╕рд┐рдВрдЯреЗрдХреНрд╕рдСрдпрд░ рд╣реЛред

Screenshot from 2019-03-28 10-48-20

IIRC tokenize рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдлреА рдордЬрдмреВрдд рд╣реИ - рдЬрд┐рд╕ рддрд░рд╣ рдХрд╛ рд╕реНрдирд┐рдкреЗрдЯ рдЖрдк рджрд┐рдЦрд╛рддреЗ рд╣реИрдВ рд╡рд╣ рдЕрднреА рднреА рдЯреЛрдХрди рдареАрдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рддрдм рд╣реЛрдЧреА рдЬрдм рдЖрдк рдЯреЛрдХрди рдХреА рд╕рдордЭ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВрдЧреЗред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд▓рд╛рдЗрди рдкрд░ рдПрдХ рдЕрд╕рдВрдмрджреНрдз рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреА рддрд░рд╣ рдХреБрдЫ рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛, рдЬреЛ рдЯреЛрдХрди рд╕реНрддрд░ рдкрд░ рдПрдХ рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рддреНрд░реБрдЯрд┐ рд╣реЛ рд╕рдХрддреА рд╣реИред

рдирд╡реАрдирддрдо conda рд╕реНрдерд╛рдкрдирд╛ рдХреЗ рд╕рд╛рде рдЗрд╕реА рддрд░рд╣ рдХреЗ рдореБрджреНрджреЛрдВ:

python                    3.7.3
ipykernel                 5.1.0              
ipython                   7.4.0           

рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреЛрдИ рдЯреИрдм рдкреВрд░рд╛

IPython рдореЗрдВ рдЬрд╛рд░реА рд░рд╣рддрд╛ рд╣реИ 7.7.0 conda рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕реНрдерд╛рдкрд┐рдд:

ipython                   7.7.0            py37h5ca1d4c_0    conda-forge
ipython_genutils          0.2.0                      py_1    conda-forge
jedi                      0.14.1                   py37_0    conda-forge
python                    3.7.3                h33d41f4_1    conda-forge

рдФрд░ рдпрд╣ рддрдм рддрдХ рд░рд╣реЗрдЧрд╛ рдЬрдм рддрдХ рдпрд╣ рдореБрджреНрджрд╛ рдФрд░ # 10926 рдмрдВрдж рдирд╣реАрдВ рд╣реЛ рдЬрд╛рддрд╛ред @ рдЬреЗрд░реЗрдореАрд╕рд┐рдХреИрд╕ 73 рдФрд░ рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдХреБрдЫ

рдорджрдж рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ # 10926 рдкрдврд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдЙрддреНрдкрд╛рджрдХ рд╣реИ, рдХреЛрдб рдореЗрдВ рдЧреЛрддрд╛ рд▓рдЧрд╛рдПрдБ рдФрд░ "рдпрд╣ рдЕрднреА рднреА рдПрдХ рдореБрджреНрджрд╛ рд╣реИ" рдХрд╣рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдЬрд╛рдиреЗрдВред

@meeseeksdev рдЯреИрдЧ рдорджрдж рдЪрд╛рд╣рддрд╛ рдерд╛

@meeseeksdev рдЯреИрдЧ рдЯреИрдм-рдкреВрд░реНрдг

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдбрд╛рдЙрдирдЧреНрд░реЗрдбрд┐рдВрдЧ рдХреЗ рдореБрджреНрджреЛрдВ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВ , рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ jedi рд╕реНрд╡рддрдГ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдпрджрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╕реЗ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЖрдк ipython_config.py рд╕рд╛рде рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

# Generate config
ipython profile create
# Edit config file in vim
vim .ipython/profile_default/ipython_kernel_config.py 

рдФрд░ c.IPCompleter.use_jedi = False рдХреЛ ipython_config.py рдмрджрд▓реЗрдВ

рдХрд┐рд╕ рдлрд╛рдЗрд▓ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ? ipython_kernel_config.py рдпрд╛ ipython_config.py ?

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рдЯреИрдм рджрдмрд╛рдиреЗ рдХреЗ рдмрд╛рдж рджреВрд╕рд░реА рд╕реНрд▓реИрд╢ рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реИред

'/<TAB> рдЯрд╛рдЗрдк рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж
image

/ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж
image

рдПрдХ рдЖрдЗрдЯрдо рдХреЗ рдЪрдпрди рдХреЗ рдмрд╛рдж, рд╡рд┐рднрд╛рдЬрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рд╕реНрд▓реИрд╢ рд╣реЛрдЧрд╛:

рд░рд┐рдЯрд░реНрди рджрдмрд╛рдиреЗ рдХреЗ рдмрд╛рдж
image

рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЯреИрдм рджрдмрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рджреВрд╕рд░рд╛ рд╕реНрд▓реИрд╢ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкреЙрдк рдЕрдк рдореЗрдиреВ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред

рдореИрдВрдиреЗ рдЖрдЬ (7.11.0) рдХреЗ рд░реВрдк рдореЗрдВ рдЖрдИрдкреАрдереЙрди рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛, рдФрд░ рд╕рдорд╕реНрдпрд╛ рдЕрднреА рднреА рдмрдиреА рд╣реБрдИ рд╣реИред

@ рдлреНрд▓рд╛рдЗрдВрдЧ- рд╢реАрдк @augustogoulart рдХреНрдпрд╛ рдЖрдк рдЗрд╕ рдкрд░ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЛ рдЦреАрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд▓реЗ рд╣реИрдВ? (рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, "рд╣реЗрд▓реНрдкрд╡реЙрдиреНрдб" рдЯреИрдЧ рдРрд╕рд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдПрдХ рдореМрдЬреВрджрд╛ рдпреЛрдЧрджрд╛рдирдХрд░реНрддрд╛ рдирд╣реАрдВ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣рд╛рдВ рдбреЗрд╡рд▓рдкрд░ рдорд╛рдирджрдВрдбреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реВрдВред) рдореБрдЭреЗ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдореЗрдВ рддрд░реНрдХ рдореЗрдВ рдХреБрдЫ рдорд╛рдореВрд▓реА рдмрджрд▓рд╛рд╡ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рд╣реИрдВ рдпрд╛ рдирд╣реАрдВред , рдЬреЛ, рдПрдХ рд╕рд╣реА рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдХрдо рд╕реЗ рдХрдо рдЬреЗрдбреА рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХрд╛ рдмреЗрд╣рддрд░ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

рдпрд╣ рдкреВрд░реА рддрд░рд╣ рд╕реЗ # 10926 рдпрд╛ рдЗрд╕реЗ рдареАрдХ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕реЗ рдмрдВрдж рдХрд░рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛ (рдореЗрд░реА рд░рд╛рдп рдореЗрдВ):

  • рд╢рдмреНрджрдХреЛрд╢ рдХреБрдВрдЬреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдкреВрд░реНрдг рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдореИрдЪ рдлрд╛рдЗрд▓ рдХрд░реЗрдВ
  • рдХрд┐рд╕реА рднреА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЬрдм рдЬрд╛рджреВ рдкреВрд░рд╛ рд╣реЛрддрд╛ рд╣реИ

рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдореЗрдВ рдЬрдм рдЬреЗрдбреА рдХреЛ рдХрдо рд╕реЗ рдХрдо рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рдореЗрд░реЗ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧ рдкреИрдЯрд░реНрди рдХреЛ рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рддрдп рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рд╕рд┐рд░реНрдл рдПрдХ рдЫреЛрдЯрд╛-рд╕рд╛ рдЕрдВрд╢рджрд╛рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рд╡реЗ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ!

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ipython picture ipython  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

lewisacidic picture lewisacidic  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

RinaldoB picture RinaldoB  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

alvations picture alvations  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ