
13 changed files with 439 additions and 35 deletions
@ -1,42 +1,16 @@ |
|||
# pEpPythonAdapter |
|||
|
|||
## Build Insttructions |
|||
Python adapter for the [pEpEngine](https://pep.foundation/dev/repos/pEpEngine/) |
|||
|
|||
These build instructions should work on: |
|||
* Linux (Verified 26.4.20 - heck) |
|||
* MacOS (Verified 26.4.20 - heck) |
|||
* Windows |
|||
## Documentation |
|||
|
|||
### Build |
|||
To build against system wide pEp installation (libs/includes) |
|||
```bash |
|||
python3 setup.py build_ext |
|||
``` |
|||
See documentation in the `docs` directory. |
|||
|
|||
To build against a pEp installation in your home dir (libs/includes): |
|||
```bash |
|||
python3 setup.py build_ext --local |
|||
``` |
|||
## Issues |
|||
|
|||
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> |
|||
``` |
|||
Currently it's only possible to report bugs or features for pEp developers in |
|||
the internal jira. |
|||
|
|||
### Install |
|||
## License |
|||
|
|||
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). |
|||
GPLv3 |
|||
|
@ -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