mirror of
https://github.com/GNS3/gns3-server
synced 2024-11-28 19:28:07 +00:00
Merge pull request #2207 from GNS3/pyproject-migration
Support for pyproject.toml
This commit is contained in:
commit
66157a335d
@ -34,4 +34,4 @@ COPY . /gns3server
|
|||||||
RUN mkdir -p ~/.config/GNS3/3.0/
|
RUN mkdir -p ~/.config/GNS3/3.0/
|
||||||
RUN cp scripts/gns3_server.conf ~/.config/GNS3/3.0/
|
RUN cp scripts/gns3_server.conf ~/.config/GNS3/3.0/
|
||||||
|
|
||||||
RUN python3 setup.py install
|
RUN python3 -m pip install .
|
||||||
|
58
pyproject.toml
Normal file
58
pyproject.toml
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
[build-system]
|
||||||
|
requires = ["setuptools>=61.0"]
|
||||||
|
build-backend = "setuptools.build_meta"
|
||||||
|
|
||||||
|
[project]
|
||||||
|
name = "gns3-server"
|
||||||
|
description = "GNS3 graphical interface for the GNS3 server."
|
||||||
|
license = {file = "LICENSE"}
|
||||||
|
authors = [
|
||||||
|
{ name="Jeremy Grossmann" }
|
||||||
|
]
|
||||||
|
readme = "README.md"
|
||||||
|
requires-python = ">=3.7"
|
||||||
|
classifiers = [
|
||||||
|
"Development Status :: 5 - Production/Stable",
|
||||||
|
"Environment :: Console",
|
||||||
|
"Framework :: FastAPI",
|
||||||
|
"Intended Audience :: Information Technology",
|
||||||
|
"Topic :: System :: Networking",
|
||||||
|
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
||||||
|
"Natural Language :: English",
|
||||||
|
"Operating System :: POSIX :: Linux",
|
||||||
|
"Programming Language :: Python :: 3",
|
||||||
|
"Programming Language :: Python :: 3.7",
|
||||||
|
"Programming Language :: Python :: 3.8",
|
||||||
|
"Programming Language :: Python :: 3.9",
|
||||||
|
"Programming Language :: Python :: 3.10",
|
||||||
|
"Programming Language :: Python :: 3.11",
|
||||||
|
"Programming Language :: Python :: Implementation :: CPython"
|
||||||
|
]
|
||||||
|
|
||||||
|
dynamic = ["version", "dependencies"]
|
||||||
|
|
||||||
|
[tool.setuptools]
|
||||||
|
packages = ["gns3server"]
|
||||||
|
|
||||||
|
[tool.setuptools.dynamic]
|
||||||
|
version = {attr = "gns3server.version.__version__"}
|
||||||
|
dependencies = {file = "requirements.txt"}
|
||||||
|
|
||||||
|
[project.optional-dependencies]
|
||||||
|
test = [
|
||||||
|
"pytest==7.2.2",
|
||||||
|
"flake8==5.0.4", # v5.0.4 is the last to support Python 3.7
|
||||||
|
"pytest-timeout==2.1.0",
|
||||||
|
"pytest-asyncio==0.20.3",
|
||||||
|
"requests==2.28.2",
|
||||||
|
"httpx==0.23.3"
|
||||||
|
]
|
||||||
|
|
||||||
|
[project.urls]
|
||||||
|
"Homepage" = "http://gns3.com"
|
||||||
|
"Repository" = "http://github.com/GNS3/gns3-server"
|
||||||
|
"Bug tracker" = "http://github.com/GNS3/gns3-server/issues"
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
gns3server = "gns3server.main:main"
|
||||||
|
gns3vmnet = "gns3server.utils.vmnet:main"
|
71
setup.py
71
setup.py
@ -20,28 +20,7 @@ import os
|
|||||||
import shutil
|
import shutil
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from setuptools import setup, find_packages
|
from setuptools import setup
|
||||||
from setuptools.command.test import test as TestCommand
|
|
||||||
|
|
||||||
# we only support Python 3 version >= 3.7
|
|
||||||
if len(sys.argv) >= 2 and sys.argv[1] == "install" and sys.version_info < (3, 7, 0):
|
|
||||||
raise SystemExit("Python 3.7 or higher is required")
|
|
||||||
|
|
||||||
|
|
||||||
class PyTest(TestCommand):
|
|
||||||
|
|
||||||
def finalize_options(self):
|
|
||||||
TestCommand.finalize_options(self)
|
|
||||||
self.test_args = []
|
|
||||||
self.test_suite = True
|
|
||||||
|
|
||||||
def run_tests(self):
|
|
||||||
# import here, cause outside the eggs aren't loaded
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
errcode = pytest.main(self.test_args)
|
|
||||||
sys.exit(errcode)
|
|
||||||
|
|
||||||
|
|
||||||
BUSYBOX_PATH = "gns3server/compute/docker/resources/bin/busybox"
|
BUSYBOX_PATH = "gns3server/compute/docker/resources/bin/busybox"
|
||||||
|
|
||||||
@ -64,49 +43,5 @@ def copy_busybox():
|
|||||||
raise SystemExit("No static busybox found")
|
raise SystemExit("No static busybox found")
|
||||||
|
|
||||||
|
|
||||||
copy_busybox()
|
copy_busybox() # TODO: this should probably be done when the first time the server is started
|
||||||
dependencies = open("requirements.txt", "r").read().splitlines()
|
setup() # required with setuptools below version 64.0.0
|
||||||
|
|
||||||
setup(
|
|
||||||
name="gns3-server",
|
|
||||||
version=__import__("gns3server").__version__,
|
|
||||||
url="http://github.com/GNS3/gns3-server",
|
|
||||||
license="GNU General Public License v3 (GPLv3)",
|
|
||||||
cmdclass={"test": PyTest},
|
|
||||||
description="GNS3 server",
|
|
||||||
long_description=open("README.md", "r").read(),
|
|
||||||
long_description_content_type="text/markdown",
|
|
||||||
install_requires=dependencies,
|
|
||||||
entry_points={
|
|
||||||
"console_scripts": [
|
|
||||||
"gns3server = gns3server.main:main",
|
|
||||||
"gns3vmnet = gns3server.utils.vmnet:main"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
packages=find_packages(".", exclude=["docs", "tests*"]),
|
|
||||||
include_package_data=True,
|
|
||||||
zip_safe=False,
|
|
||||||
platforms="any",
|
|
||||||
python_requires='>=3.7.0',
|
|
||||||
setup_requires=["setuptools>=17.1"],
|
|
||||||
classifiers=[
|
|
||||||
"Development Status :: 5 - Production/Stable",
|
|
||||||
"Environment :: Console",
|
|
||||||
"Intended Audience :: Information Technology",
|
|
||||||
"Topic :: System :: Networking",
|
|
||||||
"License :: OSI Approved :: GNU General Public License v3 (GPLv3)",
|
|
||||||
"Natural Language :: English",
|
|
||||||
"Operating System :: POSIX",
|
|
||||||
"Operating System :: MacOS :: MacOS X",
|
|
||||||
"Operating System :: Microsoft :: Windows",
|
|
||||||
"Programming Language :: Python",
|
|
||||||
"Programming Language :: Python :: 3 :: Only",
|
|
||||||
"Programming Language :: Python :: 3.6",
|
|
||||||
"Programming Language :: Python :: 3.7",
|
|
||||||
"Programming Language :: Python :: 3.8",
|
|
||||||
"Programming Language :: Python :: 3.9",
|
|
||||||
"Programming Language :: Python :: 3.10",
|
|
||||||
"Programming Language :: Python :: 3.11",
|
|
||||||
"Programming Language :: Python :: Implementation :: CPython",
|
|
||||||
],
|
|
||||||
)
|
|
||||||
|
Loading…
Reference in New Issue
Block a user