# ywkd_python_tools **Repository Path**: Simeon49/ywkd_python_tools ## Basic Information - **Project Name**: ywkd_python_tools - **Description**: 娱网科道python 库 - **Primary Language**: Python - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-12-10 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 娱网科道内部python 公用包 =================================== 安装 ----- 使用 pip 安装 $ pip install ywkd_tools pip 地址 ----- https://pypi.org/project/ywkd-tools/ 使用 ----- ### PRC 调用 ```python from ywkd_tools.inner_service_apis import InnerServices InnerServices.setup(service_name=<调用者名称>, base_url=, secret=) # 发送短信 InnerServices.MSG().send_sms([57], 'SMS_177552091', {'username': 'tester','password': 'pwd12345'}) # 用户过滤 InnerServices.Cperm().filter_users(group_codes__in=['ceo']) # 调用自定义方法 fun InnerServices.Cperm().rpc_client.fun(...) # 获取用户详情 InnerServices.Cperm().get_user(1) # 实例1: class AViewOrSerializer(xxx): def some_method(...): cperm = InnerServices.Cperm() cperm.get_user(...) cperm.filter_users(...) cperm.rpc_client.fun(...) ... # 实例2: @app.task(...) def asyn_job(...): cperm = InnerServices.Cperm(request_id='xxxxxxxxxx') # or cperm = InnerServices.Cperm(request=request) cperm.get_user(...) cperm.filter_users(...) cperm.rpc_client.fun(...) ... ``` ### Auth 认证 ```python # 在初始化文件中执行 from ywkd_tools.auth import Auth Auth.setup(service_name=<调用者名称>, rpc_base_url=, rpc_secret=) # 在django view文件中 from ywkd_tools.auth import Auth class SomeView(BaseView): """需要认证的Django Vew""" authentication_classes = [Auth.RSTFBasciAuthentication] ... def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs) # 在对外提供RPC服务的文件中 from modernrpc.core import rpc_method from modernrpc.auth import set_authentication_predicate from ywkd_tools.auth import Auth @rpc_method def ping(): """不需要认证的rpc 接口""" return 'pong' @rpc_method @set_authentication_predicate(Auth.RPCBasciAuthentication().authenticate) def get_import_info(): """需要认证的rpc 接口""" return ... ``` 发布包 ----- ```bash # 确保您拥有setuptools并wheel 安装了最新版本 $ python3 -m pip install --upgrade setuptools wheel # 安装Twine $ python3 -m pip install --upgrade twine # 从setup.py位于的同一目录运行此命令 $ python3 setup.py sdist bdist_wheel # 运行Twine以上传所有存档dist $ python3 -m twine upload dist/* $ python3 -m twine upload --skip-existing dist/* ```