Skip to main content

A Python interface for Plankanban

Project description

plankapy

A Python API for Planka

PyPI - License

PyPI - Version PyPI - Downloads GitHub last commit

Release Docs

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plankapy-2.1.0.tar.gz (44.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

plankapy-2.1.0-py3-none-any.whl (42.8 kB view details)

Uploaded Python 3

File details

Details for the file plankapy-2.1.0.tar.gz.

File metadata

  • Download URL: plankapy-2.1.0.tar.gz
  • Upload date:
  • Size: 44.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for plankapy-2.1.0.tar.gz
Algorithm Hash digest
SHA256 6820fdede2cc276d6e8bfcdd0d29d7c74ce7c5c3431854b120fc8d743fb55907
MD5 726e7ea5aade936a627e979e845b6730
BLAKE2b-256 6dab7541c67810c4adb1db3c21671e4767c6306164d62a684efec1d0a4273d56

See more details on using hashes here.

File details

Details for the file plankapy-2.1.0-py3-none-any.whl.

File metadata

  • Download URL: plankapy-2.1.0-py3-none-any.whl
  • Upload date:
  • Size: 42.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.9.21

File hashes

Hashes for plankapy-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 385e0555324091bd65c6951767dbd0712deba5229e0bc460757ce16ee1bd606f
MD5 264d8353dc16dc3f59bc9e69543fc02b
BLAKE2b-256 d773d44faa0047cd28bc904f409d783318658b7ac0e0853c1d4a18fc8f94a086

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page