Core implementation of EOQ3 for python
Project description
eoq3 - EOQ3 core implementation for python
This implements EOQ3 domains, values, queries and commands in python. It is the central module of the EOQ3 implementation for python. It contains a ready-to-use domainwithmdb for programatic model interactions.
Getting started example
This example implements the "Why EOQ?" example and some additional prints of model information.
from eoq3.domainwithmdb import DomainWithMdb
from eoq3.command import Crt, Get,Set #commands
from eoq3.query import Cls,Pth #queries
from eoq3.concepts import * #import constants as CONCEPTS, ....
from eoq3.examples.warehouse import CreateWarehouseM1Model, CreateWarehouseM2Model #creation of example models
# currently PyecoreMdb is the only local domain. eoq3pyecoremdb must be installed.
from eoq3pyecoremdb import PyEcoreMdb #requres pyecoremdb to be installed
# Initialize a local domain
mdb = PyEcoreMdb()
domain = DomainWithMdb(mdb)
# Init warehouse meta and user model
CreateWarehouseM2Model(domain) #open function to see model creation commands
CreateWarehouseM1Model(domain) #open function to see model creation commands
# Would you like to get a list of articles?
articles = domain.Do( Get( Cls('Article') ) )
print("Articles: %s"%(articles))
# Would you like to know which one is sold less than 3-times?
badArticles = domain.Do( Get( Cls('Article').Sel(Pth('sells').Les(3)) ) )
print("Bad articles: %s"%(badArticles))
# You might want to reduce their price by 10%?
nameAndPrice = domain.Do( Get( Cls('Article').Zip([Pth('name'),Pth('price')])))
print("Article prices: %s"%(nameAndPrice))
domain.Do( Set(
Cls('Article').Sel(Pth('sells').Les(3)),
'price',
Cls('Article').Sel(Pth('sells').Les(3)).Pth('price').Mul(0.9)
) )
nameAndPrice = domain.Do( Get( Cls('Article').Zip([Pth('name'),Pth('price')])))
print("Article prices: %s"%(nameAndPrice))
# Would you like to see a list of the names of the categories of the badly selling articles sorted by ascendingly?
badCategories = domain.Do( Get( Cls('Article').Sel(Pth('sells').Les(3)).Met('PARENT').Pth('name').Uni([]).Idx('SORTASC') ) )
print(badCategories)
This example is available as https://gitlab.com/eoq/py/pyeoq/Examples/Eoq3/WhyWarehouse.py
Documentation
For more information see EOQ3 documentation: https://eoq.gitlab.io/doc/eoq3/
pyeoq repository
Pyeoq module's source can be found here: https://gitlab.com/eoq/py/pyeoq
Author
2024 Bjoern Annighoefer
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
Built Distribution
File details
Details for the file eoq3-2.9.4.tar.gz
.
File metadata
- Download URL: eoq3-2.9.4.tar.gz
- Upload date:
- Size: 116.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a6107ccfdec2c2a1bf680d1bef3421a44e824b8fa54b58480c467ff8e97c30d0 |
|
MD5 | 5a43c8a213b735f9827475ec79e25731 |
|
BLAKE2b-256 | f388bf55f6f8b03a810fddd2a70c9d0a31baa196c25ddef11f8d3526d383f2e0 |
File details
Details for the file eoq3-2.9.4-py3-none-any.whl
.
File metadata
- Download URL: eoq3-2.9.4-py3-none-any.whl
- Upload date:
- Size: 143.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.1.1 CPython/3.13.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | fc3bd672dad581867849c979f9cd4c1f45fe282a1166e49ef6c2f44ec49c4657 |
|
MD5 | 2e22fe6284156f4c1dbefc2157611af7 |
|
BLAKE2b-256 | f0f0c800118d6246da27d800cd5eb6bd66776b345de59025e63b8a92945d23da |