A description of your project
Project description
villaInventorySdk
full docs here https://thanakijwanavit.github.io/villa-inventory-sdk/
Install
pip install villaInventorySdk
How to use
Uploading a large amount of data
sample input
from villaInventorySdk.inventory import InventorySdk
from random import randrange
import boto3, time, json
from dataclasses import dataclass
from dataclasses_json import dataclass_json
from datetime import datetime
import pandas as pd
from nicHelper.dictUtil import printDict
sampleInput = [
{ 'iprcode': '0000009', 'brcode': '1000', 'ib_cf_qty': '50', 'new_ib_vs_stock_cv': '27' },
{ 'iprcode': '0000004', 'brcode': '1000', 'ib_cf_qty': '35', 'new_ib_vs_stock_cv': '33' },
{ 'iprcode': '0000003', 'brcode': '1003', 'ib_cf_qty': '36', 'new_ib_vs_stock_cv': '33' }
]
df = pd.DataFrame(sampleInput)
df
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
iprcode | brcode | ib_cf_qty | new_ib_vs_stock_cv | |
---|---|---|---|---|
0 | 0000009 | 1000 | 50 | 27 |
1 | 0000004 | 1000 | 35 | 33 |
2 | 0000003 | 1003 | 36 | 33 |
Upload data
init sdk
%%time
USER=None
PW = None
sdk = InventorySdk(user=USER, pw=PW, branchName = branch)
CPU times: user 34.2 ms, sys: 7.54 ms, total: 41.8 ms
Wall time: 40.8 ms
Update inventory
%%time
key = 'test'
r = sdk.uploadDf(df, key = key)
if r.status_code >= 400: raise Exception(r.json())
sdk.ingestData(key = key)
signed url is
url : https://in
fields
key : test
AWSAccessKeyId : ASIAVX4Z5T
x-amz-security-token : IQoJb3JpZ2
policy : eyJleHBpcm
signature : apy2TqqnY2
CPU times: user 54.7 ms, sys: 12.3 ms, total: 67 ms
Wall time: 628 ms
{'body': '{"iprcode":{"0":"0000009","1":"0000004","2":"0000003"},"brcode":{"0":"1000","1":"1000","2":"1003"},"ib_cf_qty":{"0":"50","1":"35","2":"36"},"new_ib_vs_stock_cv":{"0":"27","1":"33","2":"33"}}',
'statusCode': 200,
'headers': {'Access-Control-Allow-Headers': '*',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Methods': '*'}}
test uploading full data
#### test uploading real data
# df = pd.read_csv('sampleData/inventory.csv', index_col=0, dtype=str).reset_index(drop=True)
# r = sdk.uploadDf(df, key = key)
# if r.status_code >= 400: raise Exception(r.json())
# sdk.ingestData(key = key)
Query single product
%%time
sdk.querySingleProduct2(iprcode='1234')
succesfully get url, returning pandas
CPU times: user 103 ms, sys: 12.6 ms, total: 116 ms
Wall time: 799 ms
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
iprcode | brcode | ib_cf_qty | new_ib_vs_stock_cv |
---|
Query Branch
%%time
sdk.branchQuery(brcode='1000', iprcodes = [9])
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<timed eval> in <module>
~/SageMaker/.persisted_conda/python38/lib/python3.8/site-packages/nicHelper/wrappers.py in wrapper(self, *args, **kwargs)
12 @wraps(func)
13 def wrapper(self, *args, **kwargs):
---> 14 return func(self, *args, **kwargs)
15 setattr(cls, func.__name__, wrapper)
16 # Note we are not binding func, but wrapper which accepts self but does exactly the same as func
TypeError: branchQuery() got an unexpected keyword argument 'iprcodes'
Query All
%%time
sdk.queryAll2()
succesfully get url, returning pandas
CPU times: user 76.2 ms, sys: 24.1 ms, total: 100 ms
Wall time: 673 ms
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
iprcode | brcode | ib_cf_qty | new_ib_vs_stock_cv | |
---|---|---|---|---|
0 | 4 | 1000 | 35 | 33 |
1 | 9 | 1000 | 95 | 95 |
2 | 12 | 1000 | 36 | 36 |
3 | 26 | 1000 | 28 | 28 |
4 | 28 | 1000 | 9 | 9 |
... | ... | ... | ... | ... |
81551 | 244818 | 1000 | 0 | 0 |
81552 | 244820 | 1000 | 0 | 0 |
81553 | 244822 | 1000 | 0 | 0 |
81554 | 244823 | 1000 | 0 | 0 |
81555 | 3 | 1003 | 36 | 33 |
81556 rows × 4 columns
sdk.querySingleProduct2()
succesfully get url, returning pandas
<style scoped>
.dataframe tbody tr th:only-of-type {
vertical-align: middle;
}
.dataframe tbody tr th {
vertical-align: top;
}
.dataframe thead th {
text-align: right;
}
</style>
iprcode | brcode | ib_cf_qty | new_ib_vs_stock_cv |
---|
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
villaInventorySdk-0.1.6.tar.gz
(16.8 kB
view details)
Built Distribution
File details
Details for the file villaInventorySdk-0.1.6.tar.gz
.
File metadata
- Download URL: villaInventorySdk-0.1.6.tar.gz
- Upload date:
- Size: 16.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/49.6.0.post20201009 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2353b2af2bfc5dbec1617e4ed63ec3b29f22ad69219e3cf9ee48d98401a9ff4 |
|
MD5 | e00c8a3d0f9d611807e0150ccfe19737 |
|
BLAKE2b-256 | a7d05894d28d4c66e74948f5eaee2b14fb92d7fecac1951187583de9433735c1 |
File details
Details for the file villaInventorySdk-0.1.6-py3-none-any.whl
.
File metadata
- Download URL: villaInventorySdk-0.1.6-py3-none-any.whl
- Upload date:
- Size: 15.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.2.0 pkginfo/1.6.1 requests/2.23.0 setuptools/49.6.0.post20201009 requests-toolbelt/0.9.1 tqdm/4.51.0 CPython/3.8.6
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f1a0fd754096389254588a33f0a925c72162ede906e9152df80adb6db9879b3 |
|
MD5 | dce3d40219be86ac2cde0033d5440f1a |
|
BLAKE2b-256 | a925a3f5b022b3ecd62e1d2aab73053184fadc09bccf6dcf842ce5900d6a9106 |