Jinja: рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЬреЛрдбрд╝реЗрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 10 рдЬреБрд▓ре░ 2013  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: pallets/jinja

рдкреВрд░реНрдгрддрд╛ рдХреЗ рд▓рд┐рдП, рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рдЕрдиреБрдорддрд┐ рджреА рдЬрд╛рдиреА рдЪрд╛рд╣рд┐рдПред рд╡рд░реНрддрдорд╛рди рдореЗрдВ, рдХрд┐рд╕реА рдХреЛ рдкреВрд░реНрдгрд╛рдВрдХ рдкрд░ рд╢рд┐рдлреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХрд╛рд░реНрдп рдХрд░рдиреЗ рд╣реЛрддреЗ рд╣реИрдВред

{{ (12).__rshift__(other) }}

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

рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ рдмрд┐рдЯрд╡рд╛рдЗрдЬрд╝ рдСрдкреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрджрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рддреЛ рдХрд╛рд░реНрдпреЛрдВ рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░реЗрдВред

рд╡рд╛рд╣, рдпрд╣ рдПрдХ рд╕реБрд╡рд┐рдЪрд╛рд░рд┐рдд рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред

рдореИрдВ рдЦреБрдж рдХреЛ рд╣реЛрдо рдЕрд╕рд┐рд╕реНрдЯреЗрдВрдЯ рдХреЗ рд╕рд╛рде рдЬрд┐рдВрдЬрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдФрд░ рдЖрд░рдЬреАрдмреА рд░рдВрдЧреЛрдВ рдореЗрдВ рд╣реЗрд░рдлреЗрд░ рдХрд░рддреЗ рд╣реБрдП рдкрд╛рддрд╛ рд╣реВрдВред рдореИрдВ {'r': 255, 'g': 255, 'b': 255} рдХреЛ 0xRRGGBB рдкреНрд░рд╛рд░реВрдк рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рд▓реЗрдХрд┐рди рдХреЛрдИ рднрд╛рдЧреНрдп рдирд╣реАрдВ рдХреНрдпреЛрдВрдХрд┐ рдЬрд┐рдВрдЬрд╛ рдЙрди рдЖрд╕рд╛рди рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЖрддрд╛ рд╣реИред

рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХрд╛ рдХреНрдпрд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ? рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛рд░реНрдп рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдо рдХрд░реЗрдВрдЧреЗ рд▓реЗрдХрд┐рди рдХреНрдпрд╛ рд╣реЛрдЧрд╛ рдпрджрд┐ рдХреЛрдИ 0xBBGGRR рдЪрд╛рд╣рддрд╛ рд╣реИ? рдХреНрдпрд╛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкреНрд░рддрд┐рдкрд╛рджрди рдХрд╛ рдирд┐рд░реНрдгрдп рд▓реЗрдиреЗ рджреЗрдирд╛ рдЬрд┐рдВрдЬрд╛ рдХрд╛ рдХрд╛рдо рдирд╣реАрдВ рд╣реИ?
рдореИрдВ рд╕рд╣рдордд рд╣реВрдВ рдХрд┐ рдЗрд╕ рддрд░рд╣ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рджреБрд░реБрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХреЗ рдорд╛рдорд▓реЗ рд╣реИрдВред

рдХреНрд╖рдорд╛ рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЛ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХрдареЛрд░ рд▓рдЧрддреА рд╣реИ, рддреЛ рдпрд╣ рдореЗрд░рд╛ рдЗрд░рд╛рджрд╛ рдирд╣реАрдВ рд╣реИред рдореБрдЭреЗ рд╕рдЪреНрдЪреА рдирд┐рд░рд╛рд╢рд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ: рд░реЛрдУ:

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

{{ '0x{r:02X}{g:02X}{b:02X}'.format(**color) }}

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

{{ '0x{r:02X}{g:02X}{b:02X}'.format(**color) | int(base=16) }}

рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ рдЖрдк format рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рдмрдЬрд╛рдп .format рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдореИрдВ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЙрд▓рдЭрди рдореЗрдВ рд╣реВрдВ рдХрд┐ рдЬрд┐рдВрдЬрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ рдХреНрдпрд╛ рдЕрдиреБрдорддрд┐ рд╣реИ рдФрд░ рдХреНрдпрд╛ рдирд╣реАрдВ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХрд╛ рдкрд╕рдВрджреАрджрд╛ рддрд░реАрдХрд╛ рдХреНрдпрд╛ рд╣реИ? рдПрдХ рдпрд╛ рджреВрд╕рд░реЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдм рдХрд░реЗрдВ?

рдкрд╛рдпрдерди рдХреЗ рдЬрд╝реЗрди рдХрд╛ рд╣рд╡рд╛рд▓рд╛ рджреЗрддреЗ рд╣реБрдП: There should be one-- and preferably only one --obvious way to do it.

рдЗрд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЪрд░реНрдЪрд╛ рдХреЗ рд▓рд┐рдП рдХреГрдкрдпрд╛ IRC рдпрд╛ рдореЗрд▓рд┐рдВрдЧ рд╕реВрдЪреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред

format рдлрд╝рд┐рд▓реНрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рднреА рд╕рдВрднрд╡ рд╣реЛрдЧрд╛:

{{ '0x%(r)02X%(g)02X%(b)02X'|format(**color) }}

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

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

рд▓реЗрдХрд┐рди рд╣рд╛рдБ, рдпрд╣ рдЪрд░реНрдЪрд╛ рд╡рд┐рд╖рдп рд╕реЗ рд╣рдЯрдХрд░ рд╣реЛрддреА рдЬрд╛ рд░рд╣реА рд╣реИ, рдФрд░ рд╢рд╛рдпрдж рдЗрд╕реЗ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рд╕рд╣реА рдЬрдЧрд╣ рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рдмрд┐рдЯрд╡рд╛рдИ рдСрдкрд░реЗрд╢рдВрд╕ рдХреА рднреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ - рдХрдо рд╕реЗ рдХрдо рддреБрд▓рдирд╛ред рдореЗрд░реЗ рдкрд╛рд╕ HomeAssistant рдореЗрдВ рдПрдХ рд╕реЗрдВрд╕рд░ рд╣реИ рдЬреЛ рдПрдХ рдорд╛рди рдореЗрдВ рдХрдИ рд░рд╛рдЬреНрдпреЛрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рдЯрдорд╛рд╕реНрдХ рдорд╛рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред HomeAssistant рдореЗрдВ рдореИрдВ рдЗрд╕ рдмрд┐рдЯрдорд╛рд╕реНрдХ рдорд╛рди рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╕реЗрдВрд╕рд░ рдорд╛рдиреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рдЬреЛ рдореЗрд░реЗ рд╕реЗрдВрд╕рд░ рдХреЗ рд▓рд┐рдП рдореВрд▓реНрдп рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдПрдХ рд╕рд╛рдзрд╛рд░рдг {{ state(sensor.with_bitmaskvalue) & 1 }} рдХреЗ рд╕рд╛рде рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛрдЧрд╛ред рдЕрднреА рдЬрд┐рдиреНрдЬрд╛ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдРрд╕рд╛ рдХрд░рдирд╛ рд▓рдЧрднрдЧ рдЕрд╕рдВрднрд╡ рд╣реИ - рдХрдо рд╕реЗ рдХрдо рдореЗрд░реЗ рд╢реЛрдз рдХреЗ рдЕрдиреБрд╕рд╛рд░

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ state(sensor.with_bitmaskvalue) is bitmask 1 рдЬреИрд╕реЗ рдХрд╕реНрдЯрдо рдкрд░реАрдХреНрд╖рдг рдХрд╛ рдкрд░реНрджрд╛рдлрд╛рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП

рд╢реЛрд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ, рдореИрдВрдиреЗ рдЕрднреА рдкрд╛рдпрд╛ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдХрд╕реНрдЯрдо рдлрд╝рд┐рд▓реНрдЯрд░ bitwise_and() рдЬреЛрдбрд╝рд╛ рд╣реИ рдЬреЛ рдореЗрд░реЗ рд▓рд┐рдП рдЪрд╛рд▓ рд╣реИ

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

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

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

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

The-Compiler picture The-Compiler  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

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

jp-costa picture jp-costa  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ