Oauthlib: oauthlib рд╕рдореБрджрд╛рдп рдореЗрдВ рдкреНрд░рд╡рд╛рд╕рди

рдХреЛ рдирд┐рд░реНрдорд┐рдд 28 рдЬрдире░ 2018  ┬╖  10рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: oauthlib/oauthlib

рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ,

рдЪреВрдВрдХрд┐ @idan рдиреЗ рдПрдХ рдЯреАрдо рдХреЗ рд░реВрдк рдореЗрдВ oauthlib рд╕рдореБрджрд╛рдп рдкреНрд░рд╡рд╛рд╕рди рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдореЗрдВ рдпрд╣ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдПрдХ рд╕рдЪреНрдЪреЗ рд╕рдореБрджрд╛рдп рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рдЧрддрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдХреНрдпрд╛ рдЪрд╛рд╣рд┐рдПред рдореИрдВ рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рдХреГрдкрдпрд╛ рдХрд┐рд╕реА рднреА рд╕реБрдЭрд╛рд╡ рдХреЛ рдЬреЛрдбрд╝рдХрд░ рднрд╛рдЧ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рддрдВрддреНрд░ рдорд╣рд╕реВрд╕ рдХрд░реЗрдВ :-)

рд░рд┐рд▓реАрдЬ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд/рд╕реБрдзрд╛рд░реЗрдВ:

  • [x] : рдЯреИрдЧрд┐рдВрдЧ
    рдЧрд▓рдд рд╡рд┐рдЬреНрдЮрдкреНрддрд┐ рд╕рдВрдЦреНрдпрд╛: рд╣рдо рдкрд░ 2.0.3 рд╣реИ github's releases , рдореЗрдВ 2.0.5 __init__.py рдФрд░ 2.0.6 рдкрд░ pypi ... рдпрдХреАрди рд╣реИ рдХрд┐ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЧрд▓рдд
  • [x] : рдкреНрд░рдХрд╛рд╢рди
    рдореИрдВ рдкреНрд░рдХрд╛рд╢рди рдХреЗ рд▓рд┐рдП рдЯреНрд░реИрд╡рд┐рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рд╣рдо рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ TRAVIS_TAG рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реАрдзреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЙрджрд╛рд╣рд░рдг https://github.com/thomsonreuters/bottle-oauthlib/blob/master/ рдкрд░ рджреЗрдЦреЗрдВ) рд╣рдорд╛рд░реЗ рд╡рд░реНрддрдорд╛рди рд╣рд╛рд░реНрдб-рдХреЛрдбреЗрдб рдорд╛рди рдХреЗ рдмрдЬрд╛рдп setup.py: https://github.com/oauthlib/oauthlib/blob/master/oauthlib/__init__.py)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рд╣реИ рдХрд┐ @ ib-lundgren pypi рдкреИрдХреЗрдЬ рдХрд╛ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдкреНрд░рдХрд╛рд╢рдХ рд╣реИ, рд╡рд╣ рд╡рд░реНрд╖реЛрдВ рд╕реЗ рдирд┐рд╖реНрдХреНрд░рд┐рдп рджрд┐рдЦрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдЧрд░ рдпрд╣ рдХреЛрдИ рдореБрджреНрджрд╛ рд╣реИ рддреЛ рдкрддрд╛ рдирд╣реАрдВред
  • [x] : рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг
    README рдХреЛ travis-ci.org рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА URL рдХреЗ рд▓рд┐рдП рдЕрдкрдбреЗрдЯ рдХрд┐рдП рдЧрдП рдмреИрдЬ рдХреЗ рд╕рд╛рде рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ (рдорд╛рд▓рд┐рдХ рдХреЛ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реЛрдЧрд╛, AFAIK), рдФрд░ рдбреЙрдХреНрдпреВрдореЗрдВрдЯреЗрд╢рди рдмрд┐рд▓реНрдб рдХреЗ рд▓рд┐рдП рдПрдХ рдмреИрдЬ рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИ: https://readthedocs.org /рдкреНрд░реЛрдЬреЗрдХреНрдЯреНрд╕/рдУрдерд▓рд┐рдм/рдмрд┐рд▓реНрдбреНрд╕/6483131/
    рд╣реЛ рдЧрдпрд╛ : https://github.com/oauthlib/oauthlib/pull/520
  • [x] : рд╕рдВрдЪрд╛рд░
    рдЬреАрдердм рдореБрджреНрджреЛрдВ рдФрд░ Google+ рдХрд╛ рдЙрдкрдпреЛрдЧ рдЬрд╛рд░реА рд░рдЦрдиреЗ рдореЗрдВ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдкреБрд░рд╛рдирд╛ рд▓рдЧрддрд╛ рд╣реИред рд╕рд╛рде рд╣реА, #oauthlib IRC рдЪреИрдирд▓ рдЦрд╛рд▓реА рд╣реИ, ~ рд╕реЛрдЪ рд░рд╣реЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рд╣рдо рд░реБрдЪрд┐ рд░рдЦрдиреЗ рдкрд░ рдПрдХ рд╕реНрд▓реИрдХ рд░реВрдо рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ?~
    рдирд┐рд╖реНрдХрд░реНрд╖ : рдЬрд┐рдЯрд░ рдмрдЪрд╛рд╡ рдХреЗ рд▓рд┐рдП рдЖрдпрд╛ рдерд╛ред https://gitter.im/oauthlib/Lobby рдкрд░ рдмреЗрдЭрд┐рдЭрдХ рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ

рднрд╡рд┐рд╖реНрдп, рд░реЛрдбрдореИрдк:

  • [ ] : рдХреНрдпрд╛ рд╕рдордп-рд╕рдордп рдкрд░ рдХреАрдбрд╝реЛрдВ рдХреЛ рдзреЛрдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИ

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рддреНрд╡рд░рд┐рдд рдЧреЛрд▓ рдореЗрдЬ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдореИрдВ рдкрд░рд┐рдЪрдп рд╢реБрд░реВ рдХрд░рддрд╛ рд╣реВрдВ, рдореИрдВ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдмреЛрддрд▓ рдХреЗ рд╕рд╛рде OAuth2.0 RequestValidator рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рдореИрдВрдиреЗ рдХрднреА рднреА OAuth1.0 рдХреЗ рд╕рд╛рде рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рди рд╣реА Django рдФрд░ рди рд╣реА рдкрд┐рд░рд╛рдорд┐рдб рдФрд░ рди рд╣реА рдлреНрд▓рд╛рд╕реНрдХред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдпрд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рдЖрд░рдПрдлрд╕реА рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдЕрдЪреНрдЫрд╛ рдЬреНрдЮрд╛рди рд░рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (oauth2, рдЖрддреНрдордирд┐рд░реАрдХреНрд╖рдг, рдирд┐рд░рд╕рди, jwt...) рдореИрдВрдиреЗ рдЕрднреА рддрдХ OpenID рдПрдХреАрдХрд░рдг рд╢реБрд░реВ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЬрд▓реНрдж рд╣реА рдЖ рдЬрд╛рдПрдЧрд╛ред

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

рдмрд╕ рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рд╣рдо рд╢рд╛рдпрдж рдПрдХ рдлреЙрд░реНрдореЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦреБрд▓реЗ рдкреАрдЖрд░ рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ pep8/flake8/yapf рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред

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

рд╕рднреА рдмреЗрд╣рддрд░реАрди рд╡рд┐рдЪрд╛рд░ @JonathanHuot!

рдФрд░ рд▓реЛрдЧ рдХреНрдпрд╛ рд╕реЛрдЪрддреЗ рд╣реИрдВ:

  • рдХреБрдЫ рдкреБрд░рд╛рдиреА рд╢рд╛рдЦрд╛рдУрдВ рдХреА рд╕рдлрд╛рдИред
  • рд░рд┐рд▓реАрдЬ рдХреА рдпреЛрдЬрдирд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд┐рдЯрд╣рдм рдХреЗ рдореАрд▓ рдХреЗ рдкрддреНрдерд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╢реБрд░реВ рдХрд░рдирд╛ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП 3.0, 3.1, 4.0 рдкрд░ рдкрд╣рд▓рд╛ рд░рди рдмрдирд╛рдиреЗ рдореЗрдВ рдЦреБрд╢реА)ред
  • рдкреНрд░рдореБрдЦ рд░рд┐рд▓реАрдЬ (рд╢рд╛рдпрдж 4.0) рдореЗрдВ рд╕реЗ рдПрдХ рдореЗрдВ рдкрд╛рдпрдерди 2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рдЫреЛрдбрд╝рдиреЗ рдХреА рдпреЛрдЬрдирд╛ред
  • рдЯрд╛рдЗрдк рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдкрд░рд┐рдЪрдп (рдкрд╛рдпрдерди 2 рдХреЛ рдЫреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж)ред
  • рдПрдХ рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдХрд╛ рдкрд░рд┐рдЪрдпред

@JonathanHuot рдореИрдВ рдпрд╣рд╛рдБ рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рдЪреАрдЬреЛрдВ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ https://github.com/oauthlib/oauthlib/issues/512

рдореИрдВ рдЬреЛ рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдмрд╕ рдкреВрдЫреЛред

рдЪреАрдорд┐рдВрдЧ рдЗрди :) рдкреАрдЖрд░ рдкрд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реБрдП рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдХреЛрдИ рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдирд╣реАрдВ рд╣реИ рдЬрд┐рд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдЪреАрдЬреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдирд╛ рдХрднреА-рдХрднреА рдХрдард┐рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдЧрд░ рдЖрдк рд▓реЛрдЧ рдареАрдХ рд╣реИрдВ рддреЛ рдореИрдВ рдЙрд╕ рдкрд░ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдкреНрд░рд╕реНрддрд╛рд╡ рд╡рд╛рд▓реЗ рдореБрджреНрджреЗ рд╕реЗ рд╢реБрд░реВ рд╣реЛ рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реЛ, :nail_care: codebase рд╕реЗ рд╢реБрд░реВ рд╣реЛ рд░рд╣рд╛ рд╣реИ?

рд╣рд╛рдп @ рдореИрдЯрдмреНрд▓реИрдХ 85 , рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реИ, рдЗрд╕ рджрд┐рд╢рд╛ рдореЗрдВ рдХрд┐рд╕реА рднреА рдХрд╛рдо рдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! :-)

_re: рдХреЛрдбрд┐рдВрдЧ рд╕реНрдЯрд╛рдЗрд▓_. рдореИрдВрдиреЗ рдЙрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдкрд╛рдпрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдореИрдВрдиреЗ autopep8 рдФрд░ yapf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдо рдХрд┐рдпрд╛ рд╣реИ, рдореИрдВ рдореВрд▓ рд░реВрдк рд╕реЗ рдЯреВрд▓рд┐рдВрдЧ рдХреЛ рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА рдХреЛ рд╕рд╛рдл рдХрд░рдиреЗ рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ (рдЙрди рдорд╛рдорд▓реЛрдВ рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЬрд╣рд╛рдВ рд╕рд╛рдл рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╕рдВрд╕реНрдХрд░рдг рдмрд╣реБрдд рдХрдо рд╣реИ рдЗрд╕реЗ рдЕрди-рдХреНрд▓реАрди-рдЕрдк рд╣реЛрдиреЗ рд╕реЗ рдЙрдкрдпреЛрдЧреА, рдЖрдорддреМрд░ рдкрд░ рд▓рд╛рдЗрди-рд▓рдореНрдмрд╛рдИ рдХреЗ рд╕рд╛рде рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рд╕реНрдкрд╖реНрдЯ рд╣реЛрдЧрд╛ рдФрд░ рдХреЗрд╡рд▓ рдПрдХ рд╡рд░реНрдг рдпрд╛ рджреЛ рджреНрд╡рд╛рд░рд╛ рд▓рдВрдмрд╛рдИ рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдЧрд╛)ред рдореИрдВ рдЗрд╕реЗ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП Emacs рдореЗрдВ elpy-mode рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рд╕рдВрджреЗрд╣ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдХрдорд╛рдВрдб-рд▓рд╛рдЗрди рдФрд░ CI рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд░реЗрдкреЛ рдХреА рдЬрдбрд╝ рдореЗрдВ .editorconfig рднреА рдЙрдкрдпреЛрдЧреА рд░рд╣рд╛ рд╣реИред

рдмрд╕ рдпрд╣ рд╕реЛрдЪрдХрд░ рдХрд┐ рд╣рдо рд╢рд╛рдпрдж рдПрдХ рдлреЙрд░реНрдореЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХреЛрдб рдкрд╛рд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЦреБрд▓реЗ рдкреАрдЖрд░ рдХреЛ рдорд░реНрдЬ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдореИрдВ pep8/flake8/yapf рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реВрдВред

:+1:

рдореИрдВ

рдореИрдВ рд╕рд┐рд░реНрдл рдЪреАрдЬреЛрдВ рдХреЛ PEP8 рд░рдЦрдиреЗ рдХрд╛ рдмрд╣реБрдд рдмрдбрд╝рд╛ рдкреНрд░рд╢рдВрд╕рдХ рд╣реВрдВред

рдпрджрд┐ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реИ, рддреЛ рдореИрдВ рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рд╕рдВрдкрдиреНрди рдШреЛрд╖рд┐рдд рдХрд░рддрд╛ рд╣реВрдБ

рдирдП рд╕рдореБрджрд╛рдп рдиреЗ рдПрдХ рдкреИрдЪ 2.0.7 рдФрд░ рдПрдХ рдорд╛рдореВрд▓реА 2.1.0 рд░рд┐рд▓реАрдЬ рдЬрд╛рд░реА рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рд╣рдо рдПрдХ рдкреНрд░рдореБрдЦ 3.0.0 рд░рд┐рд▓реАрдЬ рдХреА рджрд┐рд╢рд╛ рдореЗрдВ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдЗрд╕ рдирдИ рд░реЛрдорд╛рдВрдЪрдХ рд░рд┐рд▓реАрдЬрд╝ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдФрд░ рдЗрд╕рдореЗрдВ рднрд╛рдЧ рд▓реЗрдиреЗ рдореЗрдВ рд╕рдВрдХреЛрдЪ рди рдХрд░реЗрдВ!

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