Saravanan666/pypi-org huggingface dataset:
Package: oastodcat
oastodcatA small Python library to transform an openAPI file to a dcat:DataServiceAt this moment we support all 3.0.x versions ofThe OpenAPI specificationUsageInstall%pipinstalloastodcatGetting startedExample usage:importyaml
importrequests
fromdatacatalogtordfimportCatalog
fromoastodcatimportOASDataService# Create catalog objectcatalog=Catalog()catalog.identifier="http://example.com/catalogs/1"catalog.title={"en":"A dataset catalog"}catalog.publisher="https://example.com/publishers/1"# Create a dataservice based on an openAPI-specification:url=("https://raw.githubusercontent.com/""OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml")oas=yaml.safe_load(requests.get(url).text)identifier="http://example.com/dataservices/{id}"oas_spec=OASDataService(url,oas,identifier)## Add dataservices to catalog:fordataserviceinoas_spec.dataservices:catalog.services.append(dataservice)getdcatrepresentationinturtle(default)dcat=catalog.to_rdf()# Get dcat representation in turtle (default)dcat=catalog.to_rdf()print(dcat)MappingThe following table shows how an openAPI specification is mapped to a dcat:DataService:(Only dcat:DataService properties are shown.)dcat:DataServiceRDF propertyopenAPI v 3.0.xNoteendpoint descriptiondcat:endpointDescriptionurl to descriptionendpoint URLdcat:endpointURLservers.url[1]serves datasetn/aaccess rightsconforms todct:conformsTocontact pointdcat:contactPointinfo.contactcreatordescriptiondct:descriptioninfo.descriptionhas policyidentifiern/ais referenced bykeyword/taglanding pagedcat:landingPageexternalDocslicensedct:licenseinfo.license.urlresource languagerelationrightsqualified relationpublisherdct:publisherrelease datetheme/categorytitledct:titleinfo.titletype/genreupdate/modification datequalified attributionmedia typedcat:mediaType<it's complicated>[1] For each url in the servers object array, an instance of dcat:DataService will be created.DevelopmentRequirementspython3pyenv(recommended)pipx(recommended)poetrynoxnox-poetry%pipxinstallpoetry==1.0.5
%pipxinstallnox==2019.11.9
%pipxinjectnoxnox-poetryInstall dependencies```Shell
%gitclonehttps://github.com/Informasjonsforvaltning/oastodcat.git
%cdoastodcat
%pyenvinstall3.8.6
%pyenvinstall3.9.0
%pyenvinstall3.10.4
%poetryinstallRun all sessions%noxRun all tests with coverage reporting%nox-rstestsDebuggingYou can enter intoPdbby passing--pdbto pytest:nox-rstests----pdbYou can set breakpoints directly in code by using the functionbreakpoint().
Package: oasys-barc4ro
This is the distribution for OASYS of:Biblioteca Auxiliar do Rafael Celestre for X-ray Refractive Optics.This library allows to simulate compound refractive lenses under the projection approximation, valid for the conditions imposed by the paraxial approximation in the physical optics framework.
Original repository in:https://gitlab.esrf.fr/celestre/barc4RefractiveOptics
Package: oasys-srwpy
Synchrotron Radiation WorkshopBased on:https://github.com/ochubar/SRWfor the source codehttps://github.com/NSLS-II/scientific-python-cookiecutterfor the structure and featuresLicensing and documentation:Free software: 3-clause BSD licenseDocumentation: (COMING SOON!)https://srwpy.github.io/srwpy.Compilation in Windowsinstall OASYSinstall Visual Studio 2019 with c++ toolsStart the Visual Studio Command Prompt (check then “where msbuild”)Activate miniconda “c:\miniconda3\Scripts\activate”python setup.py bdist_wheelpython -m twine upload dist*FeaturesTODO
Package: oath
Python OATHpython-oath is a package implementing the three main OATH specifications:HOTP, an event based one-time password standard – OTP – using HMAC signatures,TOTP, a time based OTP,OCRA, a mixed OTP / signature system based on HOTP for complex use cases.It’s Python 3 ready.Getting startedThe main APIs are:hotp, to generate a password.accept_hotp, to check a received password,totp and accept_totp, the same for the TOTP standard.GoogleAuthenticator to parse Google Authenticator URIfrom_b32key to create a a GoogleAuthenticator object from a simple base32 key
Package: oathguardian
oathguardian: one-time password (TOTP/HOTP) generatorOathguardian is a GTK-3 graphical tool for generatingTime-based one-time passwordas defined inRFC6238. Those one-time passwords are frequently
used as a two-factory authentication mechanism, by using a smartphone application such asGoogle authenticator.Oathguardian permits to store the key secret either in asecret servicesuch as Gnome Keyring ; or into aYubikey 4. The yubikey is an USB device that has many
security-related usages, such as storing a PGP private key, or doing TOTP/HOTP computations.ScreenshotInstallationFor now the best way to install oathguardian is to use pip.The following instructions describe how to install oathguardian on a debian system, and should be transposable
to any other linux distribution.DependenciesSome dependencies have to be installed beforehand:$sudoaptinstallpython3-pip
$sudoaptinstalllibzbar0
$sudoaptinstallpcscdlibpcsclite-devswigoathguardian$pip3install--useroathguardianPost-installationThe main executable,oathguardian-gtkwill be automatically installed into$HOME/.local/bin. If this path
is not currently in yourPATHvariable, please add it by adding to your$HOME/.profile:PATH="$PATH:$HOME/.local/bin"LicenceOathguardian is released under theoriginal ISC license, as used byOpenBSDproject.
Package: oathkeeper
OathkeeperCreated for internalGreendeckuse only. Can be used for non-commercial purposes.A simple library to keeps and maintains all your secret keys, API keys, connection strings and environment variables in a safe place for you to use. Just like Ser Jamie kept his oaths.You don't need to worry about deployment or maintenance. All you need:Install the LibrarySignup on oathkeeper.greendeck.co or contactdevelopers@greendeck.coAbout OathkeeperOathkeeperis your omnipresent dictionary of key value pairs. Think ofOathkeeperas remote JSON object.
It is compatible with all JSON serializable data-types.Install from piphttps://pypi.org/project/oathkeeper/pip install oathkeeperHow to use ?importOathkeeperclassfromoathkeeperimportOathkeeperinitializeOathkeeperclient connection as per your requirements# declare variablesoathkeeper_EMAIL=<YOUR_oathkeeper_EMAIL># signup here: oathkeeper.greendeck.cooathkeeper_PASSWORD=<YOUR_oathkeeper_EMAIL># signup here: oathkeeper.greendeck.cooathkeeper_ENV=<YOUR_oathkeeper_ENV># This can be a string; for example, "production", "testing", "staging" etc.# The default values are oathkeeper_ENV='default'# Now initialize the Oathkeeper Objectoathkeeper=Oathkeeper(oathkeeper_EMAIL,oathkeeper_PASSWORD,oathkeeper_ENV)usingOathkeeperOnce, you have the Oathkeeper object for a particular environment. You cansetor save key value pairs andgetvalues for any key in that particular environment.oathkeeper.get(key)# will return the value for the key in your Oathkeeper object. The key needs to be present.oathkeeper.set(key,value)# will set the key to the provided value in your Oathkeeper object.How to build your pip packageopen an account herehttps://pypi.org/In the parent directorypython setup.py sdist bdist_wheeltwine upload dist/*referenceshttps://medium.com/small-things-about-python/lets-talk-about-python-packaging-6d84b81f1bb5Thank You
Package: oath-ldap-tool
[OATH-LDAP](https://oath-ldap.stroeder.com/) directly integrates
OTP-based two-factor authentication into
[OpenLDAP](https://www.openldap.org)slapd.This is the command-line tool for various use-cases:Generate asymmetric primary key pairs used for encrypting
the OATH shared secretsAdd LDAP entries for hardware OTP devicesInitialize a Yubikey slot over USBRequirementsPython 3.6+
Package: oathtool
TOTP code generator based on oathtool.UsageCommand-line:$ python -m oathtool $keyAPI:>>> oathtool.generate_otp(key)Create standalone script (Unix):$ python -m oathtool.generate-script
$ ./oathtool $keyDon’t want to install oathtool, but just want the script? Usepip-run:$ pip-run oathtool -- -m oathtool.generate-script
$ ./oathtool $keygenerate-scriptalso takes an arbitrary target path in
case you wish to generate the script elsewhere:$ python -m oathtool.generate-script ~/bin/my-oathtoolOr install withpipx:$ pipx install oathtool
$ oathtool $key
Package: oatlib
OAT (Observation Analysis Tool)A Python library (oatlib) to manage sensor data in Python.
It provides objects and methods to manipulate
obeservation time series. It support data loading, export and saving
on different format (CSV, sqlite, istSOS).lib documentation:https://ist-supsi.gitlab.io/OATinstallationpip install oatlibCreate pypi packagemodify the code andchange the VERSION in init.pyrun scipy-notebook dockerdocker run -p 10001:8888 -v /home/maxi/GIT/OAT:/home/jovyan/work jupyter/scipy-notebook:807999a41207in jupyter-lab terminal:install required packages -->cd /home/jovyan/work
python -m pip install --upgrade setuptools
python -m pip install --upgrade pip
python -m pip install --upgrade buildbuild the package -->python -m buildtest the package in your notebookpip install /home/jovyan/work/dist/oatlib-YOUR_VERSION_HERE-py3-none-any.whlupload to pipypython -m pip install --upgrade twine
twine upload dist/*update library documentationpip install pdoc3
pdoc3 --force --html -o html_doc oatlib
--> we have some issue here (see bughttps://github.com/pdoc3/pdoc/issues/299)test in a 3.10.5 pythondocker run -p 10000:8888 -v /home/maxi/GIT/OAT/oatlib:/home/jovyan/work jupyter/scipy-notebook:807999a41207old packg build CMDpython setup.py sdist bdist_wheel
Package: oatmeal
Oatmeal Protocol - Control and communicate with Arduino devices from PythonOatmeal Protocolprovides a simple mechanism to autoconnect and control any Arduino-compatible microcontroller from Python over a UART serial port.The protocol supports multiple data types including integers, strings, floats, booleans, lists, dictionaries and missing values (NULL/None/nil). It even supports nested and mixed type lists.By using the Oatmeal libraries, developers don't need to develop yet-another bespoke protocol and all the code around parsing those messages -- and can instead focus on building cool devices faster.Oatmeal was developed by the R&D Team @ Shield Dx and released under the Apache License 2.0. It is not an official Shield Dx product -- the code is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND. For more details please see theLICENSEfile.Python Examplefrom oatmeal import OatmealDevice

class MyDevice(OatmealDevice):
    ROLE_STR = "MyDevice"

board = MyDevice.find()
print("Temperature: ", board.send_and_ack("TMPR").args[0])Arduino Example (C++)#define HARDWARE_ID_STR "MyDevice"
#include "oatmeal_protocol.h"

OatmealMsgReadonly msg;
while (port.check_for_msgs(&msg)) {
  if (msg.is_opcode("TMPR")) {
    port.start("TMP", 'A');
    port.append(TEMP_SENSOR.read());
    port.append(OTHER_SENSOR.read());
    port.finish();
  }
}Message structure>>> import oatmeal
>>> msg = oatmeal.OatmealMsg("RUNR", 1.23, True, "Hi!", [1, 2], token='aa')
>>> msg
OatmealMsg('RUNR', (1.23, True, 'Hi!', [1, 2]), token='aa')
>>> msg.encode()
bytearray(b'<RUNRaa1.23,T,Hi!,[1,2]>}V')
>>>InstallationOn linux you need to runsudo usermod -a -G dialout $USERand then restart before using UART over USB. You may also have to install USB-to-UART drivers depending on the chip used.Oatmeal Python (3.5+) LibrarySimply install our Python library using using pip:sudo pip3 install oatmealOatmeal Arduino (1.8+) LibraryTo install via the Arduino IDE, open the IDE and navigate to 'Sketch' -> 'Include Library' -> 'Manage Libraries...'. From there, search for 'oatmeal' and install the latest version.To install without the Arduino IDE, download the library from the git repository and copy it into your Arduino libraries folder. For more info, see theArduino website.Minimal hardware set upIf you are running Python on a device that has a serial port, simply connect the serial port to the arduino device:Python deviceArduino deviceRxTxTxRxGNDGNDIf you are running Python on a device that has a USB port, get a USB-to-UART bridge like Adafruit'sFTDI Friendor Sparkfun'sFTDI Basic Breakoutand make the same 3 connections as shown above. Hardware flow control pins (DTR/CTS) are not used.DebuggingOatmeal proxies messages over UDP to localhost ports 5551 (incoming messages) and 5552 (outgoing messages).Listen to UDP messages withsocat:# Listen to incoming UART messages
socat -u udp-recv:5551 -
# Listen to outgoing UART messages
socat -u udp-recv:5552 -Issues, support and contributingLicense: Apache v2.0 - seelicense.txt.See CONTRIBUTING.md for guidelines on submitting issues and PRs.
Package: oatomobile
OATomobile: A research framework for autonomous drivingOverview|Installation|Baselines|PaperOATomobile is a library for autonomous driving research.
OATomobile strives to expose simple, efficient, well-tuned and readable agents, that serve both as reference implementations of popular algorithms and as strong baselines, while still providing enough flexibility to do novel research.OverviewIf you just want to get started using OATomobile quickly, the first thing to know about the framework is that we wrapCARLAtowns and scenarios in OpenAIgyms:importoatomobile# Initializes a CARLA environment.environment=oatomobile.envs.CARLAEnv(town="Town01")# Makes an initial observation.observation=environment.reset()done=Falsewhilenotdone:# Selects a random action.action=environment.action_space.sample()observation,reward,done,info=environment.step(action)# Renders interactive display.environment.render(mode="human")# Book-keeping: closesenvironment.close()Baselinescan also be used out-of-the-box:# Rule-based agents.importoatomobile.baselines.rulebasedagent=oatomobile.baselines.rulebased.AutopilotAgent(environment)action=agent.act(observation)# Imitation-learners.importtorchimportoatomobile.baselines.torchmodels=[oatomobile.baselines.torch.ImitativeModel()for_inrange(4)]ckpts=...# Paths to the model checkpoints.formodel,ckptinzip(models,ckpts):model.load_state_dict(torch.load(ckpt))agent=oatomobile.baselines.torch.RIPAgent(environment=environment,models=models,algorithm="WCM",)action=agent.act(observation)InstallationWe have tested OATomobile on Python 3.5.To install the core libraries (includingCARLA, the backend simulator):# The path to download CARLA 0.9.6.exportCARLA_ROOT=...
mkdir-p$CARLA_ROOT# Downloads hosted binaries.wgethttp://carla-assets-internal.s3.amazonaws.com/Releases/Linux/CARLA_0.9.6.tar.gz# CARLA 0.9.6 installation.tar-xvzfCARLA_0.9.6.tar.gz-C$CARLA_ROOT# Installs CARLA 0.9.6 Python API.easy_install$CARLA_ROOT/PythonAPI/carla/dist/carla-0.9.6-py3.5-linux-x86_64.eggTo install the OATomobile core API:pipinstall--upgradepipsetuptools
pipinstalloatomobileTo install dependencies for ourPyTorch- orTensorFlow-based agents:pipinstalloatomobile[torch]# and/orpipinstalloatomobile[tf]Citing OATomobileIf you use OATomobile in your work, please cite the accompanyingtechnical report:@inproceedings{filos2020can,title={Can Autonomous Vehicles Identify, Recover From, and Adapt to Distribution Shifts?},author={Filos, Angelos andTigas, Panagiotis andMcAllister, Rowan andRhinehart, Nicholas andLevine, Sergey andGal, Yarin},booktitle={International Conference on Machine Learning (ICML)},year={2020}}
Package: oatspower
OATSOptimisation and Analysis Toolbox for power Systems (OATS) is a high-level modelling and simulation tool for power system analysis, developed at theUniversity of Strathclyde. OATS is a collection of optimisation models and Python scripts for analysis and solution of a range of power system analysis problems.Getting startedThe scripts in OATS are written in Python 2. The optimisation models are written in PYOMO, which is an algebraic modelling language. A solver is required to solve the optimisation models.DocumentationThedocumentationof OATS is a best place to start. The documentation provides installation instructions and brief description of the optimisation models that are implemented in OATS.ContributingAny issues with the code and/or software bugs in OATS should be raised through the GitHub page.Users are encouraged to contribute to improve OATS. Contributions can be in the form of improved optimisation models or in the form of data sets.Please note that the users are obliged to share the code derived from OATS under the license terms.LicenseOATS is distributed under the open source license GNU GPL v3 - see theLICENSEfile for details. This is a copyleft license that requires anyone using this code or a derivative work to make the source available under the same terms.AuthorsWaqquas Bukhsh-Initial work-University of StrathclydeSee also the list ofcontributorswho participated in this project.Citing OATSWe are working on a journal article for OATS. Meanwhile, we request the users to cite the user manual of OATS.W. Bukhsh, OATS: Optimisation and Analysis Toolbox for Power Systems Optimisation, Documentation release 0.1, 2017 [Available] Online:https://github.com/bukhsh/oatsAcknowledgmentsGARPURRESTLESSUniversity of Strathclyde
Package: oauth2cli
Generic OAuth 2.0 command-line utility to retrieve access tokens.Aboutoauth2cliis a developer productivity tool. It’s helpful when juggling across multiple tech stacks and you need an OAuthaccess_tokento make an API call, but you don’t have a quick way to generate theaccess_token. Moreover,oauth2cliuses standard python library and doesn’t have any external dependencies.Installation, usage instructions, and examples are available on theGithub repo.
Package: oauth2-cli-auth
oauth2-cli-authAuthenticate against OAuth2 Provider in Python CLIsFeaturesSimpleFancy callback pageRequirementsPython 3.9+Installationpipinstalloauth2-cli-authUsageSimple with OIDC well known configuration endpointThis should work for every provider supporting OIDC e.g.gitlab.com:fromoauth2_cli_authimportget_access_token_with_browser_open,OAuth2ClientInfoclient_info=OAuth2ClientInfo.from_oidc_endpoint("https://gitlab.com/.well-known/openid-configuration",client_id="my-client-id",scopes=["openid"])try:token=get_access_token_with_browser_open(client_info)print(f"Obtained token '{token}'")exceptValueError:print("Failed to obtain token")Simple with manual endpoint specificationThe following should work for almost all use cases, for rest please check the lib docs.fromoauth2_cli_authimportget_access_token_with_browser_open,OAuth2ClientInfoclient_info=OAuth2ClientInfo(client_id="<clientId>",authorization_url="<authorizeUrl>",token_url="<TokenUrl>",scopes=["scopeA","scopeB"])try:token=get_access_token_with_browser_open(client_info)print(f"Obtained token '{token}'")exceptValueError:print("Failed to obtain token")MotivationBuilding oauth2 integration for Python apps come quite handy, especially with Gitlab integration etc.It is a bit cumbersome to do it manually everytime, existing solutions are way to overkill to put on this problem.
So I created this small library without any dependencies besides the python standard library.DocumentationLibrary documentationContributingI love your input! I want to make contributing to this project as easy and transparent as possible, whether it's:Reporting a bugDiscussing the current state of the configurationSubmitting a fixProposing new featuresBecoming a maintainerTo get started please read theContribution Guidelines.DevelopmentRequirementsPython 3.9+pre-commitPoetryTestpoetry run pytest .Buildpoetryinstall
Package: oauth2helper
Validate and extract information from OAuth2 tokenValidate OAuth2 tokenExtract token informationStarletteValidating an OAuth2 tokenimportoauth2helperheaders={"Authorization":"Bearer YOUR_OAUTH2_TOKEN"}my_token=headers.get('Authorization')[7:]# Will raise InvalidTokenError or InvalidKeyError in case validation failedoauth2helper.validate(my_token,"https://provider_url/common/discovery/keys")Extracting user from a OAuth2 tokenimportoauth2helperheaders={"Authorization":"Bearer YOUR_OAUTH2_TOKEN"}my_token=headers.get('Authorization')[7:]json_header,json_body=oauth2helper.validate(my_token,"https://provider_url/common/discovery/keys")username=oauth2helper.user_name(json_body)StarletteAStarletteAuthenticationMiddlewarebackend is available.fromstarlette.applicationsimportStarlettefromstarlette.authenticationimportrequiresfromstarlette.middlewareimportMiddlewarefromstarlette.middleware.authenticationimportAuthenticationMiddlewarefromoauth2helper.starletteimportOAuth2IdTokenBackend,unauthorizedbackend=OAuth2IdTokenBackend(identity_provider_url="https://identity_provider_url",# You can extract scopes per user and validate them on @requires decoratorscopes_retrieval=lambdajson_body:["authenticated"],)app=Starlette(middleware=[Middleware(AuthenticationMiddleware,backend=backend,on_error=unauthorized)])@app.route("/authenticated_endpoint")@requires(scopes=["authenticated"])defendpoint(request):pass# Implement your own logicHow to installpython 3.6+must be installedUse pip to install module:python-mpipinstalloauth2helper
Package: oauth2lib
oauth2lib=========## Python OAuth 2.0 Client and Provider Library### Authorization Code Grant :: OAuth 2 Section 4.1Authorization Request :: OAuth 2 Section 4.1.1[For browser apps this happens in the window]Request: GET /get_authorization_code?response_type=code&client_id={CLIENT_ID}&redirect_uri={REDIRECT_URI}[&state={STATE}][&scope={SCOPE}]Response: HTTP 302Location={REDIRECT_URI}?code={CODE}&state={STATE}Error Response: HTTP 302Location={REDIRECT_URI}?error=access_denied&state={STATE}Access Token Request :: OAuth 2 Section 4.1.3[Server side only]Request: GET /get_access_token?grant_type=authorization_code&client_id={CLIENT_ID}&client_secret={CLIENT_SECRET}&redirect_uri={REDIRECT_URI}&code={CODE}Response: HTTP 200{"access_token": "{ACCESS_TOKEN}","token_type": "{TOKEN_TYPE}",      // See OAuth 2 Section 7.1 Access Token Types"expires_in": 3600,"refresh_token": "{REFRESH_TOKEN}"}Error Response: HTTP 400{"error": "access_denied","error_description": "User does not have access to the team."}
Package: oauth2-lib
OAuth2-libThis Project contains a Mixin class that wraps an openapi-codegen python client, to inject Opentelemetry spans
and api call retries. It also contains a number of FastAPI dependencies which enables Policy enforcement offloading
to Open Policy Agent.The project contains a number of OIDC classes that are tailored to the SURF environment.InstallationThis can be done as follows:Step 1:First install flit to enable you to develop on this repositorypipinstallflitStep 2:To install all development dependenciesflitinstall--depsdevelop--symlinkfor pydantic V2 you also need to install pydantic_settings:pip install pydantic_settings.This way all requirements are installed for testing and development.DevelopmentDepending on the feature type, run bumpversion (patch|minor|major) to increment the version you are working on. For
example to update the increment the patch version usebumpversionpatchFor MAC users looking and experimenting with Opentelemetry (OTEL)https://github.com/jaegertracing/jaeger-client-node/issues/124#issuecomment-324222456Supported Python versionsoauth2-lib must support the same python versions asorchestrator-core.Exceptions to this rule are:A new python version is released:oauth2-lib should support the new version before orchestrator-core doesSupport for an old python version is dropped:oauth2-lib should drop the python version after orchestrator-core does
Package: oauth2link
oauth2link让你的网站平台通过第三方平台快速登录授权,目前支持的平台有：新浪微博GitHub一、快速入门安装项目包gitclonehttps://github.com/Bean-jun/oauth2link.git
pythonsetup.pyinstall# 或者pipinstalloauth2link在项目中填写配置文件以微博为例：LINKS_WEIBO_CLIENT_ID
LINKS_WEIBO_REDIRECT_URI
LINKS_WEIBO_SCOPE
LINKS_WEIBO_CLIENT_SECRET以github为例:LINKS_GITHUB_CLIENT_ID
LINKS_GITHUB_REDIRECT_URI
LINKS_GITHUB_SCOPE
LINKS_GITHUB_CLIENT_SECRET导入本包并初始化&编写回调逻辑(默认的回调逻辑应该是不满足业务需求的)fromoauth2link.platformimportWeiBoOauth2fromoauth2link.callbackimportBaseCallBackHandlerclassMyCallBackHandler(BaseCallBackHandler):defdo_call(self):self.oauth_client.get_access_token(request)self.oauth_client.get_user_info()self.oauth_client.save_model()...links=WeiBoOauth2()links.CALLBACK_HANDLER=MyCallBackHandlerlinks.init_app(app)编写授权跳转页面fromflaskimportredirect@app.get("/wei_login")defweibo_login():returnredirect(links.redirect_url())二、TODO实现多平台兼容运行纳入更多支持oauth2的第三方平台