diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000..3c7043c
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,30 @@
+root = true
+
+[*]
+charset = utf-8
+# end_of_line = lf
+insert_final_newline = true
+trim_trailing_whitespace = true
+indent_style = tab
+indent_size = 2
+tab_width = 2
+
+
+[*.py]
+indent_style = tab
+indent_size = 2
+
+[*.{yml,yaml}]
+indent_style = space
+indent_size = 2
+
+[*.{json,ini}]
+indent_style = tab
+indent_size = 2
+
+[*.md]
+trim_trailing_whitespace = false
+
+[*.rst]
+indent_style = space
+indent_size = 3
diff --git a/.github/workflows/Pipeline.yml b/.github/workflows/Pipeline.yml
index e876cc6..4086594 100644
--- a/.github/workflows/Pipeline.yml
+++ b/.github/workflows/Pipeline.yml
@@ -3,10 +3,8 @@ name: Pipeline
on:
push:
workflow_dispatch:
-
-defaults:
- run:
- shell: bash
+ schedule:
+ - cron: '0 0 * * 5'
jobs:
@@ -90,6 +88,7 @@ jobs:
needs:
- Params
#- UnitTesting
+ #- PublishTestResults
#- Coverage
- BuildTheDocs
- PublishToGitHubPages
diff --git a/.gitignore b/.gitignore
index e565dcd..181440a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,12 +2,24 @@
__pycache__/
*.py[cod]
+# Coverage.py
+.coverage
+.cov
+coverage.xml
+
+# setuptools
+/build/**/*.*
+/dist/**/*.*
+/*.egg-info
+
+# Dependencies
+!requirements.txt
+
# Sphinx documentation
-doc/_build
-doc/_theme
+/doc/_build/
+/doc/_theme/
+/doc/pyEDAA.OutputFilter/**/*.*
+!/doc/pyEDAA.OutputFilter/index.rst
# PyCharm project
/.idea/workspace.xml
-
-# VSCode settings
-/.vscode
diff --git a/.vscode/settings.json b/.vscode/settings.json
new file mode 100644
index 0000000..bc22050
--- /dev/null
+++ b/.vscode/settings.json
@@ -0,0 +1,3 @@
+{
+"files.trimTrailingWhitespace": false,
+}
diff --git a/README.md b/README.md
index bb712d2..453f8a6 100644
--- a/README.md
+++ b/README.md
@@ -2,7 +2,7 @@
-[![Sourcecode on GitHub](https://img.shields.io/badge/pyEDAA-pyEDAA.OutputFilter-ffca28.svg?longCache=true&style=flat-square&logo=GitHub&labelColor=ff8f00)](https://GitHub.com/edaa-org/pyEDAA.OutputFilter)
+[![Sourcecode on GitHub](https://img.shields.io/badge/pyEDAA-OutputFilter-ffca28.svg?longCache=true&style=flat-square&logo=GitHub&labelColor=ff8f00)](https://GitHub.com/edaa-org/pyEDAA.OutputFilter)
[![Documentation](https://img.shields.io/website?longCache=true&style=flat-square&label=edaa-org.github.io%2FpyEDAA.OutputFilter&logo=GitHub&logoColor=fff&up_color=blueviolet&up_message=Read%20now%20%E2%9E%9A&url=https%3A%2F%2Fedaa-org.github.io%2FpyEDAA.OutputFilter%2Findex.html)](https://edaa-org.github.io/pyEDAA.OutputFilter/)
[![Gitter](https://img.shields.io/badge/chat-on%20gitter-4db797.svg?longCache=true&style=flat-square&logo=gitter&logoColor=e8ecef)](https://gitter.im/hdl/community)
[![GitHub Workflow - Build and Test Status](https://img.shields.io/github/workflow/status/edaa-org/pyEDAA.OutputFilter/Pipeline/main?longCache=true&style=flat-square&label=Build%20and%20Test&logo=GitHub%20Actions&logoColor=FFFFFF)](https://GitHub.com/edaa-org/pyEDAA.OutputFilter/actions/workflows/Pipeline.yml)
@@ -26,7 +26,7 @@
-->
-
+
# Main Goals
diff --git a/dist/requirements.txt b/dist/requirements.txt
new file mode 100644
index 0000000..6c4932c
--- /dev/null
+++ b/dist/requirements.txt
@@ -0,0 +1,2 @@
+wheel
+twine
diff --git a/doc/shields.inc b/doc/shields.inc
index 5606813..add52a6 100644
--- a/doc/shields.inc
+++ b/doc/shields.inc
@@ -4,11 +4,11 @@
# percent encoding so that the URL is properly parsed.
.. # Sourcecode link to GitHub
-.. |SHIELD:svg:OutputFilter-github| image:: https://img.shields.io/badge/pyEDAA-pyEDAA.OutputFilter-ffca28.svg?longCache=true&style=flat-square&logo=GitHub&labelColor=ff8f00
+.. |SHIELD:svg:OutputFilter-github| image:: https://img.shields.io/badge/pyEDAA-OutputFilter-ffca28.svg?longCache=true&style=flat-square&logo=GitHub&labelColor=ff8f00
:alt: Sourcecode on GitHub
:height: 22
:target: https://GitHub.com/edaa-org/pyEDAA.OutputFilter
-.. |SHIELD:png:OutputFilter-github| image:: https://raster.shields.io/badge/pyEDAA-pyEDAA.OutputFilter-ffca28.svg?longCache=true&style=flat-square&logo=GitHub&labelColor=ff8f00
+.. |SHIELD:png:OutputFilter-github| image:: https://raster.shields.io/badge/pyEDAA-OutputFilter-ffca28.svg?longCache=true&style=flat-square&logo=GitHub&labelColor=ff8f00
:alt: Sourcecode on GitHub
:height: 22
:target: https://GitHub.com/edaa-org/pyEDAA.OutputFilter
diff --git a/pyEDAA/OutputFilter/__init__.py b/pyEDAA/OutputFilter/__init__.py
index 8f105dd..e141a2a 100644
--- a/pyEDAA/OutputFilter/__init__.py
+++ b/pyEDAA/OutputFilter/__init__.py
@@ -1,5 +1,5 @@
-from pydecor import export
+from pyTooling.Decorators import export
__version__ = "0.1.0"
diff --git a/pyproject.toml b/pyproject.toml
new file mode 100644
index 0000000..0566add
--- /dev/null
+++ b/pyproject.toml
@@ -0,0 +1,36 @@
+[build-system]
+requires = [
+ "pyTooling >= 1.7.0",
+ "setuptools >= 35.0.2",
+ "wheel >= 0.29.0"
+]
+build-backend = "setuptools.build_meta"
+
+[tool.black]
+line-length = 120
+
+[tool.pytest.ini_options]
+# Don't set 'python_classes = *' otherwise, pytest doesn't search for classes
+# derived from unittest.Testcase
+python_files = "*"
+python_functions = "test_*"
+
+[tool.coverage.run]
+branch = true
+omit = [
+ "*site-packages*",
+ "setup.py"
+]
+
+[tool.coverage.report]
+skip_covered = true
+skip_empty = true
+exclude_lines = [
+ "raise NotImplementedError"
+]
+
+[tool.coverage.html]
+directory = "report/coverage/html"
+
+[tool.coverage.xml]
+output = "report/coverage/coverage.xml"
diff --git a/requirements.txt b/requirements.txt
index b0f362a..e69de29 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1 +0,0 @@
-pydecor>=2.0.1
diff --git a/tests/.coveragerc b/tests/.coveragerc
deleted file mode 100644
index 0ebb5bd..0000000
--- a/tests/.coveragerc
+++ /dev/null
@@ -1,12 +0,0 @@
-[run]
-branch = true
-
-[report]
-skip_covered = True
-skip_empty = True
-
-[html]
-directory = .cov
-
-[xml]
-output = coverage.xml
diff --git a/tests/pytest.ini b/tests/pytest.ini
deleted file mode 100644
index e09d325..0000000
--- a/tests/pytest.ini
+++ /dev/null
@@ -1,5 +0,0 @@
-[pytest]
-# Don't set 'python_classes = *' otherwise, pytest doesn't search for classes
-# derived from unittest.Testcase
-python_files = *
-python_functions = test_*