Hi! Thanks so much for wanting to contribute.
There's a few extra steps to set up for development.
To install in development mode from source, download the source code, then run this:
python setup.py develop
To do development work, you'll need a few more libraries:
pip install -r dev_requirements.txt
Make sure you have the development libraries installed, then run:
py.test tests
Make sure you have the development libraries installed, then do:
cd docs make html
The generated documentation will be in docs/_build/html/
.
The code follows PEP8 with the following exceptions:
- Indentation is 2 spaces (no tabs)
- Line length: use your best judgment. (We all have big monitors now, no need to limit to 80 columns.)
Your code should pass flake8 unless readability is hurt. Configuration is in setup.cfg
.
Your code should work with all versions of Python 2.6 and 2.7. If possible, your code should be compatible with Python 3.3+. Travis will check that for you automatically.
Submitted code should have tests covering the code submitted, and your code should pass the Travis build.
All fixture data should be unicode, following the guidelines in Ned Batchelder's fantastic Pragmatic Unicode.
For example, instead of using the string "Test string"
, use u"tëst strïnġ"
. This will catch unicode
problems up front, saving a world of pain later.
Google "weirdmaker" for many, many obnoxious sites where you can do this conversion automatically.
If you don't know where to start, documentation is always welcome.
Microsoft has fantastic documentation on Exchange Web Services (EWS) SOAP request/responses. To add new functionality, you'll need to find the action you want to add in their documentation.
Start here: Exchange Web Services Operations
The existing codebase and that should get you started. Feel free to contact us for help.
General areas for improvement are:
- Python 3 support (updating python-ntlm would be great)
- Support for more versions of Exchange
- Extend calendar functionality
- More fields
- More actions
- Add the ability to output events as JSON
- Add mail functionality
- Add contacts functionality