-
Notifications
You must be signed in to change notification settings - Fork 0
/
demo.py
96 lines (83 loc) · 2.46 KB
/
demo.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
from csvmod import *
class DemoController1(Controller):
"""
You can document this controller here, describing required
files, when to use this controller or anything else you
can think of.
"""
settings = dict(
converter={
"Price": comma_decimal,
"Shipping": comma_decimal
},
format=dict(
delimiter=";"
),
joins=(
JoinCSV(
name="test",
file="example2.csv",
local="AuctionID",
remote="auction_id",
format=dict(
delimiter="|",
),
joins=(
JoinCSV(
name="nested",
file="example3.csv",
local="listing_id",
remote="ID",
format=dict(
delimiter="|",
),
)
),
)
),
)
output = dict(
format=dict(
delimiter="\t",
),
fields=("AuctionID", "Dispatch", "Service", "ListingID", "ListingName")
)
row = 0
def handle(self, data: CSVRow):
self.row += 1
if not data["ItemNo"].startswith("u0") or self.row > 50:
return False
if data["Service"] not in ("7723", "7710", "7730"):
data["Service"] = "7723"
if data["Service"] == "7723":
data["Dispatch"] = 1
if data["Price"] >= 40 and data["Service"] == "7723":
data["Price"] = data["Price"] + data["Shipping"]
data["Shipping"] = 0
data["Connect2ItemPrice"] = 0
test = data.join("test")
if test:
data["ListingID"] = test["listing_id"]
data["ListingName"] = test.join("nested", "Name")
class DemoController2(Controller):
"""
A controller with some more settings
"""
options = dict(
delimiter="|",
converter={
"ArticleNo": int,
"DispatchTime": int,
"Price": comma_decimal
},
fields=("Price", "Shipping", "DispatchTime", "ArticleNo")
),
output = dict(
formatter={
"Price": comma_decimal_formatter,
},
format=dict(delimiter=";")
),
def handle(self, data):
data["Shipping"] = data["ArticleNo"] + data["DispatchTime"]
data["ArticleNo"] = 1234