mirror of
https://github.com/GNS3/gns3-server
synced 2025-01-13 17:40:54 +00:00
Merge branch '3.0' into joserfc-migration
This commit is contained in:
commit
0be45c7da2
2
.github/workflows/testing.yml
vendored
2
.github/workflows/testing.yml
vendored
@ -18,7 +18,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
os: ["ubuntu-latest"]
|
os: ["ubuntu-latest"]
|
||||||
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
|
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13"]
|
||||||
#include:
|
#include:
|
||||||
# only test with Python 3.10 on Windows
|
# only test with Python 3.10 on Windows
|
||||||
# - os: windows-latest
|
# - os: windows-latest
|
||||||
|
@ -267,9 +267,9 @@ class Server:
|
|||||||
else:
|
else:
|
||||||
log.info(f"Compute authentication is enabled with username '{config.Server.compute_username}'")
|
log.info(f"Compute authentication is enabled with username '{config.Server.compute_username}'")
|
||||||
|
|
||||||
# we only support Python 3 version >= 3.8
|
# we only support Python 3 version >= 3.9
|
||||||
if sys.version_info < (3, 8, 0):
|
if sys.version_info < (3, 9, 0):
|
||||||
raise SystemExit("Python 3.8 or higher is required")
|
raise SystemExit("Python 3.9 or higher is required")
|
||||||
|
|
||||||
log.info(
|
log.info(
|
||||||
"Running with Python {major}.{minor}.{micro} and has PID {pid}".format(
|
"Running with Python {major}.{minor}.{micro} and has PID {pid}".format(
|
||||||
|
@ -97,18 +97,10 @@ async def wait_for_process_termination(process, timeout=10):
|
|||||||
:param timeout: Timeout in seconds
|
:param timeout: Timeout in seconds
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if sys.version_info >= (3, 5):
|
|
||||||
try:
|
try:
|
||||||
await asyncio.wait_for(process.wait(), timeout=timeout)
|
await asyncio.wait_for(process.wait(), timeout=timeout)
|
||||||
except ProcessLookupError:
|
except ProcessLookupError:
|
||||||
return
|
return
|
||||||
else:
|
|
||||||
while timeout > 0:
|
|
||||||
if process.returncode is not None:
|
|
||||||
return
|
|
||||||
await asyncio.sleep(0.1)
|
|
||||||
timeout -= 0.1
|
|
||||||
raise asyncio.TimeoutError()
|
|
||||||
|
|
||||||
|
|
||||||
async def _check_process(process, termination_callback):
|
async def _check_process(process, termination_callback):
|
||||||
|
@ -40,10 +40,7 @@ class Pool:
|
|||||||
while len(self._tasks) > 0 or len(pending) > 0:
|
while len(self._tasks) > 0 or len(pending) > 0:
|
||||||
while len(self._tasks) > 0 and len(pending) < self._concurrency:
|
while len(self._tasks) > 0 and len(pending) < self._concurrency:
|
||||||
task, args, kwargs = self._tasks.pop(0)
|
task, args, kwargs = self._tasks.pop(0)
|
||||||
if sys.version_info >= (3, 7):
|
|
||||||
t = asyncio.create_task(task(*args, **kwargs))
|
t = asyncio.create_task(task(*args, **kwargs))
|
||||||
else:
|
|
||||||
t = asyncio.get_event_loop().create_task(task(*args, **kwargs))
|
|
||||||
pending.add(t)
|
pending.add(t)
|
||||||
(done, pending) = await asyncio.wait(pending, return_when=asyncio.FIRST_COMPLETED)
|
(done, pending) = await asyncio.wait(pending, return_when=asyncio.FIRST_COMPLETED)
|
||||||
for task in done:
|
for task in done:
|
||||||
|
@ -10,7 +10,7 @@ authors = [
|
|||||||
{ name = "Jeremy Grossmann", email = "developers@gns3.com" }
|
{ name = "Jeremy Grossmann", email = "developers@gns3.com" }
|
||||||
]
|
]
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
requires-python = ">=3.8"
|
requires-python = ">=3.9"
|
||||||
classifiers = [
|
classifiers = [
|
||||||
"Development Status :: 5 - Production/Stable",
|
"Development Status :: 5 - Production/Stable",
|
||||||
"Environment :: Console",
|
"Environment :: Console",
|
||||||
@ -21,11 +21,11 @@ classifiers = [
|
|||||||
"Natural Language :: English",
|
"Natural Language :: English",
|
||||||
"Operating System :: POSIX :: Linux",
|
"Operating System :: POSIX :: Linux",
|
||||||
"Programming Language :: Python :: 3 :: Only",
|
"Programming Language :: Python :: 3 :: Only",
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
"Programming Language :: Python :: 3.9",
|
||||||
"Programming Language :: Python :: 3.10",
|
"Programming Language :: Python :: 3.10",
|
||||||
"Programming Language :: Python :: 3.11",
|
"Programming Language :: Python :: 3.11",
|
||||||
"Programming Language :: Python :: 3.12",
|
"Programming Language :: Python :: 3.12",
|
||||||
|
"Programming Language :: Python :: 3.13",
|
||||||
"Programming Language :: Python :: Implementation :: CPython"
|
"Programming Language :: Python :: Implementation :: CPython"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@ sentry-sdk>=2.19.2,<2.20 # optional dependency
|
|||||||
psutil>=6.1.1
|
psutil>=6.1.1
|
||||||
distro>=1.9.0
|
distro>=1.9.0
|
||||||
py-cpuinfo>=9.0.0,<10.0
|
py-cpuinfo>=9.0.0,<10.0
|
||||||
|
greenlet==3.1.1 # necessary to run sqlalchemy on Python 3.13
|
||||||
sqlalchemy==2.0.36
|
sqlalchemy==2.0.36
|
||||||
aiosqlite==0.20.0
|
aiosqlite==0.20.0
|
||||||
alembic==1.14.0
|
alembic==1.14.0
|
||||||
|
Loading…
Reference in New Issue
Block a user