Skip to main content

pyweclapp - Methods, classes and class builders for interacting with the weclapp api

This Package contains methods to acess weclapp objects via the api.

Setup

Step1

Set up your weclapp domain and provide weclapp API token.

    import os
    os.environ["weclappApiToken"] = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
    os.environ["weclappDomain"] = "yourCompany.weclapp.com

weclapp

Provides basic function for quering the Weclapp API (GET, PUT, POST and DELETE)

You can specify with asType the desired datatype of the response, so that for example the "result" attribte gets removed when asking for e.g. all orders in these functions will throw a specialized weclappError if they fail. PUT function uses the query Parmateter "justUsedProperties" by default to allow for updates with only changes.

weclappClasses

Provides a nested pydantic dataModel for the most used classes with update tracking and metaData handling

To initialise use .fromWeclapp -> e.g. weclappClasses.SalesOrder.fromWeclapp("salesOrderId") to retrieve the dictionary again use .getUpdateDict("used+") with updateType To directly Update use .updateWeclapp(), .updateEntity() functions

Creating Neu class Instances in weclapp

the class also provides you with a template to create an emptyClass. In this case use the fromBlank() classmethod. after that all attributes will be set to None, lists or empyt subclasses, that you can modify or append to. after compleetion call the postNewEntity() method to post it to weclapp. Please do not set "id" or "verion"

Example

salesOrder = weclappClasses.SalesOrder.fromBlank()
salesOrder.customerId = "1234"  
salesOrder.invoiceAddress.firstName = "Max"
salesOrder.qmd("1234", addToMetaData=True).booleanValue = True  # Adds a custom Attribute
orderItem = weclappClasses.OrderItems.fromBlank()
orderItem.articleId = "1234"
salesOrder.orderItems.append(orderItem)
salesOrder.postNewEntity()

Createing a new class Template

Sometimes you may want to create a new weclappClass that does not exist yet or update an old one.

Setup Example

from pyweclapp.weclappClasses.weclappClassBlueprint import weclappClassCreator
weclappClassCreator.WeclappClassCreator(entityName="ticket",
expamleEntityId="74344116", targetDirectory="util/weclappClasses").createPythonFile()

offers a convenient way to do this. just specify a entityName -> "salesOrder", "shipment", "contract", "article", "etc." expamleEntityId -> to estimate the types targetDirectory -> where the generaed files should be placed entity -> overwirtes the starting dictionary (Optional)

This will create the templates for the weclappclass as well as a init file. if you need supproperties make sure the example entity contains example of this. Oherwhise it will only be an enpty list without model

CATION may overwrite existing files -> choose an empty directory

CustomAttributes

when working with customAttribes a way of nameing them is important. However the ids vary form system to system the CAT classes (CustomATtributes) will generate the a classtemplate like in examples. ater that the attributes will be accessable with their weclappSystemNames with suggesions selectableElements will also be parsed. use bracets in description to choose a different system Name e.g.: "this is a selectable - Option (MySelectableOption)" -> Name will be "MySelectableOption" otherhwise invalid characters will be removed and a "X" will be added if the startincharacter is invalid

CAUTION this may overwrite changes you made in your module.

Setup Example

from pyweclapp.customAttributes import CAT_Generator
# specify your wish directory. 
CAT_Generator(entityName="ticket", entityId="74344116",
targetDirectory="util/customAttributes")

if you only need attribtes for specific entity please use the more specific and lightweight subclasses like cat_SalesOrder

weclappDoc

allows you to upload, download or modify documents

it autosets a description (DocDescription class) in json format to make documents identifiable via code.

DocManager(entityName, entityId)

-> get all documents of a entity: .getDocuments()
-> Upload a file -> .uploadFile()
-> download a file -> .getDocumentFiles()

Document

behaives like a weclapp class -> Document.fromWeclapp() Allows to: -> update -> .updateFile() -> download -> .downloadDoc() -> set Description -> .setDescription() -> update Description -> .updateDescription()

Example

docManger = pyweclapp.weclappDoc.DocManager("shipment", "74433425")
availableDocs = docManger.getDocuments()

timeFunctions

higher level functions for working with dates in different formats

optimised for woring with weclapp

create wheel with comand >python3 setup.py bdist_wheel sdist

Release files for pyweclapp 0.1.33

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

Source distribution (sdist)

Source distribution for pyweclapp 0.1.33
File Size Uploaded
pyweclapp-0.1.33.tar.gz 39.0 kB Details

Built distribution (wheel)

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

Total release size: 88.0 kB

Release files / pyweclapp-0.1.33.tar.gz

Download URL pyweclapp-0.1.33.tar.gz
Size 39.0 kB
Tags Source
SHA-256 checksum
How to use checksums
007d19cc480ec654b10e1670c1d6629937399a821b153a27c280871461f1ef87
BLAKE2b-256 checksum
How to use checksums
bc49371b7d0904b7a544dd24b255b3a40725735c9fcd562c934d9c8838be66f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release files / pyweclapp-0.1.33-py3-none-any.whl

Download URL pyweclapp-0.1.33-py3-none-any.whl
Size 48.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fafd5b74adc4f1ddcbfcf2b0feb23cf8288c43fff59a9e6c96326e212e92bd4f
BLAKE2b-256 checksum
How to use checksums
0272ce1d82c8f8704be952b10ebfdd424e83b086cf3dc18e34e5d5ea6b4990af
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.7

Release history Release notifications | RSS feed

This release

0.1.33 This release

2 release files

0.1.32

2 release files

0.1.31

2 release files

0.1.26

2 release files

0.1.25

2 release files

0.1.24

2 release files

0.1.23

2 release files

0.1.22

2 release files

0.1.21

2 release files

0.1.20

2 release files

0.1.19

2 release files

0.1.18

2 release files

0.1.15

2 release files

0.1.14

2 release files

0.1.13

2 release files

0.1.12

2 release files

0.1.11

2 release files

0.1.10

2 release files

0.1.9

2 release files

0.1.8

2 release files

0.1.7

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.14

2 release files

0.0.13

2 release files

0.0.12

2 release files

0.0.11

2 release files

0.0.10

2 release files

0.0.9

2 release files

0.0.8

2 release files

0.0.7

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

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