106 lines
3.3 KiB
ReStructuredText
106 lines
3.3 KiB
ReStructuredText
Python Redmine
|
|
==============
|
|
|
|
.. image:: https://badge.fury.io/py/python-redmine.svg
|
|
:target: https://badge.fury.io/py/python-redmine
|
|
|
|
.. image:: https://img.shields.io/pypi/dm/python-redmine.svg
|
|
:target: https://pypi.python.org/pypi/python-redmine/
|
|
|
|
.. image:: https://img.shields.io/travis/maxtepkeev/python-redmine/master.svg
|
|
:target: https://travis-ci.org/maxtepkeev/python-redmine
|
|
|
|
.. image:: https://img.shields.io/coveralls/maxtepkeev/python-redmine/master.svg
|
|
:target: https://coveralls.io/r/maxtepkeev/python-redmine?branch=master
|
|
|
|
Python Redmine is a library for communicating with a `Redmine <http://www.redmine.org>`_
|
|
project management application. Redmine exposes some of it's data via `REST API
|
|
<http://www.redmine.org/projects/redmine/wiki/Rest_api>`_ for which Python Redmine provides
|
|
a simple but powerful Pythonic API inspired by a well-known `Django ORM
|
|
<https://docs.djangoproject.com/en/dev/topics/db/queries/>`_:
|
|
|
|
.. code-block:: python
|
|
|
|
>>> from redmine import Redmine
|
|
|
|
>>> redmine = Redmine('http://demo.redmine.org', username='foo', password='bar')
|
|
>>> project = redmine.project.get('vacation')
|
|
|
|
>>> project.id
|
|
30404
|
|
|
|
>>> project.identifier
|
|
'vacation'
|
|
|
|
>>> project.created_on
|
|
datetime.datetime(2013, 12, 31, 13, 27, 47)
|
|
|
|
>>> project.issues
|
|
<redmine.resultsets.ResourceSet object with Issue resources>
|
|
|
|
>>> project.issues[0]
|
|
<redmine.resources.Issue #34441 "Vacation">
|
|
|
|
>>> dir(project.issues[0])
|
|
['assigned_to', 'author', 'created_on', 'description', 'done_ratio',
|
|
'due_date', 'estimated_hours', 'id', 'priority', 'project', 'relations',
|
|
'start_date', 'status', 'subject', 'time_entries', 'tracker', 'updated_on']
|
|
|
|
>>> project.issues[0].subject
|
|
'Vacation'
|
|
|
|
>>> project.issues[0].time_entries
|
|
<redmine.resultsets.ResourceSet object with TimeEntry resources>
|
|
|
|
Features
|
|
--------
|
|
|
|
* Supports 100% of Redmine API features
|
|
* Supports Python 2.6 - 3.5, PyPy and PyPy3
|
|
* Extensively documented
|
|
* Provides ORM-style Pythonic API
|
|
|
|
Installation
|
|
------------
|
|
|
|
To install Python Redmine, simply:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ pip install python-redmine
|
|
|
|
or:
|
|
|
|
.. code-block:: bash
|
|
|
|
$ easy_install python-redmine
|
|
|
|
Documentation
|
|
-------------
|
|
|
|
Documentation is available at http://python-redmine.readthedocs.org.
|
|
|
|
Contacts and Support
|
|
--------------------
|
|
|
|
I will be glad to get your feedback, `pull requests <https://github.com/maxtepkeev/python-redmine/pulls>`_,
|
|
`issues <https://github.com/maxtepkeev/python-redmine/issues>`_, whatever. Feel free to contact me for any
|
|
questions.
|
|
|
|
Donations and Sponsorship
|
|
-------------------------
|
|
|
|
If you like this project and want to support it you have 3 options:
|
|
|
|
#. Just give this project a star at the top of the `GitHub <https://github.com/maxtepkeev/python-redmine>`_
|
|
repository. That doesn't cost you anything but makes the `author <https://github.com/maxtepkeev>`_ happier.
|
|
#. You can express your gratitude via `Gratipay <https://gratipay.com/maxtepkeev/>`_.
|
|
#. Become a sponsor. Contact me via ``tepkeev at gmail dot com`` if you are interested in becoming a sponsor
|
|
and we will discuss the terms and conditions.
|
|
|
|
Copyright and License
|
|
---------------------
|
|
|
|
Python Redmine is licensed under Apache 2.0 license. Check the `LICENSE
|
|
<https://github.com/maxtepkeev/python-redmine/blob/master/LICENSE>`_ for details.
|