
13 changed files with 439 additions and 35 deletions
@ -1,42 +1,16 @@ |
|||||
# pEpPythonAdapter |
# pEpPythonAdapter |
||||
|
|
||||
## Build Insttructions |
Python adapter for the [pEpEngine](https://pep.foundation/dev/repos/pEpEngine/) |
||||
|
|
||||
These build instructions should work on: |
## Documentation |
||||
* Linux (Verified 26.4.20 - heck) |
|
||||
* MacOS (Verified 26.4.20 - heck) |
|
||||
* Windows |
|
||||
|
|
||||
### Build |
See documentation in the `docs` directory. |
||||
To build against system wide pEp installation (libs/includes) |
|
||||
```bash |
|
||||
python3 setup.py build_ext |
|
||||
``` |
|
||||
|
|
||||
To build against a pEp installation in your home dir (libs/includes): |
## Issues |
||||
```bash |
|
||||
python3 setup.py build_ext --local |
|
||||
``` |
|
||||
|
|
||||
To build against a pEp installation in a custom installation root (libs/includes) |
Currently it's only possible to report bugs or features for pEp developers in |
||||
```bash |
the internal jira. |
||||
python3 setup.py build_ext --prefix=<path_to_your_install_root> |
|
||||
``` |
|
||||
|
|
||||
### Install |
## License |
||||
|
|
||||
To install the extension module system wide, as root, run: |
GPLv3 |
||||
```bash |
|
||||
python3 setup.py install |
|
||||
``` |
|
||||
|
|
||||
To install the extension module into you home dir |
|
||||
```bash |
|
||||
python3 setup.py install --user |
|
||||
``` |
|
||||
|
|
||||
To install the extension module into a custom destination |
|
||||
```bash |
|
||||
python3 setup.py install --prefix=<custom_destination_root> |
|
||||
``` |
|
||||
Attention: The ~ (tilde) does not get expanded, but env vars work ($HOME). |
|
||||
|
@ -0,0 +1,19 @@ |
|||||
|
# Minimal makefile for Sphinx documentation
|
||||
|
#
|
||||
|
|
||||
|
# You can set these variables from the command line.
|
||||
|
SPHINXOPTS = |
||||
|
SPHINXBUILD = sphinx-build |
||||
|
SOURCEDIR = source |
||||
|
BUILDDIR = build |
||||
|
|
||||
|
# Put it first so that "make" without argument is like "make help".
|
||||
|
help: |
||||
|
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) |
||||
|
|
||||
|
.PHONY: help Makefile |
||||
|
|
||||
|
# Catch-all target: route all unknown targets to Sphinx using the new
|
||||
|
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
||||
|
%: Makefile |
||||
|
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) |
@ -0,0 +1,35 @@ |
|||||
|
@ECHO OFF |
||||
|
|
||||
|
pushd %~dp0 |
||||
|
|
||||
|
REM Command file for Sphinx documentation |
||||
|
|
||||
|
if "%SPHINXBUILD%" == "" ( |
||||
|
set SPHINXBUILD=sphinx-build |
||||
|
) |
||||
|
set SOURCEDIR=source |
||||
|
set BUILDDIR=build |
||||
|
|
||||
|
if "%1" == "" goto help |
||||
|
|
||||
|
%SPHINXBUILD% >NUL 2>NUL |
||||
|
if errorlevel 9009 ( |
||||
|
echo. |
||||
|
echo.The 'sphinx-build' command was not found. Make sure you have Sphinx |
||||
|
echo.installed, then set the SPHINXBUILD environment variable to point |
||||
|
echo.to the full path of the 'sphinx-build' executable. Alternatively you |
||||
|
echo.may add the Sphinx directory to PATH. |
||||
|
echo. |
||||
|
echo.If you don't have Sphinx installed, grab it from |
||||
|
echo.http://sphinx-doc.org/ |
||||
|
exit /b 1 |
||||
|
) |
||||
|
|
||||
|
%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% |
||||
|
goto end |
||||
|
|
||||
|
:help |
||||
|
%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% |
||||
|
|
||||
|
:end |
||||
|
popd |
@ -0,0 +1,10 @@ |
|||||
|
pEp package |
||||
|
=========== |
||||
|
|
||||
|
Module contents |
||||
|
--------------- |
||||
|
|
||||
|
.. automodule:: pEp |
||||
|
:members: |
||||
|
:undoc-members: |
||||
|
:show-inheritance: |
@ -0,0 +1,204 @@ |
|||||
|
# -*- coding: utf-8 -*- |
||||
|
# |
||||
|
# Configuration file for the Sphinx documentation builder. |
||||
|
# |
||||
|
# This file does only contain a selection of the most common options. For a |
||||
|
# full list see the documentation: |
||||
|
# http://www.sphinx-doc.org/en/master/config |
||||
|
|
||||
|
# -- Path setup -------------------------------------------------------------- |
||||
|
|
||||
|
# If extensions (or modules to document with autodoc) are in another directory, |
||||
|
# add these directories to sys.path here. If the directory is relative to the |
||||
|
# documentation root, use os.path.abspath to make it absolute, like shown here. |
||||
|
# |
||||
|
# import os |
||||
|
# import sys |
||||
|
# sys.path.insert(0, os.path.abspath('.')) |
||||
|
|
||||
|
|
||||
|
# -- Project information ----------------------------------------------------- |
||||
|
from pkg_resources import get_distribution |
||||
|
|
||||
|
project = "pEpPythonAdapter" |
||||
|
copyright = "2020, Volker Birk, Matthias Heckmann, juga" |
||||
|
author = "Volker Birk, Matthias Heckmann, juga" |
||||
|
# The full version, including alpha/beta/rc tags |
||||
|
release = get_distribution("pEp").version |
||||
|
# The short X.Y version |
||||
|
version = ".".join(release.split(".")[:2]) |
||||
|
|
||||
|
# -- General configuration --------------------------------------------------- |
||||
|
|
||||
|
# If your documentation needs a minimal Sphinx version, state it here. |
||||
|
# |
||||
|
# needs_sphinx = '1.0' |
||||
|
|
||||
|
# Add any Sphinx extension module names here, as strings. They can be |
||||
|
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom |
||||
|
# ones. |
||||
|
extensions = [ |
||||
|
"sphinx.ext.autodoc", |
||||
|
"sphinx.ext.doctest", |
||||
|
"sphinx.ext.intersphinx", |
||||
|
"sphinx.ext.todo", |
||||
|
"sphinx.ext.coverage", |
||||
|
"sphinx.ext.viewcode", |
||||
|
] |
||||
|
|
||||
|
# Add any paths that contain templates here, relative to this directory. |
||||
|
templates_path = ["_templates"] |
||||
|
|
||||
|
# The suffix(es) of source filenames. |
||||
|
# You can specify multiple suffix as a list of string: |
||||
|
# |
||||
|
# source_suffix = ['.rst', '.md'] |
||||
|
source_suffix = ".rst" |
||||
|
|
||||
|
# The master toctree document. |
||||
|
master_doc = "index" |
||||
|
|
||||
|
# The language for content autogenerated by Sphinx. Refer to documentation |
||||
|
# for a list of supported languages. |
||||
|
# |
||||
|
# This is also used if you do content translation via gettext catalogs. |
||||
|
# Usually you set "language" from the command line for these cases. |
||||
|
language = None |
||||
|
|
||||
|
# List of patterns, relative to source directory, that match files and |
||||
|
# directories to ignore when looking for source files. |
||||
|
# This pattern also affects html_static_path and html_extra_path. |
||||
|
exclude_patterns = [] |
||||
|
|
||||
|
# The name of the Pygments (syntax highlighting) style to use. |
||||
|
pygments_style = None |
||||
|
|
||||
|
|
||||
|
# -- Options for HTML output ------------------------------------------------- |
||||
|
|
||||
|
# The theme to use for HTML and HTML Help pages. See the documentation for |
||||
|
# a list of builtin themes. |
||||
|
# |
||||
|
html_theme = "alabaster" |
||||
|
|
||||
|
# Theme options are theme-specific and customize the look and feel of a theme |
||||
|
# further. For a list of options available for each theme, see the |
||||
|
# documentation. |
||||
|
# |
||||
|
# html_theme_options = {} |
||||
|
|
||||
|
# Add any paths that contain custom static files (such as style sheets) here, |
||||
|
# relative to this directory. They are copied after the builtin static files, |
||||
|
# so a file named "default.css" will overwrite the builtin "default.css". |
||||
|
html_static_path = ["_static"] |
||||
|
|
||||
|
# Custom sidebar templates, must be a dictionary that maps document names |
||||
|
# to template names. |
||||
|
# |
||||
|
# The default sidebars (for documents that don't match any pattern) are |
||||
|
# defined by theme itself. Builtin themes are using these templates by |
||||
|
# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', |
||||
|
# 'searchbox.html']``. |
||||
|
# |
||||
|
# html_sidebars = {} |
||||
|
|
||||
|
|
||||
|
# -- Options for HTMLHelp output --------------------------------------------- |
||||
|
|
||||
|
# Output file base name for HTML help builder. |
||||
|
htmlhelp_basename = "pEpPythonAdapterdoc" |
||||
|
|
||||
|
|
||||
|
# -- Options for LaTeX output ------------------------------------------------ |
||||
|
|
||||
|
latex_elements = { |
||||
|
# The paper size ('letterpaper' or 'a4paper'). |
||||
|
# |
||||
|
# 'papersize': 'letterpaper', |
||||
|
# The font size ('10pt', '11pt' or '12pt'). |
||||
|
# |
||||
|
# 'pointsize': '10pt', |
||||
|
# Additional stuff for the LaTeX preamble. |
||||
|
# |
||||
|
# 'preamble': '', |
||||
|
# Latex figure (float) alignment |
||||
|
# |
||||
|
# 'figure_align': 'htbp', |
||||
|
} |
||||
|
|
||||
|
# Grouping the document tree into LaTeX files. List of tuples |
||||
|
# (source start file, target name, title, |
||||
|
# author, documentclass [howto, manual, or own class]). |
||||
|
latex_documents = [ |
||||
|
( |
||||
|
master_doc, |
||||
|
"pEpPythonAdapter.tex", |
||||
|
"pEpPythonAdapter Documentation", |
||||
|
"2020, Volker Birk, Matthias Heckmann, juga", |
||||
|
"manual", |
||||
|
) |
||||
|
] |
||||
|
|
||||
|
|
||||
|
# -- Options for manual page output ------------------------------------------ |
||||
|
|
||||
|
# One entry per manual page. List of tuples |
||||
|
# (source start file, name, description, authors, manual section). |
||||
|
man_pages = [ |
||||
|
( |
||||
|
master_doc, |
||||
|
"peppythonadapter", |
||||
|
"pEpPythonAdapter Documentation", |
||||
|
[author], |
||||
|
1, |
||||
|
) |
||||
|
] |
||||
|
|
||||
|
|
||||
|
# -- Options for Texinfo output ---------------------------------------------- |
||||
|
|
||||
|
# Grouping the document tree into Texinfo files. List of tuples |
||||
|
# (source start file, target name, title, author, |
||||
|
# dir menu entry, description, category) |
||||
|
texinfo_documents = [ |
||||
|
( |
||||
|
master_doc, |
||||
|
"pEpPythonAdapter", |
||||
|
"pEpPythonAdapter Documentation", |
||||
|
author, |
||||
|
"pEpPythonAdapter", |
||||
|
"One line description of project.", |
||||
|
"Miscellaneous", |
||||
|
) |
||||
|
] |
||||
|
|
||||
|
|
||||
|
# -- Options for Epub output ------------------------------------------------- |
||||
|
|
||||
|
# Bibliographic Dublin Core info. |
||||
|
epub_title = project |
||||
|
|
||||
|
# The unique identifier of the text. This can be a ISBN number |
||||
|
# or the project homepage. |
||||
|
# |
||||
|
# epub_identifier = '' |
||||
|
|
||||
|
# A unique identification for the text. |
||||
|
# |
||||
|
# epub_uid = '' |
||||
|
|
||||
|
# A list of files that should not be packed into the epub file. |
||||
|
epub_exclude_files = ["search.html"] |
||||
|
|
||||
|
|
||||
|
# -- Extension configuration ------------------------------------------------- |
||||
|
|
||||
|
# -- Options for intersphinx extension --------------------------------------- |
||||
|
|
||||
|
# Example configuration for intersphinx: refer to the Python standard library. |
||||
|
intersphinx_mapping = {"https://docs.python.org/": None} |
||||
|
|
||||
|
# -- Options for todo extension ---------------------------------------------- |
||||
|
|
||||
|
# If true, `todo` and `todoList` produce output, else they produce nothing. |
||||
|
todo_include_todos = True |
@ -0,0 +1,13 @@ |
|||||
|
Building the documentation |
||||
|
========================= |
||||
|
|
||||
|
This documentation uses `Sphinx <https://www.sphinx-doc.org/>`_ |
||||
|
|
||||
|
It can be built in different formats. |
||||
|
|
||||
|
Run ``cd docs; make`` to see the possible formats. |
||||
|
|
||||
|
Run ``cd docs; make html`` to build the documentation in HTML format. |
||||
|
|
||||
|
You can see the generated HTML documentation in a browser opening the directory |
||||
|
`docs/build/html`. |
@ -0,0 +1,24 @@ |
|||||
|
.. pEpPythonAdapter documentation master file, created by |
||||
|
sphinx-quickstart on Wed Oct 21 12:35:11 2020. |
||||
|
You can adapt this file completely to your liking, but it should at least |
||||
|
contain the root `toctree` directive. |
||||
|
|
||||
|
Welcome to pEpPythonAdapter's documentation! |
||||
|
============================================ |
||||
|
|
||||
|
.. toctree:: |
||||
|
:maxdepth: 2 |
||||
|
:caption: Contents: |
||||
|
|
||||
|
install |
||||
|
testing |
||||
|
documentation |
||||
|
software_using |
||||
|
api/pEp |
||||
|
|
||||
|
Indices and tables |
||||
|
================== |
||||
|
|
||||
|
* :ref:`genindex` |
||||
|
* :ref:`modindex` |
||||
|
* :ref:`search` |
@ -0,0 +1,84 @@ |
|||||
|
Installation |
||||
|
============ |
||||
|
|
||||
|
Requirements |
||||
|
------------ |
||||
|
|
||||
|
[Sequoia](https://gitlab.com/sequoia-pgp/sequoia) |
||||
|
[pEpEngine](https://pep.foundation/dev/repos/pEpEngine/) |
||||
|
[libpEpAdapter](https://pep.foundation/dev/repos/libpEpAdapter/) |
||||
|
|
||||
|
## Build Instructions |
||||
|
|
||||
|
To install all the dependencies, referer to their respective documentation. |
||||
|
|
||||
|
These build instructions should work on: |
||||
|
* Linux (Verified 26.4.20 - heck) |
||||
|
* MacOS (Verified 26.4.20 - heck) |
||||
|
* Windows |
||||
|
|
||||
|
### Build |
||||
|
To build against system wide pEp installation (libs/includes) |
||||
|
```bash |
||||
|
python3 setup.py build_ext |
||||
|
``` |
||||
|
|
||||
|
To build against a pEp installation in your home dir (libs/includes): |
||||
|
```bash |
||||
|
python3 setup.py build_ext --local |
||||
|
``` |
||||
|
|
||||
|
To build against a pEp installation in a custom installation root (libs/includes) |
||||
|
```bash |
||||
|
python3 setup.py build_ext --prefix=<path_to_your_install_root> |
||||
|
``` |
||||
|
|
||||
|
Installation in all platforms |
||||
|
----------------------------- |
||||
|
|
||||
|
It is possible to install `pEpPythonAdapter` without building it first, since |
||||
|
the installation process will build it when it has not been built yet, but you |
||||
|
need to have all the dependencies already installed. |
||||
|
|
||||
|
You can install this adapter in the in the following ways: |
||||
|
|
||||
|
To install the extension module system wide, as root, run: |
||||
|
```bash |
||||
|
python3 setup.py install |
||||
|
``` |
||||
|
|
||||
|
To install the extension module into you home dir |
||||
|
```bash |
||||
|
python3 setup.py install --user |
||||
|
``` |
||||
|
|
||||
|
To install the extension module into a custom destination |
||||
|
```bash |
||||
|
python3 setup.py install --prefix=<custom_destination_root> |
||||
|
``` |
||||
|
Attention: The ~ (tilde) does not get expanded, but env vars work ($HOME). |
||||
|
|
||||
|
If you're working on different Python projects, it's recommended to use |
||||
|
[virtualenv](https://virtualenv.pypa.io/en/stable/) to have different |
||||
|
libraries versions. |
||||
|
|
||||
|
If you're working in a virtualenv you can also install the package with |
||||
|
`pip install .` |
||||
|
|
||||
|
To install the package in "develop mode", run `python setup.py develop` |
||||
|
or `pip install -e .` |
||||
|
|
||||
|
Debian installation |
||||
|
-------------------- |
||||
|
|
||||
|
You can also install the dependencies using the scripts |
||||
|
http://pep-security.lu/gitlab/juga/Internal-Deployment/-/blob/master/install-sys-deps-debian.sh |
||||
|
and |
||||
|
http://pep-security.lu/gitlab/juga/Internal-Deployment/-/blob/master/build-pep-stack.sh |
||||
|
|
||||
|
If you know how to use docker, you can avoid having to install all |
||||
|
the dependencies using the image |
||||
|
https://registry.gitlab.com/juga0/pepdocker/peppythonadapter. |
||||
|
|
||||
|
.. Note:: This docker image is not officially maintained and it exists only |
||||
|
until there is an official Debian one. |
@ -0,0 +1,4 @@ |
|||||
|
Software using pEpPythonAdapter |
||||
|
=============================== |
||||
|
|
||||
|
- `pEpPythonMixnet <https://gitea.pep.foundation/pEp.foundation/pEpPythonMixnet>`_ |
@ -0,0 +1,15 @@ |
|||||
|
Testing |
||||
|
======= |
||||
|
|
||||
|
See :ref:`install` to install the dependencies. |
||||
|
|
||||
|
See `test/README.md` to run the tests in `test`. |
||||
|
|
||||
|
To run the tests that use `pytest`, install the testing dependencies running |
||||
|
``pip install .[test]``. |
||||
|
|
||||
|
In Debian, you can install the testing dependencies in the system running ``apt |
||||
|
install tox``. |
||||
|
|
||||
|
Run the tests with the command `tox`. You can run individual tests by running |
||||
|
``tox -e <testname>``, eg. ``tox -e py37`` or ``tox -e unit``. |
Loading…
Reference in new issue