From 740513821cad7391c25183261a1a2cafe5efab49 Mon Sep 17 00:00:00 2001 From: grossmj Date: Sat, 21 Dec 2013 17:57:51 -0700 Subject: [PATCH] Add project files. --- .gitignore | 1 + .travis.yml | 24 +++++++++++++++ AUTHORS | 1 + LICENSE | 16 +++++----- MANIFEST.in | 11 +++++++ README.md | 4 --- README.rst | 4 +++ dev-requirements.txt | 4 +++ gns3/__init__.py | 0 gns3/main.py | 40 ++++++++++++++++++++++++ gns3/version.py | 27 ++++++++++++++++ requirements.txt | 0 setup.py | 73 ++++++++++++++++++++++++++++++++++++++++++++ tox.ini | 7 +++++ 14 files changed, 200 insertions(+), 12 deletions(-) create mode 100644 .travis.yml create mode 100644 AUTHORS create mode 100644 MANIFEST.in delete mode 100644 README.md create mode 100644 README.rst create mode 100644 dev-requirements.txt create mode 100644 gns3/__init__.py create mode 100644 gns3/main.py create mode 100644 gns3/version.py create mode 100644 requirements.txt create mode 100644 setup.py create mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index d2d6f360..49bac9bd 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,4 @@ nosetests.xml .mr.developer.cfg .project .pydevproject +.settings diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 00000000..972b3545 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,24 @@ +language: python + +python: + - "2.7" + - "3.3" + +install: + - "pip install -r requirements.txt --use-mirrors" + - "pip install tox" + +script: "python setup.py test" + +branches: + only: + - master + +notifications: + email: false + irc: + channels: + - "chat.freenode.net#gns3" + on_success: change + on_failure: always + diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 00000000..608cba37 --- /dev/null +++ b/AUTHORS @@ -0,0 +1 @@ +Jeremy Grossmann \ No newline at end of file diff --git a/LICENSE b/LICENSE index c3ef6844..94a9ed02 100644 --- a/LICENSE +++ b/LICENSE @@ -1,7 +1,7 @@ -GNU GENERAL PUBLIC LICENSE + GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - Copyright (C) 2007 Free Software Foundation, Inc. {http://fsf.org/} + Copyright (C) 2007 Free Software Foundation, Inc. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -631,8 +631,8 @@ to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. - {one line to give the program's name and a brief idea of what it does.} - Copyright (C) {year} {name of author} + + Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -645,14 +645,14 @@ the "copyright" line and a pointer to where the full notice is found. GNU General Public License for more details. You should have received a copy of the GNU General Public License - along with this program. If not, see {http://www.gnu.org/licenses/}. + along with this program. If not, see . Also add information on how to contact you by electronic and paper mail. If the program does terminal interaction, make it output a short notice like this when it starts in an interactive mode: - GNS3-GUI Copyright (C) 2013 GNS3 + Copyright (C) This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. @@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box". You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU GPL, see -{http://www.gnu.org/licenses/}. +. The GNU General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. But first, please read -{http://www.gnu.org/philosophy/why-not-lgpl.html}. +. diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 00000000..a2cc6ce3 --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1,11 @@ +include README.rst +include AUTHORS +include INSTALL +include LICENSE +include MANIFEST.in +include tox.ini +recursive-include tests * +recursive-include docs * +recursive-include gns3 * +recursive-exclude * __pycache__ +recursive-exclude * *.py[co] diff --git a/README.md b/README.md deleted file mode 100644 index 601fbef7..00000000 --- a/README.md +++ /dev/null @@ -1,4 +0,0 @@ -GNS3-GUI -======== - -GNS3 Graphical User Interface diff --git a/README.rst b/README.rst new file mode 100644 index 00000000..30711909 --- /dev/null +++ b/README.rst @@ -0,0 +1,4 @@ +GNS3-gui +======== + +GNS3 graphical interface for GNS3 server. \ No newline at end of file diff --git a/dev-requirements.txt b/dev-requirements.txt new file mode 100644 index 00000000..efb4e7a0 --- /dev/null +++ b/dev-requirements.txt @@ -0,0 +1,4 @@ +-rrequirements.txt + +pytest +ws4py diff --git a/gns3/__init__.py b/gns3/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/gns3/main.py b/gns3/main.py new file mode 100644 index 00000000..246379a8 --- /dev/null +++ b/gns3/main.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import datetime +import sys +import logging + + +def main(): + """ + Entry point for GNS3 server + """ + + current_year = datetime.date.today().year + #print("GNS3 server version {}".format(gns3server.__version__)) + print("Copyright (c) 2007-{} GNS3 Technologies Inc.".format(current_year)) + + # we only support Python 2 version >= 2.7 and Python 3 version >= 3.3 + if sys.version_info < (2, 7): + raise RuntimeError("Python 2.7 or higher is required") + elif sys.version_info[0] == 3 and sys.version_info < (3, 3): + raise RuntimeError("Python 3.3 or higher is required") + +if __name__ == '__main__': + main() diff --git a/gns3/version.py b/gns3/version.py new file mode 100644 index 00000000..cd882e72 --- /dev/null +++ b/gns3/version.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# __version__ is a human-readable version number. + +# __version_info__ is a four-tuple for programmatic comparison. The first +# three numbers are the components of the version number. The fourth +# is zero for an official release, positive for a development branch, +# or negative for a release candidate or beta (after the base version +# number has been incremented) + +__version__ = "0.1.dev" +__version_info__ = (0, 1, 0, -99) diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..e69de29b diff --git a/setup.py b/setup.py new file mode 100644 index 00000000..eba4e154 --- /dev/null +++ b/setup.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013 GNS3 Technologies Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +import sys +from setuptools import setup, find_packages +from setuptools.command.test import test as TestCommand + + +class Tox(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 tox + errcode = tox.cmdline(self.test_args) + sys.exit(errcode) + +setup( + name="gns3-gui", + version=__import__("gns3server").__version__, + url="http://github.com/GNS3/gns3-gui", + license="GNU General Public License v3 (GPLv3)", + tests_require=["tox"], + cmdclass={"test": Tox}, + author="Jeremy Grossmann", + author_email="package-maintainer@gns3.net", + description="GNS3 graphical interface for the GNS3 server.", + long_description=open("README.rst", "r").read(), + install_requires=[ + ], + entry_points={ + "console_scripts": [ + "gns3 = gns3.main:main", + ] + }, + packages=find_packages(), + include_package_data=True, + platforms="any", + classifiers=[ + "Development Status :: 1 - Planning", + "Environment :: X11 Applications :: Qt", + "Intended Audience :: Information Technology", + "Topic :: System :: Networking", + "License :: OSI Approved :: GNU General Public License v3 (GPLv3)", + 'Natural Language :: English', + "Operating System :: OS Independent", + "Programming Language :: Python", + "Programming Language :: Python :: 2", + "Programming Language :: Python :: 2.7", + "Programming Language :: Python :: 3", + "Programming Language :: Python :: 3.3", + "Programming Language :: Python :: Implementation :: CPython", + "Programming Language :: Python :: Implementation :: PyPy", + ], +) diff --git a/tox.ini b/tox.ini new file mode 100644 index 00000000..8bfea5a7 --- /dev/null +++ b/tox.ini @@ -0,0 +1,7 @@ +[tox] +envlist = py27, py33 + +[testenv] +commands = py.test [] -s tests +deps = -rdev-requirements.txt +