diff --git a/.gitignore b/.gitignore index 11b363d4..fc2dde45 100644 --- a/.gitignore +++ b/.gitignore @@ -9,6 +9,7 @@ __pycache__ .pytest_cache *.egg-info +python/dist # ignore Codeblocks temporary files and build directories. # Codeblocks project file (*.cbp) is added although it may contain some user preferences (eg. program's arguments), it may be useful for some people @@ -50,3 +51,8 @@ capi.abi3.so # ignore build directory builddir/ python/build + +# ignore python binding stuff +python/src/deltachat/capi*so + +.*.swp diff --git a/python/README.rst b/python/README.rst new file mode 100644 index 00000000..36e3a4bb --- /dev/null +++ b/python/README.rst @@ -0,0 +1,50 @@ + +deltachat python bindings +========================= + +This package provides bindings to the delta-core_ C-library +which provides imap/smtp/crypto handling as well as chat/group/messages +handling to Android, Desktop and IO user interfaces. + +Install +------- + +.. note:: + + Currently the install instructions exist only for Debian based systems (Ubuntu etc.). + +First you need to execute all the build steps to install the delta-core C-library, +see https://github.com/deltachat/deltachat-core/blob/master/README.md#build + +Next, you need to do perform:: + + pip install -e . + +Afterwards you should be able to successfully import the bindings:: + + python -c "import deltachat" + + +Running tests +------------- + +Install the delta-core C-library (see _Install) and then +type the following to execute tests:: + + pip install tox + tox + +If you want to run functional tests that run against real +e-mail accounts, generate a "liveconfig" file where each +lines contains account settings, for example:: + + # liveconfig file for specifying real-life accounts + addr=some-email@example.org mail_pw=password + addr=other-email@example.org mail_pw=otherpassword + +And then run the tests with this live-accounts config file:: + + tox -- --liveconfig liveconfig + + +.. _`delta-core`: https://github.com/deltachat/deltachat-core diff --git a/python/setup.cfg b/python/setup.cfg index 5326e01e..31258c90 100644 --- a/python/setup.cfg +++ b/python/setup.cfg @@ -1,2 +1,3 @@ [devpi:upload] formats = sdist.tgz,bdist_wheel +no-vcs = 1 diff --git a/python/setup.py b/python/setup.py index 0685271e..f9aa146e 100644 --- a/python/setup.py +++ b/python/setup.py @@ -1,22 +1,30 @@ import setuptools +def main(): + with open('README.rst') as fd: + long_description = fd.read() + + setuptools.setup( + name='deltachat', + version='0.1', + description='Python bindings for deltachat-core using CFFI', + long_description = long_description, + author='Delta Chat contributors', + setup_requires=['cffi>=1.0.0'], + install_requires=['cffi>=1.0.0', 'requests'], + packages=setuptools.find_packages('src'), + package_dir={'': 'src'}, + cffi_modules=['src/deltachat/_build.py:ffibuilder'], + classifiers=[ + 'Development Status :: 3 - Alpha', + 'Intended Audience :: Developers', + 'License :: OSI Approved :: GNU General Public License (GPL)', + 'Programming Language :: Python :: 3', + 'Topic :: Communications :: Email', + 'Topic :: Software Development :: Libraries', + ], + ) + +if __name__ == "__main__": + main() -setuptools.setup( - name='deltachat', - version='0.1', - description='Python bindings for deltachat-core using CFFI', - author='Delta Chat contributors', - setup_requires=['cffi>=1.0.0'], - install_requires=['cffi>=1.0.0', 'requests'], - packages=setuptools.find_packages('src'), - package_dir={'': 'src'}, - cffi_modules=['src/deltachat/_build.py:ffibuilder'], - classifiers=[ - 'Development Status :: 3 - Alpha', - 'Intended Audience :: Developers', - 'License :: OSI Approved :: GNU General Public License (GPL)', - 'Programming Language :: Python :: 3', - 'Topic :: Communications :: Email', - 'Topic :: Software Development :: Libraries', - ], -) diff --git a/python/tox.ini b/python/tox.ini index fad05120..6bae32f2 100644 --- a/python/tox.ini +++ b/python/tox.ini @@ -22,17 +22,15 @@ deps = flake8 # pygments required by rst-lint pygments - restructuredtext_lint + restructuredtext_lint commands = flake8 src/deltachat flake8 tests/ - # {envpython} scripts/check-rst.py + rst-lint --encoding 'utf-8' README.rst [pytest] -minversion = 2.0 -#--pyargs --doctest-modules --ignore=.tox python_files = tests/test_*.py -norecursedirs = .tox ja .hg cx_freeze_source +norecursedirs = .tox xfail_strict=true [flake8]