рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

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

рдпреЛрдЬрдирд╛

  1. рдкрд░рд┐рдЪрдпред
  2. рдФрдЬрд╛рд░ред
  3. рд╕реНрдерд╛рдкрдирд╛
  4. рдПрдкреАрдЖрдИред
  5. рдЕрдВрддрд░рд╕рдВрдЪрд╛рд▓рдиреАрдпрддрд╛ред
  6. рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ.
  7. рдирд┐рд╖реНрдХрд░реНрд╖ред
  8. рдХрдбрд╝рд┐рдпрд╛рдБ.
  9. рдПрдордПрд▓рдЯреВрд▓рдХрд┐рдЯред

рдкрд░рд┐рдЪрдп

рдкрд╛рдпрдерди рдПрдХ рдЙрдЪреНрдЪ рд╕реНрддрд░реАрдп, рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдпреЛрдЬрди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдбреЗрд╡рд▓рдкрд░ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдФрд░ рдХреЛрдб рдкрдардиреАрдпрддрд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░рдирд╛ рд╣реИред рд▓реЗрдЦреЛрдВ рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдореЗрдВ, рдореИрдВ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдкрд░ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░реВрдВрдЧрд╛, рдЗрд╕ рд▓реЗрдЦ рдХрд╛ рдореБрдЦреНрдп рдлреЛрдХрд╕ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рднрд╛рд╖рд╛ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд╛рдпрдерди рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣реИред

рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ (рдПрдордПрд▓) рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдПрдХ рд╡рд░реНрдЧ рд╣реИ, рдЬрд┐рд╕рдХреА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд┐рд╕реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдорд╛рдзрд╛рди рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдХрдИ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕реАрдЦрдирд╛ рд╣реИред

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

рдмрд┐рд▓реНрдХреБрд▓ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдЖрдЬрдХрд▓ рдПрдХ рдореЙрдбрд▓ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рд╕реИрдХрдбрд╝реЛрдВ-рд╣рдЬрд╛рд░реЛрдВ рд▓рд╛рдЗрдиреЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдореЙрдбрд▓ рдмрдирд╛рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд▓рд╛рдЧрдд рдХрдо рд╣реЛрддреА рдЬрд╛ рд░рд╣реА рд╣реИред

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

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

рджреВрд╕рд░реА рдУрд░, рд╣рдо рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдбреЗрдЯрд╛ рдПрдХрддреНрд░ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдЬреИрд╕реЗ рдПрдХреАрдХреГрдд рдбреЗрдЯрд╛ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХреЗ рд╕рд╛рде, рдпрд╣ рд╕рд╛рд░реА рдЬрд╛рдирдХрд╛рд░реА рддреБрд░рдВрдд рддреИрдпрд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ рдФрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдореЙрдбрд▓ рдореЗрдВ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИред

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

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

рдПрдордПрд▓ рдЯреВрд▓рдХрд┐рдЯ рдЯреВрд▓ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрджреНрджреЗрд╢реНрдп рдмрд╕ рдпрд╣реА рдХрд░рдирд╛ рд╣реИ: рдореЙрдбрд▓ рдФрд░ рдПрдХ рд▓реЗрдирджреЗрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рдПрдХреАрдХреГрдд рдХрд░рдирд╛ рддрд╛рдХрд┐ рдирд┐рд░реНрдорд┐рдд рдореЙрдбрд▓ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реАрдзреЗ рдЖрдкрдХреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВред рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдПрдордПрд▓ рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рдЙрд╕реА рддрд░рд╣ рдЬреИрд╕реЗ рдЖрд░ рдЧреЗрдЯрд╡реЗ, рдПрдордПрд▓ рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рдЖрд░ рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ)ред

рдЙрдкрдХрд░рдг

рдЖрдЧреЗ рдмрдврд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ, рдореИрдВ рдХреБрдЫ рдкрд╛рдпрдерди рдЯреВрд▓реНрд╕ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬрд┐рдирдХрд╛ рд╣рдо рдмрд╛рдж рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА

  • рдкрд╛рдпрдерди рдПрдХ рд╡реНрдпрд╛рдЦреНрдпрд╛рддреНрдордХ, рдЙрдЪреНрдЪ-рд╕реНрддрд░реАрдп, рд╕рд╛рдорд╛рдиреНрдп-рдЙрджреНрджреЗрд╢реНрдп рд╡рд╛рд▓реА рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛ рд╣реИред рднрд╛рд╖рд╛ рдХрд╛ рдореБрдЦреНрдп рд▓рд╛рдн рдЗрд╕рдХреА рдЧрдгрд┐рддреАрдп, рдПрдордПрд▓ рдФрд░ рдПрдЖрдИ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдмрдбрд╝реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИред рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреА рддрд░рд╣, рдпрд╣ рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ-рдУрд░рд┐рдПрдВрдЯреЗрдб рднрд╛рд╖рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдм рдХреБрдЫ рд╕реНрдерд┐рд░ рдХреЗ рдмрдЬрд╛рдп рдЧрддрд┐рд╢реАрд▓ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╕рд╛рде рд╣реА рд╣рд░ рдЪреАрдЬрд╝ рдПрдХ рд╡рд╕реНрддреБ рд╣реИ. рдмрд╛рдж рдХреЗ рд▓реЗрдЦ рднрд╛рд╖рд╛ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рддреЗ рд╣реИрдВред рдпрджрд┐ рдЖрдк рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рд╢реБрд░реБрдЖрдд рдХрд░реЗрдВ рдкреНрд░рд▓реЗрдЦрди.
  • рд╣рдорд╛рд░реЗ рдмрд╛рдж рдХреЗ рдЕрднреНрдпрд╛рд╕реЛрдВ рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯ рдХрд░реЗрдВ рдкрд╛рдпрдерди 3.6.7 64 рдмрд┐рдЯ.
  • рдЖрдИрдбреАрдИ: рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ PyCharm, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░ рд╡реЗ ╨╝╨╜╨╛╨│╨╛. рдпрджрд┐ рдЖрдк рдПрдЯреЗрд▓рд┐рдпрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдкрд╛рдпрдерди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд▓рд┐рдкреНрд╕ рдкреНрд▓рдЧрдЗрди рд╣реИред рдпрджрд┐ рдЖрдк рд╡реАрдПрд╕ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдкрд╛рдпрдерди рдХреЗ рд▓рд┐рдП рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд╣реИред
  • рдиреЛрдЯрдмреБрдХ: рдЖрдИрдбреАрдИ рдХреЗ рдмрдЬрд╛рдп, рдЖрдк рдЕрдкрдиреА рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдСрдирд▓рд╛рдЗрди рдиреЛрдЯрдмреБрдХ рдореЗрдВ рд▓рд┐рдЦ рдФрд░ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрдирдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реИ рдмреГрд╣рд╕реНрдкрддрд┐.

рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ

рдпрд╣рд╛рдВ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреА рдПрдХ (рдЧреИрд░-рд╡рд┐рд╕реНрддреГрдд) рд╕реВрдЪреА рджреА рдЧрдИ рд╣реИ:

рдПрдЖрдИ/рдПрдордПрд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпрд╛рдВ рд╡реНрдпрд╡рд╕рд╛рдп рдХреЛ рдЕрдзрд┐рдХ рдХреБрд╢рд▓ рдФрд░ рдЕрдиреБрдХреВрд▓рдиреАрдп рдмрдирд╛рддреА рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдЬ рдЗрди рддрдХрдиреАрдХреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рдФрд░ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдПрдЖрдИ/рдПрдордПрд▓ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд░реЗрдВ рдФрд░ рд╡реЗ рдЖрдкрдХреЗ рд╕рдВрдЧрдарди рдХреЛ рдмрдврд╝рдиреЗ рдореЗрдВ рдХреИрд╕реЗ рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рд╕реНрдерд╛рдкрдирд╛

рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рддрд░реАрдХреЗ рд╣реИрдВ:

  • рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо
    • Windows
    • Linux
    • Mac
  • рдбрд╛рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗрд╡рд╛рд▓рд╛ рдордЬрд╝рджреВрд░
    • DockerHub рд╕реЗ рдПрдХ рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ
    • рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓реБрдХ рдмрдирд╛рдПрдВ

рд╕реНрдерд╛рдкрдирд╛ рд╡рд┐рдзрд┐ рдЪрд╛рд╣реЗ рдЬреЛ рднреА рд╣реЛ, рдЖрдкрдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рд╕реНрдерд╛рди рд╣реИ рдкреГрд╖реНрда рдЬрд╛рд░реА рдХрд░рддрд╛ рд╣реИ. рдЗрд╕рдореЗрдВ рдкрд░реАрдХреНрд╖рдгрд┐рдд рд╕реНрдерд┐рд░ рд░рд┐рд▓реАрдЬрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдмрд╕ рдирд╡реАрдирддрдо рд▓реЗрдВред рдлрд┐рд▓рд╣рд╛рд▓ рдпрд╣ 0.8 рд╣реИ, рд▓реЗрдХрд┐рди рд╕рдордп рдХреЗ рд╕рд╛рде рдирдП рднреА рдЖрдПрдВрдЧреЗред рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЛ рдХреНрд▓реЛрди/рдбрд╛рдЙрдирд▓реЛрдб рди рдХрд░реЗрдВ, рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬрд╝ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред

рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо

рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдкрд░ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ (рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛) рдЖрдкрдХреЛ рдкрд╛рдпрдерди рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдЗрд╕рдХреЗ рд▓рд┐рдП:

  1. рдкрд╛рдпрдерди 3.6.7 64 рдмрд┐рдЯ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ. рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдкрд╛рдпрдерди рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХреА рдЬрд╛рддреА рд╣реИред
  2. рдореЙрдбреНрдпреВрд▓ рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ dill: pip install dill.
  3. рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ (рдЕрд░реНрдерд╛рддреН do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) рдЙрддреНрдкрд╛рджреЛрдВ рд╡рд╛рд▓реЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рдореЗрдВред рдпрджрд┐ рдЖрдк рдЙрддреНрдкрд╛рджреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореМрдЬреВрджрд╛ рдХреНрд╖реЗрддреНрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЪрд▓рд╛рдПрдБ: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. рдЬрдЧрд╣ рдХреЙрд▓рдЖрдЙрдЯ рдбреАрдПрд▓рдПрд▓/рдПрд╕рдУ/рдбреАрд╡рд╛рдИрдПрд▓рдЖрдИрдмреА рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ bin рдЖрдкрдХрд╛ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдЙрджрд╛рд╣рд░рдгред рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдлрд╝рд╛рдЗрд▓ рд▓реМрдЯрд╛рдП рдЧрдП рдкрде рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП write ##class(isc.py.Callout).GetLib().

Windows

  1. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ PYTHONHOME рдкрд╛рдпрдерди 3.6.7 рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИред
  2. рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рд╕рд┐рд╕реНрдЯрдо рд╡рд╛рддрд╛рд╡рд░рдг рдЪрд░ рд╣реИ PATH рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИ PYTHONHOME (рдпрд╛ рд╡рд╣ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдЬрд┐рд╕ рдкрд░ рдпрд╣ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ)ред

рд▓рд┐рдирдХреНрд╕ (рдбреЗрдмрд┐рдпрди/рдЙрдмрдВрдЯреВ)

  1. рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╣реИ PATH рдпрд╣ рд╣реЛрддрд╛ рд╣реИ /usr/lib ╨╕ /usr/lib/x86_64-linux-gnu. рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ /etc/environment рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред
  2. рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ undefined symbol: _Py_TrueStruct рд╕реЗрдЯрд┐рдВрдЧ рд╕реЗрдЯ рдХрд░реЗрдВ PythonLib... рдореЗ рднреА рд░реАрдбрдореА рд╡рд╣рд╛рдБ рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ рд╣реИ.

Mac

  1. рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХреЗрд╡рд▓ Python 3.6.7 рд╕рдорд░реНрдерд┐рдд рд╣реИ Python.org. рд╡реЗрд░рд┐рдПрдмрд▓ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ PATH.

рдпрджрд┐ рдЖрдкрдиреЗ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ рдмрджрд▓ рджрд┐рдпрд╛ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЙрддреНрдкрд╛рдж рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред

рдбрд╛рдХ рдореЗрдВ рдХрд╛рдо рдХрд░рдиреЗрд╡рд╛рд▓рд╛ рдордЬрд╝рджреВрд░

рдХрдВрдЯреЗрдирд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдХрдИ рдлрд╛рдпрджреЗ рд╣реИрдВ:

  • рдкреЛрд░реНрдЯреЗрдмрд┐рд▓рд┐рдЯреА
  • рдкреНрд░рднрд╛рд╡рд╢реАрд▓рддрд╛
  • рдЗрдиреНрд╕реБрд▓реЗрд╢рди
  • рд▓рдкрдЯ
  • рдЕрдЪрд▓ рд╕реНрдерд┐рддрд┐

рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░реЛ рд▓реЗрдЦреЛрдВ рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЙрддреНрдкрд╛рджреЛрдВ рдХреЗ рд╕рд╛рде рдбреЙрдХрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдПред

рд╕рднреА рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдмрд┐рд▓реНрдб рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдХрдВрдЯреЗрдирд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИрдВ 2019.4.

рддреИрдпрд╛рд░ рдЫрд╡рд┐

рджреМрдбрд╝рдирд╛: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestрдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдХрдореНрдпреБрдирд┐рдЯреА рдПрдбрд┐рд╢рди рдХреЗ рд╕рд╛рде рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ рдФрд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рдмрд╕ рдЗрддрдирд╛ рд╣реАред

рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рд▓реБрдХ рдмрдирд╛рдПрдВ

рдбреЙрдХрд░ рдЫрд╡рд┐ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдХреЗ рд░реВрдЯ рдореЗрдВ рдЪрд▓рд╛рдПрдБ: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЫрд╡рд┐ рдЫрд╡рд┐ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИ store/intersystems/iris-community:2019.4.0.383.0, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЖрдк рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рд╕реЗрдЯ рдХрд░рдХреЗ рдЗрд╕реЗ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ IMAGE.
рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рд╕реЗ рдирд┐рд░реНрдорд╛рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemcommunity/irispy:latest"ред

рдЗрд╕рдХреЗ рдмрд╛рдж рдЖрдк рдбреЙрдХрд░ рдЫрд╡рд┐ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ:

docker run -d 
  -p 52773:52773 
  -v /<HOST-DIR-WITH-iris.key>/:/mount 
  --name irispy 
  intersystemscommunity/irispy:latest 
  --key /mount/iris.key

рдпрджрд┐ рдЖрдк рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рд╕рд╛рдореБрджрд╛рдпрд┐рдХ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдЫрд╡рд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдВрдЬреА рдХреЛ рдЫреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

  • рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ isc.py.test.Process рдХрдИ рдЫрд╡рд┐рдпреЛрдВ рдХреЛ рдПрдХ рдЕрд╕реНрдерд╛рдпреА рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рд╕рд╣реЗрдЬрддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЗрд╕ рдкрде рдХреЛ рдорд╛рдЙрдВрдЯреЗрдб рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рдмрджрд▓рдирд╛ рдЪрд╛рд╣реЗрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╕реЗрдЯрд┐рдВрдЧ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ WorkingDir рдЖрд░реЛрд╣рд┐рдд рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ред
  • рдЯрд░реНрдорд┐рдирд▓ рд░рди рддрдХ рдкрд╣реБрдБрдЪрдиреЗ рдХреЗ рд▓рд┐рдП: docker exec -it irispy sh.
  • рд▓реЙрдЧрд┐рди рджреНрд╡рд╛рд░рд╛ рд╕рд┐рд╕реНрдЯрдо рдкреНрд░рдмрдВрдзрди рдкреЛрд░реНрдЯрд▓ рддрдХ рдкрд╣реБрдВрдЪ SuperUser/SYS.
  • рдХрдВрдЯреЗрдирд░ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП, рдЪрд▓рд╛рдПрдБ: docker stop irispy && docker rm --force irispy.

рд╕реНрдерд╛рдкрдирд╛ рдХрд╛ рд╕рддреНрдпрд╛рдкрди

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

set sc = ##class(isc.py.Callout).Setup() 
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var

рдкрд░рд┐рдгрд╛рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП: HELLO - рдкрд╛рдпрдерди рд╡реИрд░рд┐рдПрдмрд▓ рдорд╛рди x. рдпрджрд┐ рд╡рд╛рдкрд╕реА рдХреА рд╕реНрдерд┐рддрд┐ sc рдПрдХ рддреНрд░реБрдЯрд┐ рд╣реИ рдпрд╛ var рдЦрд╛рд▓реА, рдЬрд╛рдВрдЪреЗрдВ рд░реАрдбрдореА - рд╕рдорд╕реНрдпрд╛ рдирд┐рд╡рд╛рд░рдг рдЕрдиреБрднрд╛рдЧ.

API

рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рд╕реНрдерд╛рдкрд┐рдд рд╣реИ рдФрд░ рдЖрдкрдиреЗ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд┐рдпрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рдЖ рдЧрдпрд╛ рд╣реИ!
Python рдХрд╛ рдореБрдЦреНрдп рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ isc.py.Main. рдпрд╣ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╕рдореВрд╣ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ (рд╕рднреА рд╡рд╛рдкрд╕ рдЖрддреЗ рд╣реИрдВ)ред %Status):

  • рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди
  • рдбрд╛рдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░
  • рдЕрдзреАрдирд╕реНрде

рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди

рдпреЗ рд╡рд┐рдзрд┐рдпрд╛рдБ рдЖрдкрдХреЛ рдордирдорд╛рдирд╛ рдкрд╛рдпрдерди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИрдВред

рд╕рд┐рдВрдкрд▓рд╕реНрдЯреНрд░рд┐рдВрдЧ

SimpleString - рдпрд╣ рдореБрдЦреНрдп рд╡рд┐рдзрд┐ рд╣реИ. рдЗрд╕рдореЗрдВ 4 рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХ рд▓рдЧрддреЗ рд╣реИрдВ:

  • code - рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреА рдкрдВрдХреНрддрд┐ред рдкрдВрдХреНрддрд┐ рдлрд╝реАрдб рд╡рд░реНрдг: $c(10).
  • returnVariable - рд▓реМрдЯрдиреЗ рд╡рд╛рд▓реЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдоред
  • serialization - рдХреНрд░рдордмрджреНрдз рдХреИрд╕реЗ рдХрд░реЗрдВ returnVariable. 0 - рд╕реНрдЯреНрд░рд┐рдВрдЧ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ), 1 - рдкреБрдирд░реБрддреНрдкрд╛рджрдиред
  • result - ByRef рдЙрд╕ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рд╕рдВрджрд░реНрдн рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдорд╛рди рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ returnVariable.

рдКрдкрд░ рд╣рдордиреЗ рдХрд┐рдпрд╛:

set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо рдПрдХ рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рдЕрд╕рд╛рдЗрди рдХрд░рддреЗ рд╣реИрдВ x рдореВрд▓реНрдп Hello рдФрд░ рдкрд╛рдЗрдереЙрди рд╡реИрд░рд┐рдПрдмрд▓ рдХрд╛ рдорд╛рди рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ x рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╡реИрд░рд┐рдПрдмрд▓ рдХреЗ рд▓рд┐рдП var.

рдирд┐рд╖реНрдкрд╛рджрди рдХреЛрдб

ExecuteCode рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рдФрд░ рдХрдо рдкреНрд░рддрд┐рдмрдВрдзрд╛рддреНрдордХ рд╡рд┐рдХрд▓реНрдк рд╣реИ SimpleString.
рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдореЗрдВ рд▓рд╛рдЗрдиреЗрдВ 3 рд╡рд░реНрдгреЛрдВ рддрдХ рд╕реАрдорд┐рдд рд╣реИрдВ, рдФрд░ рдпрджрд┐ рдЖрдк рд▓рдВрдмреЗ рдХреЛрдб рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рдереНрд░реЗрдбреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рджреЛ рддрд░реНрдХ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВ:

  • code - рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкрд╛рдпрдерди рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдпрд╛ рд╕реНрдЯреНрд░реАрдоред
  • variable - (рд╡реИрдХрд▓реНрдкрд┐рдХ) рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддрд╛ рд╣реИ code рдпрд╣ рдкрд╛рдпрдерди рд╡реИрд░рд┐рдПрдмрд▓.

рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджрд╛рд╣рд░рдг:

set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").

рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рд╣рдо 2 рдХреЛ 3 рд╕реЗ рдЧреБрдгрд╛ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рдореЗрдВ рд▓рд┐рдЦрддреЗ рд╣реИрдВ y.

рдбрд╛рдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░

рдкрд╛рдпрдерди рд╕реЗ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░реЗрдВред

рдкрд╛рдпрдерди -> рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕

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

  • String рд╕рд░рд▓ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред
  • Repr рд╕рд░рд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рдиреЗ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд▓рд┐рдПред
  • JSON рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдкрдХреНрд╖ рдкрд░ рдЖрд╕рд╛рди рдбреЗрдЯрд╛ рд╣реЗрд░рдлреЗрд░ рдХреЗ рд▓рд┐рдПред
  • Pickle рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд╕рд╣реЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП.

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

  • GetVariable(variable, serialization, .stream, useString) - рдкрд╛рдирд╛ serialization рдЪрд░ variable ╨▓ streamред рдЕрдЧрд░ useString 1 рд╣реИ рдФрд░ рдХреНрд░рдордмрджреНрдзрддрд╛ рдХреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдкрд░ рд░рдЦрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд╛рдкрд╕ рдЖрддреА рд╣реИ рди рдХрд┐ рдПрдХ рд╕реНрдЯреНрд░реАрдоред
  • GetVariableJson(variable, .stream, useString) - рдПрдХ рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ JSON рдХреНрд░рдордмрджреНрдзрддрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  • GetVariablePickle(variable, .stream, useString, useDill) -рдПрдХ рдЪрд░ рдХрд╛ рдЕрдЪрд╛рд░ (рдпрд╛ рдбрд┐рд▓) рдХреНрд░рдорд╛рдВрдХрди рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред

рдЖрдЗрдП рдЕрдкрдирд╛ рд╡реЗрд░рд┐рдПрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ y.

set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ -> рдкрд╛рдпрдерди

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рдбреЗрдЯрд╛ рд▓реЛрдб рд╣реЛ рд░рд╣рд╛ рд╣реИред

  • ExecuteQuery(query, variable, type, namespace) - рдПрдХ рдбреЗрдЯрд╛рд╕реЗрдЯ (рдкрд╛рдВрдбрд╛) рдмрдирд╛рддрд╛ рд╣реИ dataframe рдпрд╛ list) рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА рд╕реЗ рдФрд░ рдЗрд╕реЗ рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рдкрд░ рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ variable. рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреИрдЧ isc.py рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП namespace - рдЕрдиреБрд░реЛрдз рд╡рд╣рд╛рдВ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ global рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╕реЗ start рд╕реЗ end рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ type: list, рдпрд╛ рдкрд╛рдВрдбрд╛ dataframe. рд╡реИрдХрд▓реНрдкрд┐рдХ рддрд░реНрдХреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг mask рдФрд░ labels рдХреНрд▓рд╛рд╕ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдФрд░ рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - рдХреНрд▓рд╛рд╕ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ class рдЖрдИрдбреА рд╕реЗ start рд╕реЗ end рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдХреЗ рд░реВрдк рдореЗрдВ type: list, рдпрд╛ рдкрд╛рдВрдбрд╛ dataframe. properties - рд╡рд░реНрдЧ рдЧреБрдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХреА рдЧрдИ) рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рд╕реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ * ╨╕ ?. рдЧрд▓рддреА рдХрд░рдирд╛ - * (рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпрд╛рдБ)ред рд╕рдВрдкрддреНрддрд┐ %%CLASSNAME рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░рдирд╛ред
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - рдЯреЗрдмрд▓ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ table рдЖрдИрдбреА рд╕реЗ start рд╕реЗ end рдкрд╛рдпрдерди рдореЗрдВ.

ExecuteQuery - рдпреВрдирд┐рд╡рд░реНрд╕рд▓ (рдХреЛрдИ рднреА рд╕рд╣реА SQL рдХреНрд╡реЗрд░реА рдкрд╛рдпрдерди рдХреЛ рдкрд╛рд╕ рдХрд░ рджреА рдЬрд╛рдПрдЧреА)ред рддрдерд╛рдкрд┐, ExecuteGlobal рдФрд░ рдЙрд╕рдХреЗ рд░реИрдкрд░ ExecuteClass ╨╕ ExecuteTable рдХрдИ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВред рд╡реЗ рдмрд╣реБрдд рддреЗрдЬрд╝ рд╣реИрдВ (ODBC рдбреНрд░рд╛рдЗрд╡рд░ рд╕реЗ 3-5 рдЧреБрдирд╛ рддреЗрдЬрд╝ рдФрд░ 20 рдЧреБрдирд╛ рддреЗрдЬрд╝)ред ExecuteQuery). рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдпрд╣рд╛рдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рджрд╕реНрддрд╛рд╡реЗрдЬрд╝.
рдпреЗ рд╕рднреА рддрд░реАрдХреЗ рдХрд┐рд╕реА рднреА рдХреНрд╖реЗрддреНрд░ рд╕реЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреИрдЧ isc.py рд▓рдХреНрд╖реНрдп рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреНрд╡реЗрд░реА рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ

ExecuteQuery(request, variable, type, namespace) - рдХрд┐рд╕реА рднреА рд╕рд╣реА SQL рдХреНрд╡реЗрд░реА рдХреЗ рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ред рдпрд╣ рд╕рдмрд╕реЗ рдзреАрдореА рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рд╡рд┐рдзрд┐ рд╣реИред рдпрджрд┐ рдЗрд╕рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВ ExecuteGlobal рдФрд░ рдЗрд╕рдХреЗ рд░реИрдкрд░ рдЙрдкрд▓рдмреНрдз рдирд╣реАрдВ рд╣реИрдВ.

рддрд░реНрдХ:

  • query - рдПрд╕рдХреНрдпреВрдПрд▓ рдХреНрд╡реЗрд░реА.
  • variable - рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • type - list рдпрд╛ рдкрд╛рдВрдбрд╛ dataframe.
  • namespace - рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдирд┐рд╖реНрдкрд╛рджрди рд╡реИрд╢реНрд╡рд┐рдХ

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - рдкрд╛рдпрдерди рдореЗрдВ рдПрдХ рдЧреНрд▓реЛрдмрд▓ рдкрд╛рд╕ рдХрд░рдирд╛ред

рддрд░реНрдХ:

  • global - рдмрд┐рдирд╛ рд╡реИрд╢реНрд╡рд┐рдХ рдирд╛рдо ^
  • variable - рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • type - list рдпрд╛ рдкрд╛рдВрдбрд╛ dataframe.
  • start - рдЧреНрд▓реЛрдмрд▓ рдХреА рдкрд╣рд▓реА рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ %Integer.
  • end - рдЧреНрд▓реЛрдмрд▓ рдХреА рдЕрдВрддрд┐рдо рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯред рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ %Integer.
  • mask - рд╡реИрд╢реНрд╡рд┐рдХ рдореВрд▓реНрдп рдореБрдЦреМрдЯрд╛ред рдорд╛рд╕реНрдХ рд╡реИрд╢реНрд╡рд┐рдХ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рдЫреЛрдЯрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ (рдЬрд┐рд╕ рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЕрдВрдд рдореЗрдВ рдлрд╝реАрд▓реНрдбреНрд╕ рдХреЛ рдЫреЛрдбрд╝ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛)ред рдорд╛рд╕реНрдХ рдХреЛ рдХреИрд╕реЗ рдлрд╝реЙрд░реНрдореЗрдЯ рдХрд░реЗрдВ:
    • + рдорд╛рди рдХреЛ рд╡реИрд╕реЗ рд╣реА рдкрд╛рд╕ рдХрд░реЗрдВ рдЬреИрд╕реЗ рд╣реИред
    • - рдореВрд▓реНрдп рдЫреЛрдбрд╝реЗрдВ.
    • b - рдмреВрд▓рд┐рдпрди рдкреНрд░рдХрд╛рд░ (0 - False, рдмрд╛рдХреА рд╕рднреА - True).
    • d тАФ рджрд┐рдирд╛рдВрдХ ($horolog рд╕реЗ, рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ 1970 рд╕реЗ, рд▓рд┐рдирдХреНрд╕ рдкрд░ 1900 рд╕реЗ)ред
    • t - рд╕рдордп ($рд░рд╛рд╢рд┐рдлрд▓, рдЖрдзреА рд░рд╛рдд рдХреЗ рдмрд╛рдж рдХреЗ рд╕реЗрдХрдВрдб)ред
    • m - рдЯрд╛рдЗрдорд╕реНрдЯреИрдореНрдк (рдкреНрд░рд╛рд░реВрдк рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╡рд░реНрд╖-рдорд╛рд╣-рджрд┐рди рдШрдВрдЯрд╛: рдорд┐рдирдЯ: рд╕реЗрдХрдВрдб)ред
  • labels - %рдХреЙрд▓рдо рдирд╛рдореЛрдВ рдХреА рд╕реВрдЪреА. рдкрд╣рд▓рд╛ рддрддреНрд╡ рд╕рдмрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХрд╛ рдирд╛рдо рд╣реИ.
  • namespace - рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдПрдХреНрдЬрд╝реАрдХреНрдпреВрдЯрдХреНрд▓рд╛рд╕

рд▓рдкреЗрдЯреЛ ExecuteGlobal. рд╡рд░реНрдЧ рдкрд░рд┐рднрд╛рд╖рд╛ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдПрдХ рдХреЙрд▓ рддреИрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ ExecuteGlobal рдФрд░ рдЙрд╕реЗ рдмреБрд▓рд╛рддрд╛ рд╣реИ.

ExecuteClass(class, variable, type, start, end, properties, namespace) - рдкрд╛рдпрдерди рдореЗрдВ рдХреНрд▓рд╛рд╕ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдирд╛ред

рддрд░реНрдХ:

  • class - рдХрдХреНрд╖рд╛ рдХрд╛ рдирд╛рдо
  • variable - рдкрд╛рдпрдерди рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдирд╛рдо рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • type - list рдпрд╛ рдкрд╛рдВрдбрд╛ dataframe.
  • start - рдЖрд░рдВрднрд┐рдХ рдЖрдИрдбреА.
  • end -рдЕрдВрддрд┐рдо рдЖрдИрдбреА
  • properties - рд╡рд░реНрдЧ рдЧреБрдгреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА (рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХреА рдЧрдИ) рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдореЗрдВ рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рд╕реНрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ рдЧрдпрд╛ * ╨╕ ?. рдЧрд▓рддреА рдХрд░рдирд╛ - * (рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпрд╛рдБ)ред рд╕рдВрдкрддреНрддрд┐ %%CLASSNAME рдЕрд╡рд╣реЗрд▓рдирд╛ рдХрд░рдирд╛ред
  • namespace - рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рдЬрд┐рд╕рдореЗрдВ рдЕрдиреБрд░реЛрдз рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдкреНрд░рдХрд╛рд░ рдХреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рд╕рдВрдкрддреНрддрд┐рдпреЛрдВ рдХреЛ рд╡реИрд╕реЗ рд╣реА рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ %Date, %Time, %Boolean ╨╕ %TimeStamp - рдЙрдиреНрд╣реЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рдкрд╛рдпрдерди рдХрдХреНрд╖рд╛рдУрдВ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдирд┐рд╖реНрдкрд╛рджрди рддрд╛рд▓рд┐рдХрд╛

рд▓рдкреЗрдЯреЛ ExecuteClass. рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рдХреЛ рдХрдХреНрд╖рд╛ рдирд╛рдо рдФрд░ рдХреЙрд▓ рдореЗрдВ рдЕрдиреБрд╡рд╛рджрд┐рдд рдХрд░рддрд╛ рд╣реИ ExecuteClass. рд╣рд╕реНрддрд╛рдХреНрд╖рд░:

ExecuteTable(table, variable, type, start, end, properties, namespace) - рдЯреЗрдмрд▓ рдбреЗрдЯрд╛ рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рдкрд╛рд╕ рдХрд░рдирд╛ред

рддрд░реНрдХ:

  • table - рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдоред
    рдЕрдиреНрдп рд╕рднреА рддрд░реНрдХ рдпрдерд╛рд╡рдд рдкрд╛рд░рд┐рдд рдХрд┐рдпреЗ рдЬрд╛рддреЗ рд╣реИрдВ ExecuteClass.

рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ

  • ExecuteGlobal, ExecuteClass ╨╕ ExecuteTable рд╕рдорд╛рди рд░реВрдк рд╕реЗ рддреЗрдЬреА рд╕реЗ рдХрд╛рдо рдХрд░реЗрдВ.
  • ExecuteGlobal рд╕реЗ 20 рдЧреБрдирд╛ рддреЗрдЬ ExecuteQuery рдмрдбрд╝реЗ рдбреЗрдЯрд╛ рд╕реЗрдЯ рдкрд░ (рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╕рдордп >0.01 рд╕реЗрдХрдВрдб)ред
  • ExecuteGlobal, ExecuteClass ╨╕ ExecuteTable рдЗрд╕ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рд╕рд╛рде рдЧреНрд▓реЛрдмрд▓реНрд╕ рдкрд░ рдХрд╛рдо рдХрд░реЗрдВ: ^global(key) = $lb(prop1, prop2, ..., propN) рдЬрд╣рд╛рдВ key - рдкреВрд░реНрдгрд╛рдВрдХред
  • рдХреЗ рд▓рд┐рдП ExecuteGlobal, ExecuteClass ╨╕ ExecuteTable рдореВрд▓реНрдпреЛрдВ рдХреА рд╕рдорд░реНрдерд┐рдд рд╕реАрдорд╛ %Date рд░реЗрдВрдЬ рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ mktime рдФрд░ рдУрдПрд╕ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдЦрд┐рдбрд╝рдХрд┐рдпрд╛рдВ: 1970-01-01, рд▓рд┐рдирдХреНрд╕ 1900 - 01 01, рдореИрдХ). рдЙрдкрдпреЛрдЧ %TimeStampрдЗрд╕ рд╕реАрдорд╛ рдХреЗ рдмрд╛рд╣рд░ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛ рдкрд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╣ рдХреЗрд╡рд▓ рд╕реВрдЪреА рдХреА рд╕реАрдорд╛ рд╣реИред
  • рдХреЗ рд▓рд┐рдП ExecuteGlobal, ExecuteClass ╨╕ ExecuteTable рдбреЗрдЯрд╛ рд╕реНрд░реЛрдд (рд╡реИрд╢реНрд╡рд┐рдХ, рд╡рд░реНрдЧ рдпрд╛ рддрд╛рд▓рд┐рдХрд╛) рдФрд░ рдЪрд░ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рд╕рднреА рддрд░реНрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВред

рдЙрджрд╛рд╣рд░рдг

рдЯреЗрд╕реНрдЯ рдХреНрд▓рд╛рд╕ isc.py.test.Person рдЗрд╕рдореЗрдВ рд╕рднреА рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рд╡рд┐рдзрд┐ рд╢рд╛рдорд┐рд▓ рд╣реИ:

set global = "isc.py.test.PersonD"
set class = "isc.py.test.Person"
set table = "isc_py_test.Person"
set query = "SELECT * FROM isc_py_test.Person"

// ╨Ю╨▒╤Й╨╕╨╡ ╨░╤А╨│╤Г╨╝╨╡╨╜╤В╤Л
set variable = "df"
set type = "dataframe"
set start = 1
set end = $g(^isc.py.test.PersonD, start)

// ╨б╨┐╨╛╤Б╨╛╨▒ 0: ExecuteGlobal ╨▒╨╡╨╖ ╨░╤А╨│╤Г╨╝╨╡╨╜╤В╨╛╨▓
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)

// ╨б╨┐╨╛╤Б╨╛╨▒ 1: ExecuteGlobal ╤Б ╨░╤А╨│╤Г╨╝╨╡╨╜╤В╨░╨╝╨╕    
// ╨Я╤А╨╕ ╨┐╨╡╤А╨╡╨┤╨░╤З╨╡ ╨│╨╗╨╛╨▒╨░╨╗╨░ ╨╜╨░╨╖╨▓╨░╨╜╨╕╤П ╨┐╨╛╨╗╨╡╨╣ ╨╖╨░╨┤╨░╤О╤В╤Б╤П ╨▓╤А╤Г╤З╨╜╤Г╤О
// globalKey - ╨╜╨░╨╖╨▓╨░╨╜╨╕╨╡ ╤Б╨░╨▒╤Б╤В╨║╤А╨╕╨┐╤В╨░ 
set labels = $lb("globalKey", "Name", "DOB", "TS", "RandomTime", "AgeYears", "AgeDecimal", "AgeDouble", "Bool")

// mask ╤Б╨╛╨┤╨╡╤А╨╢╨╕╤В ╨╜╨░ 1 ╤Н╨╗╨╡╨╝╨╡╨╜╤В ╨╝╨╡╨╜╤М╤И╨╡ ╤З╨╡╨╝ labels ╨┐╨╛╤В╨╛╨╝╤Г ╤З╤В╨╛ "globalKey" - ╨╜╨░╨╖╨▓╨░╨╜╨╕╨╡ ╤Б╨░╨▒╤Б╨║╨╕╨┐╤В╨░
// ╨Я╤А╨╛╨┐╤Г╤Б╨║╨░╨╡╨╝ %%CLASSNAME
set mask = "-+dmt+++b"

set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)

// ╨б╨┐╨╛╤Б╨╛╨▒ 2: ExecuteClass
set sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)

// ╨б╨┐╨╛╤Б╨╛╨▒ 3: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)

// ╨б╨┐╨╛╤Б╨╛╨▒ 4: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)

рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ do ##class(isc.py.test.Person).Test() рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╕рднреА рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рд╡рд┐рдзрд┐рдпрд╛рдБ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреА рд╣реИрдВред

рд╕рд╣рд╛рдпрдХ рддрд░реАрдХреЗ

  • GetVariableInfo(variable, serialization, .defined, .type, .length) - рд╡реЗрд░рд┐рдПрдмрд▓ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ: рдХреНрдпрд╛ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИ, рдЗрд╕рдХреА рдХрдХреНрд╖рд╛ рдФрд░ рдХреНрд░рдорд╛рдВрдХрди рд▓рдВрдмрд╛рдИред
  • GetVariableDefined(variable, .defined) - рдХреНрдпрд╛ рдЪрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рд╣реИред
  • GetVariableType(variable, .type) - рдЪрд░ рдХрд╛ рд╡рд░реНрдЧ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  • GetStatus() - рдкрд╛рдпрдерди рдкрдХреНрд╖ рдкрд░ рдЕрдВрддрд┐рдо рдЕрдкрд╡рд╛рдж рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ рдФрд░ рд╣рдЯрд╛рдПрдВред
  • GetModuleInfo(module, .imported, .alias) - рдореЙрдбреНрдпреВрд▓ рдЪрд░ рдФрд░ рдЖрдпрд╛рдд рд╕реНрдерд┐рддрд┐ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - рдлрд╝рдВрдХреНрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ.

рдЗрдВрдЯрд░реЛрдСрдкрд░реЗрдмрд┐рд▓рд┐рдЯреА

рдЖрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рд╕реЗ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╕реАрдЦ рд▓рд┐рдпрд╛ рд╣реИ, рдЕрдм рдЗрд╕реЗ рдЙрддреНрдкрд╛рджрди рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕ рдореЛрдб рдореЗрдВ Python рдХреЗ рд╕рд╛рде рдЗрдВрдЯрд░реИрдХреНрдЯ рдХрд░рдиреЗ рдХрд╛ рдЖрдзрд╛рд░ рд╣реИ isc.py.ens.Operation. рдпрд╣ рд╣рдореЗрдВ рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ:

  • рдкрд╛рдпрдерди рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ
  • рдкрд╛рдпрдерди рд╕рдВрджрд░реНрдн рдХреЛ рд╕рд╣реЗрдЬреЗрдВ/рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ
  • рдкрд╛рдпрдерди рд╕реЗ рдбреЗрдЯрд╛ рд▓реЛрдб рдХрд░реЗрдВ рдФрд░ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдореВрд▓ рд░реВрдк рд╕реЗ, рдкрд╛рдпрдерди рдСрдкрд░реЗрд╢рди рдПрдХ рдЖрд╡рд░рдг рд╣реИ isc.py.Main. рд╕рдВрдЪрд╛рд▓рди isc.py.ens.Operation рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдЙрддреНрдкрд╛рджреЛрдВ рд╕реЗ рдкрд╛рдпрдерди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдкрд╛рдБрдЪ рдкреНрд░рд╢реНрди рд╕рдорд░реНрдерд┐рдд рд╣реИрдВ:

  • isc.py.msg.ExecutionRequest рдкрд╛рдпрдерди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд░рд┐рдЯрд░реНрди isc.py.msg.ExecutionResponse рдирд┐рд╖реНрдкрд╛рджрди рдкрд░рд┐рдгрд╛рдо рдФрд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдЪрд░ рдХреЗ рдореВрд▓реНрдпреЛрдВ рдХреЗ рд╕рд╛рдеред
  • isc.py.msg.StreamExecutionRequest рдкрд╛рдпрдерди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд░рд┐рдЯрд░реНрди isc.py.msg.StreamExecutionResponse рдирд┐рд╖реНрдкрд╛рджрди рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдФрд░ рдЕрдиреБрд░реЛрдзрд┐рдд рдЪрд░ рдХреЗ рдорд╛рдиред рдЕрдиреБрд░реВрдк isc.py.msg.ExecutionRequest, рд▓реЗрдХрд┐рди рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдЯреНрд░реАрдо рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рд▓реМрдЯрд╛рддрд╛ рд╣реИред
  • isc.py.msg.QueryRequest SQL рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд░рд┐рдЯрд░реНрди Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest рд╡реИрд╢реНрд╡рд┐рдХ/рд╡рд░реНрдЧ/рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рд░рд┐рдЯрд░реНрди Ens.Response.
  • isc.py.msg.SaveRequest рдкрд╛рдпрдерди рд╕рдВрджрд░реНрдн рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд░рд┐рдЯрд░реНрди Ens.StringResponse рд╕рдВрджрд░реНрдн рдЖрдИрдбреА рдХреЗ рд╕рд╛рде.
  • isc.py.msg.RestoreRequest рдкрд╛рдпрдерди рд╕рдВрджрд░реНрдн рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред

    рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, isc.py.ens.Operation рджреЛ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ:

    • Initializer - рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╡рд░реНрдЧ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ isc.py.init.Abstract. рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдлрд╝рдВрдХреНрд╢рдВрд╕, рдореЙрдбреНрдпреВрд▓, рдХреНрд▓рд╛рд╕ рдЖрджрд┐ рдХреЛ рд▓реЛрдб рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдПрдХ рдмрд╛рд░ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
    • PythonLib - (рдХреЗрд╡рд▓ рд▓рд┐рдирдХреНрд╕) рдпрджрд┐ рдЖрдкрдХреЛ рд▓реЛрдб рдХрд░рддреЗ рд╕рдордп рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВ, рддреЛ рдЗрд╕рдХрд╛ рдорд╛рди рд╕реЗрдЯ рдХрд░реЗрдВ libpython3.6m.so рдпрд╛ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкрд╛рдпрдерди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рдкреВрд░реНрдг рдкрде рдореЗрдВ рднреАред

рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг

рджреЛ рд╡рд░реНрдЧ рдЙрдкрд▓рдмреНрдз рд╣реИрдВ рдЬреЛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддреЗ рд╣реИрдВ:

  • isc.py.ens.ProcessUtils рдЖрдкрдХреЛ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╡рд╛рд▓реА рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рд╕реЗ рдПрдиреЛрдЯреЗрд╢рди рдирд┐рдХрд╛рд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
  • isc.py.util.BPEmulator рдкрд╛рдпрдерди рдХреЗ рд╕рд╛рде рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ (рдкрд╛рдпрдерди рднрд╛рдЧ) рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди

рд╕рднреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реАрдВ isc.py.ens.ProcessUtils, рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ GetAnnotation(name) рдЧрддрд┐рд╡рд┐рдзрд┐ рдПрдиреЛрдЯреЗрд╢рди рдорд╛рди рдХреЛ рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдЧрддрд┐рд╡рд┐рдзрд┐ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рд╡реЗрд░рд┐рдПрдмрд▓ рд╢рд╛рдорд┐рд▓ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рдЧрдгрдирд╛ рдкрд╛рдпрдерди рдХреЛ рдкрд╛рд╕ рдХрд┐рдП рдЬрд╛рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдкрдХреНрд╖ рдкрд░ рдХреА рдЬрд╛рдПрдЧреАред рдпрд╣рд╛рдБ рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдХреЗ рд▓рд┐рдП рд╡рд╛рдХреНрдпрд╡рд┐рдиреНрдпрд╛рд╕ рд╣реИ:

  • ${class:method:arg1:...:argN} - рд╡рд┐рдзрд┐ рдХреЙрд▓
  • #{expr} - рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рднрд╛рд╖рд╛ рдореЗрдВ рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВред

рдкрд░реАрдХреНрд╖рдг рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЙрдкрд▓рдмреНрдз рд╣реИ isc.py.test.Process, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ:

  • #{process.WorkDirectory} рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА WorkDirectory рдкреНрд░реЙрдкрд░реНрдЯреА рд▓реМрдЯрд╛рддрд╛ рд╣реИ process, рдЬреЛ рд╡рд░реНрдЧ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ isc.py.test.Process рд╡реЗред рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛.
  • ${%PopulateUtils:Integer:1:100} рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИ Integer рд╡рд░реНрдЧ %PopulateUtils, рддрд░реНрдХ рдкрд╛рд░рд┐рдд рдХрд░рдирд╛ 1 ╨╕ 100, рд╢реНрд░реЗрдгреА рдореЗрдВ рдПрдХ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдкреВрд░реНрдгрд╛рдВрдХ рд▓реМрдЯрд╛ рд░рд╣рд╛ рд╣реИ 1...100.

рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░реЗрдВ

рдкрд░реАрдХреНрд╖рдг рдЙрддреНрдкрд╛рдж рдФрд░ рдкрд░реАрдХреНрд╖рдг рд╡реНрдпрд╡рд╕рд╛рдп рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдЙрдкрд▓рдмреНрдз рд╣реИрдВред рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:

  1. OS рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдЪрд▓рд╛рдПрдБ: pip install pandas matplotlib seaborn.
  2. рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ, рдЪрд▓рд╛рдПрдБ: do ##class(isc.py.test.CannibalizationData).Import() рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП.
  3. рдЙрддреНрдкрд╛рдж рд▓реЙрдиреНрдЪ рдХрд░реЗрдВ isc.py.test.Production.
  4. рдЕрдиреБрд░реЛрдз рдкреНрд░рдХрд╛рд░ рднреЗрдЬреЗрдВ Ens.Request ╨▓ isc.py.test.Process.

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рдпрд╣ рд╕рдм рдПрдХ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдЦреБрд▓рд╛ isc.py.test.Process рдмреАрдкреАрдПрд▓ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ:

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрди

рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪреБрдиреМрддреА рдкрд╛рдпрдерди рдХреЛрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╣реИ:

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

рдХреНрд╡реЗрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ isc.py.msg.ExecutionRequest, рдпрд╣рд╛рдБ рдЗрд╕рдХреЗ рдЧреБрдг рд╣реИрдВ:

  • Code -рдкрд╛рдпрдерди рдХреЛрдб.
  • SeparateLines - рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдХреЛрдб рдХреЛ рд▓рд╛рдЗрдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред $c(10) (n) рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕реНрдЯреНрд░рд┐рдВрдЧреНрд╕ рдХреЛ рдЕрд▓рдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╕рдВрдкреВрд░реНрдг рд╕рдВрджреЗрд╢ рдХреЛ рдПрдХ рд╕рд╛рде рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдирд╣реАрдВ рдХреА рдЬрд╛рддреА рд╣реИ, рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХреЗрд╡рд▓ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ def рдФрд░ рд╕рдорд╛рди рдмрд╣реБрдкрдВрдХреНрддрд┐ рдЕрднрд┐рд╡реНрдпрдХреНрддрд┐рдпрд╛рдБред рдЧрд▓рддреА рдХрд░рдирд╛ 0.
  • Variables - рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреА рдЕрд▓реНрдкрд╡рд┐рд░рд╛рдо рд╕реЗ рдЕрд▓рдЧ рдХреА рдЧрдИ рд╕реВрдЪреА рдЬрд┐рд╕реЗ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдПрдЧрд╛ред
  • Serialization - рдЙрди рд╡реЗрд░рд┐рдПрдмрд▓реНрд╕ рдХреЛ рдХреНрд░рдордмрджреНрдз рдХреИрд╕реЗ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рд╡рд╛рдкрд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╡рд┐рдХрд▓реНрдк: Str, Repr, JSON, Pickle ╨╕ Dill, рдЧрд▓рддреА рдХрд░рдирд╛ Str.

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдХреЗрд╡рд▓ рд╕рдВрдкрддреНрддрд┐ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ Code, рдЗрд╕рд▓рд┐рдП рдЕрдиреНрдп рд╕рднреА рдЧреБрдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╣рдо рдЗрд╕реЗ рдХреЙрд▓ рдХрд░рдХреЗ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ process.GetAnnotation("Import pandas"), рдЬреЛ рд░рдирдЯрд╛рдЗрдо рдкрд░ рд╡реЗрд░рд┐рдПрдмрд▓ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдЖрдЦрд╝рд┐рд░рдХрд╛рд░, рдХреЛрдб import pandas as pd рдкрд╛рдЗрдерди рдХреЛ рдкрд╛рд╕ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред GetAnnotation рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдкрд╛рдпрдерди рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдЗрд╕ рдкрджреНрдзрддрд┐ рдкрд░ рдХреЛрдИ рдкреНрд░рддрд┐рдмрдВрдз рдирд╣реАрдВ рд╣реИред рдЖрдк рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ Code рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХред

рд╡реЗрд░рд┐рдПрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛

рдПрдХ рдФрд░ рджрд┐рд▓рдЪрд╕реНрдк рдЪреБрдиреМрддреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

рдпрд╣ рдкрд╛рдпрдерди рдкрдХреНрд╖ рдкрд░ рд╕рд╣рд╕рдВрдмрдВрдз рдореИрдЯреНрд░рд┐рдХреНрд╕ рдХреА рдЧрдгрдирд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЪрд░ рдирд┐рдХрд╛рд▓рддрд╛ рд╣реИ corrmat рдЕрдиреБрд░реЛрдз рдЧреБрдг рд╕реЗрдЯ рдХрд░рдХреЗ JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ IRIS рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдБ:

  • Variables: "corrmat"
  • Serialization: "JSON"

рд╣рдо рд╡рд┐рдЬрд╝реБрдЕрд▓ рдЯреНрд░реЗрд╕ рдореЗрдВ рдкрд░рд┐рдгрд╛рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

рдФрд░ рдпрджрд┐ рд╣рдореЗрдВ BP рдореЗрдВ рдЗрд╕ рдорд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: callresponse.Variables.GetAt("corrmat").

рдбрд╛рдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░

рдЗрд╕рдХреЗ рдмрд╛рдж, рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рд╕реЗ рдкрд╛рдпрдерди рдореЗрдВ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ; рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЕрдиреБрд░реЛрдз рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ isc.py.msg.DataRequestрдЬреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЧреБрдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ:

  • Variable - рдПрдХ рдкрд╛рдпрдерди рд╡реИрд░рд┐рдПрдмрд▓ рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИред
  • Type - рдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдкреНрд░рдХрд╛рд░: dataframe (рдкрд╛рдВрдбрд╛ рдбреЗрдЯрд╛рдлрд╝реНрд░реЗрдо) рдпрд╛ list.
  • Namespace тАФ рд╡рд╣ рдХреНрд╖реЗрддреНрд░ рдЬрд╣рд╛рдБ рд╕реЗ рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рдкреНрд▓рд╛рд╕реНрдЯрд┐рдХ рдмреИрдЧ isc.py рдЗрд╕ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП. рдпрд╣ рдЙрддреНрдкрд╛рдж рд╕рдорд░реНрдерди рдХреЗ рдмрд┐рдирд╛ рдПрдХ рдХреНрд╖реЗрддреНрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдЗрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ 4 рд╡рд░реНрдЧ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ:

  • isc.py.msg.QueryRequest - рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ Query SQL рдХреНрд╡реЗрд░реА рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП.
  • isc.py.msg.ClassRequest - рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ Class рдХреНрд▓рд╛рд╕ рдбреЗрдЯрд╛ рдкрд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП.
  • isc.py.msg.TableRequest - рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ Table рддрд╛рд▓рд┐рдХрд╛ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП.
  • isc.py.msg.GlobalRequest - рд╕рдВрдкрддреНрддрд┐ рд╕реЗрдЯ рдХрд░реЗрдВ Global рд╡реИрд╢реНрд╡рд┐рдХ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рдг рдХреЗ рд▓рд┐рдП.

рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рджреЗрдЦреЗрдВ RAWрдЬрд╣рд╛рдВ isc.py.msg.QueryRequest рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ.

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

рдкрд╛рдпрдерди рдкреНрд░рд╕рдВрдЧ рдХреЛ рд╕рд╣реЗрдЬрдирд╛/рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛

рдЕрдВрдд рдореЗрдВ, рд╣рдо рдкрд╛рдпрдерди рд╕рдВрджрд░реНрдн рдХреЛ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдо рднреЗрдЬреЗрдВрдЧреЗ isc.py.msg.SaveRequest рддрд░реНрдХреЛрдВ рдХреЗ рд╕рд╛рде:

  • Mask - рдХреЗрд╡рд▓ рд╡реЗрд░рд┐рдПрдмрд▓ рдЬреЛ рдорд╛рд╕реНрдХ рд╕реЗ рдореЗрд▓ рдЦрд╛рддреЗ рд╣реИрдВ, рд╕рд╣реЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВред рдХрд╛ рд╕рдорд░реНрдерди рдХрд┐рдпрд╛ * ╨╕ ?. рдЙрджрд╛рд╣рд░рдг: "Data*, Figure?". рдЧрд▓рддреА рдХрд░рдирд╛ *.
  • MaxLength - рд╕рдВрдЧреНрд░рд╣реАрдд рдЪрд░ рдХреА рдЕрдзрд┐рдХрддрдо рд▓рдВрдмрд╛рдИред рдпрджрд┐ рдХрд┐рд╕реА рд╡реЗрд░рд┐рдПрдмрд▓ рдХрд╛ рдХреНрд░рдорд╛рдВрдХрди рд▓рдВрдмрд╛ рд╣реИ, рддреЛ рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХрд┐рд╕реА рднреА рд▓рдВрдмрд╛рдИ рдХреЗ рд╡реЗрд░рд┐рдПрдмрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 0 рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВред рдЧрд▓рддреА рдХрд░рдирд╛ $$$MaxStringLength.
  • Name тАФ рдкреНрд░рд╕рдВрдЧ рдирд╛рдо (рд╡реИрдХрд▓реНрдкрд┐рдХ).
  • Description - рд╕рдВрджрд░реНрдн рдХрд╛ рд╡рд┐рд╡рд░рдг (рд╡реИрдХрд▓реНрдкрд┐рдХ)ред

рд░рд┐рдЯрд░реНрди Ens.StringResponse ╤Б Id рд╕рд╣реЗрдЬрд╛ рдЧрдпрд╛ рд╕рдВрджрд░реНрдн. рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рджреЗрдЦреЗрдВ Save Context.

рд╕рдВрдмрдВрдзрд┐рдд рдЕрдиреБрд░реЛрдз isc.py.msg.RestoreRequest рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рд╕реЗ рд╕рдВрджрд░реНрдн рдХреЛ рдкрд╛рдпрдерди рдореЗрдВ рд▓реЛрдб рдХрд░рддрд╛ рд╣реИ:

  • ContextId - рд╕рдВрджрд░реНрдн рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛.
  • Clear - рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрджрд░реНрдн рд╕рд╛рдлрд╝ рдХрд░реЗрдВред

рдЬреБрдкреАрдЯрд░ рдиреЛрдЯрдмреБрдХ

рдЬреБрдкреАрдЯрд░ рдиреЛрдЯрдмреБрдХ рдПрдХ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╡реЗрдм рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдХреЛрдб, рд╡рд┐рдЬрд╝реБрдЕрд▓рд╛рдЗрдЬрд╝реЗрд╢рди рдФрд░ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд╛рд▓реА рдиреЛрдЯрдмреБрдХ рдмрдирд╛рдиреЗ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдЖрдкрдХреЛ рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдХреЗ рд░реВрдк рдореЗрдВ рдмреАрдкреАрдПрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рджреЗрдЦрдиреЗ рдФрд░ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдп Python 3 рдирд┐рд╖реНрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрд╣ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдорд╛рдирддрд╛ рд╣реИ рдХрд┐ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рдкрд╛рдпрдерди рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╛рдореЛрдВ рдХреЛ рдкреВрд░реНрд╡рд╡рд░реНрддреА рд╢реАрд░реНрд╖рдХреЛрдВ рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдм рдЬреНрдпреВрдкрд┐рдЯрд░ рдиреЛрдЯрдмреБрдХ рдореЗрдВ PythonGateway рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдпрд╣рд╛рдВ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рд╕рдВрднрд╡ рд╣реИ:

  • рдирдИ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рдмрдирд╛рдПрдБ
  • рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдБ рд╣рдЯрд╛рдПрдБ
  • рдирдИ рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрдирд╛рдПрдБ
  • рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рдмрджрд▓реЗрдВ
  • рдЧрддрд┐рд╡рд┐рдзрд┐рдпрд╛рдБ рд╣рдЯрд╛рдПрдБ

рдпрд╣рд╛рдВ рдбреЗрдореЛ рд╡реАрдбрд┐рдпреЛ. рдФрд░ рдХреБрдЫ рд╕реНрдХреНрд░реАрдирд╢реЙрдЯ:

рдкреНрд░реЛрд╕реЗрд╕ рдПрдХреНрд╕рдкреНрд▓реЛрд░рд░

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╕рдВрдкрд╛рджрдХ

рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдореЗрдВ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ

рд╕реНрдерд╛рдкрдирд╛

  1. рдЖрдкрдХреЛ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ 2019.2+ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред
  2. PythonGateway v0.8+ рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░реЗрдВ (рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ)ред isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints ╨╕ isc.py.ens.ProcessUtils).
  3. рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ рдСрдмреНрдЬреЗрдХреНрдЯрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВред
  4. рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ do ##class(isc.py.util.Jupyter).Install() рдФрд░ рд╕рдВрдХреЗрддреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ.

рдЕрднрд┐рд▓реЗрдЦ.

рдирд┐рд╖реНрдХрд░реНрд╖

рдПрдордПрд▓рдЯреВрд▓рдХрд┐рдЯ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬрд┐рд╕рдХрд╛ рд▓рдХреНрд╖реНрдп рдореЙрдбрд▓ рдФрд░ рдПрдХ рд▓реЗрдирджреЗрди рд╡рд╛рддрд╛рд╡рд░рдг рдХреЛ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдирд╛ рд╣реИ рддрд╛рдХрд┐ рдирд┐рд░реНрдорд┐рдд рдореЙрдбрд▓ рдЖрд╕рд╛рдиреА рд╕реЗ рд╕реАрдзреЗ рдЖрдкрдХреА рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛ рд╕рдХреЗрдВред рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рдПрдордПрд▓рдЯреВрд▓рдХрд┐рдЯ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рдкрд╛рдпрдерди рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдПрдХреАрдХрд░рдг рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк рдкрд╛рдпрдерди (рдХрдИ рдбреЗрдЯрд╛ рд╡реИрдЬреНрдЮрд╛рдирд┐рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рд╡рд╛рддрд╛рд╡рд░рдг) рдореЗрдВ рдмрдирд╛рдП рдЧрдП рдХрд┐рд╕реА рднреА рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬрд▓реНрджреА рд╕реЗ рдЕрдиреБрдХреВрд▓реА, рд░реЛрдмреЛрдЯрд┐рдХ рд╡рд┐рд╢реНрд▓реЗрд╖рдгрд╛рддреНрдордХ рдПрдЖрдИ / рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рддреИрдпрд╛рд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдкрд░ рдПрдордПрд▓ рд╕рдорд╛рдзрд╛рдиред

рд╕рдВрджрд░реНрднреЛрдВ

рдПрдордПрд▓рдЯреВрд▓рдХрд┐рдЯ

MLToolkit рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рдПрдХ рдирд┐рдЬреА GitHub рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╣реИ рдЬрд┐рд╕реЗ InterSystems рдХреЙрд░реНрдкреЛрд░реЗрдЯ GitHub рд╕рдВрдЧрдарди рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИред рдпрд╣ рдЙрди рдмрд╛рд╣рд░реА рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рдкрд╛рдпрдерди рдЧреЗрдЯрд╡реЗ рд╕рд╣рд┐рдд рдПрдордПрд▓рдЯреВрд▓рдХрд┐рдЯ рдШрдЯрдХреЛрдВ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рд╕реАрдЦрддреЗ рд╣реИрдВ рдпрд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рд╕рдореВрд╣ рдХреЗ рдкрд╛рд╕ рд╡рд┐рдкрдгрди, рд╡рд┐рдирд┐рд░реНрдорд╛рдг, рдЪрд┐рдХрд┐рддреНрд╕рд╛ рдФрд░ рдХрдИ рдЕрдиреНрдп рдЙрджреНрдпреЛрдЧреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдорд╛рдорд▓реЗ (рд╕реНрд░реЛрдд рдХреЛрдб рдФрд░ рдкрд░реАрдХреНрд╖рдг рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде) рд╣реИрдВред рдПрдордПрд▓ рдЯреВрд▓рдХрд┐рдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рдХреГрдкрдпрд╛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрддреЗ рдкрд░ рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдИрдореЗрд▓ рднреЗрдЬреЗрдВ: [рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд] рдФрд░ рдЕрдкрдиреЗ рдкрддреНрд░ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ:

  • GitHub рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо
  • рд╕рдВрдЧрдарди (рдЖрдк рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЕрдзреНрдпрдпрди рдХрд░рддреЗ рд╣реИрдВ)
  • рдкрдж (рдЖрдкрдХреЗ рд╕рдВрдЧрдарди рдореЗрдВ рдЖрдкрдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд╕реНрдерд┐рддрд┐, рдпрд╛ рддреЛ "рдЫрд╛рддреНрд░" рдпрд╛ "рд╕реНрд╡рддрдВрддреНрд░")ред
  • рджреЗрд╢

рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ рд▓реЗрдЦ рдкрдврд╝рд╛ рд╣реИ рдФрд░ рдХреГрддреНрд░рд┐рдо рдмреБрджреНрдзрд┐рдорддреНрддрд╛ рдФрд░ рдорд╢реАрди рд▓рд░реНрдирд┐рдВрдЧ рдЗрдВрдЬрдиреЛрдВ рдХреЛ рд╡рд┐рдХрд╕рд┐рдд рдХрд░рдиреЗ рдпрд╛ рд╣реЛрд╕реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдордВрдЪ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрдВрдЯрд░рд╕рд┐рд╕реНрдЯрдореНрд╕ рдЖрдИрдЖрд░рдЖрдИрдПрд╕ рдХреА рдХреНрд╖рдорддрд╛рдУрдВ рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВ, рд╣рдо рдЖрдкрдХреЛ рдЙрди рд╕рдВрднрд╛рд╡рд┐рдд рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреЗ рдЙрджреНрдпрдо рдХреЗ рд▓рд┐рдП рд░реБрдЪрд┐рдХрд░ рд╣реИрдВред рд╣рдореЗрдВ рдЖрдкрдХреА рдХрдВрдкрдиреА рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛рдУрдВ рдХрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХрд░рдиреЗ рдФрд░ рд╕рдВрдпреБрдХреНрдд рд░реВрдк рд╕реЗ рдПрдХ рдХрд╛рд░реНрдп рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рдЦреБрд╢реА рд╣реЛрдЧреА; рд╣рдорд╛рд░реА рдПрдЖрдИ/рдПрдордПрд▓ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдЯреАрдо рдХрд╛ рд╕рдВрдкрд░реНрдХ рдИрдореЗрд▓ рдкрддрд╛ - [рдИрдореЗрд▓ рд╕рдВрд░рдХреНрд╖рд┐рдд].

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реЗрдВ