Skip to main content

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

eoq3-2.9.11.tar.gz (118.3 kB view details)

Uploaded Source

Built Distribution

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

eoq3-2.9.11-py3-none-any.whl (144.9 kB view details)

Uploaded Python 3

File details

Details for the file eoq3-2.9.11.tar.gz.

File metadata

  • Download URL: eoq3-2.9.11.tar.gz
  • Upload date:
  • Size: 118.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for eoq3-2.9.11.tar.gz
Algorithm Hash digest
SHA256 ce2a72821d09c2987b7602d011ad91c6b678f2b491b00c987b9dc256f6df2c67
MD5 cf5a6cdc124f30f9124b34050241fa58
BLAKE2b-256 fbf02917e6e9a0ebee0c08f6830321da9cdd57bc329b0d5c7cca2fcf71b81a5d

See more details on using hashes here.

File details

Details for the file eoq3-2.9.11-py3-none-any.whl.

File metadata

  • Download URL: eoq3-2.9.11-py3-none-any.whl
  • Upload date:
  • Size: 144.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.0.1 CPython/3.13.1

File hashes

Hashes for eoq3-2.9.11-py3-none-any.whl
Algorithm Hash digest
SHA256 5744447af4f0daa792b1450ac6607333a6d85c71ebafd13665febcf8f8c32fb7
MD5 60c9cf2970d71530dfe48e1c0edf594b
BLAKE2b-256 24a0258ebf6e7c843bdd5f96774b11bbd961ebfd46acaed9ac572c448a6d945b

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