Compare commits
9 Commits
b37c6f9236
...
1bc8467494
Author | SHA1 | Date | |
---|---|---|---|
1bc8467494 | |||
e7709635e1 | |||
6ccc96c19c | |||
ef01d455f5 | |||
8d9b5e8f48 | |||
b3ef4f9133 | |||
fd97252f65 | |||
62aeb09052 | |||
1691d3e7df |
@ -1,7 +1,8 @@
|
||||
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require pypi setup-py [ import=distutils blacklist="3" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
require github [ user="AGProjects" pn="python3-application" tag="${PV}" ]
|
||||
|
||||
SUMMARY="Basic building blocks for python applications"
|
||||
HOMEPAGE="http://ag-projects.com/"
|
@ -1,8 +1,8 @@
|
||||
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require github [ user="AGProjects" tag="release-${PV}" ]
|
||||
require setup-py [ import=distutils blacklist="3" work="${PN}-release-${PV}" ]
|
||||
require github [ user="AGProjects" pn="python3-eventlib" tag="${PV}" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
|
||||
SUMMARY="Coroutine-based networking library"
|
||||
HOMEPAGE="http://sipsimpleclient.org"
|
@ -1,7 +1,8 @@
|
||||
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require pypi setup-py [ import=distutils blacklist="3" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
require github [ user="AGProjects" pn="python3-gnutls" tag="${PV}" ]
|
||||
|
||||
SUMMARY="High level object oriented wrapper around libgnutls"
|
||||
HOMEPAGE="http://ag-projects.com/"
|
@ -1,8 +1,8 @@
|
||||
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require github [ user="AGProjects" tag="release-${PV}" ]
|
||||
require setup-py [ import=distutils blacklist="3" work="${PN}-release-${PV}" ]
|
||||
require github [ user="AGProjects" pn="python3-msrplib" tag="${PV}" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
|
||||
SUMMARY="Client library for MSRP protocol and its relay extension"
|
||||
HOMEPAGE="http://sipsimpleclient.org"
|
||||
@ -14,9 +14,9 @@ MYOPTIONS=""
|
||||
|
||||
DEPENDENCIES="
|
||||
run:
|
||||
dev-python/python-application[python_abis:*(-)?]
|
||||
dev-python/python-eventlib[python_abis:*(-)?]
|
||||
dev-python/python-gnutls[>=3.0.0][python_abis:*(-)?]
|
||||
dev-python/python-application[>=3.0.3][python_abis:*(-)?]
|
||||
dev-python/python-eventlib[>=0.3.0][python_abis:*(-)?]
|
||||
dev-python/python-gnutls[>=3.1.8][python_abis:*(-)?]
|
||||
net-twisted/Twisted[python_abis:*(-)?]
|
||||
"
|
||||
|
@ -1,7 +1,8 @@
|
||||
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require pypi setup-py [ import=distutils blacklist="3" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
require github [ user="AGProjects" pn="python3-otr" tag="${PV}" ]
|
||||
|
||||
SUMMARY="Off-The-Record Messaging protocol implementation for Python"
|
||||
HOMEPAGE="https://github.com/AGProjects/python-otr"
|
||||
@ -14,9 +15,8 @@ MYOPTIONS=""
|
||||
DEPENDENCIES="
|
||||
build+run:
|
||||
dev-python/cryptography[>=1.6][python_abis:*(-)?]
|
||||
dev-python/enum34[python_abis:*(-)?]
|
||||
dev-python/gmpy2[python_abis:*(-)?]
|
||||
dev-python/python-application[>=2.0.0][python_abis:*(-)?]
|
||||
dev-python/python-application[>=3.0.3][python_abis:*(-)?]
|
||||
dev-python/zopeinterface[python_abis:*(-)?]
|
||||
net-libs/libotr
|
||||
"
|
@ -1,26 +0,0 @@
|
||||
From 8e0874b1be515abc8845e3ad41c4332f992e5687 Mon Sep 17 00:00:00 2001
|
||||
From: Julian Ospald <hasufell@posteo.de>
|
||||
Date: Tue, 24 Dec 2019 22:17:28 +0100
|
||||
Subject: [PATCH] Fix build with LibreSSL 2.7
|
||||
Upstream: submitted, https://github.com/AGProjects/python-sipsimple/pull/8
|
||||
|
||||
---
|
||||
deps/pjsip/third_party/zsrtp/include/openssl_compat.h | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/deps/pjsip/third_party/zsrtp/include/openssl_compat.h b/deps/pjsip/third_party/zsrtp/include/openssl_compat.h
|
||||
index 5b6e183e..aebbf996 100644
|
||||
--- a/deps/pjsip/third_party/zsrtp/include/openssl_compat.h
|
||||
+++ b/deps/pjsip/third_party/zsrtp/include/openssl_compat.h
|
||||
@@ -3,7 +3,7 @@
|
||||
|
||||
#include <openssl/hmac.h>
|
||||
|
||||
-#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || defined (LIBRESSL_VERSION_NUMBER)
|
||||
+#if (OPENSSL_VERSION_NUMBER < 0x10100000L) || (defined(LIBRESSL_VERSION_NUMBER) && LIBRESSL_VERSION_NUMBER < 0x20700000L)
|
||||
static HMAC_CTX *HMAC_CTX_new(void)
|
||||
{
|
||||
HMAC_CTX *ctx = (HMAC_CTX*)OPENSSL_malloc(sizeof(HMAC_CTX));
|
||||
--
|
||||
2.24.1
|
||||
|
@ -0,0 +1,36 @@
|
||||
Upstream: Yes
|
||||
Source: https://github.com/AGProjects/python3-sipsimple/commit/d75b225e566cae2c998504dc5cd76bb30226cb43
|
||||
|
||||
From d75b225e566cae2c998504dc5cd76bb30226cb43 Mon Sep 17 00:00:00 2001
|
||||
From: Adrian Georgescu <ag@ag-projects.com>
|
||||
Date: Tue, 16 Mar 2021 13:54:03 +0000
|
||||
Subject: [PATCH] Decode uri.transport if is bytes in DNS Lookup
|
||||
|
||||
---
|
||||
sipsimple/lookup.py | 5 +++--
|
||||
1 file changed, 3 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/sipsimple/lookup.py b/sipsimple/lookup.py
|
||||
index 8ce86a92..27672da7 100644
|
||||
--- a/sipsimple/lookup.py
|
||||
+++ b/sipsimple/lookup.py
|
||||
@@ -255,8 +255,9 @@ def lookup_sip_proxy(self, uri, supported_transports, timeout=3.0, lifetime=15.0
|
||||
|
||||
try:
|
||||
# If the host part of the URI is an IP address, we will not do any lookup
|
||||
+ transport = uri.transport.decode() if isinstance(uri.transport, bytes) else uri.transport
|
||||
if re.match("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$", uri.host.decode()):
|
||||
- transport = 'tls' if uri.secure else uri.transport.lower()
|
||||
+ transport = 'tls' if uri.secure else transport.lower()
|
||||
if transport not in supported_transports:
|
||||
raise DNSLookupError("IP transport %s dictated by URI is not supported" % transport)
|
||||
port = uri.port or (5061 if transport=='tls' else 5060)
|
||||
@@ -270,7 +271,7 @@ def lookup_sip_proxy(self, uri, supported_transports, timeout=3.0, lifetime=15.0
|
||||
|
||||
# If the port is specified in the URI, we will only do an A lookup
|
||||
if uri.port:
|
||||
- transport = 'tls' if uri.secure else uri.transport.lower()
|
||||
+ transport = 'tls' if uri.secure else transport.lower()
|
||||
if transport not in supported_transports:
|
||||
raise DNSLookupError("Host transport %s dictated by URI is not supported" % transport)
|
||||
addresses = self._lookup_a_records(resolver, [uri.host.decode()], log_context=log_context)
|
@ -1,45 +0,0 @@
|
||||
From f786808a36deab01f301905ecdae27e6e17ce197 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Barcza <info@blackpanther.hu>
|
||||
Date: Mon, 13 Mar 2017 14:46:34 +0100
|
||||
Subject: [PATCH 1/2] Build fix on Linux
|
||||
Upstream: submitted, https://github.com/AGProjects/python-sipsimple/pull/1
|
||||
|
||||
---
|
||||
setup_pjsip.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/setup_pjsip.py b/setup_pjsip.py
|
||||
index 4760e64..a43533d 100644
|
||||
--- a/setup_pjsip.py
|
||||
+++ b/setup_pjsip.py
|
||||
@@ -157,6 +157,7 @@ def configure_pjsip(self):
|
||||
if sys_platform == "win32":
|
||||
cmd = ["bash", "configure"]
|
||||
else:
|
||||
+ os.system("chmod +x "+ self.build_dir +"/*configure")
|
||||
cmd = ["./configure"]
|
||||
cmd.extend(["--disable-g7221-codec"])
|
||||
ffmpeg_path = env.get("SIPSIMPLE_FFMPEG_PATH", None)
|
||||
|
||||
From b80cf7ee9d4c32b4e068eb74492f31ccab1296b2 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Barcza <info@blackpanther.hu>
|
||||
Date: Mon, 13 Mar 2017 14:55:29 +0100
|
||||
Subject: [PATCH 2/2] Build fix on Linux
|
||||
|
||||
---
|
||||
setup_pjsip.py | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/setup_pjsip.py b/setup_pjsip.py
|
||||
index a43533d..5f1b27b 100644
|
||||
--- a/setup_pjsip.py
|
||||
+++ b/setup_pjsip.py
|
||||
@@ -157,7 +157,7 @@ def configure_pjsip(self):
|
||||
if sys_platform == "win32":
|
||||
cmd = ["bash", "configure"]
|
||||
else:
|
||||
- os.system("chmod +x "+ self.build_dir +"/*configure")
|
||||
+ os.system("chmod +x "+ self.build_dir +"/*configure")
|
||||
cmd = ["./configure"]
|
||||
cmd.extend(["--disable-g7221-codec"])
|
||||
ffmpeg_path = env.get("SIPSIMPLE_FFMPEG_PATH", None)
|
@ -0,0 +1,22 @@
|
||||
From f786808a36deab01f301905ecdae27e6e17ce197 Mon Sep 17 00:00:00 2001
|
||||
From: Charles Barcza <info@blackpanther.hu>
|
||||
Date: Mon, 13 Mar 2017 14:46:34 +0100
|
||||
Subject: [PATCH 1/2] Build fix on Linux
|
||||
Upstream: submitted, https://github.com/AGProjects/python-sipsimple/pull/1
|
||||
|
||||
---
|
||||
setup_pjsip.py | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/setup_pjsip.py b/setup_pjsip.py
|
||||
index 7dd6c13ff..82e7bd1ca 100644
|
||||
--- a/setup_pjsip.py
|
||||
+++ b/setup_pjsip.py
|
||||
@@ -160,6 +160,7 @@ class PJSIP_build_ext(build_ext):
|
||||
if sys_platform == "win32":
|
||||
cmd = ["bash", "configure"]
|
||||
else:
|
||||
+ os.system("chmod +x "+ self.build_dir +"/*configure")
|
||||
cmd = ["./configure"]
|
||||
cmd.extend(["--disable-g7221-codec"])
|
||||
ffmpeg_path = env.get("SIPSIMPLE_FFMPEG_PATH", None)
|
@ -1,8 +1,8 @@
|
||||
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require github [ user="AGProjects" tag="release-${PV}" ]
|
||||
require setup-py [ import=distutils blacklist="3" work="${PN}-release-${PV}" ]
|
||||
require github [ user="AGProjects" pn="python3-sipsimple" tag="${PV}" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
|
||||
SUMMARY="SIP SIMPLE client SDK is a Software Development Kit"
|
||||
HOMEPAGE="http://sipsimpleclient.org ${HOMEPAGE}"
|
||||
@ -21,7 +21,7 @@ DEPENDENCIES="
|
||||
build+run:
|
||||
dev-db/sqlite:3
|
||||
dev-libs/icu:=
|
||||
dev-python/python-application[>=2.5.0][python_abis:*(-)?]
|
||||
dev-python/python-application[>=3.0.3][python_abis:*(-)?]
|
||||
media/ffmpeg[h264]
|
||||
media-libs/libvpx
|
||||
media-libs/v4l-utils
|
||||
@ -33,22 +33,21 @@ DEPENDENCIES="
|
||||
dev-python/dnspython[python_abis:*(-)?]
|
||||
dev-python/greenlet[python_abis:*(-)?]
|
||||
dev-python/lxml[python_abis:*(-)?]
|
||||
dev-python/python-cjson[python_abis:*(-)?]
|
||||
dev-python/python-dateutil[python_abis:*(-)?]
|
||||
dev-python/python-eventlib[python_abis:*(-)?]
|
||||
dev-python/python-gnutls[python_abis:*(-)?]
|
||||
dev-python/python-msrplib[>=0.19.0][python_abis:*(-)?]
|
||||
dev-python/python-otr[>=1.2.0][python_abis:*(-)?]
|
||||
dev-python/python-xcaplib[python_abis:*(-)?]
|
||||
dev-python/python-eventlib[>=0.3.0][python_abis:*(-)?]
|
||||
dev-python/python-gnutls[>=3.1.8][python_abis:*(-)?]
|
||||
dev-python/python-msrplib[>=0.21.0][python_abis:*(-)?]
|
||||
dev-python/python-otr[>=2.0.1][python_abis:*(-)?]
|
||||
dev-python/python-xcaplib[>=2.0.0][python_abis:*(-)?]
|
||||
dev-python/zopeinterface[python_abis:*(-)?]
|
||||
media-libs/x264[-10bit]
|
||||
net-twisted/Twisted[python_abis:*(-)?]
|
||||
"
|
||||
|
||||
DEFAULT_SRC_PREPARE_PATCHES=(
|
||||
"${FILES}"/${PNV}-fix-build.patch
|
||||
"${FILES}"/0001-Fix-build-with-LibreSSL-2.7.patch
|
||||
"${FILES}"/${PN}-fix-build.patch
|
||||
"${FILES}"/${PN}-gcc10-fix.patch
|
||||
"${FILES}"/d75b225e566cae2c998504dc5cd76bb30226cb43.patch
|
||||
)
|
||||
|
||||
src_compile() {
|
@ -0,0 +1,70 @@
|
||||
Upstream: Yes
|
||||
Source: https://github.com/AGProjects/python3-xcaplib/commit/066759cf355b152375767bee4c3858dc0b8087e4
|
||||
|
||||
From 066759cf355b152375767bee4c3858dc0b8087e4 Mon Sep 17 00:00:00 2001
|
||||
From: Worawut Boonpeang <worawut@ag-projects.com>
|
||||
Date: Fri, 4 Dec 2020 13:49:54 +0000
|
||||
Subject: [PATCH] xcaplib (Python3) work with eventlib
|
||||
|
||||
---
|
||||
xcaplib/green.py | 4 +++-
|
||||
xcaplib/xcapclient.py | 10 ++++++++--
|
||||
2 files changed, 11 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/xcaplib/green.py b/xcaplib/green.py
|
||||
index 237d9d8..d01ee11 100644
|
||||
--- a/xcaplib/green.py
|
||||
+++ b/xcaplib/green.py
|
||||
@@ -2,6 +2,8 @@
|
||||
from eventlib.green import socket, ssl, httplib, urllib2
|
||||
from xcaplib import httpclient
|
||||
from xcaplib import client
|
||||
+import urllib
|
||||
+import http
|
||||
|
||||
|
||||
class HTTPConnection(httplib.HTTPConnection):
|
||||
@@ -22,7 +24,7 @@ def http_open(self, req):
|
||||
|
||||
class HTTPSHandler(urllib.request.HTTPSHandler):
|
||||
def https_open(self, req):
|
||||
- return self.do_open(HTTPSConnection, req)
|
||||
+ return self.do_open(http.client.HTTPSConnection, req)
|
||||
|
||||
|
||||
class HTTPClient(httpclient.HTTPClient):
|
||||
diff --git a/xcaplib/xcapclient.py b/xcaplib/xcapclient.py
|
||||
index cd409df..384c237 100755
|
||||
--- a/xcaplib/xcapclient.py
|
||||
+++ b/xcaplib/xcapclient.py
|
||||
@@ -129,6 +129,8 @@ def setup_parser_request(parser):
|
||||
parser.add_option('--etag', help="perform a conditional operation", metavar='ETAG')
|
||||
parser.add_option('--add-header', dest='headers',
|
||||
action='append', default=[], help=optparse.SUPPRESS_HELP)
|
||||
+ parser.add_option("--eventlib", dest='eventlib_enable',
|
||||
+ help="Enables non-blocking mode using eventlib library")
|
||||
parser.add_option("-i", dest='input_filename',
|
||||
help="source file for the PUT request; default is <stdin>")
|
||||
parser.add_option("-o", dest='output_filename',
|
||||
@@ -366,7 +368,11 @@ def update_options_from_config(options):
|
||||
setattr(options, key, value)
|
||||
|
||||
def parse_args():
|
||||
- argv = sys.argv[1:]
|
||||
+ argv = None
|
||||
+ if "--eventlib" in sys.argv[1:]:
|
||||
+ argv = sys.argv[2:]
|
||||
+ else:
|
||||
+ argv = sys.argv[1:]
|
||||
|
||||
if not argv:
|
||||
sys.exit('Type %s -h for help.' % sys.argv[0])
|
||||
@@ -496,7 +502,7 @@ def get_exit_code(http_error):
|
||||
return 3
|
||||
|
||||
def main():
|
||||
- if sys.argv[0].endswith('-eventlib'):
|
||||
+ if "--eventlib" in sys.argv[1:]:
|
||||
from xcaplib.green import XCAPClient as client_class
|
||||
else:
|
||||
client_class = XCAPClient
|
@ -1,11 +1,11 @@
|
||||
# Copyright 2016 Julian Ospald <hasufell@posteo.de>
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require setup-py [ import=distutils blacklist="3" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
require github [ user="AGProjects" pn="python3-xcaplib" tag="${PV}" ]
|
||||
|
||||
SUMMARY="Python library for managing XML documents on XCAP server"
|
||||
HOMEPAGE="http://sipsimpleclient.org"
|
||||
DOWNLOADS="http://download.ag-projects.com/XCAP/${PNV}.tar.gz"
|
||||
|
||||
LICENCES="GPL-2"
|
||||
SLOT="0"
|
||||
@ -15,6 +15,10 @@ MYOPTIONS=""
|
||||
DEPENDENCIES="
|
||||
run:
|
||||
dev-python/lxml[python_abis:*(-)?]
|
||||
dev-python/python-application[python_abis:*(-)?]
|
||||
dev-python/python-application[>=3.0.3][python_abis:*(-)?]
|
||||
"
|
||||
|
||||
DEFAULT_SRC_PREPARE_PATCHES=(
|
||||
"${FILES}"/${PN}-work-with-eventlib.patch
|
||||
)
|
||||
|
@ -2,8 +2,8 @@
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
require desktop-utils gtk-icon-cache
|
||||
require setup-py [ import=distutils blacklist="3" multibuild=false ]
|
||||
require github [ user="AGProjects" pn="blink-qt" tag="release-${PV}" ]
|
||||
require setup-py [ import=distutils blacklist="2" multibuild=false ]
|
||||
require github [ user="AGProjects" pn="blink-qt" tag="${PV}" ]
|
||||
|
||||
SUMMARY="A state of the art, easy to use SIP client"
|
||||
HOMEPAGE="http://iCanBlink.com"
|
||||
@ -22,17 +22,16 @@ DEPENDENCIES="
|
||||
dev-python/PyQt5[>=5.0][webkit][python_abis:*(-)?]
|
||||
dev-python/google-api-python-client[python_abis:*(-)?]
|
||||
dev-python/lxml[python_abis:*(-)?]
|
||||
dev-python/python-application[>=2.5.0][python_abis:*(-)?]
|
||||
dev-python/python-cjson[python_abis:*(-)?]
|
||||
dev-python/python-application[>=3.0.3][python_abis:*(-)?]
|
||||
dev-python/python-dateutil[python_abis:*(-)?]
|
||||
dev-python/python-eventlib[python_abis:*(-)?]
|
||||
dev-python/python-sipsimple[>=3.0.0][python_abis:*(-)?]
|
||||
dev-python/python-eventlib[>=0.3.0][python_abis:*(-)?]
|
||||
dev-python/python-sipsimple[>=4.0.1][python_abis:*(-)?]
|
||||
dev-python/zopeinterface[python_abis:*(-)?]
|
||||
net-twisted/Twisted[python_abis:*(-)?]
|
||||
"
|
||||
|
||||
DEFAULT_SRC_PREPARE_PATCHES=(
|
||||
"${FILES}/${PNV}-data-path.patch"
|
||||
"${FILES}/${PN}-data-path.patch"
|
||||
)
|
||||
|
||||
src_install() {
|
@ -3,14 +3,17 @@ Date: Tue Sep 8 10:10:18 UTC 2015
|
||||
Subject: Fix data path fallback
|
||||
Upstream: no, correct fix pending since 'sys.prefix' is broken in exherbo
|
||||
|
||||
--- blink-1.4.1/blink/resources.py
|
||||
+++ blink-1.4.1/blink/resources.py
|
||||
@@ -71,7 +71,7 @@
|
||||
if os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')):
|
||||
cls._cached_directory = os.path.join(application_directory, 'resources').decode(sys.getfilesystemencoding())
|
||||
|
||||
diff --git a/blink/resources.py b/blink/resources.py
|
||||
index e981ed8..f1f4f5c 100644
|
||||
--- a/blink/resources.py
|
||||
+++ b/blink/resources.py
|
||||
@@ -81,7 +81,7 @@ class Resources(object):
|
||||
elif os.path.exists(os.path.join(application_directory, 'resources', 'blink.ui')):
|
||||
cls._cached_directory = os.path.join(application_directory, 'resources')
|
||||
else:
|
||||
- cls._cached_directory = os.path.join(application_directory, 'share', 'blink').decode(sys.getfilesystemencoding())
|
||||
+ cls._cached_directory = os.path.join('/usr', 'share', 'blink').decode(sys.getfilesystemencoding())
|
||||
- cls._cached_directory = os.path.join(application_directory, 'share', 'blink')
|
||||
+ cls._cached_directory = os.path.join('/usr', 'share', 'blink')
|
||||
return DirectoryContextManager(cls._cached_directory)
|
||||
|
||||
@classmethod
|
Loading…
Reference in New Issue
Block a user