Skip to main content

last price revision validation rules

Project description

Price Validation Engine

Overview

Price Validation Engine is framework to create skeleton to validate last price revision

requirements

  • python 3.6+
  • Linux, MacOS, windows

install

pip install price-val-engine

Start Project

python -m price_val_engine startproject project_name 

Project template structure

- base_dir
    - project_name 
        - __init__.py
        - settings.py
        - validtion_rules.py
    - run.py

Run project

python run.py --input=input.csv --output=output.csv 

input as s3 csv file

python run.py --input=s3://bucket_name/path/input.csv --output=s3://bucket_name/path/input.csv

settings.py

  • default validation pipeline

     VALIDATION_PIPELINES = [  
         'price_val_engine.core.validations.general_rules.NullNegativeZeroValidationRule',  
         'price_val_engine.core.validations.general_rules.OutOfRangeValidationRule',  
         'price_val_engine.core.validations.revision_rules.AbsoluteDeltaPercentageRangeValidationRule',  
     ]
    

Add new custom validation rule

- step 1 you can define your custom validtion rules in the file `project_name/validation_rules.py`

    class MyValidationRule(BaseRule)
        name = "validation_rules.myvalidation_rule"
        message = "price could not be gte {max_price}"
        severity = ''

        def is_valid(self, item):
            max_price = 50
            if item['price'] >= max_price:
                self.message.format(max_price)
                self.severity = 'HIGH' # you can define severity LOW, MEDIUM and HIGH

- step 2 add your newly defined rule in `setting.py`

    VALIDATION_PIPELINES = [  
        ...,
        'project_name.validation_rules.MyValidationRule
    ]

Validation_rules

price_val_engine.core.validations.general_rules.NullNegativeZeroValidationRule

price_val_engine.core.validations.general_rules.OutOfRangeValidationRule

price_val_engine.core.validations.revision_rules.AbsoluteDeltaPercentageRangeValidationRule

price_val_engine.core.validations.revision_rules.DeltaPercentageValidationRule

price_val_engine.core.validations.revision_rules.DeltaValidationRule

Default Settings:

NullNegativeZeroValidationRule config
- EMPTY_VALUES:  (None, "", [], (), {})
OutOfRangeValidationRule config
- GEN_VAL_OUT_OF_RANGE_VALUE: 

        {
            'min_value': 100000.0,
            'max_value': 10000000.0
        }
AbsoluteDeltaPercentageRangeValidationRule config
- DEFAULT_LP_FIELD: 'final_liquidation_price'
- DEFAULT_PREV_DAY_LP_FIELD: 'lp'

- DELTA_PCT_VAL_DEFAULT:  (-5, 5)
- DELTA_PCT_VAL_LOW: (-7, 7)
- DELTA_PCT_VAL_MEDIUM: (-10, 10)
slack notification
- SLACK_ENABLED: False
- SLACK_BOT_TOKEN: os.environ.get("SLACK_BOT_TOKEN")
- SLACK_CHANNEL: os.environ.get("SLACK_CHANNEL")
- COLUMNS_TO_BE_SEND_ON_ALERT: '__all__'
Read Write CSV file from S3
- AWS_ACCESS_KEY_ID: os.environ.get('AWS_ACCESS_KEY_ID')
- AWS_SECRET_ACCESS_KEY: os.environ.get('AWS_SECRET_ACCESS_KEY')
- AWS_SESSION_TOKEN: os.environ.get('AWS_SESSION_TOKEN')

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

price-val-engine-0.1.10.tar.gz (14.7 kB view details)

Uploaded Source

Built Distribution

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

price_val_engine-0.1.10-py3-none-any.whl (19.9 kB view details)

Uploaded Python 3

File details

Details for the file price-val-engine-0.1.10.tar.gz.

File metadata

  • Download URL: price-val-engine-0.1.10.tar.gz
  • Upload date:
  • Size: 14.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.0 CPython/3.9.13

File hashes

Hashes for price-val-engine-0.1.10.tar.gz
Algorithm Hash digest
SHA256 3135a84f2e7428d60461b5be961f6ba26675de41f5f2528cb44e868f7e62bff8
MD5 9541a424fb77eb404064044c6e04f963
BLAKE2b-256 df72c6d81094b4d88764610217e042488a049b27859408f273715c062efba35d

See more details on using hashes here.

File details

Details for the file price_val_engine-0.1.10-py3-none-any.whl.

File metadata

File hashes

Hashes for price_val_engine-0.1.10-py3-none-any.whl
Algorithm Hash digest
SHA256 5e7076fe56dcfe15af3f930061b20d44321cc0aa84b151ed10d7b475fb90cc8b
MD5 9a255d0d41f3b2ba6f1d5ada1c346349
BLAKE2b-256 6b5eb86e5ce78d82bf84d9b83db5e3ad34353cf94b498834c681bafcade43371

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