From aec15d09612236746fc87359db9a8aa76d6a3aa5 Mon Sep 17 00:00:00 2001 From: Robin Mueller Date: Fri, 11 Mar 2022 11:35:47 +0100 Subject: [PATCH] fsfwgen is a package now --- fsfwgen/__init__.py | 5 ++ core.py => fsfwgen/core.py | 0 __init__.py => fsfwgen/events/__init__.py | 0 {events => fsfwgen/events}/event_parser.py | 0 {events => fsfwgen/objects}/__init__.py | 0 {objects => fsfwgen/objects}/objects.py | 0 {objects => fsfwgen/parserbase}/__init__.py | 0 .../parserbase}/file_list_parser.py | 0 {parserbase => fsfwgen/parserbase}/parser.py | 0 .../returnvalues}/__init__.py | 0 .../returnvalues}/returnvalues_parser.py | 0 {returnvalues => fsfwgen/utility}/__init__.py | 0 {utility => fsfwgen/utility}/csv_writer.py | 0 .../utility}/file_management.py | 0 {utility => fsfwgen/utility}/printer.py | 0 {utility => fsfwgen/utility}/sql_writer.py | 0 lint.py | 39 +++++++++++++++ pyproject.toml | 6 +++ setup.cfg | 50 +++++++++++++++++++ setup.py | 12 +++++ utility/__init__.py | 0 21 files changed, 112 insertions(+) create mode 100644 fsfwgen/__init__.py rename core.py => fsfwgen/core.py (100%) rename __init__.py => fsfwgen/events/__init__.py (100%) rename {events => fsfwgen/events}/event_parser.py (100%) rename {events => fsfwgen/objects}/__init__.py (100%) rename {objects => fsfwgen/objects}/objects.py (100%) rename {objects => fsfwgen/parserbase}/__init__.py (100%) rename {parserbase => fsfwgen/parserbase}/file_list_parser.py (100%) rename {parserbase => fsfwgen/parserbase}/parser.py (100%) rename {parserbase => fsfwgen/returnvalues}/__init__.py (100%) rename {returnvalues => fsfwgen/returnvalues}/returnvalues_parser.py (100%) rename {returnvalues => fsfwgen/utility}/__init__.py (100%) rename {utility => fsfwgen/utility}/csv_writer.py (100%) rename {utility => fsfwgen/utility}/file_management.py (100%) rename {utility => fsfwgen/utility}/printer.py (100%) rename {utility => fsfwgen/utility}/sql_writer.py (100%) create mode 100755 lint.py create mode 100644 pyproject.toml create mode 100644 setup.cfg create mode 100644 setup.py delete mode 100644 utility/__init__.py diff --git a/fsfwgen/__init__.py b/fsfwgen/__init__.py new file mode 100644 index 0000000..7632fb1 --- /dev/null +++ b/fsfwgen/__init__.py @@ -0,0 +1,5 @@ +VERSION_MAJOR = 0 +VERSION_MINOR = 1 +VERSION_REVISION = 0 + +__version__ = "0.1.0" diff --git a/core.py b/fsfwgen/core.py similarity index 100% rename from core.py rename to fsfwgen/core.py diff --git a/__init__.py b/fsfwgen/events/__init__.py similarity index 100% rename from __init__.py rename to fsfwgen/events/__init__.py diff --git a/events/event_parser.py b/fsfwgen/events/event_parser.py similarity index 100% rename from events/event_parser.py rename to fsfwgen/events/event_parser.py diff --git a/events/__init__.py b/fsfwgen/objects/__init__.py similarity index 100% rename from events/__init__.py rename to fsfwgen/objects/__init__.py diff --git a/objects/objects.py b/fsfwgen/objects/objects.py similarity index 100% rename from objects/objects.py rename to fsfwgen/objects/objects.py diff --git a/objects/__init__.py b/fsfwgen/parserbase/__init__.py similarity index 100% rename from objects/__init__.py rename to fsfwgen/parserbase/__init__.py diff --git a/parserbase/file_list_parser.py b/fsfwgen/parserbase/file_list_parser.py similarity index 100% rename from parserbase/file_list_parser.py rename to fsfwgen/parserbase/file_list_parser.py diff --git a/parserbase/parser.py b/fsfwgen/parserbase/parser.py similarity index 100% rename from parserbase/parser.py rename to fsfwgen/parserbase/parser.py diff --git a/parserbase/__init__.py b/fsfwgen/returnvalues/__init__.py similarity index 100% rename from parserbase/__init__.py rename to fsfwgen/returnvalues/__init__.py diff --git a/returnvalues/returnvalues_parser.py b/fsfwgen/returnvalues/returnvalues_parser.py similarity index 100% rename from returnvalues/returnvalues_parser.py rename to fsfwgen/returnvalues/returnvalues_parser.py diff --git a/returnvalues/__init__.py b/fsfwgen/utility/__init__.py similarity index 100% rename from returnvalues/__init__.py rename to fsfwgen/utility/__init__.py diff --git a/utility/csv_writer.py b/fsfwgen/utility/csv_writer.py similarity index 100% rename from utility/csv_writer.py rename to fsfwgen/utility/csv_writer.py diff --git a/utility/file_management.py b/fsfwgen/utility/file_management.py similarity index 100% rename from utility/file_management.py rename to fsfwgen/utility/file_management.py diff --git a/utility/printer.py b/fsfwgen/utility/printer.py similarity index 100% rename from utility/printer.py rename to fsfwgen/utility/printer.py diff --git a/utility/sql_writer.py b/fsfwgen/utility/sql_writer.py similarity index 100% rename from utility/sql_writer.py rename to fsfwgen/utility/sql_writer.py diff --git a/lint.py b/lint.py new file mode 100755 index 0000000..27291b2 --- /dev/null +++ b/lint.py @@ -0,0 +1,39 @@ +#!/usr/bin/env python3 +import os +import sys + + +def main(): + exclude_dirs_flag = "" + if not os.path.exists("setup.cfg"): + exclude_dirs_flag = ( + "--exclude .git,__pycache__,docs/conf.py,old,build,dist,venv" + ) + additional_flags_both_steps = "--count --statistics" + additional_flags_first_step = "--select=E9,F63,F7,F82 --show-source" + flake8_first_step_cmd = ( + f"flake8 . {additional_flags_both_steps} " + f"{additional_flags_first_step} {exclude_dirs_flag}" + ) + status = os.system(flake8_first_step_cmd) + if os.name == "nt": + if status != 0: + print(f"Flake8 linter errors with status {status}") + else: + if os.WEXITSTATUS(status) != 0: + print(f"Flake8 linter errors with status {status}") + sys.exit(0) + additional_flags_second_step = ( + '--exit-zero --max-complexity=10 --per-file-ignores="__init__.py:F401"' + ) + if not os.path.exists("setup.cfg"): + additional_flags_second_step += " --max-line-length=100" + flake8_second_step_cmd = ( + f"flake8 . {additional_flags_both_steps} {additional_flags_second_step}" + f" {exclude_dirs_flag}" + ) + os.system(flake8_second_step_cmd) + + +if __name__ == "__main__": + main() diff --git a/pyproject.toml b/pyproject.toml new file mode 100644 index 0000000..b5a3c46 --- /dev/null +++ b/pyproject.toml @@ -0,0 +1,6 @@ +[build-system] +requires = [ + "setuptools>=42", + "wheel" +] +build-backend = "setuptools.build_meta" \ No newline at end of file diff --git a/setup.cfg b/setup.cfg new file mode 100644 index 0000000..9b33114 --- /dev/null +++ b/setup.cfg @@ -0,0 +1,50 @@ +[metadata] +name = fsfwgen +description = FSFW Generator Core +version = attr: fsfwgen.__version__ +long_description = file: README.md, NOTICE +long_description_content_type = text/markdown +license = Apache-2.0 +author = Robin Mueller +author_email = muellerr@irs.uni-stuttgart.de +platform = any + +url = https://egit.irs.uni-stuttgart.de/fsfw/fsfwgen +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + License :: OSI Approved :: Apache Software License + Natural Language :: English + Operating System :: POSIX + Operating System :: Microsoft :: Windows + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 + Topic :: Communications + Topic :: Software Development :: Libraries + Topic :: Software Development :: Libraries :: Python Modules + Topic :: Scientific/Engineering + +[options] +install_requires = + colorlog>=6.0.0 +package_dir = + = . +packages = find: +python_requires = >=3.8 + +[flake8] +max-line-length = 100 +ignore = D203, W503 +exclude = + .git, + __pycache__, + docs/conf.py, + old, + build, + dist, + venv +max-complexity = 10 +extend-ignore = + # See https://github.com/PyCQA/pycodestyle/issues/373 + E203, diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..f528faf --- /dev/null +++ b/setup.py @@ -0,0 +1,12 @@ +#!/usr/bin/python3 +""" +We do the package handling in the static setup.cfg but include an empty setup.py +to allow editable installs https://packaging.python.org/tutorials/packaging-projects/ +and provide extensibility +""" +try: + from setuptools import setup +except ImportError: + from distutils.core import setup + +setup() diff --git a/utility/__init__.py b/utility/__init__.py deleted file mode 100644 index e69de29..0000000