async_generator is needed only for python<3.10

- the asynccontextmanager object is available in the standard contextlib
  module since Pyhton 3.7
- the aclosing object is available in the standard contextlib module
  since Pyhton 3.10
- JupyterHub currently requires Python 3.8 or newer
This commit is contained in:
Jakub Klinkovský
2024-04-24 19:47:21 +02:00
parent df04596172
commit dbd3813a1c
6 changed files with 24 additions and 7 deletions

View File

@@ -5,9 +5,14 @@
import asyncio import asyncio
import inspect import inspect
import json import json
import sys
from datetime import timedelta, timezone from datetime import timedelta, timezone
from async_generator import aclosing if sys.version_info >= (3, 10):
from contextlib import aclosing
else:
from async_generator import aclosing
from dateutil.parser import parse as parse_date from dateutil.parser import parse as parse_date
from sqlalchemy import func, or_ from sqlalchemy import func, or_
from sqlalchemy.orm import joinedload, raiseload, selectinload # noqa from sqlalchemy.orm import joinedload, raiseload, selectinload # noqa

View File

@@ -18,7 +18,11 @@ from tempfile import mkdtemp
from textwrap import dedent from textwrap import dedent
from urllib.parse import urlparse from urllib.parse import urlparse
from async_generator import aclosing if sys.version_info >= (3, 10):
from contextlib import aclosing
else:
from async_generator import aclosing
from sqlalchemy import inspect from sqlalchemy import inspect
from tornado.ioloop import PeriodicCallback from tornado.ioloop import PeriodicCallback
from traitlets import ( from traitlets import (

View File

@@ -3,10 +3,9 @@
import os import os
import sys import sys
from binascii import hexlify from binascii import hexlify
from contextlib import asynccontextmanager
from subprocess import Popen from subprocess import Popen
from async_generator import asynccontextmanager
from ..utils import ( from ..utils import (
exponential_backoff, exponential_backoff,
maybe_future, maybe_future,

View File

@@ -1,12 +1,17 @@
"""Tests for utilities""" """Tests for utilities"""
import asyncio import asyncio
import sys
import time import time
from concurrent.futures import ThreadPoolExecutor from concurrent.futures import ThreadPoolExecutor
from unittest.mock import Mock from unittest.mock import Mock
if sys.version_info >= (3, 10):
from contextlib import aclosing
else:
from async_generator import aclosing
import pytest import pytest
from async_generator import aclosing
from tornado import gen from tornado import gen
from tornado.concurrent import run_on_executor from tornado.concurrent import run_on_executor
from tornado.httpserver import HTTPRequest from tornado.httpserver import HTTPRequest

View File

@@ -27,8 +27,12 @@ from hmac import compare_digest
from operator import itemgetter from operator import itemgetter
from urllib.parse import quote from urllib.parse import quote
if sys.version_info >= (3, 10):
from contextlib import aclosing
else:
from async_generator import aclosing
import idna import idna
from async_generator import aclosing
from sqlalchemy.exc import SQLAlchemyError from sqlalchemy.exc import SQLAlchemyError
from tornado import gen, ioloop, web from tornado import gen, ioloop, web
from tornado.httpclient import AsyncHTTPClient, HTTPError from tornado.httpclient import AsyncHTTPClient, HTTPError

View File

@@ -1,5 +1,5 @@
alembic>=1.4 alembic>=1.4
async_generator>=1.9 async_generator>=1.9; python_version < '3.10'
certipy>=0.1.2 certipy>=0.1.2
idna idna
importlib_metadata>=3.6; python_version < '3.10' importlib_metadata>=3.6; python_version < '3.10'