A Python interface for Plankanban
Project description
plankapy
A python 3 based API for controlling Planka
Installation
pip install plankapy
Documentation
The full documentation can be found here.
All Interfaces are documented in the API section.
Features
No Keys Required
Planka models have all been implemented as Python objects. This means that you can access all the properties of a resource as if it were a Python object:
project.name
>>> 'Project 1'
project.managers
>>> [User(id=1, username='username', ...), User(id=2, username='username2', ...), ...]
Disambiguation of resource attributes and methods
All models have type hints for every property and attribute, meaning you don't have to guess what a method or property will return. When using a modern IDE, this allows for extensive code completion and prevents you from having to remember what every property and method returns.
Synced by Default
All included resources are accessible through object properties that send out a request to the server when accessed. This means that you can access up to date information about a resource without having to manually refresh it.
list1 = board.lists[0]
list2 = board.lists[1]
list1.cards
>>> [Card(id=1, name='Card 1', ...), Card(id=2, name='Card 2', ...)]
list2.cards
>>> []
list1.cards[0].move(list2)
list1.cards
>>> [Card(id=2, name='Card 2', ...)]
list2.cards
>>> [Card(id=1, name='Card 1', ...)]
Edit with Context
Because all stored objects maintain the attributes assigned to them on their creation, direct attribute editing is not synced with the server resource. To mitigate this a .editor() context manager is provided that refreshes the resource on entry and updates the resource on exit.
Direct editing of attributes fails to update the resource
c1 = list1.cards[0]
c1.name = "New Name"
c1.name
>>> 'New Name'
# Get the resource again to see that the name has not changed
c2 = list1.cards[0]
c2.name
>>> 'Card 1'
Context editing updates the resource after exiting the context
c1 = list1.cards[0]
with c1.editor():
c1.name = "New Name"
c1.name
>>> 'New Name'
# Get the resource again to see that the name has changed
c2 = list1.cards[0]
c2.name
>>> 'New Name'
Usage
Getting started with plankapy is as simple as creating a Planka object and passing it your authentication method. From there, you can access all the resources available to your logged in user account.
from plankapy import Planka, PasswordAuth
planka = Planka("https://planka.example.com", PasswordAuth("username", "password"))
planka.me
>>> User(id=1, username='username', ...)
planka.projects
>>> [Project(id=1, name='Project 1', ...), Project(id=2, name='Project 2', ...), ...]
License
This project is licensed under the GPLv3 License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file plankapy-2.0.3.tar.gz.
File metadata
- Download URL: plankapy-2.0.3.tar.gz
- Upload date:
- Size: 43.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c76a0c7f3f35d97a3cd496b5f1ed819bb4e83bd7760a8c2431a79f57e5d5f04
|
|
| MD5 |
f43898c90f164f0907afd3b26309c1a6
|
|
| BLAKE2b-256 |
2bccc249fc500b1e37381a06d6d6ecd75f5d4ad7c5677641a6c02a6016bfc283
|
File details
Details for the file plankapy-2.0.3-py3-none-any.whl.
File metadata
- Download URL: plankapy-2.0.3-py3-none-any.whl
- Upload date:
- Size: 41.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.9.21
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c364985038fdd2b510959f67672e87fd424bb8ba1cbacb0ea5c948d163a65a5
|
|
| MD5 |
212361869b3292e77909ffc83b234213
|
|
| BLAKE2b-256 |
21dd46f9d826dab919870dcb84e06c123d0e96b22b2d1f3132099c286b9fc489
|