diff --git a/__init__.py b/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/epicyon/README.md b/epicyon/README.md new file mode 100644 index 000000000..8cb99765d --- /dev/null +++ b/epicyon/README.md @@ -0,0 +1,5 @@ +# Epicyon Pypi package + +This is a wrapper package for the purpose of gathering all modules under the +`epicyon` namespace when doing Python module imports. With this wrapper +package, you can get `from epicyon import httpsig` instead of `import httpsig`. diff --git a/epicyon/__init__.py b/epicyon/__init__.py new file mode 100644 index 000000000..a437682e1 --- /dev/null +++ b/epicyon/__init__.py @@ -0,0 +1,23 @@ +"""Pypi package module namespce wrapper. + +We do this automation based importing to take all Epicyon modules in under this +package namespace in one go. This way we do not have to maintain a module list +here just for the Pypi packaging effort and package builds will automatically +pick up new modules as we go forward. +""" + +from pathlib import Path +from pkgutil import walk_packages + +__all__ = [] + +package_root = str(Path(".").parent.absolute()) + +for loader, module_name, is_pkg in walk_packages([package_root]): + __all__.append(module_name) + + if module_name == "epicyon": + continue + + _module = loader.find_module(module_name).load_module(module_name) + globals()[module_name] = _module diff --git a/setup.cfg b/setup.cfg index 4c55942dc..b2e1fcb5d 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,16 +1,33 @@ [metadata] name = epicyon version = 1.2.0 +author = Bob Mottram +author_email = bob@freedombone.net +maintainer = Bob Mottram +maintainer_email = bob@freedombone.net +description = A modern ActivityPub compliant server implementing both S2S and C2S protocols. +long_description = file: README.md +long_description_content_type = text/markdown +keywords = epicyon, activitypub, fediverse +license = GNU Affero General Public License v3 +license_file = LICENSE +classifiers = + Development Status :: 5 - Production/Stable + License :: OSI Approved :: GNU Affero General Public License v3 + Programming Language :: Python :: 3 + Programming Language :: Python :: 3.7 + Programming Language :: Python :: 3.8 + Programming Language :: Python :: 3.9 [options] packages = . install_requires = - crypto - idna<3,>=2.5 - numpy - pillow - pycryptodome - pyqrcode - python-dateutil - requests - socks + crypto >= 1.4.1, < 2 + idna >= 2.5, < 3 + numpy >= 1.20.0, < 2 + pillow >= 8.1.0, < 9 + pycryptodome >= 3.9.9, < 4 + pyqrcode >= 1.2.1, < 2 + python-dateutil >= 2.8.1, < 3 + requests >= 2.25.1, < 3 + socks # no versions https://pypi.org/project/socks/ diff --git a/static_analysis b/static_analysis index 33e135b83..b237a5261 100755 --- a/static_analysis +++ b/static_analysis @@ -8,6 +8,17 @@ fi echo "Starting static analysis" +for sourceFile in epicyon/*.py +do + result=$($cmd "$sourceFile") + if [ "$result" ]; then + echo '' + echo "$result" + exit 1 + fi + echo -n '.' +done + for sourceFile in *.py do result=$($cmd "$sourceFile") diff --git a/theme/solidaric/icons/separator_right.png b/theme/solidaric/icons/separator_right.png new file mode 100644 index 000000000..3f31f0fce Binary files /dev/null and b/theme/solidaric/icons/separator_right.png differ