diff --git a/.gitignore b/.gitignore index a5fbb87..ae249c0 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,5 @@ +/.* +/*.egg-info website-output +__pycache__ +coverage.xml diff --git a/README.md b/README.md new file mode 100644 index 0000000..e69de29 diff --git a/About.page b/example/About.page similarity index 100% rename from About.page rename to example/About.page diff --git a/Home.page b/example/Home.page similarity index 100% rename from Home.page rename to example/Home.page diff --git a/navbar b/example/navbar similarity index 100% rename from navbar rename to example/navbar diff --git a/gsitegen/__init__.py b/gsitegen/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/generate.py b/gsitegen/generate.py similarity index 100% rename from generate.py rename to gsitegen/generate.py diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..9539b36 --- /dev/null +++ b/setup.py @@ -0,0 +1,32 @@ +from setuptools import find_packages, setup + +setup( + name="gsitegen", + author="Govindas", + author_email="govindas@govindas.invalid", + description="File and message encryption GUI and CLI", + long_description=open("README.md").read(), + long_description_content_type="text/markdown", + url="https://git.limework.net/Govindas/SiteGenerator", + use_scm_version=True, + setup_requires=["setuptools_scm"], + packages=find_packages(), + python_requires=">=3.8", + classifiers=[ + "Programming Language :: Python :: 3", + "License :: Public Domain", + "Operating System :: OS Independent", + ], + install_requires=[ + "html5tagger>=1.1.0", + "markdown>=3.3.6", + ], + extras_require={ + "test": ["pytest", "pytest-sugar", "pytest-mock", "coverage", "mypy", "bandit", "types-Markdown"], + "dev": ["tox", "isort", "yapf"], + }, + include_package_data=True, + entry_points=dict( + console_scripts=["gsitegen = gsitegen.generate:main"], + ), +) diff --git a/tests/test_generate.py b/tests/test_generate.py new file mode 100644 index 0000000..b7fd86f --- /dev/null +++ b/tests/test_generate.py @@ -0,0 +1,7 @@ +from gsitegen.generate import * +from html5tagger import E + +def test_something(): + doc = E() + parseMarkdown(doc, "## Heading 2") + assert str(doc) == "

Heading 2

" diff --git a/tox.ini b/tox.ini new file mode 100644 index 0000000..27f3825 --- /dev/null +++ b/tox.ini @@ -0,0 +1,31 @@ +[tox] +envlist = clean, py39, py310, coverage, security, type-checking + +[coverage:run] +include = gsitegen/*.py +branch = true + +[testenv:clean] +whitelist_externals = rm +commands = + rm -f .coverage + +[testenv] +usedevelop = true +extras = test +commands = + coverage run --append -m pytest {posargs:tests} + +[testenv:coverage] +commands = + coverage report -i + coverage html -i + coverage xml -i + +[testenv:type-checking] +commands = + mypy gsitegen --ignore-missing-imports + +[testenv:security] +commands = + bandit --recursive gsitegen --skip B101