Skip to main content

Forks Stargazers Issues MIT License LinkedIn

PyPlunet

Modern Python client for interacting with the Plunet SOAP 3.0 API, BM version 10.8.3.

About The Project

Modern Python client for interacting with the Plunet SOAP API, without having to deal with any of the soapiness.

Ready to use out of the box, you can jump directly into the business logic.

Pip install, import and start working. It really is as easy as that!

  • Implements all services and methods as per BM 10.8.3
  • Fully typed for validation and code completion support
  • Fully documented methods with complete content of the Plunet JavaDocs.

(back to top)

New in 0.11.0

  • Breaking: Dropped support for Python 3.9
  • Added debug mode for the client
  • Fixed type handling of status Enums, which had reverted to plain INTs. Methods taking status arguments now normalize input.

New in 0.10.0

  • Updated models to match BM 10.8.3 (latest BM version to implement changes in DTOs)
  • BREAKING: Dropped support for pydantic 1.10 - only 2.x
  • Updated plunetapi/zeep to support python 3.12 and 3.13
  • Started prep for v1, which will support multiple BM/API versions.

New in 0.9.1

  • Updated readme
  • Fixed typo

New in 0.9.0

  • Added methods and fields up to Plunet 9.11
  • Added missing status and type enums

New in 0.8.0

  • Decided to remove the retrying client
  • Improved flexibility for enums, which now accept both integers and strings that are possible to cast as ints

Built With

(back to top)

Getting Started

Installation

Install via pip

pip install pyplunet

Or clone the repo

git clone https://github.com/kuhnemann/pyplunet.git

(back to top)

Usage

Install using pip like so:

pip install pyplunet

Initialize the client with the base URL of your Plunet instance, authenticate and start doing whatever you aim to do.

from pyplunet import PlunetClient


plunet_client = PlunetClient(base_url="YOUR_URL")

plunet_client.login(username=username, password=password)

order_result = plunet_client.order.get_order_object(order_id=1234)

Complex types and enums are included. Convenient when searching or creating entities:

from datetime import datetime, timedelta

from pyplunet import PlunetClient
from pyplunet.models import OrderIN, SearchFilter_Resource
from pyplunet.enums import ResourceType, ResourceStatus, WorkingStatus


plunet_client = PlunetClient(base_url="YOUR_URL")

plunet_client.login(username=username, password=password)

# prepare the searchfilter
sf_resource = SearchFilter_Resource(
    contact_resourceID=-1,
    languageCode="EN",
    resourceType=ResourceType.PROJECT_MANAGER,
    resourceStatus=ResourceStatus.ACTIVE,
    workingStatus=WorkingStatus.INTERNAL
)
# get the result
pms_result = plunet_client.resource.search(search_filter_resource=sf_resource)

# prepare the OrderIN object. Fields are typed and corresponds to definition from XSD.
order_in = OrderIN(
    currency="SEK",
    customerContactID=1,
    customerID=3,
    deliveryDeadline=datetime.now() + timedelta(days=7),
    orderDate=datetime.now(),
    orderID=-1,
    projectManagerID=11,
    projectManagerMemo="Some memo!",
    projectName="Project has a name",
    rate=-1,
    referenceNumber="This is the reference number",
    subject="This is the subject!"
)
order_integer_result = plunet_client.order.insert2(order_in=order_in)
order_id = order_integer_result.data

(back to top)

See the open issues for a full list of proposed features (and known issues).

(back to top)

Contributing

Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.

If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!

  1. Fork the Project
  2. Create your Feature Branch (git checkout -b feature/AmazingFeature)
  3. Commit your Changes (git commit -m 'Add some AmazingFeature')
  4. Push to the Branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

(back to top)

License

Distributed under the MIT License. See LICENSE for more information.

(back to top)

Contact

Henrik Kühnemann - hello@yellownape.se

Project Link: https://github.com/kuhnemann/pyplunet

(back to top)

(back to top)

Metadata

Release files for pyplunet 0.11.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pyplunet 0.11.1
File Size Uploaded
pyplunet-0.11.1.tar.gz 123.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for pyplunet 0.11.1
File Interpreter ABI Platform
pyplunet-0.11.1-py3-none-any.whl Python 3 none any Details

Total release size: 222.4 kB

Release files / pyplunet-0.11.1.tar.gz

Download URL pyplunet-0.11.1.tar.gz
Size 123.5 kB
Tags Source
SHA-256 checksum
How to use checksums
e9f5f25d3e69617cd46fe88e90714b370e3147d957b76498d8fad1a8471e1cae
BLAKE2b-256 checksum
How to use checksums
00c0c17adf6dbdef2ca36a9f4ac3b2b31811e2f661b04b422d9b3c8f617de0c5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.4

Release files / pyplunet-0.11.1-py3-none-any.whl

Download URL pyplunet-0.11.1-py3-none-any.whl
Size 98.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b424f761c796902375c87c58a8cb2e27a27e84842143855e7774564907d55de1
BLAKE2b-256 checksum
How to use checksums
4fc2dc8b1501a52dc6187bcb61ee75f99e9be701667147beb0e21d1a7c923909
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.11.4

Release history Release notifications | RSS feed

This release

0.11.1 This release

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.1

2 release files

0.9.0

2 release files

0.8.3

2 release files

0.8.2

2 release files

0.8.1

2 release files

0.8.0

2 release files

0.7.0

2 release files

0.6.0

2 release files

0.5.0

2 release files

0.4.0

2 release files

0.3.2

2 release files

0.2.0

2 release files

0.1.0

2 release files

0.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page