开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
捐赠
捐赠前请先登录
扫描微信二维码支付
取消
支付完成
支付提示
将跳转至支付宝完成支付
确定
取消
1 Star 0 Fork 29

sigui/python-eventlet

forked from src-openEuler/python-eventlet
关闭
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
master
分支 (15)
标签 (1)
master
openEuler-20.03-LTS-Next
openEuler-20.03-LTS-SP3
openEuler-21.09
openEuler-22.03-LTS-Next
oepkg_openstack-common_oe-20.03-LTS-Next
oepkg_openstack-common_oe-20.03-LTS-SP1
oepkg_openstack-common_oe-20.03-LTS-SP3
oepkg_openstack-common_oe-20.03-LTS-SP2
openEuler-21.03
20.09
openEuler-20.03-LTS-SP1
openEuler-20.09
openEuler-EPOL-LTS
yiyurain
openEuler-20.09-20200928
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
项目仓库所选许可证以仓库主分支所使用许可证为准
master
分支 (15)
标签 (1)
master
openEuler-20.03-LTS-Next
openEuler-20.03-LTS-SP3
openEuler-21.09
openEuler-22.03-LTS-Next
oepkg_openstack-common_oe-20.03-LTS-Next
oepkg_openstack-common_oe-20.03-LTS-SP1
oepkg_openstack-common_oe-20.03-LTS-SP3
oepkg_openstack-common_oe-20.03-LTS-SP2
openEuler-21.03
20.09
openEuler-20.03-LTS-SP1
openEuler-20.09
openEuler-EPOL-LTS
yiyurain
openEuler-20.09-20200928
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
master
分支 (15)
标签 (1)
master
openEuler-20.03-LTS-Next
openEuler-20.03-LTS-SP3
openEuler-21.09
openEuler-22.03-LTS-Next
oepkg_openstack-common_oe-20.03-LTS-Next
oepkg_openstack-common_oe-20.03-LTS-SP1
oepkg_openstack-common_oe-20.03-LTS-SP3
oepkg_openstack-common_oe-20.03-LTS-SP2
openEuler-21.03
20.09
openEuler-20.03-LTS-SP1
openEuler-20.09
openEuler-EPOL-LTS
yiyurain
openEuler-20.09-20200928
python-eventlet
/
python37.patch
python-eventlet
/
python37.patch
python37.patch 5.52 KB
一键复制 编辑 原始数据 按行查看 历史
yiyurain 提交于 2020年03月13日 10:19 +08:00 . python-eventlet: package init
From 0d4e7bcb90800d6700b2c81c41c9770ee5f94358 Mon Sep 17 00:00:00 2001
From: Marcel Plch <mplch@redhat.com>
Date: Mon, 9 Jul 2018 16:45:45 +0200
Subject: [PATCH] Fix for Python 3.7
---
eventlet/green/ssl.py | 46 ++++++++++++++++++++++++++++++++++++++++------
tests/debug_test.py | 14 ++++++++++++--
tests/hub_test.py | 4 +++-
3 files changed, 55 insertions(+), 9 deletions(-)
diff --git a/eventlet/green/ssl.py b/eventlet/green/ssl.py
index 53ee9a3c..df72869e 100644
--- a/eventlet/green/ssl.py
+++ b/eventlet/green/ssl.py
@@ -24,6 +24,7 @@
'create_default_context', '_create_default_https_context']
_original_sslsocket = __ssl.SSLSocket
+_original_wrap_socket = __ssl.wrap_socket
class GreenSSLSocket(_original_sslsocket):
@@ -57,11 +58,41 @@ def __init__(self, sock, keyfile=None, certfile=None,
# this assignment
self._timeout = sock.gettimeout()
- # nonblocking socket handshaking on connect got disabled so let's pretend it's disabled
- # even when it's on
- super(GreenSSLSocket, self).__init__(
- sock.fd, keyfile, certfile, server_side, cert_reqs, ssl_version,
- ca_certs, do_handshake_on_connect and six.PY2, *args, **kw)
+ if sys.version_info >= (3, 7):
+ # Monkey-patch the sslsocket so our modified self gets
+ # injected into its _create method.
+ def fake_new(self, cls, *args, **kwargs):
+ return self
+
+ orig_new = _original_sslsocket.__new__
+ try:
+ _original_sslsocket.__new__ = fake_new.__get__(self, GreenSSLSocket)
+
+ self = _original_wrap_socket(
+ sock=sock.fd,
+ keyfile=keyfile,
+ certfile=certfile,
+ server_side=server_side,
+ cert_reqs=cert_reqs,
+ ssl_version=ssl_version,
+ ca_certs=ca_certs,
+ do_handshake_on_connect=do_handshake_on_connect and six.PY2,
+ *args, **kw
+ )
+ self.keyfile = keyfile
+ self.certfile = certfile
+ self.cert_reqs = cert_reqs
+ self.ssl_version = ssl_version
+ self.ca_certs = ca_certs
+ finally:
+ # Unpatch
+ _original_sslsocket.__new__ = orig_new
+ else:
+ # nonblocking socket handshaking on connect got disabled so let's pretend it's disabled
+ # even when it's on
+ super(GreenSSLSocket, self).__init__(
+ sock.fd, keyfile, certfile, server_side, cert_reqs, ssl_version,
+ ca_certs, do_handshake_on_connect and six.PY2, *args, **kw)
# the superclass initializer trashes the methods so we remove
# the local-object versions of them and let the actual class
@@ -323,7 +354,10 @@ def connect(self, addr):
except NameError:
self._sslobj = sslobj
else:
- self._sslobj = SSLObject(sslobj, owner=self)
+ if sys.version_info < (3, 7):
+ self._sslobj = SSLObject(sslobj, owner=self)
+ else:
+ self._sslobj = sslobj
if self.do_handshake_on_connect:
self.do_handshake()
diff --git a/tests/debug_test.py b/tests/debug_test.py
index 8299dede..82b3a834 100644
--- a/tests/debug_test.py
+++ b/tests/debug_test.py
@@ -29,6 +29,11 @@ def test_unspew(self):
assert self.tracer is None
def test_line(self):
+ if sys.version_info >= (3, 7):
+ frame_str = "f=<frame at"
+ else:
+ frame_str = "f=<frame object at"
+
sys.stdout = six.StringIO()
s = debug.Spew()
f = sys._getframe()
@@ -36,7 +41,7 @@ def test_line(self):
lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above
output = sys.stdout.getvalue()
assert "%s:%i" % (__name__, lineno) in output, "Didn't find line %i in %s" % (lineno, output)
- assert "f=<frame object at" in output
+ assert frame_str in output
def test_line_nofile(self):
sys.stdout = six.StringIO()
@@ -51,6 +56,11 @@ def test_line_nofile(self):
assert "VM instruction #" in output, output
def test_line_global(self):
+ if sys.version_info >= (3, 7):
+ frame_str = "f=<frame at"
+ else:
+ frame_str = "f=<frame object at"
+
global GLOBAL_VAR
sys.stdout = six.StringIO()
GLOBAL_VAR = debug.Spew()
@@ -59,7 +69,7 @@ def test_line_global(self):
lineno = f.f_lineno - 1 # -1 here since we called with frame f in the line above
output = sys.stdout.getvalue()
assert "%s:%i" % (__name__, lineno) in output, "Didn't find line %i in %s" % (lineno, output)
- assert "f=<frame object at" in output
+ assert frame_str in output
assert "GLOBAL_VAR" in f.f_globals
assert "GLOBAL_VAR=<eventlet.debug.Spew object at" in output
del GLOBAL_VAR
diff --git a/tests/hub_test.py b/tests/hub_test.py
index 61b5b0b9..024f7a52 100644
--- a/tests/hub_test.py
+++ b/tests/hub_test.py
@@ -400,4 +400,6 @@ def fail_import(name, *args, **kwargs):
'''
self.write_to_tempfile('newmod', module_source)
output, _ = self.launch_subprocess('newmod.py')
- self.assertEqual(output, 'kqueue tried\nok\n')
+ # Should be equal, but this will do until
+ # the imp deprecation warning is fixed.
+ self.assertTrue(output.endswith('kqueue tried\nok\n'))
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/si-gui/python-eventlet.git
git@gitee.com:si-gui/python-eventlet.git
si-gui
python-eventlet
python-eventlet
master
点此查找更多帮助

搜索帮助

仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /